This is an automated email from the ASF dual-hosted git repository.
yx9o 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 4114e7ee4cb Fix parse exception when execute insert statement with
negative value (#21197)
4114e7ee4cb is described below
commit 4114e7ee4cbe5923c2b403a3e86d1f23355cadf3
Author: Zhengqiang Duan <[email protected]>
AuthorDate: Mon Sep 26 17:48:26 2022 +0800
Fix parse exception when execute insert statement with negative value
(#21197)
* Fix parse exception when execute insert statement with negative value
* fix unit test
---
.../src/main/antlr4/imports/mysql/BaseRule.g4 | 7 +-----
.../src/main/antlr4/imports/mysql/DDLStatement.g4 | 4 ++--
.../src/main/antlr4/imports/opengauss/BaseRule.g4 | 6 ++++-
.../impl/OpenGaussStatementSQLVisitor.java | 17 ++++++++------
.../src/main/antlr4/imports/postgresql/BaseRule.g4 | 6 ++++-
.../impl/PostgreSQLStatementSQLVisitor.java | 17 ++++++++------
.../src/main/antlr4/imports/sql92/BaseRule.g4 | 4 ++--
.../src/main/antlr4/imports/sqlserver/BaseRule.g4 | 4 ++--
.../src/main/resources/case/dml/insert.xml | 27 +++++++++++++++++++++-
.../main/resources/sql/supported/dml/insert.xml | 3 ++-
.../main/resources/sql/unsupported/unsupported.xml | 3 ---
11 files changed, 65 insertions(+), 33 deletions(-)
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
index d8c9d8cc685..0276493cb58 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/BaseRule.g4
@@ -76,7 +76,7 @@ stringLiterals
;
numberLiterals
- : NUMBER_
+ : (PLUS_ | MINUS_)? NUMBER_
;
temporalLiterals
@@ -1236,11 +1236,6 @@ defaultCharset
: DEFAULT? charset EQ_? charsetName
;
-signedLiteral
- : literals
- | (PLUS_ | MINUS_) numberLiterals
- ;
-
now
: (CURRENT_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP) (LP_ NUMBER_? RP_)?
;
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
index 6cc4ab1058b..6ec2751ee72 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DDLStatement.g4
@@ -96,7 +96,7 @@ alterListItem
| DROP (COLUMN? columnInternalRef=identifier restrict? | FOREIGN KEY
columnInternalRef=identifier | PRIMARY KEY | keyOrIndex indexName | CHECK
identifier | CONSTRAINT identifier) # alterTableDrop
| DISABLE KEYS # disableKeys
| ENABLE KEYS # enableKeys
- | ALTER COLUMN? columnInternalRef=identifier (SET DEFAULT (LP_ expr RP_|
signedLiteral)| SET visibility | DROP DEFAULT) # alterColumn
+ | ALTER COLUMN? columnInternalRef=identifier (SET DEFAULT (LP_ expr RP_|
literals)| SET visibility | DROP DEFAULT) # alterColumn
| ALTER INDEX indexName visibility # alterIndex
| ALTER CHECK constraintName constraintEnforcement # alterCheck
| ALTER CONSTRAINT constraintName constraintEnforcement # alterConstraint
@@ -435,7 +435,7 @@ fieldDefinition
columnAttribute
: NOT? NULL
| NOT SECONDARY
- | value = DEFAULT (signedLiteral | now | LP_ expr RP_)
+ | value = DEFAULT (literals | now | LP_ expr RP_)
| value = ON UPDATE now
| value = AUTO_INCREMENT
| value = SERIAL DEFAULT VALUE
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
index 40964442fee..1853f46049e 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
@@ -938,7 +938,7 @@ funcName
;
aexprConst
- : NUMBER_
+ : numberConst
| STRING_
| funcName STRING_
| funcName LP_ funcArgList sortClause? RP_ STRING_
@@ -947,6 +947,10 @@ aexprConst
| NULL
;
+numberConst
+ : (PLUS_ | MINUS_)? NUMBER_
+ ;
+
qualifiedName
: colId | colId indirection
;
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
index 1bff00fca28..329e833c80c 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/impl/OpenGaussStatementSQLVisitor.java
@@ -298,16 +298,19 @@ public abstract class OpenGaussStatementSQLVisitor
extends OpenGaussStatementBas
if (null != ctx.patternMatchingOperator()) {
return createPatternMatchingOperationSegment(ctx);
}
- Optional<String> commonBinaryOperator = findCommonBinaryOperator(ctx);
- if (commonBinaryOperator.isPresent()) {
- return createCommonBinaryOperationSegment(ctx,
commonBinaryOperator.get());
+ Optional<String> binaryOperator = findBinaryOperator(ctx);
+ if (binaryOperator.isPresent()) {
+ return createBinaryOperationSegment(ctx, binaryOperator.get());
}
super.visitAExpr(ctx);
String text = ctx.start.getInputStream().getText(new
Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
return new CommonExpressionSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), text);
}
- private Optional<String> findCommonBinaryOperator(final AExprContext ctx) {
+ private Optional<String> findBinaryOperator(final AExprContext ctx) {
+ if (1 == ctx.aExpr().size()) {
+ return Optional.empty();
+ }
if (null != ctx.comparisonOperator()) {
return Optional.of(ctx.comparisonOperator().getText());
}
@@ -343,7 +346,7 @@ public abstract class OpenGaussStatementSQLVisitor extends
OpenGaussStatementBas
return new BinaryOperationExpression(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), left, right, operator, text);
}
- private BinaryOperationExpression createCommonBinaryOperationSegment(final
AExprContext ctx, final String operator) {
+ private BinaryOperationExpression createBinaryOperationSegment(final
AExprContext ctx, final String operator) {
ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0));
ExpressionSegment right = (ExpressionSegment) visit(ctx.aExpr(1));
String text = ctx.start.getInputStream().getText(new
Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
@@ -438,8 +441,8 @@ public abstract class OpenGaussStatementSQLVisitor extends
OpenGaussStatementBas
@Override
public ASTNode visitAexprConst(final AexprConstContext ctx) {
- if (null != ctx.NUMBER_()) {
- return new NumberLiteralValue(ctx.NUMBER_().getText());
+ if (null != ctx.numberConst()) {
+ return new NumberLiteralValue(ctx.numberConst().getText());
}
if (null != ctx.STRING_()) {
return new StringLiteralValue(ctx.STRING_().getText());
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
index ad1b26c783d..1f0dd85ab6e 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/imports/postgresql/BaseRule.g4
@@ -933,7 +933,7 @@ funcName
;
aexprConst
- : NUMBER_
+ : numberConst
| STRING_
| BEGIN_DOLLAR_STRING_CONSTANT DOLLAR_TEXT* END_DOLLAR_STRING_CONSTANT
| funcName STRING_
@@ -943,6 +943,10 @@ aexprConst
| NULL
;
+numberConst
+ : (PLUS_ | MINUS_)? NUMBER_
+ ;
+
qualifiedName
: colId | colId indirection
;
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
index 44aa598842f..fe34ab7b4e7 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLStatementSQLVisitor.java
@@ -298,16 +298,19 @@ public abstract class PostgreSQLStatementSQLVisitor
extends PostgreSQLStatementP
if (null != ctx.patternMatchingOperator()) {
return createPatternMatchingOperationSegment(ctx);
}
- Optional<String> commonBinaryOperator = findCommonBinaryOperator(ctx);
- if (commonBinaryOperator.isPresent()) {
- return createCommonBinaryOperationSegment(ctx,
commonBinaryOperator.get());
+ Optional<String> binaryOperator = findBinaryOperator(ctx);
+ if (binaryOperator.isPresent()) {
+ return createBinaryOperationSegment(ctx, binaryOperator.get());
}
super.visitAExpr(ctx);
String text = ctx.start.getInputStream().getText(new
Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
return new CommonExpressionSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), text);
}
- private Optional<String> findCommonBinaryOperator(final AExprContext ctx) {
+ private Optional<String> findBinaryOperator(final AExprContext ctx) {
+ if (1 == ctx.aExpr().size()) {
+ return Optional.empty();
+ }
if (null != ctx.comparisonOperator()) {
return Optional.of(ctx.comparisonOperator().getText());
}
@@ -343,7 +346,7 @@ public abstract class PostgreSQLStatementSQLVisitor extends
PostgreSQLStatementP
return new BinaryOperationExpression(ctx.start.getStartIndex(),
ctx.stop.getStopIndex(), left, right, operator, text);
}
- private BinaryOperationExpression createCommonBinaryOperationSegment(final
AExprContext ctx, final String operator) {
+ private BinaryOperationExpression createBinaryOperationSegment(final
AExprContext ctx, final String operator) {
ExpressionSegment left = (ExpressionSegment) visit(ctx.aExpr(0));
ExpressionSegment right = (ExpressionSegment) visit(ctx.aExpr(1));
String text = ctx.start.getInputStream().getText(new
Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
@@ -438,8 +441,8 @@ public abstract class PostgreSQLStatementSQLVisitor extends
PostgreSQLStatementP
@Override
public ASTNode visitAexprConst(final AexprConstContext ctx) {
- if (null != ctx.NUMBER_()) {
- return new NumberLiteralValue(ctx.NUMBER_().getText());
+ if (null != ctx.numberConst()) {
+ return new NumberLiteralValue(ctx.numberConst().getText());
}
if (null != ctx.STRING_()) {
return new StringLiteralValue(ctx.STRING_().getText());
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/antlr4/imports/sql92/BaseRule.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/antlr4/imports/sql92/BaseRule.g4
index 4b66b14ccbb..f511b157eea 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/antlr4/imports/sql92/BaseRule.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sql92/src/main/antlr4/imports/sql92/BaseRule.g4
@@ -38,8 +38,8 @@ stringLiterals
;
numberLiterals
- : MINUS_? NUMBER_
- ;
+ : (PLUS_ | MINUS_)? NUMBER_
+ ;
dateTimeLiterals
: (DATE | TIME | TIMESTAMP) STRING_
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
index 9687962fa65..487acd22e19 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-sqlserver/src/main/antlr4/imports/sqlserver/BaseRule.g4
@@ -38,8 +38,8 @@ stringLiterals
;
numberLiterals
- : MINUS_? NUMBER_
- ;
+ : (PLUS_ | MINUS_)? NUMBER_
+ ;
dateTimeLiterals
: (DATE | TIME | TIMESTAMP) STRING_
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/insert.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/insert.xml
index f6aa568f1f8..30edbc1482e 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/insert.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/insert.xml
@@ -100,7 +100,7 @@
</values>
</insert>
- <insert sql-case-id="insert_with_columnname_uuid" parameters="1, 1">
+ <insert sql-case-id="insert_with_uuid_column" parameters="1, 1">
<table name="t_order" start-index="12" stop-index="18" />
<columns start-index="20" stop-index="28">
<column name="id" start-index="21" stop-index="22" />
@@ -2086,4 +2086,29 @@
</assignment>
</on-duplicate-key-columns>
</insert>
+
+ <insert sql-case-id="insert_with_negative_value" parameters="1, -1,
'init'">
+ <table name="t_order" start-index="12" stop-index="18" />
+ <columns start-index="20" stop-index="46">
+ <column name="order_id" start-index="21" stop-index="28" />
+ <column name="user_id" start-index="31" stop-index="37" />
+ <column name="status" start-index="40" stop-index="45" />
+ </columns>
+ <values>
+ <value>
+ <assignment-value>
+ <parameter-marker-expression parameter-index="0"
start-index="56" stop-index="56" />
+ <literal-expression value="1" start-index="56"
stop-index="56" />
+ </assignment-value>
+ <assignment-value>
+ <parameter-marker-expression parameter-index="1"
start-index="59" stop-index="59" />
+ <literal-expression value="-1" start-index="59"
stop-index="60" />
+ </assignment-value>
+ <assignment-value>
+ <parameter-marker-expression parameter-index="2"
start-index="62" stop-index="62" />
+ <literal-expression value="init" start-index="63"
stop-index="68" />
+ </assignment-value>
+ </value>
+ </values>
+ </insert>
</sql-parser-test-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/insert.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/insert.xml
index 1a177ee727a..1f13ed2e692 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/insert.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/dml/insert.xml
@@ -71,7 +71,7 @@
<sql-case id="insert_without_columns_with_default_values" value="INSERT
INTO t_order DEFAULT VALUES" db-types="SQLServer" />
<sql-case id="insert_with_top" value="INSERT TOP(10) t_order (order_id,
user_id) SELECT order_id, user_id FROM t_order" db-types="SQLServer" />
<sql-case id="insert_with_top_percent" value="INSERT TOP(10) PERCENT
t_order (order_id, user_id) SELECT order_id, user_id FROM t_order"
db-types="SQLServer" />
- <sql-case id="insert_with_columnname_uuid" value="insert into t_order
(id,uuid) values (?, ?)" db-types="PostgreSQL,openGauss" />
+ <sql-case id="insert_with_uuid_column" value="insert into t_order
(id,uuid) values (?, ?)" db-types="PostgreSQL,openGauss" />
<sql-case id="insert_with_output_clause" value="INSERT INTO t_order
(order_id, user_id) OUTPUT INSERTED.order_id, INSERTED.user_id INTO @MyTableVar
(temp_order_id, temp_user_id) VALUES (?, ?)" db-types="SQLServer" />
<sql-case id="insert_with_output_clause_without_output_table_columns"
value="INSERT INTO t_order (order_id, user_id) OUTPUT INSERTED.order_id,
INSERTED.user_id INTO @MyTableVar VALUES (?, ?)" db-types="SQLServer" />
<sql-case id="insert_with_output_clause_without_output_table"
value="INSERT INTO t_order (order_id, user_id) OUTPUT INSERTED.order_id,
INSERTED.user_id VALUES (?, ?)" db-types="SQLServer" />
@@ -86,4 +86,5 @@
<sql-case id="insert_with_schema" value="INSERT INTO db1.t_order VALUES
(1,2,3)" />
<sql-case id="insert_on_duplicate_key_update_nothing" value="INSERT INTO
t_order (order_id, user_id, status) VALUES (1, 1, 'insert') ON DUPLICATE KEY
UPDATE NOTHING" db-types="openGauss" />
<sql-case id="insert_on_duplicate_key_update_multi_column" value="INSERT
INTO t_order (order_id, user_id, status) VALUES (1, 1, 'insert') ON DUPLICATE
KEY UPDATE user_id = user_id + 1, status='update'" db-types="MySQL,openGauss" />
+ <sql-case id="insert_with_negative_value" value="insert into t_order
(order_id, user_id, status) values (?, ?, ?)" />
</sql-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
index 26a56461969..01b55e9d5f3 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/unsupported/unsupported.xml
@@ -3816,7 +3816,6 @@
<sql-case id="explain_by_postgresql_source_test_case27" value="EXPLAIN
(COSTS OFF) EXECUTE role_inval;" db-types="PostgreSQL" />
<sql-case id="explain_by_postgresql_source_test_case28" value="EXPLAIN
(COSTS OFF) EXECUTE role_inval;" db-types="PostgreSQL" />
<sql-case id="explain_by_postgresql_source_test_case29" value="EXPLAIN
(COSTS OFF) INSERT INTO t2 (SELECT * FROM t1);" db-types="PostgreSQL" />
- <sql-case id="explain_by_postgresql_source_test_case44" value="EXPLAIN
(COSTS OFF) SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1)
ORDER BY area(f1);" db-types="PostgreSQL" />
<sql-case id="explain_by_postgresql_source_test_case45" value="EXPLAIN
(COSTS OFF) SELECT * FROM fast_emp4000 WHERE home_base <@
'(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0];"
db-types="PostgreSQL" />
<sql-case id="explain_by_postgresql_source_test_case46" value="EXPLAIN
(COSTS OFF) SELECT * FROM fast_emp4000 WHERE home_base <@
'(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0];"
db-types="PostgreSQL" />
<sql-case id="explain_by_postgresql_source_test_case48" value="EXPLAIN
(COSTS OFF) SELECT * FROM inet_tbl WHERE '192.168.1.0/24'::cidr
>> i;" db-types="PostgreSQL" />
@@ -4191,8 +4190,6 @@
<sql-case id="select_by_postgresql_source_test_case226" value="SELECT *
FROM (VALUES (1),(2),(3)) v(r), ROWS FROM( rngfunc_sql(11,11),
rngfunc_mat(10+r,13) );" db-types="PostgreSQL" />
<sql-case id="select_by_postgresql_source_test_case233" value="SELECT *
FROM ROWS FROM(generate_series(10,11), get_users()) WITH ORDINALITY;"
db-types="PostgreSQL" />
<sql-case id="select_by_postgresql_source_test_case234" value="SELECT *
FROM ROWS FROM(get_users(), generate_series(10,11)) WITH ORDINALITY;"
db-types="PostgreSQL" />
- <sql-case id="select_by_postgresql_source_test_case244" value="SELECT *
FROM circle_tbl WHERE f1 && circle(point(1,-2), 1) ORDER BY
area(f1);" db-types="PostgreSQL" />
- <sql-case id="select_by_postgresql_source_test_case245" value="SELECT *
FROM circle_tbl WHERE f1 && circle(point(1,-2), 1) ORDER BY
area(f1);" db-types="PostgreSQL" />
<sql-case id="select_by_postgresql_source_test_case246" value="SELECT *
FROM fast_emp4000 WHERE home_base <@
'(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0];"
db-types="PostgreSQL" />
<sql-case id="select_by_postgresql_source_test_case247" value="SELECT *
FROM fast_emp4000 WHERE home_base <@
'(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0];"
db-types="PostgreSQL" />
<sql-case id="select_by_postgresql_source_test_case248" value="SELECT *
FROM fast_emp4000 WHERE home_base <@
'(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0];"
db-types="PostgreSQL" />