This is an automated email from the ASF dual-hosted git repository.
panjuan 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 8c5017645fe Move NullsOrderType to DatabaseType SPI (#27366)
8c5017645fe is described below
commit 8c5017645fef64b7e74f8f7ecc6b2200089d0d4b
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jul 22 13:46:38 2023 +0800
Move NullsOrderType to DatabaseType SPI (#27366)
---
.../token/generator/EncryptIndexColumnTokenGenerator.java | 2 +-
.../token/generator/EncryptOrderByItemTokenGenerator.java | 2 +-
.../generator/EncryptPredicateColumnTokenGenerator.java | 2 +-
.../generator/EncryptOrderByItemTokenGeneratorTest.java | 2 +-
.../sharding/merge/dql/ShardingDQLResultMerger.java | 2 +-
.../sharding/merge/dql/groupby/GroupByRowComparator.java | 2 +-
.../sharding/merge/dql/orderby/CompareUtils.java | 2 +-
.../sharding/merge/dql/orderby/OrderByValue.java | 2 +-
.../token/generator/impl/ProjectionsTokenGenerator.java | 2 +-
.../sharding/merge/dql/ShardingDQLResultMergerTest.java | 2 +-
.../merge/dql/groupby/GroupByMemoryMergedResultTest.java | 2 +-
.../merge/dql/groupby/GroupByRowComparatorTest.java | 2 +-
.../merge/dql/groupby/GroupByStreamMergedResultTest.java | 2 +-
.../sharding/merge/dql/groupby/GroupByValueTest.java | 2 +-
.../sharding/merge/dql/orderby/CompareUtilsTest.java | 2 +-
.../merge/dql/orderby/OrderByStreamMergedResultTest.java | 2 +-
.../sharding/merge/dql/orderby/OrderByValueTest.java | 2 +-
.../rewrite/token/ShardingRemoveTokenGeneratorTest.java | 2 +-
.../segment/select/orderby/engine/OrderByContextEngine.java | 2 +-
.../segment/select/projection/impl/ColumnProjection.java | 2 +-
.../segment/select/projection/util/ProjectionUtils.java | 2 +-
.../select/groupby/engine/GroupByContextEngineTest.java | 2 +-
.../select/orderby/engine/OrderByContextEngineTest.java | 2 +-
.../segment/select/pagination/PaginationContextTest.java | 2 +-
.../select/projection/engine/ProjectionEngineTest.java | 2 +-
.../projection/engine/ProjectionsContextEngineTest.java | 2 +-
.../select/projection/impl/AggregationProjectionTest.java | 2 +-
.../binder/statement/dml/SelectStatementContextTest.java | 4 ++--
.../core/type/fixture/InfraBranchDatabaseTypeFixture.java | 8 +++++++-
.../core/type/fixture/InfraTrunkDatabaseTypeFixture.java | 8 +++++++-
.../shardingsphere/infra/database/spi/DatabaseType.java | 10 +++++++++-
.../shardingsphere/infra/database/h2/H2DatabaseType.java | 8 +++++++-
.../infra/database/h2/H2DatabaseTypeTest.java | 2 +-
.../infra/database/mariadb/MariaDBDatabaseType.java | 8 +++++++-
.../infra/database/mariadb/MariaDBDatabaseTypeTest.java | 2 +-
.../infra/database/mysql/MySQLDatabaseType.java | 8 +++++++-
.../infra/database/mysql/MySQLDatabaseTypeTest.java | 2 +-
.../infra/database/opengauss/OpenGaussDatabaseType.java | 8 +++++++-
.../infra/database/opengauss/OpenGaussDatabaseTypeTest.java | 2 +-
.../infra/database/oracle/OracleDatabaseType.java | 8 +++++++-
.../infra/database/oracle/OracleDatabaseTypeTest.java | 2 +-
.../infra/database/postgresql/PostgreSQLDatabaseType.java | 8 +++++++-
.../database/postgresql/PostgreSQLDatabaseTypeTest.java | 2 +-
.../infra/database/sql92/SQL92DatabaseType.java | 8 +++++++-
.../infra/database/sql92/SQL92DatabaseTypeTest.java | 2 +-
.../infra/database/sqlserver/SQLServerDatabaseType.java | 8 +++++++-
.../infra/database/sqlserver/SQLServerDatabaseTypeTest.java | 2 +-
.../token/pojo/generic/SubstitutableColumnNameToken.java | 2 +-
.../pojo/generic/SubstitutableColumnNameTokenTest.java | 2 +-
.../shardingsphere/infra/util}/enums/NullsOrderType.java | 13 +++++++++++--
.../infra/util/{quote => enums}/QuoteCharacter.java | 2 +-
.../infra/util/{quote => enums}/QuoteCharacterTest.java | 2 +-
.../segment/orderby/item/ColumnOrderByItemConverter.java | 2 +-
.../orderby/item/ExpressionOrderByItemConverter.java | 2 +-
.../segment/orderby/item/IndexOrderByItemConverter.java | 2 +-
.../visitor/statement/OpenGaussStatementVisitor.java | 2 +-
.../oracle/visitor/statement/OracleStatementVisitor.java | 2 +-
.../visitor/statement/PostgreSQLStatementVisitor.java | 2 +-
.../core/database/fixture/ParserDatabaseTypeFixture.java | 8 +++++++-
.../segment/dml/order/item/ColumnOrderByItemSegment.java | 2 +-
.../dml/order/item/ExpressionOrderByItemSegment.java | 2 +-
.../segment/dml/order/item/IndexOrderByItemSegment.java | 2 +-
.../common/segment/dml/order/item/OrderByItemSegment.java | 10 ++++------
.../segment/dml/order/item/TextOrderByItemSegment.java | 2 +-
.../parser/sql/common/value/identifier/IdentifierValue.java | 2 +-
.../executor/variable/charset/MySQLSetCharsetExecutor.java | 2 +-
.../executor/variable/charset/PostgreSQLCharacterSets.java | 2 +-
.../fixture/infra/database/type/MockedDatabaseType.java | 8 +++++++-
68 files changed, 162 insertions(+), 75 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
index 33aa30ceb1f..7f734fdb656 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptIndexColumnTokenGenerator.java
@@ -30,7 +30,7 @@ import
org.apache.shardingsphere.infra.binder.type.IndexAvailable;
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQLTokenGenerator;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
index 4e1f60a86a2..83637d99b60 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
@@ -33,7 +33,7 @@ import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.CollectionSQL
import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaMetaDataAware;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ColumnOrderByItemSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
index 69a7c354529..d31d646cf87 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
@@ -34,7 +34,7 @@ import
org.apache.shardingsphere.infra.rewrite.sql.token.generator.aware.SchemaM
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.SubstitutableColumnNameToken;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
index 0bbc278770a..8dab5102500 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGeneratorTest.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.binder.segment.table.TablesContext;
import
org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ColumnOrderByItemSegment;
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
index ddc250ae039..aabcc5a41ba 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMerger.java
@@ -37,7 +37,7 @@ import
org.apache.shardingsphere.sharding.merge.dql.orderby.OrderByStreamMergedR
import
org.apache.shardingsphere.sharding.merge.dql.pagination.LimitDecoratorMergedResult;
import
org.apache.shardingsphere.sharding.merge.dql.pagination.RowNumberDecoratorMergedResult;
import
org.apache.shardingsphere.sharding.merge.dql.pagination.TopAndRowNumberDecoratorMergedResult;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.IndexOrderByItemSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparator.java
index f39d8ff8e0c..30c86e0fe38 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparator.java
@@ -55,7 +55,7 @@ public final class GroupByRowComparator implements
Comparator<MemoryQueryResultR
Object orderValue2 = o2.getCell(each.getIndex());
ShardingSpherePreconditions.checkState(null == orderValue2 ||
orderValue2 instanceof Comparable, () -> new
NotImplementComparableValueException("Order by", orderValue2));
int result = CompareUtils.compareTo((Comparable) orderValue1,
(Comparable) orderValue2, each.getSegment().getOrderDirection(),
-
each.getSegment().getNullsOrderType(selectStatementContext.getDatabaseType().getType()),
valueCaseSensitive.get(each.getIndex()));
+
each.getSegment().getNullsOrderType(selectStatementContext.getDatabaseType()),
valueCaseSensitive.get(each.getIndex()));
if (0 != result) {
return result;
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtils.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtils.java
index 88842f63d1c..227e58f7b8f 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtils.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtils.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.merge.dql.orderby;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
/**
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java
index 7c1b5b1eed9..13d81c6cd42 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValue.java
@@ -118,7 +118,7 @@ public final class OrderByValue implements
Comparable<OrderByValue> {
int i = 0;
for (OrderByItem each : orderByItems) {
int result = CompareUtils.compareTo(orderValues.get(i),
orderByValue.orderValues.get(i), each.getSegment().getOrderDirection(),
-
each.getSegment().getNullsOrderType(selectStatementContext.getDatabaseType().getType()),
orderValuesCaseSensitive.get(i));
+
each.getSegment().getNullsOrderType(selectStatementContext.getDatabaseType()),
orderValuesCaseSensitive.get(i));
if (0 != result) {
return result;
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ProjectionsTokenGenerator.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ProjectionsTokenGenerator.java
index 377db5803e0..78423c722e1 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ProjectionsTokenGenerator.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/generator/impl/ProjectionsTokenGenerator.java
@@ -34,7 +34,7 @@ import
org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
import
org.apache.shardingsphere.sharding.rewrite.token.generator.IgnoreForSingleRoute;
import org.apache.shardingsphere.sharding.rewrite.token.pojo.ProjectionsToken;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.extractor.TableExtractor;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
index f41b83d1125..359b505a61f 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/ShardingDQLResultMergerTest.java
@@ -40,7 +40,7 @@ import
org.apache.shardingsphere.sharding.merge.dql.pagination.LimitDecoratorMer
import
org.apache.shardingsphere.sharding.merge.dql.pagination.RowNumberDecoratorMergedResult;
import
org.apache.shardingsphere.sharding.merge.dql.pagination.TopAndRowNumberDecoratorMergedResult;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
index 933a2586bab..ddb84b3778c 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByMemoryMergedResultTest.java
@@ -33,7 +33,7 @@ import
org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.AggregationProjectionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
index 9cb2c84a70e..650cba71751 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByRowComparatorTest.java
@@ -27,7 +27,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.GroupBySegment;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
index fdddbb5048b..7397cadeb4c 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByStreamMergedResultTest.java
@@ -34,7 +34,7 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.AggregationProjectionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByValueTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByValueTest.java
index 7a70b3b56b5..80646e28d00 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByValueTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/groupby/GroupByValueTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.sharding.merge.dql.groupby;
import
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem;
import
org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResult;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.IndexOrderByItemSegment;
import org.junit.jupiter.api.BeforeEach;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtilsTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtilsTest.java
index 4a9336e5ee9..b6ba5efbfbe 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtilsTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/CompareUtilsTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.sharding.merge.dql.orderby;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import org.junit.jupiter.api.Test;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
index 029cae71bb7..ebdd4363360 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByStreamMergedResultTest.java
@@ -35,7 +35,7 @@ import
org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sharding.merge.dql.ShardingDQLResultMerger;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.OrderBySegment;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
index 52964b4c932..40c4c3666b7 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/merge/dql/orderby/OrderByValueTest.java
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRule
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingRemoveTokenGeneratorTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingRemoveTokenGeneratorTest.java
index 096f73402bf..ce52a199fab 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingRemoveTokenGeneratorTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rewrite/token/ShardingRemoveTokenGeneratorTest.java
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.generic.RemoveToken;
import
org.apache.shardingsphere.sharding.rewrite.token.generator.impl.ShardingRemoveTokenGenerator;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.AggregationDistinctProjectionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngine.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngine.java
index 25fd9ae7a4c..17c8a42f6d5 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngine.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngine.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.infra.binder.segment.select.orderby.engine;
import
org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext;
import
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext;
import
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnProjectionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionSegment;
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ColumnProjection.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ColumnProjection.java
index 4ab53d5accf..fad58095b5a 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ColumnProjection.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ColumnProjection.java
@@ -23,7 +23,7 @@ import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import
org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import java.util.Optional;
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtils.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtils.java
index 9db7d17877b..5f05889ed86 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtils.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtils.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.infra.database.opengauss.OpenGaussDatabaseType;
import org.apache.shardingsphere.infra.database.oracle.OracleDatabaseType;
import
org.apache.shardingsphere.infra.database.postgresql.PostgreSQLDatabaseType;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
/**
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/groupby/engine/GroupByContextEngineTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/groupby/engine/GroupByContextEngineTest.java
index aaba48f296c..057f84323dd 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/groupby/engine/GroupByContextEngineTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/groupby/engine/GroupByContextEngineTest.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.infra.binder.segment.select.groupby.engine;
import
org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext;
import
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.GroupBySegment;
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngineTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngineTest.java
index 980d2fe8c4c..5abfbb5cb39 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngineTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/orderby/engine/OrderByContextEngineTest.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.infra.binder.segment.select.orderby.engine;
import
org.apache.shardingsphere.infra.binder.segment.select.groupby.GroupByContext;
import
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByContext;
import
org.apache.shardingsphere.infra.binder.segment.select.orderby.OrderByItem;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ColumnProjectionSegment;
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/PaginationContextTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/PaginationContextTest.java
index c35c178d163..c4c096a58d6 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/PaginationContextTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/pagination/PaginationContextTest.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.item.ProjectionsSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.GroupBySegment;
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java
index ce9fec48757..33d569c4d1c 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngineTest.java
@@ -28,7 +28,7 @@ import
org.apache.shardingsphere.infra.database.core.DefaultDatabase;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import org.apache.shardingsphere.infra.exception.SchemaNotFoundException;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.JoinType;
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java
index edc09148de3..f6c1770fc87 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionsContextEngineTest.java
@@ -30,7 +30,7 @@ import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphere
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.subquery.SubquerySegment;
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/AggregationProjectionTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/AggregationProjectionTest.java
index 0b551b8847f..873ee6cbff2 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/AggregationProjectionTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/AggregationProjectionTest.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.infra.binder.segment.select.projection.impl;
import
org.apache.shardingsphere.infra.binder.segment.select.projection.Projection;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
diff --git
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContextTest.java
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContextTest.java
index c7577a61377..b3e39e8fec3 100644
---
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContextTest.java
+++
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/statement/dml/SelectStatementContextTest.java
@@ -24,9 +24,9 @@ import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.rule.identifier.type.TableContainedRule;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.enums.ParameterMarkerType;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
diff --git
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraBranchDatabaseTypeFixture.java
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraBranchDatabaseTypeFixture.java
index f84bf4158f5..19c4fd17310 100644
---
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraBranchDatabaseTypeFixture.java
+++
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraBranchDatabaseTypeFixture.java
@@ -19,7 +19,8 @@ package
org.apache.shardingsphere.infra.database.core.type.fixture;
import org.apache.shardingsphere.infra.database.spi.DataSourceMetaData;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import java.util.Collection;
@@ -35,6 +36,11 @@ public final class InfraBranchDatabaseTypeFixture implements
DatabaseType {
return QuoteCharacter.BACK_QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return Collections.singleton("jdbc:infra.fixture:branch:");
diff --git
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraTrunkDatabaseTypeFixture.java
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraTrunkDatabaseTypeFixture.java
index 7e7049bfac9..46855743f39 100644
---
a/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraTrunkDatabaseTypeFixture.java
+++
b/infra/database/core/src/test/java/org/apache/shardingsphere/infra/database/core/type/fixture/InfraTrunkDatabaseTypeFixture.java
@@ -19,7 +19,8 @@ package
org.apache.shardingsphere.infra.database.core.type.fixture;
import org.apache.shardingsphere.infra.database.spi.DataSourceMetaData;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Collection;
import java.util.Collections;
@@ -33,6 +34,11 @@ public final class InfraTrunkDatabaseTypeFixture implements
DatabaseType {
return QuoteCharacter.BACK_QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public boolean isReservedWord(final String identifier) {
return "SELECT".equalsIgnoreCase(identifier);
diff --git
a/infra/database/spi/src/main/java/org/apache/shardingsphere/infra/database/spi/DatabaseType.java
b/infra/database/spi/src/main/java/org/apache/shardingsphere/infra/database/spi/DatabaseType.java
index ab2fbdac9d5..db47ee60ff5 100644
---
a/infra/database/spi/src/main/java/org/apache/shardingsphere/infra/database/spi/DatabaseType.java
+++
b/infra/database/spi/src/main/java/org/apache/shardingsphere/infra/database/spi/DatabaseType.java
@@ -17,9 +17,10 @@
package org.apache.shardingsphere.infra.database.spi;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
import java.sql.Connection;
import java.sql.SQLException;
@@ -40,6 +41,13 @@ public interface DatabaseType extends TypedSPI {
*/
QuoteCharacter getQuoteCharacter();
+ /**
+ * Get default nulls order type.
+ *
+ * @return default nulls order type
+ */
+ NullsOrderType getDefaultNullsOrderType();
+
/**
* Judge whether identifier is reserved word.
*
diff --git
a/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseType.java
b/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseType.java
index 561b590e324..48063f91f1d 100644
---
a/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseType.java
+++
b/infra/database/type/h2/src/main/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.h2;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import java.util.Collection;
@@ -36,6 +37,11 @@ public final class H2DatabaseType implements DatabaseType {
return QuoteCharacter.QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return Collections.singleton(String.format("jdbc:%s:",
getType().toLowerCase()));
diff --git
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseTypeTest.java
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseTypeTest.java
index 4fe551820e1..1c234fa093d 100644
---
a/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseTypeTest.java
+++
b/infra/database/type/h2/src/test/java/org/apache/shardingsphere/infra/database/h2/H2DatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.h2;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/mariadb/src/main/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseType.java
b/infra/database/type/mariadb/src/main/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseType.java
index 2188d65a33c..2a9e6a91389 100644
---
a/infra/database/type/mariadb/src/main/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseType.java
+++
b/infra/database/type/mariadb/src/main/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.mariadb;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import java.util.Collection;
@@ -36,6 +37,11 @@ public final class MariaDBDatabaseType implements
DatabaseType {
return QuoteCharacter.BACK_QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return Collections.singleton(String.format("jdbc:%s:",
getType().toLowerCase()));
diff --git
a/infra/database/type/mariadb/src/test/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseTypeTest.java
b/infra/database/type/mariadb/src/test/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseTypeTest.java
index 9fdba26f348..b0c20a32645 100644
---
a/infra/database/type/mariadb/src/test/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseTypeTest.java
+++
b/infra/database/type/mariadb/src/test/java/org/apache/shardingsphere/infra/database/mariadb/MariaDBDatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.mariadb;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseType.java
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseType.java
index c1195a9dcb5..673036d9274 100644
---
a/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseType.java
+++
b/infra/database/type/mysql/src/main/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.mysql;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Arrays;
import java.util.Collection;
@@ -66,6 +67,11 @@ public final class MySQLDatabaseType implements DatabaseType
{
return QuoteCharacter.BACK_QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public boolean isReservedWord(final String item) {
return RESERVED_WORDS.contains(item.toUpperCase());
diff --git
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseTypeTest.java
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseTypeTest.java
index e3c93e5c14c..1299b726ad1 100644
---
a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseTypeTest.java
+++
b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/MySQLDatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.mysql;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.hamcrest.CoreMatchers;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseType.java
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseType.java
index 93be37988eb..6352b4e26b2 100644
---
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseType.java
+++
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.opengauss;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Arrays;
import java.util.Collection;
@@ -62,6 +63,11 @@ public final class OpenGaussDatabaseType implements
DatabaseType {
return QuoteCharacter.QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.LAST;
+ }
+
@Override
public boolean isReservedWord(final String item) {
return RESERVED_WORDS.contains(item.toUpperCase());
diff --git
a/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseTypeTest.java
b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseTypeTest.java
index 399f55a02bc..85d1aa902a2 100644
---
a/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseTypeTest.java
+++
b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/OpenGaussDatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.opengauss;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseType.java
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseType.java
index 643a294571e..a24e5007649 100644
---
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseType.java
+++
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.oracle;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.sql.Connection;
import java.sql.SQLException;
@@ -47,6 +48,11 @@ public final class OracleDatabaseType implements
DatabaseType {
return QuoteCharacter.QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.LAST;
+ }
+
@Override
public boolean isReservedWord(final String item) {
return RESERVED_KEYWORDS.contains(item.toUpperCase());
diff --git
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseTypeTest.java
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseTypeTest.java
index f7447b42c50..6ab0664da25 100644
---
a/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseTypeTest.java
+++
b/infra/database/type/oracle/src/test/java/org/apache/shardingsphere/infra/database/oracle/OracleDatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.oracle;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseType.java
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseType.java
index 4f1aa12252b..a64d9b1dc07 100644
---
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseType.java
+++
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.postgresql;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Arrays;
import java.util.Collection;
@@ -58,6 +59,11 @@ public final class PostgreSQLDatabaseType implements
DatabaseType {
return QuoteCharacter.QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.LAST;
+ }
+
@Override
public boolean isReservedWord(final String item) {
return RESERVED_WORDS.contains(item.toUpperCase());
diff --git
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseTypeTest.java
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseTypeTest.java
index 8a86e2bf2dc..2f735dc18e4 100644
---
a/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseTypeTest.java
+++
b/infra/database/type/postgresql/src/test/java/org/apache/shardingsphere/infra/database/postgresql/PostgreSQLDatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.postgresql;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/sql92/src/main/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseType.java
b/infra/database/type/sql92/src/main/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseType.java
index a216d9e8181..3de3cb9e63d 100644
---
a/infra/database/type/sql92/src/main/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseType.java
+++
b/infra/database/type/sql92/src/main/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.sql92;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Collection;
import java.util.Collections;
@@ -34,6 +35,11 @@ public final class SQL92DatabaseType implements DatabaseType
{
return QuoteCharacter.QUOTE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return Collections.emptyList();
diff --git
a/infra/database/type/sql92/src/test/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseTypeTest.java
b/infra/database/type/sql92/src/test/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseTypeTest.java
index 9c3eade2d51..cdebacf5fc4 100644
---
a/infra/database/type/sql92/src/test/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseTypeTest.java
+++
b/infra/database/type/sql92/src/test/java/org/apache/shardingsphere/infra/database/sql92/SQL92DatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.sql92;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseType.java
b/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseType.java
index b43b624f9e5..ab9b9bce298 100644
---
a/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseType.java
+++
b/infra/database/type/sqlserver/src/main/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseType.java
@@ -18,7 +18,8 @@
package org.apache.shardingsphere.infra.database.sqlserver;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Arrays;
import java.util.Collection;
@@ -35,6 +36,11 @@ public final class SQLServerDatabaseType implements
DatabaseType {
return QuoteCharacter.BRACKETS;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return Arrays.asList("jdbc:microsoft:sqlserver:", "jdbc:sqlserver:");
diff --git
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseTypeTest.java
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseTypeTest.java
index f25a6663b45..798c7f0e1fb 100644
---
a/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseTypeTest.java
+++
b/infra/database/type/sqlserver/src/test/java/org/apache/shardingsphere/infra/database/sqlserver/SQLServerDatabaseTypeTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.infra.database.sqlserver;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
diff --git
a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
index d7af1492614..377dd0f0f85 100644
---
a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
+++
b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.infra.rewrite.sql.token.pojo.SQLToken;
import org.apache.shardingsphere.infra.rewrite.sql.token.pojo.Substitutable;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import java.util.Collection;
diff --git
a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameTokenTest.java
b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameTokenTest.java
index 4fa4edb1a2e..ebda2b7cdcc 100644
---
a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameTokenTest.java
+++
b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameTokenTest.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.Col
import
org.apache.shardingsphere.infra.binder.segment.select.projection.impl.SubqueryProjection;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import org.junit.jupiter.api.Test;
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/enums/NullsOrderType.java
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/enums/NullsOrderType.java
similarity index 78%
rename from
parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/enums/NullsOrderType.java
rename to
infra/util/src/main/java/org/apache/shardingsphere/infra/util/enums/NullsOrderType.java
index 1236b577c04..4162d49cbff 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/enums/NullsOrderType.java
+++
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/enums/NullsOrderType.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.sql.common.enums;
+package org.apache.shardingsphere.infra.util.enums;
/**
* Nulls order type.
@@ -30,5 +30,14 @@ public enum NullsOrderType {
/**
* Nulls last.
*/
- LAST
+ LAST;
+
+ /**
+ * Get reversed order type.
+ *
+ * @return reversed order type
+ */
+ public NullsOrderType getReversedOrderType() {
+ return this == FIRST ? LAST : FIRST;
+ }
}
diff --git
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/quote/QuoteCharacter.java
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/enums/QuoteCharacter.java
similarity index 98%
rename from
infra/util/src/main/java/org/apache/shardingsphere/infra/util/quote/QuoteCharacter.java
rename to
infra/util/src/main/java/org/apache/shardingsphere/infra/util/enums/QuoteCharacter.java
index 7915d70aae2..b7d6f9e916b 100644
---
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/quote/QuoteCharacter.java
+++
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/enums/QuoteCharacter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.util.quote;
+package org.apache.shardingsphere.infra.util.enums;
import com.google.common.base.Strings;
import lombok.Getter;
diff --git
a/infra/util/src/test/java/org/apache/shardingsphere/infra/util/quote/QuoteCharacterTest.java
b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/enums/QuoteCharacterTest.java
similarity index 98%
rename from
infra/util/src/test/java/org/apache/shardingsphere/infra/util/quote/QuoteCharacterTest.java
rename to
infra/util/src/test/java/org/apache/shardingsphere/infra/util/enums/QuoteCharacterTest.java
index 43072d2691d..497bdeef430 100644
---
a/infra/util/src/test/java/org/apache/shardingsphere/infra/util/quote/QuoteCharacterTest.java
+++
b/infra/util/src/test/java/org/apache/shardingsphere/infra/util/enums/QuoteCharacterTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.util.quote;
+package org.apache.shardingsphere.infra.util.enums;
import org.junit.jupiter.api.Test;
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ColumnOrderByItemConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ColumnOrderByItemConverter.java
index 562244bc8dd..191f83ea9ed 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ColumnOrderByItemConverter.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ColumnOrderByItemConverter.java
@@ -22,7 +22,7 @@ import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.SqlPostfixOperator;
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ColumnOrderByItemSegment;
import
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.SQLSegmentConverter;
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
index f18981a14ff..6431a62b978 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/ExpressionOrderByItemConverter.java
@@ -22,7 +22,7 @@ import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.SqlPostfixOperator;
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.ExpressionOrderByItemSegment;
import
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.SQLSegmentConverter;
import
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.expression.ExpressionConverter;
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/IndexOrderByItemConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/IndexOrderByItemConverter.java
index 896d29ae1e1..e68a9ffc183 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/IndexOrderByItemConverter.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/compiler/converter/segment/orderby/item/IndexOrderByItemConverter.java
@@ -23,7 +23,7 @@ import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.SqlPostfixOperator;
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
import org.apache.calcite.sql.parser.SqlParserPos;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item.IndexOrderByItemSegment;
import
org.apache.shardingsphere.sqlfederation.compiler.converter.segment.SQLSegmentConverter;
diff --git
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
index e77d9034bda..7f571efbe43 100644
---
a/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
+++
b/parser/sql/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/opengauss/visitor/statement/OpenGaussStatementVisitor.java
@@ -113,7 +113,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.OpenGaussStatementParser.Win
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.CombineType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.JoinType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.enums.ParameterMarkerType;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.ConstraintSegment;
diff --git
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
index f6e7a0732b7..f4c1b8ab72b 100644
---
a/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
+++
b/parser/sql/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/OracleStatementVisitor.java
@@ -83,7 +83,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.XmlTab
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.XmlTableFunctionContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.XmlTableOptionsContext;
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.enums.ParameterMarkerType;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.ConstraintSegment;
diff --git
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
index f2b349ddda1..5051eb1971e 100644
---
a/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
+++
b/parser/sql/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/PostgreSQLStatementVisitor.java
@@ -113,7 +113,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParserBas
import org.apache.shardingsphere.sql.parser.sql.common.enums.AggregationType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.CombineType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.JoinType;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.enums.ParameterMarkerType;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.ConstraintSegment;
diff --git
a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/fixture/ParserDatabaseTypeFixture.java
b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/fixture/ParserDatabaseTypeFixture.java
index 48b53cfa350..e2d2ae52ce4 100644
---
a/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/fixture/ParserDatabaseTypeFixture.java
+++
b/parser/sql/engine/src/test/java/org/apache/shardingsphere/sql/parser/core/database/fixture/ParserDatabaseTypeFixture.java
@@ -19,7 +19,8 @@ package
org.apache.shardingsphere.sql.parser.core.database.fixture;
import org.apache.shardingsphere.infra.database.spi.DataSourceMetaData;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Collection;
import java.util.Map;
@@ -31,6 +32,11 @@ public final class ParserDatabaseTypeFixture implements
DatabaseType {
return null;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return null;
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ColumnOrderByItemSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ColumnOrderByItemSegment.java
index bffe152a185..61591b2fc8e 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ColumnOrderByItemSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ColumnOrderByItemSegment.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item;
import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ExpressionOrderByItemSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ExpressionOrderByItemSegment.java
index 6dbcd313a4b..97ce5ac6805 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ExpressionOrderByItemSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/ExpressionOrderByItemSegment.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item;
import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/IndexOrderByItemSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/IndexOrderByItemSegment.java
index 9ac36c48f17..28a647f93c8 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/IndexOrderByItemSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/IndexOrderByItemSegment.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item;
import lombok.Getter;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
/**
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/OrderByItemSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/OrderByItemSegment.java
index e6015a80d4b..02296be6b14 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/OrderByItemSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/OrderByItemSegment.java
@@ -19,7 +19,8 @@ package
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.database.spi.DatabaseType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
@@ -55,13 +56,10 @@ public abstract class OrderByItemSegment implements
SQLSegment {
* @param databaseType database type
* @return nulls order type
*/
- public NullsOrderType getNullsOrderType(final String databaseType) {
+ public NullsOrderType getNullsOrderType(final DatabaseType databaseType) {
if (null != nullsOrderType) {
return nullsOrderType;
}
- if ("PostgreSQL".equals(databaseType) ||
"openGauss".equals(databaseType) || "Oracle".equals(databaseType)) {
- return OrderDirection.ASC == orderDirection ? NullsOrderType.LAST
: NullsOrderType.FIRST;
- }
- return OrderDirection.ASC == orderDirection ? NullsOrderType.FIRST :
NullsOrderType.LAST;
+ return OrderDirection.ASC == orderDirection ?
databaseType.getDefaultNullsOrderType() :
databaseType.getDefaultNullsOrderType().getReversedOrderType();
}
}
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/TextOrderByItemSegment.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/TextOrderByItemSegment.java
index dee1b8858b6..f107d374936 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/TextOrderByItemSegment.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/dml/order/item/TextOrderByItemSegment.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.sql.parser.sql.common.segment.dml.order.item;
-import org.apache.shardingsphere.sql.parser.sql.common.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
import org.apache.shardingsphere.sql.parser.sql.common.enums.OrderDirection;
/**
diff --git
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/value/identifier/IdentifierValue.java
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/value/identifier/IdentifierValue.java
index 07369fb1ed3..1c14fcf784b 100644
---
a/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/value/identifier/IdentifierValue.java
+++
b/parser/sql/statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/value/identifier/IdentifierValue.java
@@ -22,7 +22,7 @@ import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import org.apache.shardingsphere.sql.parser.sql.common.util.SQLUtils;
import org.apache.shardingsphere.sql.parser.sql.common.value.ValueASTNode;
diff --git
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/variable/charset/MySQLSetCharsetExecutor.java
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/variable/charset/MySQLSetCharsetExecutor.java
index f583e223aee..ed765f00cad 100644
---
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/variable/charset/MySQLSetCharsetExecutor.java
+++
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/variable/charset/MySQLSetCharsetExecutor.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.var
import org.apache.shardingsphere.db.protocol.mysql.constant.MySQLConstants;
import
org.apache.shardingsphere.dialect.mysql.exception.UnknownCharsetException;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import
org.apache.shardingsphere.proxy.backend.handler.admin.executor.variable.charset.CharsetVariableProvider;
import java.nio.charset.Charset;
diff --git
a/proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/variable/charset/PostgreSQLCharacterSets.java
b/proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/variable/charset/PostgreSQLCharacterSets.java
index 64f94af2aa1..693c8538e20 100644
---
a/proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/variable/charset/PostgreSQLCharacterSets.java
+++
b/proxy/backend/type/postgresql/src/main/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/variable/charset/PostgreSQLCharacterSets.java
@@ -17,7 +17,7 @@
package
org.apache.shardingsphere.proxy.backend.postgresql.handler.admin.executor.variable.charset;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
diff --git
a/test/fixture/infra/src/main/java/org/apache/shardingsphere/test/fixture/infra/database/type/MockedDatabaseType.java
b/test/fixture/infra/src/main/java/org/apache/shardingsphere/test/fixture/infra/database/type/MockedDatabaseType.java
index 7068d11afa6..7605ee88161 100644
---
a/test/fixture/infra/src/main/java/org/apache/shardingsphere/test/fixture/infra/database/type/MockedDatabaseType.java
+++
b/test/fixture/infra/src/main/java/org/apache/shardingsphere/test/fixture/infra/database/type/MockedDatabaseType.java
@@ -19,7 +19,8 @@ package
org.apache.shardingsphere.test.fixture.infra.database.type;
import org.apache.shardingsphere.infra.database.spi.DataSourceMetaData;
import org.apache.shardingsphere.infra.database.spi.DatabaseType;
-import org.apache.shardingsphere.infra.util.quote.QuoteCharacter;
+import org.apache.shardingsphere.infra.util.enums.NullsOrderType;
+import org.apache.shardingsphere.infra.util.enums.QuoteCharacter;
import java.util.Collection;
import java.util.Collections;
@@ -37,6 +38,11 @@ public final class MockedDatabaseType implements
DatabaseType {
return QuoteCharacter.NONE;
}
+ @Override
+ public NullsOrderType getDefaultNullsOrderType() {
+ return NullsOrderType.FIRST;
+ }
+
@Override
public Collection<String> getJdbcUrlPrefixes() {
return Collections.singleton("jdbc:fixture");