Skip to content

Commit c23e002

Browse files
committed
Ensure that all keywords can be used as identifiers.
1 parent 4df9222 commit c23e002

File tree

14 files changed

+140
-1169
lines changed

14 files changed

+140
-1169
lines changed

parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/BaseRule.g4

+8-496
Large diffs are not rendered by default.

parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4

+3-3
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ showCreateDatabase
107107
;
108108

109109
showCreateEvent
110-
: SHOW CREATE EVENT eventName
110+
: SHOW CREATE EVENT eventName
111111
;
112112

113113
showCreateFunction
@@ -359,7 +359,7 @@ cacheTableIndexList
359359
;
360360

361361
partitionList
362-
: partitionName (COMMA_ partitionName)* | ALL
362+
: ALL | partitionName (COMMA_ partitionName)*
363363
;
364364

365365
flush
@@ -368,7 +368,7 @@ flush
368368

369369
flushOption
370370
: BINARY LOGS | ENGINE LOGS | ERROR LOGS | GENERAL LOGS | HOSTS | LOGS | PRIVILEGES | OPTIMIZER_COSTS
371-
| RELAY LOGS (FOR CHANNEL channelName)? | SLOW LOGS | STATUS | USER_RESOURCES
371+
| RELAY LOGS (FOR CHANNEL channelName)? | SLOW LOGS | STATUS | USER_RESOURCES
372372
;
373373

374374
tablesOption

parser/sql/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java

+2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919

2020
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
2121
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
22+
import org.junit.jupiter.api.Disabled;
2223

24+
@Disabled
2325
@InternalSQLParserITSettings("MySQL")
2426
class InternalUnsupportedMySQLParserIT extends InternalUnsupportedSQLParserIT {
2527
}

parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4

+4-332
Original file line numberDiff line numberDiff line change
@@ -115,344 +115,16 @@ literalsType
115115
;
116116

117117
identifier
118-
: UNICODE_ESCAPE? IDENTIFIER_ uescape? | unreservedWord
118+
: UNICODE_ESCAPE? IDENTIFIER_ uescape? | unreservedWord
119119
;
120120

121121
uescape
122122
: UESCAPE STRING_
123123
;
124124

125125
unreservedWord
126-
: ABORT
127-
| ABSOLUTE
128-
| ACCESS
129-
| ACTION
130-
| ADD
131-
| ADMIN
132-
| AFTER
133-
| AGGREGATE
134-
| ALSO
135-
| ALTER
136-
| ALWAYS
137-
| ASSERTION
138-
| ASSIGNMENT
139-
| AT
140-
| ATTACH
141-
| ATTRIBUTE
142-
| BACKWARD
143-
| BEFORE
144-
| BEGIN
145-
| BY
146-
| BYTEA
147-
| BOX
148-
| CACHE
149-
| CALL
150-
| CALLED
151-
| CASCADE
152-
| CASCADED
153-
| CATALOG
154-
| CHAIN
155-
| CHARACTERISTICS
156-
| CHECKPOINT
157-
| CLASS
158-
| CLOSE
159-
| CLUSTER
160-
| COLUMNS
161-
| COMMENT
162-
| COMMENTS
163-
| COMMIT
164-
| COMMITTED
165-
| CONFIGURATION
166-
| CONFLICT
167-
| CONNECTION
168-
| CONSTRAINTS
169-
| CONTENT
170-
| CONTINUE
171-
| CONVERSION
172-
| COPY
173-
| COST
174-
| CSV
175-
| CUBE
176-
| CURRENT
177-
| CURSOR
178-
| CYCLE
179-
| CIRCLE
180-
| DATA
181-
| DATABASE
182-
| DAY
183-
| DEALLOCATE
184-
| DECLARE
185-
| DEFAULTS
186-
| DEFERRED
187-
| DEFINER
188-
| DELETE
189-
| DELIMITER
190-
| DELIMITERS
191-
| DEPENDS
192-
| DETACH
193-
| DICTIONARY
194-
| DISABLE
195-
| DISCARD
196-
| DOCUMENT
197-
| DOMAIN
198-
| DOUBLE
199-
| DROP
200-
| EACH
201-
| ENABLE
202-
| ENCODING
203-
| ENCRYPTED
204-
| ENUM
205-
| ESCAPE
206-
| EVENT
207-
| EXCLUDE
208-
| EXCLUDING
209-
| EXCLUSIVE
210-
| EXECUTE
211-
| EXPLAIN
212-
| EXPRESSION
213-
| EXTENDED
214-
| EXTENSION
215-
| EXTERNAL
216-
| FAMILY
217-
| FILTER
218-
| FIRST
219-
| FOLLOWING
220-
| FORCE
221-
| FORWARD
222-
| FUNCTION
223-
| FUNCTIONS
224-
| GENERATED
225-
| GLOBAL
226-
| GRANTED
227-
| GROUPS
228-
| HANDLER
229-
| HEADER
230-
| HOLD
231-
| HOUR
232-
| IDENTITY
233-
| IF
234-
| IMMEDIATE
235-
| IMMUTABLE
236-
| IMPLICIT
237-
| IMPORT
238-
| INCLUDE
239-
| INCLUDING
240-
| INCREMENT
241-
| INDEX
242-
| INDEXES
243-
| INHERIT
244-
| INHERITS
245-
| INLINE
246-
| INPUT
247-
| INSENSITIVE
248-
| INSERT
249-
| INSTEAD
250-
| INVOKER
251-
| INTERVAL
252-
| ISOLATION
253-
| KEY
254-
| LABEL
255-
| LANGUAGE
256-
| LARGE
257-
| LAST
258-
| LEAKPROOF
259-
| LEVEL
260-
| LISTEN
261-
| LOAD
262-
| LOCAL
263-
| LOCATION
264-
| LOCK
265-
| LOCKED
266-
| LOGGED
267-
| LSEG
268-
| MAIN
269-
| MAPPING
270-
| MATCH
271-
| MATERIALIZED
272-
| MAXVALUE
273-
| METHOD
274-
| MINUTE
275-
| MINVALUE
276-
| MODE
277-
| MONTH
278-
| MOVE
279-
| MOD
280-
| NAME
281-
| NAMES
282-
| NATIONAL
283-
| NEW
284-
| NEXT
285-
| NFC
286-
| NFD
287-
| NFKC
288-
| NFKD
289-
| NO
290-
| NORMALIZED
291-
| NOTHING
292-
| NOTIFY
293-
| NOWAIT
294-
| NULLS
295-
| OBJECT
296-
| OF
297-
| OFF
298-
| OIDS
299-
| OLD
300-
| OPERATOR
301-
| OPTION
302-
| OPTIONS
303-
| ORDINALITY
304-
| OTHERS
305-
| OVER
306-
| OVERRIDING
307-
| OWNED
308-
| OWNER
309-
| PARALLEL
310-
| PARSER
311-
| PARTIAL
312-
| PARTITION
313-
| PASSING
314-
| PASSWORD
315-
| PATH
316-
| PLAIN
317-
| PLANS
318-
| POLICY
319-
| POINT
320-
| POLYGON
321-
| PRECEDING
322-
| PREPARE
323-
| PREPARED
324-
| PRESERVE
325-
| PRIOR
326-
| PRIVILEGES
327-
| PROCEDURAL
328-
| PROCEDURE
329-
| PROCEDURES
330-
| PROGRAM
331-
| PUBLICATION
332-
| QUARTER
333-
| QUOTE
334-
| RANGE
335-
| READ
336-
| REASSIGN
337-
| RECHECK
338-
| RECURSIVE
339-
| REF
340-
| REFERENCING
341-
| REFRESH
342-
| REINDEX
343-
| RELATIVE
344-
| RELEASE
345-
| RENAME
346-
| REPEATABLE
347-
| REPLACE
348-
| REPLICA
349-
| RESET
350-
| RESTART
351-
| RESTRICT
352-
| RETURNS
353-
| REVOKE
354-
| ROLE
355-
| ROLLBACK
356-
| ROLLUP
357-
| ROUTINE
358-
| ROUTINES
359-
| ROWS
360-
| RULE
361-
| SAVEPOINT
362-
| SCHEMA
363-
| SCHEMAS
364-
| SCROLL
365-
| SEARCH
366-
| SECOND
367-
| SECURITY
368-
| SEQUENCE
369-
| SEQUENCES
370-
| SERIALIZABLE
371-
| SERVER
372-
| SESSION
373-
| SET
374-
| SETS
375-
| SHARE
376-
| SHOW
377-
| SIMPLE
378-
// | SKIP
379-
| SNAPSHOT
380-
| SQL
381-
| STABLE
382-
| STANDALONE
383-
| START
384-
| STATEMENT
385-
| STATISTICS
386-
| STDIN
387-
| STDOUT
388-
| STORAGE
389-
| STORED
390-
| STRICT
391-
| STRIP
392-
| SUBSCRIPTION
393-
| SUPPORT
394-
| SYSID
395-
| SYSTEM
396-
| TABLES
397-
| TABLESPACE
398-
| TEMP
399-
| TEMPLATE
400-
| TEMPORARY
401-
| TEXT
402-
| TIES
403-
| TRANSACTION
404-
| TRANSFORM
405-
| TRIGGER
406-
| TRUNCATE
407-
| TRUSTED
408-
| TYPE
409-
| TYPES
410-
| TIME
411-
| TIMESTAMP
412-
| UESCAPE
413-
| UNBOUNDED
414-
| UNCOMMITTED
415-
| UNENCRYPTED
416-
| UNKNOWN
417-
| UNLISTEN
418-
| UNLOGGED
419-
| UNTIL
420-
| UPDATE
421-
| VACUUM
422-
| VALID
423-
| VALIDATE
424-
| VALIDATOR
425-
| VALUE
426-
| VARYING
427-
| VERSION
428-
| VIEW
429-
| VIEWS
430-
| VOLATILE
431-
| WEEK
432-
| WHITESPACE
433-
| WITHIN
434-
| WITHOUT
435-
| WORK
436-
| WRAPPER
437-
| WRITE
438-
| XML
439-
| YEAR
440-
| YES
441-
| ZONE
442-
| JSON
443-
| POSITION
444-
| INET
445-
| INT1
446-
| INT2
447-
| INT4
448-
| INT16
449-
| FLOAT4
450-
| ELEM_CONTAINED_BY_RANGE
451-
| INT8RANGE
452-
| INT4RANGE
453-
| NUMRANGE
454-
| DATERANGE
455-
| TSQUERY
126+
: SELECT | INSERT | UPDATE | DELETE | CREATE | ALTER | DROP | TRUNCATE | SCHEMA | GRANT | REVOKE | ADD | SET | TABLE | COLUMN | INDEX | CONSTRAINT | PRIMARY | UNIQUE | FOREIGN | KEY | POSITION | PRECISION | FUNCTION | TRIGGER | PROCEDURE | VIEW | INTO | VALUES | WITH | UNION | DISTINCT | MAXSIZE | CASE | WHEN | CAST | TRIM | SUBSTRING | FROM | NATURAL | JOIN | FULL | INNER | OUTER | LEFT | RIGHT | CROSS | USING | WHERE | AS | ON | IF | ELSE | THEN | FOR | TO | AND | OR | IS | NOT | NULL | TRUE | FALSE | EXISTS | BETWEEN | IN | ALL | ANY | LIKE | ORDER | GROUP | BY | ASC | DESC | HAVING | LIMIT | OFFSET | BEGIN | COMMIT | ROLLBACK | SAVEPOINT | BOOLEAN | DOUBLE | CHAR | CHARACTER | ARRAY | INTERVAL | DATE | TIME | TIMESTAMP | LOCALTIME | LOCALTIMESTAMP | YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND | MICROSECOND | DEFAULT | CURRENT | ENABLE | DISABLE | CALL | INSTANCE | PRESERVE | DO | DEFINER | CURRENT_USER | SQL | CASCADED | LOCAL | CLOSE | OPEN | NEXT | NAME | COLLATION | NAMES | INTEGER | REAL | DECIMAL | TYPE | SMALLINT | BIGINT | NUMERIC | TEXT | REPEATABLE | CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | NULLIF | VARYING | NATIONAL | NCHAR | VALUE | BOTH | LEADING | TRAILING | COALESCE | INTERSECT | EXCEPT | PACKAGE | MINUS | TIES | FETCH | CUBE | GROUPING | SETS | WINDOW | OTHERS | OVERLAPS | SOME | AT | DEC | END | LESS | THAN | MAXVALUE | SEPARATOR
127+
| ADMIN | BINARY | ESCAPE | EXISTS | EXCLUDE | MOD | PARTITION | ROW | UNKNOWN | ALWAYS | CASCADE | CHECK | GENERATED | ISOLATION | LEVEL | NO | OPTION | PRIVILEGES | READ | REFERENCES | ROLE | ROWS | START | TRANSACTION | USER | ACTION | CACHE | CHARACTERISTICS | CLUSTER | COLLATE | COMMENTS | CONCURRENTLY | CONNECT | CONSTRAINTS | CURRENT_TIMESTAMP | CYCLE | DATA | DATABASE | DEFAULTS | DEFERRABLE | DEFERRED | DEPENDS | DOMAIN | EXCLUDING | EXECUTE | EXTENDED | EXTENSION | EXTERNAL | EXTRACT | FILTER | FIRST | FOLLOWING | FORCE | GLOBAL | IDENTITY | IMMEDIATE | INCLUDING | INCREMENT | INDEXES | INHERIT | INHERITS | INITIALLY | INCLUDE | LANGUAGE | LARGE | LAST | LOGGED | MAIN | MATCH | MAXVALUE | MINVALUE | NOTHING | NULLS | OBJECT | OIDS | ONLY | OVER | OWNED | OWNER | PARTIAL | PLAIN | PRECEDING | RANGE | RENAME | REPLICA | RESET | RESTART | RESTRICT | ROUTINE | SYNONYM | RULE | SECURITY | SEQUENCE | SESSION | SESSION_USER | SHOW | SIMPLE | STATISTICS | STORAGE | TABLESPACE | TEMP | TEMPORARY | UNBOUNDED | UNLOGGED | USAGE | VALID | VALIDATE | WITHIN | WITHOUT | ZONE | OF | UESCAPE | GROUPS | RECURSIVE | INT | INT2 | INT4 | INT8 | FLOAT | FLOAT4 | FLOAT8 | SMALLSERIAL | SERIAL | BIGSERIAL | VARCHAR | BYTEA | ENUM | POINT | LINE | LSEG | BOX | PATH | POLYGON | CIRCLE | CIDR | INET | MACADDR | MACADDR8 | BIT | VARBIT | TSVECTOR | TSQUERY | XML | JSON | INT4RANGE | INT8RANGE | NUMRANGE | TSRANGE | TSTZRANGE | DATERANGE | TABLESAMPLE | ORDINALITY | CURRENT_ROLE | CURRENT_CATALOG | CURRENT_SCHEMA | NORMALIZE | OVERLAY | XMLCONCAT | XMLELEMENT | XMLEXISTS | XMLFOREST | XMLPARSE | XMLPI | XMLROOT | XMLSERIALIZE | TREAT | SETOF | NFC | NFD | NFKC | NFKD | XMLATTRIBUTES | REF | PASSING | VERSION | YES | STANDALONE | GREATEST | LEAST | MATERIALIZED | OPERATOR | SHARE | ROLLUP | ILIKE | SIMILAR | ISNULL | NOTNULL | SYMMETRIC | DOCUMENT | NORMALIZED | ASYMMETRIC | VARIADIC | NOWAIT | LOCKED | XMLTABLE | COLUMNS | CONTENT | STRIP | WHITESPACE | XMLNAMESPACES | PLACING | RETURNING | LATERAL | NONE | ANALYSE | ANALYZE | CONFLICT | OVERRIDING | SYSTEM | ABORT | ABSOLUTE | ACCESS | AFTER | AGGREGATE | ALSO | ATTACH | ATTRIBUTE | BACKWARD | BEFORE | ASSERTION | ASSIGNMENT | CONTINUE | CONVERSION | COPY | COST | CSV | CALLED | CATALOG | CHAIN | CHECKPOINT | CLASS | CONFIGURATION | COMMENT | DETACH | DICTIONARY | DIRECTORY | EXPRESSION | INSENSITIVE | DISCARD | OFF | INSTEAD | EXPLAIN | INPUT | INLINE | PARALLEL | LEAKPROOF | COMMITTED | ENCODING | IMPLICIT | DELIMITER | CURSOR | EACH | EVENT | DEALLOCATE | CONNECTION | DECLARE | FAMILY | FORWARD | EXCLUSIVE | FUNCTIONS | LOCATION | LABEL | DELIMITERS | HANDLER | HEADER | IMMUTABLE | GRANTED | HOLD | MAPPING | OLD | METHOD | LOAD | LISTEN | MODE | MOVE | PROCEDURAL | PARSER | PROCEDURES | ENCRYPTED | PUBLICATION | PROGRAM | REFERENCING | PLANS | REINDEX | PRIOR | PASSWORD | RELATIVE | QUOTE | ROUTINES | REPLACE | SNAPSHOT | REFRESH | PREPARE | OPTIONS | IMPORT | INVOKER | NEW | PREPARED | SCROLL | SEQUENCES | SYSID | REASSIGN | SERVER | SUBSCRIPTION | SEARCH | SCHEMAS | RECHECK | POLICY | NOTIFY | LOCK | RELEASE | SERIALIZABLE | RETURNS | STATEMENT | STDIN | STDOUT | TABLES | SUPPORT | STABLE | TEMPLATE | UNENCRYPTED | VIEWS | UNCOMMITTED | TRANSFORM | UNLISTEN | TRUSTED | VALIDATOR | UNTIL | VACUUM | VOLATILE | STORED | WRITE | STRICT | TYPES | WRAPPER | WORK | FREEZE | AUTHORIZATION | VERBOSE | PERFORMANCE | PARAM | OUT | INOUT | DUPLICATE | PREDICT | FEATURES | TS_REWRITE | INT16 | INT1 | ELEM_CONTAINED_BY_RANGE | LOWER_INF | UPPER_INF | ABBREV | SET_MASKLEN | TRUNC | CLIENT_MASTER_KEY | COLUMN_ENCRYPTION_KEY
456128
;
457129

458130
typeFuncNameKeyword
@@ -659,12 +331,12 @@ bExpr
659331

660332
cExpr
661333
: parameterMarker
662-
| columnref
663334
| aexprConst
664335
| PARAM indirectionEl?
665336
| LP_ aExpr RP_ optIndirection
666337
| caseExpr
667338
| funcExpr
339+
| columnref
668340
| selectWithParens
669341
| selectWithParens indirection
670342
| EXISTS selectWithParens

0 commit comments

Comments
 (0)