Fix/split listener (#228)

* feat: improve FlinkSqlSplitListener

* feat: improve ImpalaSqlSplitListener

* feat: improve MysqlSplitListener

* fix: correct PgSqlSplitListener

* feat: improve TrinoSqlSplitListener

* test: add split listener unit test

* chore: ignore iml file

* feat: add pgsql missing rules

* test: fix pgsql unit tests
This commit is contained in:
Hayden
2023-12-08 18:33:16 +08:00
committed by GitHub
parent 8c594cf0f2
commit 23f5aac113
44 changed files with 38405 additions and 38236 deletions

View File

@ -244,9 +244,9 @@ CREATE DATABASE name1
CREATE DATABASE name2;
-- CREATE DOMAIN
CREATE DOMAIN name AS data_type
COLLATE collation
DEFAULT expression
CREATE DOMAIN domain_name AS data_type
COLLATE col
DEFAULT expr
CONSTRAINT constraint_name NOT NULL
NULL
CHECK(
@ -389,7 +389,7 @@ CREATE POLICY name ON table_name;
CREATE OR REPLACE PROCEDURE
name ( IN argname int DEFAULT default_expr)
LANGUAGE lang_name
TRANSFORM { FOR TYPE type_name }
TRANSFORM FOR TYPE type_name
EXTERNAL SECURITY INVOKER
EXTERNAL SECURITY DEFINER
SET configuration_parameter FROM CURRENT
@ -399,7 +399,7 @@ CREATE OR REPLACE PROCEDURE
-- CREATE PUBLICATION
CREATE PUBLICATION name
FOR ALL TABLES, FOR publication_object
FOR ALL TABLES
WITH ( publication_parameter = value);
CREATE PUBLICATION name;

View File

@ -6,8 +6,11 @@ ABORT AND NO CHAIN;
-- ANALYZE
ANALYZE VERBOSE table_name ( column_name, column_name2);
ANALYZE VERBOSE;
ANALYZE SKIP_LOCKED true;
ANALYZE BUFFER_USAGE_LIMIT 4;
ANALYZE (VERBOSE false);
ANALYZE (SKIP_LOCKED true);
ANALYZE (BUFFER_USAGE_LIMIT 4);
ANALYZE (SKIP_LOCKED false, SKIP_LOCKED false, BUFFER_USAGE_LIMIT '4KB');
ANALYZE (SKIP_LOCKED false, SKIP_LOCKED false, BUFFER_USAGE_LIMIT '4KB') table_name ( column_name, column_name2);
ANALYZE;
-- BEGIN
@ -59,7 +62,7 @@ COMMENT ON OPERATOR CLASS object_name USING index_method IS 'text';
COMMENT ON OPERATOR FAMILY object_name USING index_method IS 'text';
COMMENT ON POLICY policy_name ON table_name IS 'text';
COMMENT ON PROCEDURAL LANGUAGE object_name IS 'text';
COMMENT ON PROCEDURE procedure_name IS 'text';;
COMMENT ON PROCEDURE procedure_name IS 'text';
COMMENT ON PUBLICATION object_name IS 'text';
COMMENT ON ROLE object_name IS 'text';
COMMENT ON ROUTINE routine_name IS 'text';
@ -120,8 +123,8 @@ DISCARD ALL;
DISCARD TEMP;
-- DO
DO LANGUAGE lang_name '$$DECLARE' r record;
DO '$$DECLARE' r record;
DO LANGUAGE lang_name '$$DECLARE';
DO '$$DECLARE';
-- END
END TRANSACTION;
@ -201,10 +204,10 @@ REASSIGN OWNED BY old_role TO new_role;
REFRESH MATERIALIZED VIEW name WITH NO DATA;
-- REINDEX
REINDEX DATABASE CONCURRENTLY name FORCE;
REINDEX TABLE name;
REINDEX INDEX name;
REINDEX SYSTEM name;
REINDEX DATABASE CONCURRENTLY dbname;
REINDEX TABLE tbname;
REINDEX INDEX indexname;
REINDEX SYSTEM sysname;
-- RELEASE SAVEPOINT
RELEASE SAVEPOINT savepoint_name;
@ -313,7 +316,6 @@ ANALYZE;
VALUES (1, '3'), (3, 'sdsd')
ORDER BY sort_expression ASC
LIMIT 20
OFFSET 324 ROW
FETCH NEXT 343 ROWS ONLY ;
OFFSET 324 ROWS;
VALUES (1, '3'), (3, 'sdsd');

View File

@ -1,25 +1,24 @@
-- SELECT
WITH RECURSIVE query_name (id) AS (SELECT id FROM table_expression)
SELECT ALL ON (col1,col2) random() AS name1 FROM table_expression
SELECT DISTINCT ON (col1,col2) random() AS name1 FROM table_expression
WHERE name1=name1
GROUP BY DISTINCT id
HAVING sum(len) < interval '5 hours'
WINDOW w AS (PARTITION BY depname ORDER BY salary DESC)
UNION ALL (SELECT * FROM others)
ORDER BY salary DESC
LIMIT ALL
OFFSET start ROWS
FETCH NEXT ROWS ONLY
OFFSET start ROWS
FOR UPDATE OF table_name, table_name2 NOWAIT;
SELECT;
SELECT * FROM db.tbs GROUP BY (col1 > 3, col2 < 8) ORDER BY col3 > 9;
WITH query_name (id) AS (SELECT id FROM table_expression) SELECT DISTINCT random() AS name1 FROM table_expression WHERE name1=name1 GROUP BY id HAVING sum(len) < interval '5 hours' WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) INTERSECT DISTINCT (SELECT * FROM others) ORDER BY salary ASC LIMIT ALL OFFSET start FETCH NEXT ROW ONLY FOR NO KEY UPDATE;
WITH query_name (id) AS (SELECT id FROM table_expression) SELECT DISTINCT random() AS name1 FROM table_expression WHERE name1=name1 GROUP BY id HAVING sum(len) < interval '5 hours' WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) INTERSECT DISTINCT (SELECT * FROM others) ORDER BY salary ASC OFFSET start FETCH NEXT ROW ONLY FOR NO KEY UPDATE;
WITH query_name (id) AS (SELECT id FROM table_expression) SELECT DISTINCT ON (col1) random() AS name1 FROM table_expression WHERE name1=name1 GROUP BY id HAVING sum(len) < interval '5 hours' WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) EXCEPT (SELECT * FROM others) ORDER BY salary USING > NULL FIRST LIMIT 40 OFFSET start FETCH NEXT ROW ONLY FOR SHARE;
WITH query_name (id) AS (SELECT id FROM table_expression) SELECT DISTINCT ON (col1) random() AS name1 FROM table_expression WHERE name1=name1 GROUP BY id HAVING sum(len) < interval '5 hours' WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) EXCEPT (SELECT * FROM others) ORDER BY salary USING > NULLS FIRST OFFSET start FETCH NEXT ROW ONLY FOR SHARE;
WITH query_name (id) AS (SELECT id FROM table_expression) SELECT DISTINCT ON (col1) random() AS name1 FROM table_expression WHERE name1=name1 GROUP BY id HAVING sum(len) < interval '5 hours' WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) EXCEPT (SELECT * FROM others) ORDER BY salary USING > NULL FIRST LIMIT 40 OFFSET start FETCH NEXT ROW ONLY FOR KEY SHARE OF table_name NOWAIT;
WITH query_name (id) AS (SELECT id FROM table_expression) SELECT DISTINCT ON (col1) random() AS name1 FROM table_expression WHERE name1=name1 GROUP BY id HAVING sum(len) < interval '5 hours' WINDOW w AS (PARTITION BY depname ORDER BY salary DESC) EXCEPT (SELECT * FROM others) ORDER BY salary USING > NULLS FIRST OFFSET start FETCH NEXT ROW ONLY FOR KEY SHARE OF table_name NOWAIT;
-- SELECT INTO
WITH RECURSIVE query_name (id) AS (SELECT id FROM table_expression)
@ -34,7 +33,6 @@ INTO TEMPORARY TABLE new_table
ORDER BY expression_1 USING > NULLS FIRST
LIMIT ALL
OFFSET start ROW
FETCH FIRST 234 ROWS ONLY
FOR UPDATE OF table_name NOWAIT;
SELECT INTO new_table;

View File

@ -34,5 +34,5 @@ UPDATE ONLY table_name * AS alias
SET column_name = DEFAULT, (column_name, column_nam2) = ROW ( a+1,DEFAULT)
FROM from_list
WHERE a=b
RETURNING * AS output_name;
RETURNING column_name AS output_name;
UPDATE table_name SET column_name = a + 3;