1 package org.modeshape.sequencer.ddl;
2
3 import java.util.Arrays;
4 import java.util.List;
5 import org.modeshape.graph.property.Name;
6
7 public interface DdlConstants {
8 public static final String DEFAULT_TERMINATOR = ";";
9
10
11
12
13 public static final String SPACE = " ";
14 public static final String PERIOD = ".";
15 public static final String COMMA = ",";
16 public static final String SEMICOLON = ";";
17 public static final String L_PAREN = "(";
18 public static final String R_PAREN = ")";
19 public static final String L_SQUOTE = "’";
20
21
22
23
24 public static final int CONSTRAINT_UC = 0;
25 public static final int CONSTRAINT_FK = 1;
26 public static final int CONSTRAINT_PK = 2;
27 public static final int CONSTRAINT_C = 3;
28
29 public static final String PRIMARY_KEY = "PRIMARY KEY";
30 public static final String FOREIGN_KEY = "FOREIGN KEY";
31
32
33
34
35 public static final String ALTER = "ALTER";
36 public static final String CHECK = "CHECK";
37 public static final String COLUMN = "COLUMN";
38 public static final String CONSTRAINT = "CONSTRAINT";
39 public static final String CREATE = "CREATE";
40 public static final String DECLARE = "DECLARE";
41 public static final String DROP = "DROP";
42 public static final String FOREIGN = "FOREIGN";
43 public static final String GRANT = "GRANT";
44 public static final String REVOKE = "REVOKE";
45 public static final String INDEX = "INDEX";
46 public static final String INSERT = "INSERT";
47 public static final String UPDATE = "UPDATE";
48 public static final String DELETE = "DELETE";
49 public static final String SELECT = "SELECT";
50 public static final String KEY = "KEY";
51 public static final String OFF = "OFF";
52 public static final String ON = "ON";
53 public static final String PRIMARY = "PRIMARY";
54 public static final String SCHEMA = "SCHEMA";
55 public static final String SET = "SET";
56 public static final String TABLE = "TABLE";
57 public static final String UNIQUE = "UNIQUE";
58 public static final String VIEW = "VIEW";
59
60
61
62
63 public static final int DEFAULT_ID_UNDEFINED = -1;
64 public static final int DEFAULT_ID_LITERAL = 0;
65 public static final int DEFAULT_ID_DATETIME = 1;
66 public static final int DEFAULT_ID_USER = 2;
67 public static final int DEFAULT_ID_CURRENT_USER = 3;
68 public static final int DEFAULT_ID_SESSION_USER = 4;
69 public static final int DEFAULT_ID_SYSTEM_USER = 5;
70 public static final int DEFAULT_ID_NULL = 6;
71
72 public static final String MISSING_TERMINATOR_NODE_LITERAL = "missingTerminator";
73
74 interface DropBehavior {
75 public static final String CASCADE = "CASCADE";
76 public static final String RESTRICT = "RESTRICT";
77 }
78
79 interface MatchType {
80 public static final String FULL = "FULL";
81 public static final String PARTIAL = "PARTIAL";
82 }
83
84 interface ReferencialAction {
85 public static final String CASCADE = "CASCADE";
86 public static final String SET_NULL = "SET NULL";
87 public static final String SET_DEFAULT = "SET DEFAULT";
88 public static final String NO_ACTION = "NO ACTION";
89 }
90
91
92 interface StatementStartPhrases {
93 public static final String[] STMT_CREATE_SCHEMA = {CREATE, SCHEMA};
94 public static final String[] STMT_CREATE_TABLE = {CREATE, TABLE};
95 public static final String[] STMT_CREATE_GLOBAL_TEMPORARY_TABLE = {CREATE, "GLOBAL", "TEMPORARY", TABLE};
96 public static final String[] STMT_CREATE_LOCAL_TEMPORARY_TABLE = {CREATE, "LOCAL", "TEMPORARY", TABLE};
97 public static final String[] STMT_CREATE_VIEW = {CREATE, VIEW};
98 public static final String[] STMT_CREATE_OR_REPLACE_VIEW = {CREATE, "OR", "REPLACE", VIEW};
99 public static final String[] STMT_CREATE_ASSERTION = {CREATE, "ASSERTION"};
100 public static final String[] STMT_CREATE_CHARACTER_SET = {CREATE, "CHARACTER", SET};
101 public static final String[] STMT_CREATE_COLLATION = {CREATE, "COLLATION"};
102 public static final String[] STMT_CREATE_DOMAIN = {CREATE, "DOMAIN"};
103 public static final String[] STMT_CREATE_TRANSLATION = {CREATE, "TRANSLATION"};
104 public static final String[] STMT_ALTER_TABLE = {ALTER, TABLE};
105 public static final String[] STMT_ALTER_DOMAIN = {ALTER, "DOMAIN"};
106 public static final String[] STMT_GRANT = {GRANT};
107 public static final String[] STMT_REVOKE = {REVOKE};
108 public static final String[] STMT_DROP_SCHEMA = {DROP, SCHEMA};
109 public static final String[] STMT_DROP_TABLE = {DROP, TABLE};
110 public static final String[] STMT_DROP_VIEW = {DROP, VIEW};
111 public static final String[] STMT_DROP_DOMAIN = {DROP, "DOMAIN"};
112 public static final String[] STMT_DROP_CHARACTER_SET = {DROP, "CHARACTER", SET};
113 public static final String[] STMT_DROP_COLLATION = {DROP, "COLLATION"};
114 public static final String[] STMT_DROP_TRANSLATION = {DROP, "TRANSLATION"};
115 public static final String[] STMT_DROP_ASSERTION = {DROP, "ASSERTION"};
116 public static final String[] STMT_INSERT_INTO = {"INSERT", "INTO"};
117 public static final String[] STMT_SET_DEFINE = {"SET", "DEFINE"};
118
119 public final static String[][] SQL_92_ALL_PHRASES = {STMT_CREATE_SCHEMA, STMT_CREATE_TABLE,
120 STMT_CREATE_GLOBAL_TEMPORARY_TABLE, STMT_CREATE_LOCAL_TEMPORARY_TABLE, STMT_CREATE_VIEW, STMT_CREATE_OR_REPLACE_VIEW,
121 STMT_CREATE_ASSERTION, STMT_CREATE_CHARACTER_SET, STMT_CREATE_COLLATION, STMT_CREATE_TRANSLATION, STMT_CREATE_DOMAIN,
122 STMT_ALTER_TABLE, STMT_ALTER_DOMAIN, STMT_GRANT, STMT_REVOKE, STMT_DROP_SCHEMA, STMT_DROP_TABLE, STMT_DROP_VIEW,
123 STMT_DROP_DOMAIN, STMT_DROP_CHARACTER_SET, STMT_DROP_COLLATION, STMT_DROP_TRANSLATION, STMT_DROP_ASSERTION,
124 STMT_INSERT_INTO, STMT_SET_DEFINE};
125
126
127
128
129
130
131
132
133
134
135 public final static Name[] VALID_SCHEMA_CHILD_TYPES = {StandardDdlLexicon.TYPE_CREATE_TABLE_STATEMENT,
136 StandardDdlLexicon.TYPE_CREATE_VIEW_STATEMENT, StandardDdlLexicon.TYPE_GRANT_ON_TABLE_STATEMENT,
137 StandardDdlLexicon.TYPE_GRANT_ON_DOMAIN_STATEMENT, StandardDdlLexicon.TYPE_GRANT_ON_TRANSLATION_STATEMENT,
138 StandardDdlLexicon.TYPE_GRANT_ON_COLLATION_STATEMENT, StandardDdlLexicon.TYPE_GRANT_ON_CHARACTER_SET_STATEMENT,
139 StandardDdlLexicon.TYPE_CREATE_DOMAIN_STATEMENT, StandardDdlLexicon.TYPE_CREATE_CHARACTER_SET_STATEMENT,
140 StandardDdlLexicon.TYPE_CREATE_COLLATION_STATEMENT, StandardDdlLexicon.TYPE_CREATE_TRANSLATION_STATEMENT,
141 StandardDdlLexicon.TYPE_CREATE_ASSERTION_STATEMENT};
142 }
143
144
145
146
147 interface DataTypes {
148 public static final int DTYPE_CODE_ANY = -1;
149 public static final int DTYPE_CODE_CHAR_STRING = 0;
150 public static final int DTYPE_CODE_NCHAR_STRING = 1;
151 public static final int DTYPE_CODE_BIT_STRING = 2;
152 public static final int DTYPE_CODE_EXACT_NUMERIC = 3;
153 public static final int DTYPE_CODE_APROX_NUMERIC = 4;
154 public static final int DTYPE_CODE_DATE_TIME = 5;
155 public static final int DTYPE_CODE_MISC = 6;
156 public static final int DTYPE_CODE_CUSTOM = 7;
157
158
159 public static final String[] DTYPE_CHARACTER = {"CHARACTER"};
160 public static final String[] DTYPE_CHAR = {"CHAR"};
161 public static final String[] DTYPE_CHARACTER_VARYING = {"CHARACTER", "VARYING"};
162 public static final String[] DTYPE_CHAR_VARYING = {"CHAR", "VARYING"};
163 public static final String[] DTYPE_VARCHAR = {"VARCHAR"};
164
165 public static final String[] DTYPE_NATIONAL_CHARACTER = {"NATIONAL", "CHARACTER"};
166 public static final String[] DTYPE_NATIONAL_CHAR = {"NATIONAL", "CHAR"};
167 public static final String[] DTYPE_NATIONAL_CHARACTER_VARYING = {"NATIONAL", "CHARACTER", "VARYING"};
168 public static final String[] DTYPE_NATIONAL_CHAR_VARYING = {"NATIONAL", "CHAR", "VARYING"};
169 public static final String[] DTYPE_NCHAR_VARYING = {"NCHAR", "VARYING"};
170 public static final String[] DTYPE_NCHAR = {"NCHAR"};
171
172 public static final String[] DTYPE_BIT = {"BIT"};
173 public static final String[] DTYPE_BIT_VARYING = {"BIT", "VARYING"};
174
175 public static final String[] DTYPE_NUMERIC = {"NUMERIC"};
176 public static final String[] DTYPE_DEC = {"DEC"};
177 public static final String[] DTYPE_DECIMAL = {"DECIMAL"};
178 public static final String[] DTYPE_INTEGER = {"INTEGER"};
179 public static final String[] DTYPE_INT = {"INT"};
180 public static final String[] DTYPE_SMALLINT = {"SMALLINT"};
181
182 public static final String[] DTYPE_FLOAT = {"FLOAT"};
183 public static final String[] DTYPE_REAL = {"REAL"};
184 public static final String[] DTYPE_DOUBLE_PRECISION = {"DOUBLE", "PRECISION"};
185
186 public static final String[] DTYPE_DATE = {"DATE"};
187 public static final String[] DTYPE_TIME = {"TIME"};
188 public static final String[] DTYPE_TIMESTAMP = {"TIMESTAMP"};
189
190 public static final String[] DTYPE_INTERVAL = {"INTERVAL"};
191
192 public final static List<String> DATATYPE_START_WORDS = Arrays.asList(new String[] {"CHAR", "CHARACTER", "VARCHAR",
193 "NATIONAL", "NCHAR", "BIT", "NUMERIC", "DEC", "DECIMAL", "INT", "INTEGER", "SMALLINT", "FLOAT", "REAL", "DOUBLE",
194 "DATE", "TIME", "TIMESTAMP", "INTERVAL"});
195 }
196
197 @SuppressWarnings( "nls" )
198 public final static String[] SQL_92_RESERVED_WORDS = {"ABSOLUTE", "ACTION", "ADD", "ALL", "ALLOCATE", ALTER, "AND", "ANY",
199 "ARE", "AS", "ASC", "ASSERTION", "AT", "AUTHORIZATION", "AVG", "BEGIN", "BETWEEN", "BIT", "BIT_LENGTH", "BOTH", "BY",
200 "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CHAR", "CHARACTER", "CHAR_LENGTH", "CHARACTER_LENGTH", CHECK, "CLOSE",
201 "COALESCE", "COLLATE", "COLLATION", COLUMN, "COMMIT", "CONNECT", "CONNECTION", CONSTRAINT, "CONSTRAINTS", "CONTINUE",
202 "CONVERT", "CORRESPONDING", "COUNT", CREATE, "CROSS", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP",
203 "CURRENT_USER", "CURSOR", "DATE", "DAY", "DEALLOCATE", "DEC", "DECIMAL", DECLARE, "DEFAULT", "DEFERRABLE", "DEFERRED",
204 "DELETE", "DESC", "DESCRIBE", "DESCRIPTOR", "DIAGNOSTICS", "DISCONNECT", "DISTINCT", "DOMAIN", "DOUBLE", DROP, "ELSE",
205 "END", "END_EXEC", "ESCAPE", "EXCEPT", "EXCEPTION", "EXEC", "EXECUTE", "EXISTS", "EXTERNAL", "EXTRACT", "FALSE", "FETCH",
206 "FIRST", "FLOAT", "FOR", FOREIGN, "FOUND", "FROM", "FULL", "GET", "GLOBAL", "GO", "GOTO", GRANT, "GROUP", "HAVING",
207 "HOUR", "IDENTITY", "IMMEDIATE", "IN", "INDICATOR", "INITIALLY", "INNER", "INPUT", "INSENSITIVE", INSERT, "INT",
208 "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISOLATION", "JOIN", KEY, "LANGUAGE", "LAST", "LEADING", "LEFT",
209 "LEVEL", "LIKE", "LOCAL", "LOWER", "MATCH", "MAX", "MIN", "MINUTE", "MODULE", "MONTH", "NAMES", "NATIONAL", "NATURAL",
210 "NCHAR", "NEXT", "NO", "NOT", "NULL", "NULLIF", "NUMERIC", "OCTET_LENGTH", "OF", ON, "ONLY", "OPEN", "OPTION", "OR",
211 "ORDER", "OUTER", "OUTPUT", "OVERLAPS", "PAD", "PARTIAL", "POSITION", "PRECISION", "PREPARE", "PRESERVE", PRIMARY,
212 "PRIOR", "PRIVILEGES", "PROCEDURE", "PUBLIC", "READ", "REAL", "REFERENCES", "RELATIVE", "RESTRICT", "REVOKE", "RIGHT",
213 "ROLLBACK", "ROWS", SCHEMA, "SCROLL", "SECOND", "SECTION", "SELECT", "SESSION", "SESSION_USER", SET, "SIZE", "SMALLINT",
214 "SOME", "SPACE", "SQL", "SQLCODE", "SQLERROR", "SQLSTATE", "SUBSTRING", "SUM", "SYSTEM_USER", TABLE, "TEMPORARY", "THEN",
215 "TIME", "TIMESTAMP", "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TO", "TRAILING", "TRANSACTION", "TRANSLATE", "TRANSLATION",
216 "TRIM", "TRUE", "UNION", UNIQUE, "UNKNOWN", "UPDATE", "UPPER", "USAGE", "USER", "USING", "VALUE", "VALUES", "VARCHAR",
217 "VARYING", VIEW, "WHEN", "WHENEVER", "WHERE", "WITH", "WORK", "WRITE", "YEAR", "ZONE"};
218
219 interface Problems {
220 public static final int OK = 0;
221 public static final int WARNING = 1;
222 public static final int ERROR = 2;
223 }
224
225 interface AstNodeNames {
226 public static final String TABLE_DEFINITION = "TABLE_DEFINITION";
227 public static final String ALTER_TABLE_DEFINITION = "ALTER_TABLE_DEFINITION";
228 public static final String COLUMN_DEFINITION = "COLUMN_DEFINITION";
229 public static final String COLUMN_REFERENCE = "COLUMN_REFERENCE";
230 public static final String TABLE_CONSTRAINT = "TABLE_CONSTRAINT";
231
232 public static final String ADD_COLUMN_DEFINITION = "ADD_COLUMN_DEFINITION";
233 public static final String ADD_TABLE_CONSTRAINT = "ADD_TABLE_CONSTRAINT";
234 public static final String DROP_COLUMN_DEFINITION = "DROP_COLUMN_DEFINITION";
235 public static final String DROP_TABLE_CONSTRAINT = "DROP_TABLE_CONSTRAINT";
236 public static final String ALTER_COLUMN_DEFINITION = "ALTER_COLUMN_DEFINITION";
237
238 }
239 }