You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by "FlyingZC (via GitHub)" <gi...@apache.org> on 2023/08/02 09:27:05 UTC

[GitHub] [shardingsphere] FlyingZC opened a new issue, #27779: Support parsing openGauss SELECT sql

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

   # Background
   Hi community,
   
   ShardingSphere parser engine helps users parse a SQL to get the AST (Abstract Syntax Tree) and visit this tree to get SQLStatement (Java Object). Currently, we are planning to enhance the support for openGauss SQL parsing in ShardingSphere.
   
   More details:
   https://shardingsphere.apache.org/document/current/en/reference/sharding/parse/
   
   # Task
   This issue is to support more openGauss sql parse, as follows:
   ```sql
    SELECT elem_contained_by_range('2', numrange(1.1,2.2));
   ```
   
   ```sql
   exec_command_sync(command, timeout)
   功能:该方法用于在主机上执行shell命令。
   参数列表:
   command 必选,数据类型可以是str, 以及元素为str类型的list或tuple;
   ```
   
   ```sql
   opengauss=# -- 创建触发器表和触发器函数
   opengauss=# CREATE TABLE test_trigger_src_tbl(id1 INT, id2 INT, id3 INT);
   CREATE OR REPLACE FUNCTION tri_insert_func() RETURNS TRIGGER AS $$ DECLARE BEGIN INSERT INTO test_trigger_des_tbl VALUES(NEW.id1, NEW.id2, NEW.id3); RETURN NEW; END $$ LANGUAGE PLPGSQL;
   -- 创建触发器
   CREATE TRIGGER insert_trigger BEFORE INSERT ON test_trigger_src_tbl FOR EACH ROW EXECUTE PROCEDURE tri_insert_func();
   -- 查看信息
   show triggers;
   CREATE TABLE
   opengauss=# CREATE TABLE test_trigger_des_tbl(id1 INT, id2 INT, id3 INT);
   CREATE TABLE
   opengauss=# CREATE OR REPLACE FUNCTION tri_insert_func() RETURNS TRIGGER AS $$ DECLARE BEGIN INSERT INTO test_trigger_des_tbl VALUES(NEW.id1, NEW.id2, NEW.id3); RETURN NEW; END $$ LANGUAGE PLPGSQL;
   CREATE FUNCTION
   opengauss=# -- 创建触发器
   opengauss=# CREATE TRIGGER insert_trigger BEFORE INSERT ON test_trigger_src_tbl FOR EACH ROW EXECUTE PROCEDURE tri_insert_func();
   CREATE TRIGGER
   opengauss=# -- 查看信息
   opengauss=# show triggers;
   ```
   
   ```sql
    set logging_module='on(SSL)';
   SET
   
   ```
   
   ```sql
    declare
   openGauss-#     type nest is table of int;
   openGauss-#     a nest := nest(1,2);
   openGauss-#     b nest := nest(1,2);
   openGauss-#     flag bool; 
   openGauss-# begin
   openGauss$#     flag := a = b;
   openGauss$#     raise info '%', flag;
   openGauss$# end;
   ```
   
   # Process
   1. First confirm that this is a correct openGauss sql syntax, if not please leave a message under the issue and ignore it;
   2. Compare SQL definitions in Official SQL Doc and ShardingSphere SQL Doc;
   3. If there is any difference in ShardingSphere SQL Doc, please correct them by referring to the Official SQL Doc;
   4. Run mvn install the current_file_module;
   5. Check whether there are any exceptions. If indeed, please fix them. (Especially xxxVisitor.class);
   6. Add new corresponding SQL case in SQL Cases and expected parsed result in Expected Statement XML;
   7. Run SQLParserParameterizedTest to make sure no exceptions.
   
   # Relevant Skills
   1. Master JAVA language
   2. Have a basic understanding of Antlr `g4` file
   3. Be familiar with openGauss SQLs


-- 
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


[GitHub] [shardingsphere] FlyingZC closed issue #27779: Support parsing openGauss SELECT sql

Posted by "FlyingZC (via GitHub)" <gi...@apache.org>.
FlyingZC closed issue #27779: Support parsing openGauss  SELECT sql
URL: https://github.com/apache/shardingsphere/issues/27779


-- 
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