This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 11cd90f0295 fix insert values with _binary (#18754)
11cd90f0295 is described below
commit 11cd90f0295dd950122b33b02aa4ce3dc4ab909c
Author: Chuxin Chen <[email protected]>
AuthorDate: Tue Jul 5 13:49:05 2022 +0800
fix insert values with _binary (#18754)
* fix insert values with _binary
* fix insert values with _binary
---
.../src/main/antlr4/imports/mysql/DMLStatement.g4 | 2 +-
.../asserts/segment/assignment/AssignmentValueAssert.java | 3 +++
.../src/main/resources/case/dml/insert.xml | 11 +++++------
.../src/main/resources/case/dml/replace.xml | 5 ++---
.../src/main/resources/case/dml/update.xml | 6 +++---
5 files changed, 14 insertions(+), 13 deletions(-)
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
index 2230f42e23c..59353ae9998 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
@@ -97,7 +97,7 @@ assignmentValues
;
assignmentValue
- : expr | DEFAULT | blobValue
+ : blobValue | expr | DEFAULT
;
blobValue
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/assignment/AssignmentValueAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/assignment/AssignmentValueAssert.java
index c78554b3395..2c93e7fcbe4 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/assignment/AssignmentValueAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/assignment/AssignmentValueAssert.java
@@ -22,6 +22,7 @@ import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.FunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.complex.CommonExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.LiteralExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.simple.ParameterMarkerExpressionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubqueryExpressionSegment;
@@ -58,6 +59,8 @@ public final class AssignmentValueAssert {
ExpressionAssert.assertSubqueryExpression(assertContext,
(SubqueryExpressionSegment) actual, expected.getSubquery());
} else if (actual instanceof FunctionSegment) {
ExpressionAssert.assertFunction(assertContext, (FunctionSegment)
actual, expected.getFunction());
+ } else if (actual instanceof CommonExpressionSegment) {
+ ExpressionAssert.assertCommonExpression(assertContext,
(CommonExpressionSegment) actual, expected.getCommonExpression());
}
}
}
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 63546ba9bdf..3b445433c35 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
@@ -851,7 +851,7 @@
</assignment-value>
<assignment-value>
<parameter-marker-expression parameter-index="2"
start-index="121" stop-index="128" />
- <literal-expression
value="{"rule":"null"}'::json" start-index="123"
stop-index="146" />
+ <common-expression
text="'{"rule":"null"}'::jsonb" start-index="123"
stop-index="146" />
</assignment-value>
</value>
</values>
@@ -946,7 +946,7 @@
<values>
<value>
<assignment-value>
- <common-expression text="null" />
+ <common-expression text="null" start-index="43"
stop-index="46"/>
</assignment-value>
</value>
</values>
@@ -960,8 +960,7 @@
<values>
<value>
<assignment-value>
- <!-- TODO StringLiteralValue should consider about
_binary/_utf8mb4-->
- <literal-expression value="BINARY'This is a binary value."
start-index="43" stop-index="74" />
+ <common-expression text="_BINARY'This is a binary value.'"
start-index="43" stop-index="74" />
</assignment-value>
</value>
</values>
@@ -1476,7 +1475,7 @@
<values>
<value>
<assignment-value>
- <literal-expression value="x'1234'" />
+ <common-expression text="x'1234'" start-index="51"
stop-index="57" />
</assignment-value>
</value>
</values>
@@ -1798,7 +1797,7 @@
<literal-expression value="1.2E+3" start-index="178"
stop-index="182" />
</assignment-value>
<assignment-value>
- <literal-expression value="185..188" start-index="185"
stop-index="188" />
+ <common-expression text="NULL" start-index="185"
stop-index="188" />
</assignment-value>
</value>
</values>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/replace.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/replace.xml
index 322bf7c6d3e..9321fe0acf6 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/replace.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/replace.xml
@@ -715,7 +715,7 @@
<values>
<value>
<assignment-value>
- <common-expression text="null" />
+ <common-expression text="null" start-index="44"
stop-index="47" />
</assignment-value>
</value>
</values>
@@ -729,8 +729,7 @@
<values>
<value>
<assignment-value>
- <!-- TODO StringLiteralValue should consider about
_binary/_utf8mb4-->
- <literal-expression value="BINARY'This is a binary value."
start-index="44" stop-index="75"/>
+ <common-expression text="_BINARY'This is a binary value.'"
start-index="44" stop-index="75"/>
</assignment-value>
</value>
</values>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/update.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/update.xml
index 81516c75e36..bb865bee585 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/update.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/dml/update.xml
@@ -212,7 +212,7 @@
<column name="rule" start-index="119" stop-index="122"
literal-start-index="134" literal-stop-index="137" />
<assignment-value>
<parameter-marker-expression parameter-index="3"
start-index="126" stop-index="133" />
- <literal-expression
value="{"rule2":"null2"}'::json" start-index="141"
stop-index="166" />
+ <common-expression
text="'{"rule2":"null2"}'::jsonb" start-index="141"
stop-index="166" />
</assignment-value>
</assignment>
<assignment start-index="136" stop-index="152"
literal-start-index="169" literal-stop-index="185">
@@ -484,7 +484,7 @@
<assignment start-index="19" stop-index="37"
literal-stop-index="37">
<column name="status" start-index="19" stop-index="24" />
<assignment-value>
- <common-expression text="status-?" literal-text="status-1"
start-index="28" stop-index="37" literal-start-index="28"
literal-stop-index="37"/>
+ <common-expression text="status - ?" literal-text="status
- 1" start-index="28" stop-index="37" literal-start-index="28"
literal-stop-index="37"/>
</assignment-value>
</assignment>
</set>
@@ -895,7 +895,7 @@
<assignment start-index="21" stop-index="41">
<column name="commission_pct" start-index="21" stop-index="34"
/>
<assignment-value>
- <literal-expression value="NULL" start-index="38"
stop-index="41" />
+ <common-expression text="NULL" start-index="38"
stop-index="41" />
</assignment-value>
</assignment>
</set>