Zhengqiang Duan created COMDEV-489: -------------------------------------- Summary: Apache ShardingSphere: Support more MySQL SQLStatement conversion to SqlNode Key: COMDEV-489 URL: https://issues.apache.org/jira/browse/COMDEV-489 Project: Community Development Issue Type: Improvement Components: GSoC/Mentoring ideas Reporter: Zhengqiang Duan
h2. Apache ShardingSphere Apache ShardingSphere is positioned as a Database Plus, and aims at building a standard layer and ecosystem above heterogeneous databases. It focuses on how to reuse existing databases and their respective upper layer, rather than creating a new database. The goal is to minimize or eliminate the challenges caused by underlying databases fragmentation. {*}Page{*}: [https://shardingsphere.apache.org|https://shardingsphere.apache.org/] {*}Github{*}: [https://github.com/apache/shardingsphere] h2. Background ShardingSphere parser engine helps users parse a SQL to get the AST (Abstract Syntax Tree) and visit this tree to get SQLStatement (Java Object). At present, this parser engine can handle SQLs for `MySQL`, `PostgreSQL`, `SQLServer`, `openGauss` and `Oracle`, which means we have to understand different database dialect SQLs. {*}More details{*}: [https://shardingsphere.apache.org/document/current/en/reference/sharding/parse/] h2. Task This issue is to solve the unsupported postgres sql about alter in [this file|https://github.com/apache/shardingsphere/blob/master/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml] . * CALL * DO * DROP FUNCTION * DROP INDEX * DROP INSTANCE RULE * DROP REWRITE RULE * EXECUTE * EXPLAIN * FETCH * FETCH ABSOLUTE * FETCH ALL * FETCH BACKWARD * FETCH FIRST * FETCH LAST * FETCH NEXT * FETCH PRIOR * FETCH RELATIVE * IMPORT FOREIGN SCHEMA You can *learn more* [here|https://www.postgresql.org/docs/current/sql-commands.html]. * You may need to try to get why it's not supported.(antlr4 grammar? or not implement visit method) You can use [antlr4 plugins|https://plugins.jetbrains.com/plugin/7358-antlr-v4] to help you to analyze. You may need to visit [an official doc|https://www.postgresql.org/docs/current/sql-commands.html] to check the grammar. * After you fix it, remember to add a 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] and [UnsupportedSQLParserParameterizedTest|https://github.com/apache/shardingsphere/blob/master/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/UnsupportedSQLParserParameterizedTest.java] to make sure no exceptions. {*}Notice{*}, these issues can be a good example. [support alter foreign table for pg/og|https://github.com/apache/shardingsphere/pull/14944] [support alter materialized view for pg/og.|https://github.com/apache/shardingsphere/pull/15331] h2. Relevant Skills 1. Master JAVA language 2. Have a basic understanding of Antlr g4 file 3. Be familiar with Postgres SQLs h2. Targets files 1. Postgres SQLs g4 file: [https://github.com/apache/shardingsphere/blob/master/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatement.g4] h3. Mentor Chuxin Chen, Committer of Apache ShardingSphere, tuichenchu...@apache.org Zhengqiang Duan, Committer of Apache ShardingSphere, duanzhengqi...@apache.org -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@community.apache.org For additional commands, e-mail: dev-h...@community.apache.org