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 2e8f6048b1a Remove default SQLFederationColumnTypeConverter's impl
(#37306)
2e8f6048b1a is described below
commit 2e8f6048b1a9098c0d111a3a29530e4f14cc0e19
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Dec 9 10:52:41 2025 +0800
Remove default SQLFederationColumnTypeConverter's impl (#37306)
* Remove default SQLFederationColumnTypeConverter's impl
* Remove default SQLFederationColumnTypeConverter's impl
---
.../resultset/SQLFederationResultSet.java | 4 +--
.../resultset/SQLFederationResultSetMetaData.java | 5 ++--
.../SQLFederationColumnTypeConverter.java | 8 ++----
.../impl/OpenGaussColumnTypeConverter.java | 31 ----------------------
.../converter/impl/OracleColumnTypeConverter.java | 31 ----------------------
.../impl/PostgreSQLColumnTypeConverter.java | 31 ----------------------
...tset.converter.SQLFederationColumnTypeConverter | 3 ---
.../SQLFederationColumnTypeConverterFixture.java | 11 ++++++++
8 files changed, 18 insertions(+), 106 deletions(-)
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSet.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSet.java
index fd5423a7827..922e99216b4 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSet.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSet.java
@@ -87,7 +87,7 @@ public final class SQLFederationResultSet extends
AbstractUnsupportedOperationSQ
final RelDataType resultColumnType, final
String processId) {
this.enumerator = enumerator;
this.processId = processId;
- columnTypeConverter =
DatabaseTypedSPILoader.getService(SQLFederationColumnTypeConverter.class,
databaseType);
+ columnTypeConverter =
DatabaseTypedSPILoader.findService(SQLFederationColumnTypeConverter.class,
databaseType).orElse(null);
columnLabelAndIndexes = new
CaseInsensitiveMap<>(expandProjections.size(), 1F);
Map<Integer, String> indexAndColumnLabels = new
CaseInsensitiveMap<>(expandProjections.size(), 1F);
handleColumnLabelAndIndex(columnLabelAndIndexes, indexAndColumnLabels,
expandProjections);
@@ -494,7 +494,7 @@ public final class SQLFederationResultSet extends
AbstractUnsupportedOperationSQ
ShardingSpherePreconditions.checkNotContains(INVALID_FEDERATION_TYPES,
type, () -> new SQLFeatureNotSupportedException(String.format("Get value from
`%s`", type.getName())));
Object result = currentRows[columnIndex - 1];
wasNull = null == result;
- return columnTypeConverter.convertColumnValue(result);
+ return null == columnTypeConverter ? result :
columnTypeConverter.convertColumnValue(result);
}
private Object getCalendarValue(final int columnIndex) {
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSetMetaData.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSetMetaData.java
index d21218b359d..afb2a7f17f3 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSetMetaData.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/SQLFederationResultSetMetaData.java
@@ -152,13 +152,14 @@ public final class SQLFederationResultSetMetaData extends
SQLFederationWrapperAd
if (relDataType instanceof JavaType &&
BigInteger.class.isAssignableFrom(((JavaType) relDataType).getJavaClass())) {
return SqlType.BIGINT.id;
}
- return
columnTypeConverter.convertColumnType(relDataType.getSqlTypeName());
+ return null == columnTypeConverter ?
relDataType.getSqlTypeName().getJdbcOrdinal() :
columnTypeConverter.convertColumnType(relDataType.getSqlTypeName());
}
@Override
public String getColumnTypeName(final int column) {
SqlTypeName originalSqlTypeName =
resultColumnType.getFieldList().get(column - 1).getType().getSqlTypeName();
- SqlTypeName convertSqlTypeName =
SqlTypeName.getNameForJdbcType(columnTypeConverter.convertColumnType(originalSqlTypeName));
+ SqlTypeName convertSqlTypeName = SqlTypeName.getNameForJdbcType(
+ null == columnTypeConverter ?
originalSqlTypeName.getJdbcOrdinal() :
columnTypeConverter.convertColumnType(originalSqlTypeName));
return null == convertSqlTypeName ? originalSqlTypeName.getName() :
convertSqlTypeName.getName();
}
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/SQLFederationColumnTypeConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/SQLFederationColumnTypeConverter.java
index 394416dc8e6..65562b0c59c 100644
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/SQLFederationColumnTypeConverter.java
+++
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/SQLFederationColumnTypeConverter.java
@@ -33,9 +33,7 @@ public interface SQLFederationColumnTypeConverter extends
DatabaseTypedSPI {
* @param columnValue column value
* @return converted column value
*/
- default Object convertColumnValue(Object columnValue) {
- return columnValue;
- }
+ Object convertColumnValue(Object columnValue);
/**
* Convert column type.
@@ -43,7 +41,5 @@ public interface SQLFederationColumnTypeConverter extends
DatabaseTypedSPI {
* @param sqlTypeName column type
* @return converted column type
*/
- default int convertColumnType(SqlTypeName sqlTypeName) {
- return sqlTypeName.getJdbcOrdinal();
- }
+ int convertColumnType(SqlTypeName sqlTypeName);
}
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/OpenGaussColumnTypeConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/OpenGaussColumnTypeConverter.java
deleted file mode 100644
index b0cdf5f6764..00000000000
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/OpenGaussColumnTypeConverter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sqlfederation.resultset.converter.impl;
-
-import
org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter;
-
-/**
- * OpenGauss column type converter.
- */
-public final class OpenGaussColumnTypeConverter implements
SQLFederationColumnTypeConverter {
-
- @Override
- public String getDatabaseType() {
- return "openGauss";
- }
-}
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/OracleColumnTypeConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/OracleColumnTypeConverter.java
deleted file mode 100644
index da0af0796ff..00000000000
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/OracleColumnTypeConverter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sqlfederation.resultset.converter.impl;
-
-import
org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter;
-
-/**
- * Oracle column type converter.
- */
-public final class OracleColumnTypeConverter implements
SQLFederationColumnTypeConverter {
-
- @Override
- public String getDatabaseType() {
- return "Oracle";
- }
-}
diff --git
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/PostgreSQLColumnTypeConverter.java
b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/PostgreSQLColumnTypeConverter.java
deleted file mode 100644
index b3e4fa66f58..00000000000
---
a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/resultset/converter/impl/PostgreSQLColumnTypeConverter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sqlfederation.resultset.converter.impl;
-
-import
org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter;
-
-/**
- * PostgreSQL column type converter.
- */
-public final class PostgreSQLColumnTypeConverter implements
SQLFederationColumnTypeConverter {
-
- @Override
- public String getDatabaseType() {
- return "PostgreSQL";
- }
-}
diff --git
a/kernel/sql-federation/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter
b/kernel/sql-federation/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter
index 20c93fcf59d..eced0c7ac36 100644
---
a/kernel/sql-federation/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter
+++
b/kernel/sql-federation/core/src/main/resources/META-INF/services/org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter
@@ -16,6 +16,3 @@
#
org.apache.shardingsphere.sqlfederation.resultset.converter.impl.MySQLColumnTypeConverter
-org.apache.shardingsphere.sqlfederation.resultset.converter.impl.OracleColumnTypeConverter
-org.apache.shardingsphere.sqlfederation.resultset.converter.impl.OpenGaussColumnTypeConverter
-org.apache.shardingsphere.sqlfederation.resultset.converter.impl.PostgreSQLColumnTypeConverter
diff --git
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/resultset/fixture/converter/SQLFederationColumnTypeConverterFixture.java
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/resultset/fixture/converter/SQLFederationColumnTypeConverterFixture.java
index 63831d5037d..802b14019e8 100644
---
a/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/resultset/fixture/converter/SQLFederationColumnTypeConverterFixture.java
+++
b/kernel/sql-federation/core/src/test/java/org/apache/shardingsphere/sqlfederation/resultset/fixture/converter/SQLFederationColumnTypeConverterFixture.java
@@ -17,10 +17,21 @@
package org.apache.shardingsphere.sqlfederation.resultset.fixture.converter;
+import org.apache.calcite.sql.type.SqlTypeName;
import
org.apache.shardingsphere.sqlfederation.resultset.converter.SQLFederationColumnTypeConverter;
public final class SQLFederationColumnTypeConverterFixture implements
SQLFederationColumnTypeConverter {
+ @Override
+ public Object convertColumnValue(final Object columnValue) {
+ return columnValue;
+ }
+
+ @Override
+ public int convertColumnType(final SqlTypeName sqlTypeName) {
+ return sqlTypeName.getJdbcOrdinal();
+ }
+
@Override
public String getDatabaseType() {
return "FIXTURE";