[jira] [Updated] (COMDEV-438) Apache ShardingSphere: Solve unsupported Postgres sql about alter statement for ShardingSphere Parser

2022-02-21 Thread Juan Pan (Jira)


 [ 
https://issues.apache.org/jira/browse/COMDEV-438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Juan Pan updated COMDEV-438:

Description: 
*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]
h3.  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/]
h3. 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]
 . * ALTER OPERATOR
 * ALTER POLICY

 * ALTER PUBLICATION

 * ALTER ROUTINE

 * ALTER RULE

 * ALTER SCHEMA

 * ALTER SEQUENCE

 * ALTER SERVER

 * ALTER STATISTICS

 * ALTER SUBSCRIPTION

 * ALTER TABLE

 * ALTER TEXT SEARCH

 * ALTER TRIGGER

 * ALTER TYPE

 * ALTER VIEW

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 the 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]
h3. Relevant Skills

1. Master JAVA language
2. Have a basic understanding of Antlr g4 file
3. Be familiar with Postgres SQLs
h3. 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

Trista Pan, PMC of Apache ShardingSphere, 
[https://tristazero.github.io|https://tristazero.github.io/]

Zhengqiang Duan, Committer of ApacheShardingSphere, 
[https://github.com/strongduanmu]

  was:
*Apache ShardingSphere*
Apache ShardingSphere is a distributed database middleware ecosystem, including 
2 independent products, ShardingSphere JDBC and ShardingSphere Proxy presently. 
They all provide functions of data sharding, distributed transaction, and 
database orchestration.
{*}Page{*}: 
[https://shardingsphere.apache.org|https://shardingsphere.apache.org/]
{*}Github{*}: [https://github.com/apache/shardingsphere]
h3.  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/]
h3. Task

This issue is to solve the unsupported postgres sql about alter in [this 

[jira] [Updated] (COMDEV-438) Apache ShardingSphere: Solve unsupported Postgres sql about alter statement for ShardingSphere Parser

2022-02-15 Thread Juan Pan (Jira)


 [ 
https://issues.apache.org/jira/browse/COMDEV-438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Juan Pan updated COMDEV-438:

Description: 
*Apache ShardingSphere*
Apache ShardingSphere is a distributed database middleware ecosystem, including 
2 independent products, ShardingSphere JDBC and ShardingSphere Proxy presently. 
They all provide functions of data sharding, distributed transaction, and 
database orchestration.
{*}Page{*}: 
[https://shardingsphere.apache.org|https://shardingsphere.apache.org/]
{*}Github{*}: [https://github.com/apache/shardingsphere]
h3.  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/]
h3. 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]
 . * ALTER OPERATOR
 * ALTER POLICY

 * ALTER PUBLICATION

 * ALTER ROUTINE

 * ALTER RULE

 * ALTER SCHEMA

 * ALTER SEQUENCE

 * ALTER SERVER

 * ALTER STATISTICS

 * ALTER SUBSCRIPTION

 * ALTER TABLE

 * ALTER TEXT SEARCH

 * ALTER TRIGGER

 * ALTER TYPE

 * ALTER VIEW

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 the 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]
h3. Relevant Skills

1. Master JAVA language
2. Have a basic understanding of Antlr g4 file
3. Be familiar with Postgres SQLs
h3. 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

Trista Pan, PMC of Apache ShardingSphere, https://tristazero.github.io

Zhengqiang Duan, Committer of ApacheShardingSphere, 
https://github.com/strongduanmu

  was:
 
Apache ShardingSphere
Apache ShardingSphere is a distributed database middleware ecosystem, including 
2 independent products, ShardingSphere JDBC and ShardingSphere Proxy presently. 
They all provide functions of data sharding, distributed transaction, and 
database orchestration.
{*}Page{*}: 
[https://shardingsphere.apache.org|https://shardingsphere.apache.org/]
{*}Github{*}: [https://github.com/apache/shardingsphere]
h3.  
h3. 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/
h3. 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]
 . * ALTER OPERATOR

 * ALTER POLICY

 * ALTER PUBLICATION

 * ALTER ROUTINE

 * ALTER RULE

 *