You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/03/26 04:11:36 UTC
[shardingsphere] branch master updated: Add
OracleTableMetaDataLoader (#9825)
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 5d380b0 Add OracleTableMetaDataLoader (#9825)
5d380b0 is described below
commit 5d380b0f372d289c9158075ba052e85069df6036
Author: Liangda-w <66...@users.noreply.github.com>
AuthorDate: Fri Mar 26 05:10:58 2021 +0100
Add OracleTableMetaDataLoader (#9825)
---
.../builder/loader/dialect/MySQLTableMetaDataLoader.java | 2 +-
...eMetaDataLoader.java => OracleTableMetaDataLoader.java} | 12 ++++++------
....metadata.schema.builder.spi.DialectTableMetaDataLoader | 1 +
.../loader/dialect/MySQLTableMetaDataLoaderTest.java | 2 +-
...aLoaderTest.java => OracleTableMetaDataLoaderTest.java} | 14 +++++++-------
.../engine/raw/callback/RawSQLExecutorCallback.java | 1 -
6 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java
index 4d65977..2189063 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java
@@ -90,7 +90,7 @@ public final class MySQLTableMetaDataLoader implements DialectTableMetaDataLoade
boolean primaryKey = "PRI".equals(resultSet.getString("COLUMN_KEY"));
boolean generated = "auto_increment".equals(resultSet.getString("EXTRA"));
String collationName = resultSet.getString("COLLATION_NAME");
- boolean caseSensitive = null != collationName && collationName.endsWith("_ci");
+ boolean caseSensitive = null != collationName && !collationName.endsWith("_ci");
return new ColumnMetaData(columnName, dataTypeMap.get(dataType), primaryKey, generated, caseSensitive);
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/OracleTableMetaDataLoader.java
similarity index 95%
copy from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java
copy to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/OracleTableMetaDataLoader.java
index 4d65977..23bb1bd 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoader.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/OracleTableMetaDataLoader.java
@@ -38,11 +38,11 @@ import java.util.Map.Entry;
import java.util.stream.Collectors;
/**
- * Table meta data loader for MySQL.
+ * Table meta data loader for Oracle.
*/
-public final class MySQLTableMetaDataLoader implements DialectTableMetaDataLoader {
+public final class OracleTableMetaDataLoader implements DialectTableMetaDataLoader {
- private static final String TABLE_META_DATA_SQL = "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, EXTRA, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA=?";
+ private static final String TABLE_META_DATA_SQL = "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, IDENTITY_COLUMN, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA=?";
private static final String TABLE_META_DATA_SQL_WITH_EXISTED_TABLES = TABLE_META_DATA_SQL + " AND TABLE_NAME NOT IN (%s)";
@@ -88,9 +88,9 @@ public final class MySQLTableMetaDataLoader implements DialectTableMetaDataLoade
String columnName = resultSet.getString("COLUMN_NAME");
String dataType = resultSet.getString("DATA_TYPE");
boolean primaryKey = "PRI".equals(resultSet.getString("COLUMN_KEY"));
- boolean generated = "auto_increment".equals(resultSet.getString("EXTRA"));
+ boolean generated = "auto_increment".equals(resultSet.getString("IDENTITY_COLUMN"));
String collationName = resultSet.getString("COLLATION_NAME");
- boolean caseSensitive = null != collationName && collationName.endsWith("_ci");
+ boolean caseSensitive = null != collationName && collationName.endsWith("_CS");
return new ColumnMetaData(columnName, dataTypeMap.get(dataType), primaryKey, generated, caseSensitive);
}
@@ -125,6 +125,6 @@ public final class MySQLTableMetaDataLoader implements DialectTableMetaDataLoade
@Override
public String getDatabaseType() {
- return "MySQL";
+ return "Oracle";
}
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.DialectTableMetaDataLoader b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.DialectTableMetaDataLoader
index eb9c0dd..f8ce153 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.DialectTableMetaDataLoader
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.metadata.schema.builder.spi.DialectTableMetaDataLoader
@@ -16,5 +16,6 @@
#
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.MySQLTableMetaDataLoader
+org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.OracleTableMetaDataLoader
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.PostgreSQLTableMetaDataLoader
org.apache.shardingsphere.infra.metadata.schema.builder.loader.dialect.SQLServerTableMetaDataLoader
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java
index 80d56e7..c359774 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java
@@ -93,7 +93,7 @@ public final class MySQLTableMetaDataLoaderTest {
when(result.getString("DATA_TYPE")).thenReturn("int", "varchar");
when(result.getString("COLUMN_KEY")).thenReturn("PRI", "");
when(result.getString("EXTRA")).thenReturn("auto_increment", "");
- when(result.getString("COLLATION_NAME")).thenReturn("utf8_general_ci", "utf8");
+ when(result.getString("COLLATION_NAME")).thenReturn("utf8", "utf8_general_ci");
return result;
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/OracleTableMetaDataLoaderTest.java
similarity index 90%
copy from shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java
copy to shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/OracleTableMetaDataLoaderTest.java
index 80d56e7..61845d9 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/MySQLTableMetaDataLoaderTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/dialect/OracleTableMetaDataLoaderTest.java
@@ -37,7 +37,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class MySQLTableMetaDataLoaderTest {
+public final class OracleTableMetaDataLoaderTest {
@BeforeClass
public static void setUp() {
@@ -49,7 +49,7 @@ public final class MySQLTableMetaDataLoaderTest {
DataSource dataSource = mockDataSource();
ResultSet resultSet = mockTableMetaDataResultSet();
when(dataSource.getConnection().prepareStatement(
- "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, EXTRA, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA=?").executeQuery()).thenReturn(resultSet);
+ "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, IDENTITY_COLUMN, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA=?").executeQuery()).thenReturn(resultSet);
ResultSet indexResultSet = mockIndexMetaDataResultSet();
when(dataSource.getConnection().prepareStatement(
"SELECT TABLE_NAME, INDEX_NAME FROM information_schema.statistics WHERE TABLE_SCHEMA=? and TABLE_NAME IN ('tbl')").executeQuery()).thenReturn(indexResultSet);
@@ -61,7 +61,7 @@ public final class MySQLTableMetaDataLoaderTest {
DataSource dataSource = mockDataSource();
ResultSet resultSet = mockTableMetaDataResultSet();
when(dataSource.getConnection().prepareStatement(
- "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, EXTRA, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA=? AND TABLE_NAME NOT IN ('existed_tbl')")
+ "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_KEY, IDENTITY_COLUMN, COLLATION_NAME FROM information_schema.columns WHERE TABLE_SCHEMA=? AND TABLE_NAME NOT IN ('existed_tbl')")
.executeQuery()).thenReturn(resultSet);
ResultSet indexResultSet = mockIndexMetaDataResultSet();
when(dataSource.getConnection().prepareStatement(
@@ -92,8 +92,8 @@ public final class MySQLTableMetaDataLoaderTest {
when(result.getString("COLUMN_NAME")).thenReturn("id", "name");
when(result.getString("DATA_TYPE")).thenReturn("int", "varchar");
when(result.getString("COLUMN_KEY")).thenReturn("PRI", "");
- when(result.getString("EXTRA")).thenReturn("auto_increment", "");
- when(result.getString("COLLATION_NAME")).thenReturn("utf8_general_ci", "utf8");
+ when(result.getString("IDENTITY_COLUMN")).thenReturn("auto_increment", "");
+ when(result.getString("COLLATION_NAME")).thenReturn("BINARY_CS", "BINARY_CI");
return result;
}
@@ -107,11 +107,11 @@ public final class MySQLTableMetaDataLoaderTest {
private DialectTableMetaDataLoader getTableMetaDataLoader() {
for (DialectTableMetaDataLoader each : ShardingSphereServiceLoader.getSingletonServiceInstances(DialectTableMetaDataLoader.class)) {
- if ("MySQL".equals(each.getDatabaseType())) {
+ if ("Oracle".equals(each.getDatabaseType())) {
return each;
}
}
- throw new IllegalStateException("Can not find MySQLTableMetaDataLoader");
+ throw new IllegalStateException("Can not find OracleTableMetaDataLoader");
}
private void assertTableMetaDataMap(final Map<String, TableMetaData> actual) {
diff --git a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/callback/RawSQLExecutorCallback.java b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/callback/RawSQLExecutorCallback.java
index 0a3a83a..1e076da 100644
--- a/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/callback/RawSQLExecutorCallback.java
+++ b/shardingsphere-infra/shardingsphere-infra-executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/engine/raw/callback/RawSQLExecutorCallback.java
@@ -18,7 +18,6 @@
package org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.callback;
import com.google.common.base.Preconditions;
-import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorCallback;
import org.apache.shardingsphere.infra.executor.sql.execute.engine.raw.RawSQLExecutionUnit;
import org.apache.shardingsphere.infra.executor.sql.execute.result.ExecuteResult;