You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2022/10/09 04:49:52 UTC

[GitHub] [shardingsphere] tuichenchuxin opened a new issue, #14110: [Proofread SQL Definition][MySQL]Proofread the g4 files of SQL definitions

tuichenchuxin opened a new issue, #14110:
URL: https://github.com/apache/shardingsphere/issues/14110

   Hi community,
   
   This issue is to proofread the SQL definitions of MySQL. Therefore, we can support parsing more SQLs.
   We need your interaction! If you
   
   >Be familiar with g4 file of Antlr (The grammars are RegularExpression-like)
   Understand the MySQL grammars 
   
   then welcome!
   
   ### Background
   #### How is a SQL parsed?
   `SQL definition file`
   ->(Parse to)
   `AST`
   ->(Visit it)
   `SQLStatment`
   
   ### Process
   Compare SQL definitions in [Oficial SQL Doc](https://dev.mysql.com/doc/refman/8.0/en/sql-statements.htmll) and [ShardingSphere SQL Doc](https://github.com/apache/shardingsphere/tree/master/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql)
   If there is any difference in ShardingSphere SQL Doc, please correct them referring to Official SQL Doc
   You can also refer to [MySQL source code](https://github.com/mysql/mysql-server/blob/8.0/sql/sql_yacc.yy)
   Run mvn install the current_file_module
   Check whether there are any exceptions. If indeed, please fix them. (Especially xxxVisitor.class)
   Add new corresponding SQL case in [SQL Cases](https://github.com/apache/shardingsphere/tree/master/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported) and expected parsed result in[ Expected Statment XML](https://github.com/apache/shardingsphere/tree/master/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case)
   Run [SQLParserParameterizedTest](https://github.com/apache/shardingsphere/blob/master/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/SQLParserParameterizedTest.java) to make sure no exceptions.
   ### Notice
   - Left recursion can not work well in Antlr4,
   ```
   a
     : b
     | a b
     ;
   b
     : a c
     ;
   c
     : ...
     ;
   ```
   - you can consider the following one,
   ```
   a
     : b*
     ;
   b
     : a c
     ;
   c
     : ...
     ;
   ```
   [Here](https://shimo.im/docs/WrgrCt9JR3JDjq8H/read) is a Chinese version for reference.
   ### subtask
   - Data Definition Statements
   - [ ] [ALTER DATABASE Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-database.html)
   - [ ] [ALTER EVENT Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-event.html)
   - [ ] [ALTER FUNCTION Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-function.html)
   - [ ] [ALTER INSTANCE Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-instance.html)
   - [ ] [ALTER LOGFILE GROUP Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-logfile-group.html)
   - [ ] [ALTER PROCEDURE Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-procedure.html)
   - [ ] [ALTER SERVER Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-server.html)
   - [ ] [ALTER TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-table.html)
   - [ ] [ALTER TABLESPACE Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-tablespace.html)
   - [ ] [ALTER VIEW Statement](https://dev.mysql.com/doc/refman/8.0/en/alter-view.html)
   - [ ] [CREATE DATABASE Statement](https://dev.mysql.com/doc/refman/8.0/en/create-database.html)
   - [ ] [CREATE EVENT Statement](https://dev.mysql.com/doc/refman/8.0/en/create-event.html)
   - [ ] [CREATE FUNCTION Statement](https://dev.mysql.com/doc/refman/8.0/en/create-function.html)
   - [ ] [CREATE INDEX Statement](https://dev.mysql.com/doc/refman/8.0/en/create-index.html)
   - [ ] [CREATE LOGFILE GROUP Statement](https://dev.mysql.com/doc/refman/8.0/en/create-logfile-group.html)
   - [ ] [CREATE PROCEDURE and CREATE FUNCTION Statements](https://dev.mysql.com/doc/refman/8.0/en/create-procedure.html)
   - [ ] [CREATE SERVER Statement](https://dev.mysql.com/doc/refman/8.0/en/create-server.html)
   - [ ] [CREATE SPATIAL REFERENCE SYSTEM Statement](https://dev.mysql.com/doc/refman/8.0/en/create-spatial-reference-system.html)
   - [ ] [CREATE TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/create-table.html)
   - [ ] [CREATE TABLESPACE Statement](https://dev.mysql.com/doc/refman/8.0/en/create-tablespace.html)
   - [ ] [CREATE TRIGGER Statement](https://dev.mysql.com/doc/refman/8.0/en/create-trigger.html)
   - [ ] [CREATE VIEW Statement](https://dev.mysql.com/doc/refman/8.0/en/create-view.html)
   - [ ] [DROP DATABASE Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-database.html)
   - [ ] [DROP EVENT Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-event.html)
   - [ ] [DROP FUNCTION Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-function.html)
   - [ ] [DROP INDEX Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-index.html)
   - [ ] [DROP LOGFILE GROUP Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-logfile-group.html)
   - [ ] [DROP PROCEDURE and DROP FUNCTION Statements](https://dev.mysql.com/doc/refman/8.0/en/drop-procedure.html)
   - [ ] [DROP SERVER Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-server.html)
   - [ ] [DROP SPATIAL REFERENCE SYSTEM Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-spatial-reference-system.html)
   - [ ] [DROP TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-table.html)
   - [ ] [DROP TABLESPACE Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-tablespace.html)
   - [ ] [DROP TRIGGER Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-trigger.html)
   - [ ] [DROP VIEW Statement](https://dev.mysql.com/doc/refman/8.0/en/drop-view.html)
   - [ ] [RENAME TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/rename-table.html)
   - [ ] [TRUNCATE TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/truncate-table.html)
   - Data Manipulation Statements
   - [ ] [CALL Statement](https://dev.mysql.com/doc/refman/8.0/en/call.html)
   - [ ] [DELETE Statement](https://dev.mysql.com/doc/refman/8.0/en/delete.html)
   - [ ] [DO Statement](https://dev.mysql.com/doc/refman/8.0/en/do.html)
   - [ ] [HANDLER Statement](https://dev.mysql.com/doc/refman/8.0/en/handler.html)
   - [ ] [IMPORT TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/import-table.html)
   - [ ] [INSERT Statement](https://dev.mysql.com/doc/refman/8.0/en/insert.html)
   - [ ] [LOAD DATA Statement](https://dev.mysql.com/doc/refman/8.0/en/load-data.html)
   - [ ] [LOAD XML Statement](https://dev.mysql.com/doc/refman/8.0/en/load-xml.html)
   - [ ] [REPLACE Statement](https://dev.mysql.com/doc/refman/8.0/en/replace.html)
   - [ ] [SELECT Statement](https://dev.mysql.com/doc/refman/8.0/en/select.html)
   - [ ] [Subqueries](https://dev.mysql.com/doc/refman/8.0/en/subqueries.html)
   - [ ] [TABLE Statement](https://dev.mysql.com/doc/refman/8.0/en/table.html)
   - [ ] [UPDATE Statement](https://dev.mysql.com/doc/refman/8.0/en/update.html)
   - [ ] [VALUES Statement](https://dev.mysql.com/doc/refman/8.0/en/values.html)
   - [ ] [WITH (Common Table Expressions)](https://dev.mysql.com/doc/refman/8.0/en/with.html)
   - Transactional and Locking Statements
   - [ ] [START TRANSACTION, COMMIT, and ROLLBACK Statements](https://dev.mysql.com/doc/refman/8.0/en/commit.html)
   - [ ] [Statements That Cannot Be Rolled Back](https://dev.mysql.com/doc/refman/8.0/en/cannot-roll-back.html)
   - [ ] [Statements That Cause an Implicit Commit](https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html)
   - [ ] [SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Statements](https://dev.mysql.com/doc/refman/8.0/en/savepoint.html)
   - [ ] [LOCK INSTANCE FOR BACKUP and UNLOCK INSTANCE Statements](https://dev.mysql.com/doc/refman/8.0/en/lock-instance-for-backup.html)
   - [ ] [LOCK TABLES and UNLOCK TABLES Statements](https://dev.mysql.com/doc/refman/8.0/en/lock-tables.html)
   - [ ] [SET TRANSACTION Statement](https://dev.mysql.com/doc/refman/8.0/en/set-transaction.html)
   - [x] [XA Transactions](https://dev.mysql.com/doc/refman/8.0/en/xa.html)
   - Replication Statements
   - [ ] [SQL Statements for Controlling Source Servers](https://dev.mysql.com/doc/refman/8.0/en/replication-statements-master.html)
   - [ ] [SQL Statements for Controlling Replica Servers](https://dev.mysql.com/doc/refman/8.0/en/replication-statements-replica.html)
   - [ ] [SQL Statements for Controlling Group Replication](https://dev.mysql.com/doc/refman/8.0/en/replication-statements-group.html)
   - Prepared Statements
   - [ ] [PREPARE Statement](https://dev.mysql.com/doc/refman/8.0/en/prepare.html)
   - [ ] [EXECUTE Statement](https://dev.mysql.com/doc/refman/8.0/en/execute.html)
   - [ ] [DEALLOCATE PREPARE Statement](https://dev.mysql.com/doc/refman/8.0/en/deallocate-prepare.html)
   - Compound Statement Syntax
   - [ ] [BEGIN ... END Compound Statement](https://dev.mysql.com/doc/refman/8.0/en/begin-end.html)
   - [ ] [Statement Labels](https://dev.mysql.com/doc/refman/8.0/en/statement-labels.html)
   - [ ] [DECLARE Statement](https://dev.mysql.com/doc/refman/8.0/en/declare.html)
   - [ ] [Variables in Stored Programs](https://dev.mysql.com/doc/refman/8.0/en/stored-program-variables.html)
   - [ ] [Flow Control Statements](https://dev.mysql.com/doc/refman/8.0/en/flow-control-statements.html)
   - [ ] [Cursors](https://dev.mysql.com/doc/refman/8.0/en/cursors.html)
   - [ ] [Condition Handling](https://dev.mysql.com/doc/refman/8.0/en/condition-handling.html)
   - [ ] [Restrictions on Condition Handling](https://dev.mysql.com/doc/refman/8.0/en/condition-handling-restrictions.html)
   - Database Administration Statements
   - [ ] [Account Management Statements](https://dev.mysql.com/doc/refman/8.0/en/account-management-statements.html)
   - [ ] [Resource Group Management Statements](https://dev.mysql.com/doc/refman/8.0/en/resource-group-statements.html)
   - [ ] [Table Maintenance Statements](https://dev.mysql.com/doc/refman/8.0/en/table-maintenance-statements.html)
   - [ ] [Component, Plugin, and Loadable Function Statements](https://dev.mysql.com/doc/refman/8.0/en/component-statements.html)
   - [ ] [CLONE Statement](https://dev.mysql.com/doc/refman/8.0/en/clone.html)
   - [ ] [SET Statements](https://dev.mysql.com/doc/refman/8.0/en/set-statement.html)
   - [ ] [SHOW Statements](https://dev.mysql.com/doc/refman/8.0/en/show.html)
   - [ ] [Other Administrative Statements](https://dev.mysql.com/doc/refman/8.0/en/other-administrative-statements.html)
   - Utility Statements
   - [x] [DESCRIBE Statement](https://dev.mysql.com/doc/refman/8.0/en/describe.html)
   - [x] [EXPLAIN Statement](https://dev.mysql.com/doc/refman/8.0/en/explain.html)
   - [x] [HELP Statement](https://dev.mysql.com/doc/refman/8.0/en/help.html)
   - [x] [USE Statement](https://dev.mysql.com/doc/refman/8.0/en/use.html)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [Proofread SQL Definition][MySQL]Proofread the g4 files of SQL definitions [shardingsphere]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on issue #14110:
URL: https://github.com/apache/shardingsphere/issues/14110#issuecomment-2026022247

   There hasn't been any activity on this issue recently, and in order to prioritize active issues, it will be marked as stale.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] github-actions[bot] commented on issue #14110: [Proofread SQL Definition][MySQL]Proofread the g4 files of SQL definitions

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on issue #14110:
URL: https://github.com/apache/shardingsphere/issues/14110#issuecomment-1272350575

   Hello , this issue has not received a reply for several days.
   This issue is supposed to be closed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] strongduanmu commented on issue #14110: [Proofread SQL Definition][MySQL]Proofread the g4 files of SQL definitions

Posted by GitBox <gi...@apache.org>.
strongduanmu commented on issue #14110:
URL: https://github.com/apache/shardingsphere/issues/14110#issuecomment-1272454979

   This issue has not been finished, so I will reopen it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [shardingsphere] github-actions[bot] closed issue #14110: [Proofread SQL Definition][MySQL]Proofread the g4 files of SQL definitions

Posted by GitBox <gi...@apache.org>.
github-actions[bot] closed issue #14110: [Proofread SQL Definition][MySQL]Proofread the g4 files of SQL definitions
URL: https://github.com/apache/shardingsphere/issues/14110


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@shardingsphere.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org