Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions parser/testdata/parser/mysql_unsupported_account/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
CREATE USER u IDENTIFIED BY RANDOM PASSWORD
-- case
CREATE USER u IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD
-- case
ALTER USER u IDENTIFIED BY RANDOM PASSWORD
-- case
ALTER USER u IDENTIFIED BY RANDOM PASSWORD RETAIN CURRENT PASSWORD
-- case
CREATE USER u IDENTIFIED BY 'p1' AND IDENTIFIED WITH authentication_ldap_simple
-- case
CREATE USER u IDENTIFIED BY 'p1' AND IDENTIFIED WITH authentication_fido AND IDENTIFIED WITH authentication_ldap_simple BY 'p3'
-- case
ALTER USER u ADD 2 FACTOR IDENTIFIED WITH authentication_ldap_simple
-- case
ALTER USER u MODIFY 2 FACTOR IDENTIFIED WITH authentication_ldap_simple BY 'p'
-- case
ALTER USER u DROP 2 FACTOR
-- case
ALTER USER u 2 FACTOR INITIATE REGISTRATION
-- case
ALTER USER u 2 FACTOR FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'blob'
-- case
ALTER USER u 2 FACTOR UNREGISTER
-- case
CREATE USER u DEFAULT ROLE r1, r2
-- case
CREATE USER u PASSWORD REQUIRE CURRENT
-- case
CREATE USER u PASSWORD REQUIRE CURRENT OPTIONAL
-- case
ALTER USER u IDENTIFIED BY 'p' REPLACE 'old'
-- case
ALTER USER u IDENTIFIED BY 'p' RETAIN CURRENT PASSWORD
-- case
ALTER USER u IDENTIFIED BY 'p' REPLACE 'old' RETAIN CURRENT PASSWORD
-- case
ALTER USER u DISCARD OLD PASSWORD
-- case
ALTER USER u DEFAULT ROLE ALL
-- case
ALTER USER u DEFAULT ROLE NONE
-- case
ALTER USER u DEFAULT ROLE r1, r2
-- case
GRANT r1 TO u WITH ADMIN OPTION
-- case
GRANT SELECT ON *.* TO u AS root@localhost
-- case
GRANT SELECT ON *.* TO u AS root@localhost WITH ROLE DEFAULT
-- case
GRANT SELECT ON *.* TO u AS root@localhost WITH ROLE NONE
-- case
GRANT SELECT ON *.* TO u AS root@localhost WITH ROLE ALL
-- case
GRANT SELECT ON *.* TO u AS root@localhost WITH ROLE ALL EXCEPT r1, r2
-- case
GRANT SELECT ON *.* TO u AS root@localhost WITH ROLE r1, r2
-- case
REVOKE IF EXISTS SELECT ON db.t FROM u
-- case
REVOKE SELECT ON db.t FROM u IGNORE UNKNOWN USER
-- case
REVOKE IF EXISTS SELECT ON db.t FROM u IGNORE UNKNOWN USER
-- case
REVOKE PROXY ON pu FROM u
-- case
SET PASSWORD = 'p' REPLACE 'old'
-- case
SET PASSWORD FOR u = 'p' RETAIN CURRENT PASSWORD
-- case
SET PASSWORD TO RANDOM
-- case
SET PASSWORD FOR u TO RANDOM
-- case
SET PASSWORD FOR u TO RANDOM REPLACE 'old'
75 changes: 75 additions & 0 deletions parser/testdata/parser/mysql_unsupported_account/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
-- error: line 1 column 34 near "RANDOM PASSWORD"
-- case
-- error: line 1 column 61 near "RANDOM PASSWORD"
-- case
-- error: line 1 column 33 near "RANDOM PASSWORD"
-- case
-- error: line 1 column 33 near "RANDOM PASSWORD RETAIN CURRENT PASSWORD"
-- case
-- error: line 1 column 36 near "AND IDENTIFIED WITH authentication_ldap_simple"
-- case
-- error: line 1 column 36 near "AND IDENTIFIED WITH authentication_fido AND IDENTIFIED WITH authentication_ldap_simple BY 'p3'"
-- case
-- error: line 1 column 16 near "ADD 2 FACTOR IDENTIFIED WITH authentication_ldap_simple"
-- case
-- error: line 1 column 19 near "MODIFY 2 FACTOR IDENTIFIED WITH authentication_ldap_simple BY 'p'"
-- case
-- error: line 1 column 17 near "DROP 2 FACTOR"
-- case
-- error: line 1 column 14 near "2 FACTOR INITIATE REGISTRATION"
-- case
-- error: line 1 column 14 near "2 FACTOR FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'blob'"
-- case
-- error: line 1 column 14 near "2 FACTOR UNREGISTER"
-- case
-- error: line 1 column 21 near "DEFAULT ROLE r1, r2"
-- case
-- error: line 1 column 38 near ""
-- case
-- error: line 1 column 47 near "OPTIONAL"
-- case
-- error: line 1 column 38 near "REPLACE 'old'"
-- case
-- error: line 1 column 37 near "RETAIN CURRENT PASSWORD"
-- case
-- error: line 1 column 38 near "REPLACE 'old' RETAIN CURRENT PASSWORD"
-- case
-- error: line 1 column 20 near "DISCARD OLD PASSWORD"
-- case
-- error: line 1 column 20 near "DEFAULT ROLE ALL"
-- case
-- error: line 1 column 20 near "DEFAULT ROLE NONE"
-- case
-- error: line 1 column 20 near "DEFAULT ROLE r1, r2"
-- case
-- error: line 1 column 18 near "WITH ADMIN OPTION"
-- case
-- error: line 1 column 27 near "AS root@localhost"
-- case
-- error: line 1 column 27 near "AS root@localhost WITH ROLE DEFAULT"
-- case
-- error: line 1 column 27 near "AS root@localhost WITH ROLE NONE"
-- case
-- error: line 1 column 27 near "AS root@localhost WITH ROLE ALL"
-- case
-- error: line 1 column 27 near "AS root@localhost WITH ROLE ALL EXCEPT r1, r2"
-- case
-- error: line 1 column 27 near "AS root@localhost WITH ROLE r1, r2"
-- case
-- error: line 1 column 9 near "IF EXISTS SELECT ON db.t FROM u"
-- case
-- error: line 1 column 35 near "IGNORE UNKNOWN USER"
-- case
-- error: line 1 column 9 near "IF EXISTS SELECT ON db.t FROM u IGNORE UNKNOWN USER"
-- case
-- error: line 1 column 12 near "PROXY ON pu FROM u"
-- case
-- error: line 1 column 26 near "REPLACE 'old'"
-- case
-- error: line 1 column 31 near "RETAIN CURRENT PASSWORD"
-- case
-- error: line 1 column 15 near "TO RANDOM"
-- case
-- error: line 1 column 21 near "TO RANDOM"
-- case
-- error: line 1 column 21 near "TO RANDOM REPLACE 'old'"
35 changes: 35 additions & 0 deletions parser/testdata/parser/mysql_unsupported_admin/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
ANALYZE TABLE t UPDATE HISTOGRAM ON c1 USING DATA 'json'
-- case
ANALYZE TABLE t UPDATE HISTOGRAM ON c1 AUTO UPDATE
-- case
ANALYZE TABLE t UPDATE HISTOGRAM ON c1 MANUAL UPDATE
-- case
ANALYZE TABLE t UPDATE HISTOGRAM ON c1 WITH 20 BUCKETS AUTO UPDATE
-- case
INSTALL COMPONENT 'file://c' SET PERSIST v1 = 1
-- case
DROP RESOURCE GROUP rg FORCE
-- case
SET RESOURCE GROUP rg FOR 4
-- case
SET RESOURCE GROUP rg FOR 4, 5, 6
-- case
FLUSH OPTIMIZER_COSTS
-- case
FLUSH RELAY LOGS
-- case
FLUSH RELAY LOGS FOR CHANNEL 'ch'
-- case
FLUSH USER_RESOURCES
-- case
FLUSH TABLES t1, t2 FOR EXPORT
-- case
FLUSH BINARY LOGS, ERROR LOGS, STATUS
-- case
SET PERSIST max_connections = 200
-- case
SET PERSIST_ONLY max_connections = 250
-- case
SET PERSIST max_connections = 200, long_query_time = 0.5
-- case
SET GLOBAL max_connections = 200, PERSIST long_query_time = 1
35 changes: 35 additions & 0 deletions parser/testdata/parser/mysql_unsupported_admin/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
-- error: line 1 column 44 near "USING DATA 'json'"
-- case
-- error: line 1 column 43 near "AUTO UPDATE"
-- case
-- error: line 1 column 45 near "MANUAL UPDATE"
-- case
-- error: line 1 column 59 near "AUTO UPDATE"
-- case
-- error: line 1 column 43 near "v1 = 1"
-- case
-- error: line 1 column 28 near "FORCE"
-- case
-- error: line 1 column 25 near "FOR 4"
-- case
-- error: line 1 column 25 near "FOR 4, 5, 6"
-- case
-- error: line 1 column 21 near "OPTIMIZER_COSTS"
-- case
-- error: line 1 column 11 near "RELAY LOGS"
-- case
-- error: line 1 column 11 near "RELAY LOGS FOR CHANNEL 'ch'"
-- case
-- error: line 1 column 20 near "USER_RESOURCES"
-- case
-- error: line 1 column 23 near "FOR EXPORT"
-- case
-- error: line 1 column 18 near ", ERROR LOGS, STATUS"
-- case
-- error: line 1 column 27 near "max_connections = 200"
-- case
-- error: line 1 column 32 near "max_connections = 250"
-- case
-- error: line 1 column 27 near "max_connections = 200, long_query_time = 0.5"
-- case
-- error: line 1 column 57 near "long_query_time = 1"
9 changes: 9 additions & 0 deletions parser/testdata/parser/mysql_unsupported_compound/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CREATE PROCEDURE p () BEGIN DECLARE e CONDITION FOR SQLSTATE '23000'; DECLARE EXIT HANDLER FOR e ROLLBACK; END
-- case
CREATE PROCEDURE p () BEGIN DECLARE e CONDITION FOR 1051; END
-- case
CREATE PROCEDURE p () LOOP SET @x = 1; END LOOP
-- case
CREATE PROCEDURE p () BEGIN LOOP SET @x = 1; END LOOP; END
-- case
CREATE PROCEDURE p () lbl: LOOP LEAVE lbl; END LOOP lbl
9 changes: 9 additions & 0 deletions parser/testdata/parser/mysql_unsupported_compound/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-- error: line 1 column 47 near "CONDITION FOR SQLSTATE '23000'; DECLARE EXIT HANDLER FOR e ROLLBACK; END"
-- case
-- error: line 1 column 47 near "CONDITION FOR 1051; END"
-- case
-- error: line 1 column 26 near "LOOP SET @x = 1; END LOOP"
-- case
-- error: line 1 column 32 near "LOOP SET @x = 1; END LOOP; END"
-- case
-- error: line 1 column 31 near "LOOP LEAVE lbl; END LOOP lbl"
13 changes: 13 additions & 0 deletions parser/testdata/parser/mysql_unsupported_ddl/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
CREATE TABLE t (a INT) AUTOEXTEND_SIZE = 4194304
-- case
CREATE TABLE t (a INT) START TRANSACTION
-- case
CREATE INDEX i1 ON t (a) ENGINE_ATTRIBUTE = '{}'
-- case
ALTER DATABASE d READ ONLY = 1
-- case
ALTER DATABASE d READ ONLY = DEFAULT
-- case
CREATE VIEW v AS SELECT 1 WITH CHECK OPTION
-- case
ALTER VIEW v AS SELECT 1 WITH CHECK OPTION
13 changes: 13 additions & 0 deletions parser/testdata/parser/mysql_unsupported_ddl/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
-- error: line 1 column 48 near "4194304"
-- case
-- error: line 1 column 28 near "START TRANSACTION"
-- case
-- error: line 1 column 41 near "ENGINE_ATTRIBUTE = '{}'"
-- case
-- error: line 1 column 21 near "READ ONLY = 1"
-- case
-- error: line 1 column 21 near "READ ONLY = DEFAULT"
-- case
-- error: line 1 column 36 near "CHECK OPTION"
-- case
-- error: line 1 column 35 near "CHECK OPTION"
15 changes: 15 additions & 0 deletions parser/testdata/parser/mysql_unsupported_dml/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
SELECT a INTO OUTFILE '/tmp/f' CHARACTER SET utf8mb4 FROM t
-- case
SELECT a FROM t INTO OUTFILE '/tmp/f' CHARACTER SET utf8mb4 FIELDS TERMINATED BY ','
-- case
SELECT * FROM t1, t2 FOR SHARE OF t1 NOWAIT FOR UPDATE OF t2 SKIP LOCKED
-- case
SELECT * FROM t INTO @a FOR UPDATE
-- case
SELECT * FROM (VALUES ROW(1, 2), ROW(3, 4)) AS v (c1, c2)
-- case
LOAD DATA CONCURRENT INFILE '/tmp/f' IGNORE INTO TABLE t
-- case
LOAD DATA INFILE '/tmp/f' INTO TABLE t PARTITION (p0) CHARACTER SET utf8mb4
-- case
LOAD DATA INFILE '/tmp/f' INTO TABLE t COLUMNS TERMINATED BY ',' IGNORE 2 ROWS
15 changes: 15 additions & 0 deletions parser/testdata/parser/mysql_unsupported_dml/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
-- error: line 1 column 40 near "CHARACTER SET utf8mb4 FROM t"
-- case
-- error: line 1 column 47 near "CHARACTER SET utf8mb4 FIELDS TERMINATED BY ','"
-- case
-- error: line 1 column 47 near "FOR UPDATE OF t2 SKIP LOCKED"
-- case
-- error: line 1 column 27 near "FOR UPDATE"
-- case
-- error: line 1 column 50 near "(c1, c2)"
-- case
-- error: line 1 column 20 near "CONCURRENT INFILE '/tmp/f' IGNORE INTO TABLE t"
-- case
-- error: line 1 column 48 near "PARTITION (p0) CHARACTER SET utf8mb4"
-- case
-- error: line 1 column 78 near "ROWS"
21 changes: 21 additions & 0 deletions parser/testdata/parser/mysql_unsupported_functions/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
SELECT CAST('a' AS NCHAR(5))
-- case
SELECT CAST('a' AS NCHAR)
-- case
SELECT CAST(TIMESTAMP'2024-01-01 12:00:00' AT TIME ZONE 'UTC' AS DATETIME)
-- case
SELECT CAST(TIMESTAMP'2024-01-01 12:00:00' AT TIME ZONE '+00:00' AS DATETIME(3))
-- case
SELECT * FROM JSON_TABLE('[{"a":1}]', '$[*]' COLUMNS (a INT PATH '$.a')) AS jt
-- case
SELECT * FROM JSON_TABLE('[]', '$[*]' COLUMNS (ord FOR ORDINALITY, x VARCHAR(10) PATH '$.x' DEFAULT '"d"' ON EMPTY NULL ON ERROR, y INT EXISTS PATH '$.y', NESTED PATH '$.z[*]' COLUMNS (z INT PATH '$'))) AS jt
-- case
SELECT t.id, jt.x FROM t, JSON_TABLE(t.j, '$[*]' COLUMNS (x VARCHAR(10) PATH '$.x' ERROR ON EMPTY)) AS jt
-- case
SELECT JSON_VALUE('{"a":42}', '$.a' RETURNING UNSIGNED)
-- case
SELECT JSON_VALUE('{"p":12.5}', '$.d' RETURNING DECIMAL(5,2) DEFAULT 0 ON EMPTY DEFAULT 99 ON ERROR)
-- case
SELECT JSON_VALUE('{}', '$.x' RETURNING CHAR(8) NULL ON EMPTY ERROR ON ERROR)
-- case
SELECT 'a' SOUNDS LIKE 'b'
21 changes: 21 additions & 0 deletions parser/testdata/parser/mysql_unsupported_functions/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- error: line 1 column 24 near "NCHAR(5))"
-- case
-- error: line 1 column 24 near "NCHAR)"
-- case
-- error: line 1 column 45 near "AT TIME ZONE 'UTC' AS DATETIME)"
-- case
-- error: line 1 column 45 near "AT TIME ZONE '+00:00' AS DATETIME(3))"
-- case
-- error: line 1 column 25 near "('[{"a":1}]', '$[*]' COLUMNS (a INT PATH '$.a')) AS jt"
-- case
-- error: line 1 column 25 near "('[]', '$[*]' COLUMNS (ord FOR ORDINALITY, x VARCHAR(10) PATH '$.x' DEFAULT '"d"' ON EMPTY NULL ON ERROR, y INT EXISTS PATH '$.y', NESTED PATH '$.z[*]' COLUMNS (z INT PATH '$'))) AS jt"
-- case
-- error: line 1 column 37 near "(t.j, '$[*]' COLUMNS (x VARCHAR(10) PATH '$.x' ERROR ON EMPTY)) AS jt"
-- case
-- error: line 1 column 45 near "RETURNING UNSIGNED)"
-- case
-- error: line 1 column 47 near "RETURNING DECIMAL(5,2) DEFAULT 0 ON EMPTY DEFAULT 99 ON ERROR)"
-- case
-- error: line 1 column 39 near "RETURNING CHAR(8) NULL ON EMPTY ERROR ON ERROR)"
-- case
-- error: line 1 column 22 near "LIKE 'b'"
21 changes: 21 additions & 0 deletions parser/testdata/parser/mysql_unsupported_replication/input.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CHANGE REPLICATION SOURCE TO IGNORE_SERVER_IDS = (1, 2)
-- case
CHANGE REPLICATION SOURCE TO IGNORE_SERVER_IDS = ()
-- case
CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = 'u'@'h'
-- case
CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = NULL
-- case
CHANGE REPLICATION SOURCE TO REQUIRE_TABLE_PRIMARY_KEY_CHECK = ON
-- case
CHANGE REPLICATION SOURCE TO REQUIRE_TABLE_PRIMARY_KEY_CHECK = OFF
-- case
CHANGE REPLICATION SOURCE TO REQUIRE_TABLE_PRIMARY_KEY_CHECK = STREAM
-- case
CHANGE REPLICATION SOURCE TO REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE
-- case
CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = OFF
-- case
CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL
-- case
RESET BINARY LOGS AND GTIDS TO 100
21 changes: 21 additions & 0 deletions parser/testdata/parser/mysql_unsupported_replication/output.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- error: line 1 column 50 near "(1, 2)"
-- case
-- error: line 1 column 50 near "()"
-- case
-- error: line 1 column 60 near "@'h'"
-- case
-- error: line 1 column 57 near "NULL"
-- case
-- error: line 1 column 65 near "ON"
-- case
-- error: line 1 column 66 near "OFF"
-- case
-- error: line 1 column 69 near "STREAM"
-- case
-- error: line 1 column 71 near "GENERATE"
-- case
-- error: line 1 column 73 near "OFF"
-- case
-- error: line 1 column 75 near "LOCAL"
-- case
-- error: line 1 column 30 near "TO 100"
Loading
Loading