This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 7bb31475a9d Optimized sqlParser to support examples from MySQL Test
Suite. (#25580)
7bb31475a9d is described below
commit 7bb31475a9d728adfc6dc6d1202cf4d6c2dd63d2
Author: Cong Hu <[email protected]>
AuthorDate: Fri May 12 12:50:55 2023 +0800
Optimized sqlParser to support examples from MySQL Test Suite. (#25580)
* Optimize DALStatement.g4 histogram checkTable.
* Modified the code as per the suggestion.
---
.../sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4 | 4 ++--
test/it/parser/src/main/resources/case/dal/check-table.xml | 4 ++++
test/it/parser/src/main/resources/case/ddl/analyze.xml | 4 ++++
test/it/parser/src/main/resources/sql/supported/dal/check-table.xml | 1 +
test/it/parser/src/main/resources/sql/supported/ddl/analyze.xml | 1 +
5 files changed, 12 insertions(+), 2 deletions(-)
diff --git
a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
index 6cd359de33f..7f9775edf86 100644
--- a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
+++ b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
@@ -300,12 +300,12 @@ analyzeTable
;
histogram
- : UPDATE HISTOGRAM ON columnNames (WITH NUMBER_ BUCKETS)?
+ : UPDATE HISTOGRAM ON columnNames (WITH NUMBER_ BUCKETS | USING DATA
string_)?
| DROP HISTOGRAM ON columnNames
;
checkTable
- : CHECK TABLE tableList checkTableOption?
+ : CHECK tableOrTables tableList checkTableOption?
;
checkTableOption
diff --git a/test/it/parser/src/main/resources/case/dal/check-table.xml
b/test/it/parser/src/main/resources/case/dal/check-table.xml
index 37952bb5bc5..0bb4137136f 100644
--- a/test/it/parser/src/main/resources/case/dal/check-table.xml
+++ b/test/it/parser/src/main/resources/case/dal/check-table.xml
@@ -45,4 +45,8 @@
<table name="t_order" start-index="16" stop-index="22" />
<table name="t_order_item" start-index="24" stop-index="35" />
</checksum-table>
+ <check-table sql-case-id="check_multi_tables">
+ <table name="t_order" start-index="13" stop-index="19" />
+ <table name="t_order_item" start-index="21" stop-index="32" />
+ </check-table>
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/case/ddl/analyze.xml
b/test/it/parser/src/main/resources/case/ddl/analyze.xml
index 10e8d6816dc..4638eb6b88b 100644
--- a/test/it/parser/src/main/resources/case/ddl/analyze.xml
+++ b/test/it/parser/src/main/resources/case/ddl/analyze.xml
@@ -54,4 +54,8 @@
</analyze>
<analyze sql-case-id="analyze_cluster" />
+
+ <analyze sql-case-id="analyze_table_update_histogram_using_data" >
+ <table name="tbl_datetime" start-index="14" stop-index="24" />
+ </analyze>
</sql-parser-test-cases>
diff --git
a/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
b/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
index 54faf16d305..04876b537ca 100644
--- a/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dal/check-table.xml
@@ -25,4 +25,5 @@
<sql-case id="checksum_tables" value="CHECKSUM TABLES
t_order,t_order_item" db-types="MySQL" />
<sql-case id="checksum_tables_quick" value="CHECKSUM TABLES
t_order,t_order_item QUICK" db-types="MySQL" />
<sql-case id="checksum_tables_extended" value="CHECKSUM TABLES
t_order,t_order_item EXTENDED" db-types="MySQL" />
+ <sql-case id="check_multi_tables" value="CHECK TABLES
t_order,t_order_item" db-types="MySQL" />
</sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/analyze.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/analyze.xml
index b8d1e89fafb..d57d4c281ef 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/analyze.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/analyze.xml
@@ -27,4 +27,5 @@
<sql-case id="analyze_table_list_chained_rows_into" value="ANALYZE TABLE
orders LIST CHAINED ROWS INTO chained_rows" db-types="Oracle" />
<sql-case id="analyze_index" value="ANALYZE INDEX order_index VALIDATE
STRUCTURE; " db-types="Oracle" />
<sql-case id="analyze_cluster" value="ANALYZE CLUSTER personnel VALIDATE
STRUCTURE" db-types="Oracle" />
+ <sql-case id="analyze_table_update_histogram_using_data" value="ANALYZE
TABLE tbl_datetime UPDATE HISTOGRAM ON col1 USING DATA '{"buckets":
[[20170216162223, 0.125], ["2017-02-10 08:15:18.000000", 0.375],
["2018-02-12 07:04:18.000000", 0.5], ["2018-03-21
21:12:42.000000", 0.75]], "data-type": "datetime",
"null-values": 0.25, "collation-id": 8,
"sampling-rate": 1.0, "histogram-type": &q [...]
</sql-cases>