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 b11705e9316 Support OpenGauss elem_contained_by_range function parse
(#28332)
b11705e9316 is described below
commit b11705e931636419c115d178bec842fd91cc3c21
Author: Zichao <[email protected]>
AuthorDate: Fri Sep 1 20:22:26 2023 +1200
Support OpenGauss elem_contained_by_range function parse (#28332)
---
.../opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4 | 3 +++
.../src/main/antlr4/imports/opengauss/OpenGaussKeyword.g4 | 4 ++++
test/it/parser/src/main/resources/case/dml/select-expression.xml | 8 ++++++++
.../src/main/resources/sql/supported/dml/select-expression.xml | 1 +
test/it/parser/src/main/resources/sql/unsupported/unsupported.xml | 7 -------
5 files changed, 16 insertions(+), 7 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 268d37b7f0c..c87f174e4d9 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
@@ -445,6 +445,8 @@ unreservedWord
| INT4
| INT16
| FLOAT4
+ | ELEM_CONTAINED_BY_RANGE
+
;
typeFuncNameKeyword
@@ -1096,6 +1098,7 @@ functionExprCommonSubexpr
| XMLSERIALIZE LP_ documentOrContent aExpr AS simpleTypeName RP_
| 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_
;
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 d5e00615524..94e6bbc5798 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
@@ -1416,3 +1416,7 @@ INT16
INT1
: I N T [1]
;
+
+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
+ ;
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 fe252ad7926..5f258c8ed2f 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
@@ -2986,4 +2986,12 @@
</expression-projection>
</projections>
</select>
+
+ <select sql-case-id="select_elem_contained_by_range_function">
+ <projections start-index="7" stop-index="53">
+ <expression-projection start-index="7" stop-index="53"
text="elem_contained_by_range('2', numrange(1.1,2.2))">
+ <function start-index="7" stop-index="53"
function-name="elem_contained_by_range" text="elem_contained_by_range('2',
numrange(1.1,2.2))" />
+ </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 93fcb009f37..29f68db6a71 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
@@ -127,4 +127,5 @@
<sql-case id="select_inet_function_with_inet_operator" value="SELECT inet
'192.168.1.5' <<= inet '192.168.1.5' AS RESULT;" db-types="openGauss" />
<sql-case id="select_ts_rewrite_function" value="SELECT ts_rewrite('a
& b'::tsquery, 'a'::tsquery, 'c'::tsquery);" db-types="openGauss" />
<sql-case id="select_int_2_function" value="select int2(25.3);"
db-types="openGauss" />
+ <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-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 ed8bade141b..3d0b4bdab19 100644
--- a/test/it/parser/src/main/resources/sql/unsupported/unsupported.xml
+++ b/test/it/parser/src/main/resources/sql/unsupported/unsupported.xml
@@ -242,8 +242,6 @@
<sql-case id="unsupported_select_case_for_opengauss_247" value="select
int4range(10,10) <> '(10,11)'::int4range as result;" db-types="openGauss"
/>
<sql-case id="unsupported_select_case_for_opengauss_248" value="select
int8range(15,25) <> int8range(15,25) as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_249" value="select
tsrange('[2021-01-01,2021-03-01)') <> ('[2021-01-01,2021-03-01)') as
result;" db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_250" value="select
elem_contained_by_range('abc', int8range(15,25)) as result;"
db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_251" value="select
elem_contained_by_range(2, numrange(1.1,2.2)) as result;" db-types="openGauss"
/>
<sql-case id="unsupported_select_case_for_opengauss_252" value="select
int4range(1,5) >= '[1,4]'::int4range as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_253" value="select
int8range(15,26) >= int8range(15,26) as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_254" value="select
numrange(8.1,10.2,'[]') >= numrange(5.1,6.7,'()') as result;"
db-types="openGauss" />
@@ -299,11 +297,6 @@
<sql-case id="unsupported_select_case_for_opengauss_304" value="select
int4range(10,16) &< '(10,11)'::int4range as result;"
db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_305" value="select
int4range(1,3) - int8range(25,35) as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_306" value="select
tsrange('[2021-01-01,2021-03-01)') - '[3,4]'::int4range as result;"
db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_307" value="select
elem_contained_by_range('2', numrange(1.1,2.2));" db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_308" value="select
elem_contained_by_range('10', int4range(10,80)) as result;"
db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_309" value="select
elem_contained_by_range('20', int8range(15,25)) as result;"
db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_310" value="select
elem_contained_by_range('2021-02-05', tsrange('[2021-01-01,2021-03-01)')) as
result;" db-types="openGauss" />
- <sql-case id="unsupported_select_case_for_opengauss_311" value="select
elem_contained_by_range('2025-12-11 pst', tsrange('[2013-12-11 pst,2021-03-01
pst)')) as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_312" value="select
lower(int4range(10,80)) as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_313" value="select
lower(int8range(15,25)) as result;" db-types="openGauss" />
<sql-case id="unsupported_select_case_for_opengauss_314" value="select
lower(numrange(1.1,2.2)) as result;" db-types="openGauss" />