You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/07/05 05:49:17 UTC
[shardingsphere] branch master updated: fix insert values with _binary (#18754)
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 <ch...@qq.com>
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>