This is an automated email from the ASF dual-hosted git repository.

chengzhang 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 1537e47487a Support OpenGauss lower_inf upper_inf function parse 
(#28357)
1537e47487a is described below

commit 1537e47487afd29071aa72a742c2d1701d348aaa
Author: Zichao <[email protected]>
AuthorDate: Tue Sep 5 14:05:46 2023 +1200

    Support OpenGauss lower_inf upper_inf function parse (#28357)
---
 .../src/main/antlr4/imports/opengauss/BaseRule.g4  |  2 ++
 .../antlr4/imports/opengauss/OpenGaussKeyword.g4   |  8 +++++++
 .../main/resources/case/dml/select-expression.xml  |  8 +++++++
 .../sql/supported/dml/select-expression.xml        |  1 +
 .../main/resources/sql/unsupported/unsupported.xml | 28 ----------------------
 5 files changed, 19 insertions(+), 28 deletions(-)

diff --git 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
index 70871c8aba9..2858ced53ec 100644
--- a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
+++ b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
@@ -449,6 +449,7 @@ unreservedWord
     | INT8RANGE
     | INT4RANGE
     | NUMRANGE
+    | DATERANGE
     ;
 
 typeFuncNameKeyword
@@ -1101,6 +1102,7 @@ functionExprCommonSubexpr
     | PREDICT BY modelName LP_ FEATURES name (COMMA_ name)* RP_
     | TS_REWRITE LP_ aExpr (TYPE_CAST_ TSQUERY)? (COMMA_ aExpr (TYPE_CAST_ 
TSQUERY)?)* RP_
     | ELEM_CONTAINED_BY_RANGE LP_ aExpr COMMA_ dataType RP_
+    | (LOWER_INF | UPPER_INF) LP_ aExpr TYPE_CAST_ identifier RP_
     ;
 
 typeName
diff --git 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/OpenGaussKeyword.g4
 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/OpenGaussKeyword.g4
index 94e6bbc5798..2a177f4d661 100644
--- 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/OpenGaussKeyword.g4
+++ 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/OpenGaussKeyword.g4
@@ -1420,3 +1420,11 @@ INT1
 ELEM_CONTAINED_BY_RANGE
     : E L E M UL_ C O N T A I N E D UL_ B Y UL_ R A N G E
     ;
+
+LOWER_INF
+    : L O W E R UL_ I N F
+    ;
+
+UPPER_INF
+    : U P P E R UL_ I N F
+    ;
diff --git a/test/it/parser/src/main/resources/case/dml/select-expression.xml 
b/test/it/parser/src/main/resources/case/dml/select-expression.xml
index 4adac49aae0..b70cd7983d8 100644
--- a/test/it/parser/src/main/resources/case/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/case/dml/select-expression.xml
@@ -3069,4 +3069,12 @@
             </expression-projection>
         </projections>
     </select>
+    
+    <select sql-case-id="select_lower_inf_function">
+        <projections start-index="7" stop-index="43">
+            <expression-projection start-index="7" stop-index="43" 
text="lower_inf('(,)'::daterange)" alias="RESULT">
+                <function start-index="7" stop-index="35" 
function-name="lower_inf" text="lower_inf('(,)'::daterange)" />
+            </expression-projection>
+        </projections>
+    </select>
 </sql-parser-test-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml 
b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
index b95a9a0aa6d..07fb4b61557 100644
--- a/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
+++ b/test/it/parser/src/main/resources/sql/supported/dml/select-expression.xml
@@ -130,4 +130,5 @@
     <sql-case id="select_elem_contained_by_range_function" value="SELECT 
elem_contained_by_range('2', numrange(1.1,2.2));" db-types="openGauss" />
     <sql-case id="select_int8range" value="SELECT int8range(5,15) * 
int8range(10,20) AS RESULT;" db-types="openGauss" />
     <sql-case id="select_int4range" value="SELECT int4range(2,4) &lt;@ 
int4range(1,7) AS RESULT;" db-types="openGauss" />
+    <sql-case id="select_lower_inf_function" value="SELECT 
lower_inf('(,)'::daterange) AS RESULT;" db-types="openGauss" />
 </sql-cases>
diff --git a/test/it/parser/src/main/resources/sql/unsupported/unsupported.xml 
b/test/it/parser/src/main/resources/sql/unsupported/unsupported.xml
index 6e9cf9d0c99..9b1cf441e28 100644
--- a/test/it/parser/src/main/resources/sql/unsupported/unsupported.xml
+++ b/test/it/parser/src/main/resources/sql/unsupported/unsupported.xml
@@ -141,32 +141,6 @@
     <sql-case id="unsupported_select_case_for_opengauss_139" value="select 
array_lower([1,2,3], 1) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_140" value="select 
array_lower(array[1,2,3], @) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_141" value="select 
array_lower(array[1,2,3], ) as result;" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_145" value="select 
daterange('2000-05-06','2000-08-08','(]');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_146" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 19:59:00','(]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_147" value="select 
daterange('2000-05-06 12:01:09','2000-08-08 19:59:00','(]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_148" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 09:59:00','(]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_149" value="select 
daterange('2000-05-06 17:01:09','2000-08-08 09:59:00','(]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_150" value="select 
daterange('2000-05-06','2000-08-08','()');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_151" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 19:59:00','()');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_152" value="select 
daterange('2000-05-06 12:01:09','2000-08-08 19:59:00','()');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_153" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 09:59:00','()');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_154" value="select 
daterange('2000-05-06 17:01:09','2000-08-08 09:59:00','()');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_155" value="select 
daterange('2000-05-06','2000-08-08','abc');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_156" value="select 
daterange('2001-05-06','2000-08-08');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_157" value="select 
daterange('2001-05-06','2001-05-06');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_158" value="select 
daterange('2000-05-06','2000-08-08','[)');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_159" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 19:59:00','[)');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_160" value="select 
daterange('2000-05-06 12:01:09','2000-08-08 19:59:00','[)');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_161" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 09:59:00','[)');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_162" value="select 
daterange('2000-05-06 17:01:09','2000-08-08 09:59:00','[)');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_163" value="select 
daterange('2000-05-06','2000-08-08','[]');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_164" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 19:59:00','[]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_165" value="select 
daterange('2000-05-06 12:01:09','2000-08-08 19:59:00','[]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_166" value="select 
daterange('2000-05-06 00:01:09','2000-08-08 09:59:00','[]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_167" value="select 
daterange('2000-05-06 17:01:09','2000-08-08 09:59:00','[]');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_169" value="select 
daterange('2001-02-16 20:38:40','2001-02-16 20:38:41');" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_170" value="select 
daterange('2018-05-14 14:09:04.127444+08','2018-05-16 14:09:04.127444+08');" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_171" value="select 
daterange('2000-05-06','2000-08-08');" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_174" value="select 
bitand(6,) as result from sys_dummy;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_175" value="select 
bitand(,6) as result from sys_dummy;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_176" value="select 
first(s_name) as name, first(s_id nulls first ) from first06;" 
db-types="openGauss" />
@@ -234,7 +208,6 @@
     <sql-case id="unsupported_select_case_for_opengauss_325" value="select 
'2026-09-09'::timestamp &lt;@ tsrange('[2021-01-01,2028-03-01)') as result;" 
db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_330" value="select 
tsrange('[2021-01-01,2021-03-01)') &amp;&amp; ('[2021-01-01,2021-03-01)') as 
result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_331" value="select 
tsrange('[2013-12-11 pst,2021-03-01 pst)') &amp;&amp; ('[2013-12-11 
pst,2021-05-01 pst)') as result;" db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_334" value="select 
upper_inf('(,)'::daterange) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_338" value="select 
upper_inf(tsrange('(2021-01-01,]')) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_339" value="select 
upper_inf(tsrange('[,2021-03-01 pst]')) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_347" value="select 
tsrange('[2021-01-01,2021-03-01)') -('[2021-03-01,2021-10-01)') as result;" 
db-types="openGauss" />
@@ -255,7 +228,6 @@
     <sql-case id="unsupported_select_case_for_opengauss_371" value="select 
upper(bugstatus (create, closed)) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_375" value="select 
isempty(tsrange('[2021-01-01,2021-03-01)')) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_376" value="select 
isempty(tsrange('[2013-12-11 pst,2021-03-01 pst)')) as result;" 
db-types="openGauss" />
-    <sql-case id="unsupported_select_case_for_opengauss_377" value="select 
lower_inf('(,)'::daterange) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_381" value="select 
lower_inf(tsrange('(2021-01-01,2021-03-01]')) as result;" db-types="openGauss" 
/>
     <sql-case id="unsupported_select_case_for_opengauss_382" value="select 
lower_inf(tsrange('[,2021-03-01 pst]')) as result;" db-types="openGauss" />
     <sql-case id="unsupported_select_case_for_opengauss_383" value="select 
hll_hash_boolean(@,10);" db-types="openGauss" />

Reply via email to