This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 ea9aceaa6e7 Refactor ExtractArgExpressionConverter (#37367)
ea9aceaa6e7 is described below
commit ea9aceaa6e7a3305a0a555e6250191513f8b416e
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Dec 12 17:58:21 2025 +0800
Refactor ExtractArgExpressionConverter (#37367)
* Refactor ExistsSubqueryExpressionConverter
* Refactor ExtractArgExpressionConverter
---
.../converter/segment/expression/ExpressionConverter.java | 2 +-
.../expression/impl/ExtractArgExpressionConverter.java | 10 ++--------
.../segment/expression/ExpressionConverterTest.java | 4 ++--
.../expression/impl/ExtractArgExpressionConverterTest.java | 12 +-----------
4 files changed, 6 insertions(+), 22 deletions(-)
diff --git
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
index eade8eb6f25..ac7d9516dda 100644
---
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
+++
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverter.java
@@ -139,7 +139,7 @@ public final class ExpressionConverter {
return TypeCastExpressionConverter.convert((TypeCastExpression)
segment);
}
if (segment instanceof ExtractArgExpression) {
- return
ExtractArgExpressionConverter.convert((ExtractArgExpression) segment);
+ return
Optional.of(ExtractArgExpressionConverter.convert((ExtractArgExpression)
segment));
}
if (segment instanceof MatchAgainstExpression) {
return MatchExpressionConverter.convert((MatchAgainstExpression)
segment);
diff --git
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
index 239fe4a5b14..3d2b00812c7 100644
---
a/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
+++
b/kernel/sql-federation/compiler/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverter.java
@@ -20,12 +20,9 @@ package
org.apache.shardingsphere.sqlfederation.compiler.sql.ast.converter.segme
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.calcite.sql.SqlIdentifier;
-import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.parser.SqlParserPos;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExtractArgExpression;
-import java.util.Optional;
-
/**
* Extract arg expression converter.
*/
@@ -38,10 +35,7 @@ public final class ExtractArgExpressionConverter {
* @param expression extract arg expression
* @return SQL node
*/
- public static Optional<SqlNode> convert(final ExtractArgExpression
expression) {
- if (null == expression) {
- return Optional.empty();
- }
- return Optional.of(new SqlIdentifier(expression.getText(),
SqlParserPos.ZERO));
+ public static SqlIdentifier convert(final ExtractArgExpression expression)
{
+ return new SqlIdentifier(expression.getText(), SqlParserPos.ZERO);
}
}
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
index da65d93e8e2..a5f12a7a9eb 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/ExpressionConverterTest.java
@@ -160,9 +160,9 @@ class ExpressionConverterTest {
SqlNode expectedTypeCastNode = mock(SqlNode.class);
TypeCastExpression typeCastExpression = new TypeCastExpression(0, 0,
"text", literalSegment, "int");
when(TypeCastExpressionConverter.convert(typeCastExpression)).thenReturn(Optional.of(expectedTypeCastNode));
- SqlNode expectedExtractNode = mock(SqlNode.class);
+ SqlIdentifier expectedExtractNode = mock(SqlIdentifier.class);
ExtractArgExpression extractArgExpression = new
ExtractArgExpression(0, 0, "extract");
-
when(ExtractArgExpressionConverter.convert(extractArgExpression)).thenReturn(Optional.of(expectedExtractNode));
+
when(ExtractArgExpressionConverter.convert(extractArgExpression)).thenReturn(expectedExtractNode);
SqlNode expectedMatchNode = mock(SqlNode.class);
MatchAgainstExpression matchAgainstExpression = new
MatchAgainstExpression(0, 0, literalSegment, "search", "text");
when(MatchExpressionConverter.convert(matchAgainstExpression)).thenReturn(Optional.of(expectedMatchNode));
diff --git
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
index b74434e3f34..353728986e0 100644
---
a/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
+++
b/kernel/sql-federation/compiler/src/test/java/org/apache/shardingsphere/sqlfederation/compiler/sql/ast/converter/segment/expression/impl/ExtractArgExpressionConverterTest.java
@@ -17,26 +17,16 @@
package
org.apache.shardingsphere.sqlfederation.compiler.sql.ast.converter.segment.expression.impl;
-import org.apache.calcite.sql.SqlIdentifier;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.ExtractArgExpression;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
class ExtractArgExpressionConverterTest {
- @Test
- void assertConvertReturnsEmptyForNullExpression() {
- assertFalse(ExtractArgExpressionConverter.convert(null).isPresent());
- }
-
@Test
void assertConvertExtractArgExpression() {
- SqlIdentifier actual = (SqlIdentifier)
ExtractArgExpressionConverter.convert(new ExtractArgExpression(0, 0,
"DAY")).orElse(null);
- assertNotNull(actual);
- assertThat(actual.getSimple(), is("DAY"));
+ assertThat(ExtractArgExpressionConverter.convert(new
ExtractArgExpression(0, 0, "DAY")).getSimple(), is("DAY"));
}
}