修正issue:IAFCGH

This commit is contained in:
inrgihc
2024-07-26 23:34:32 +08:00
parent 8f963b2da1
commit 658d3b669d
3 changed files with 10 additions and 5 deletions

View File

@@ -18,8 +18,8 @@ import com.gitee.dbswitch.schema.ColumnDescription;
import com.gitee.dbswitch.schema.ColumnMetaData; import com.gitee.dbswitch.schema.ColumnMetaData;
import com.gitee.dbswitch.schema.IndexDescription; import com.gitee.dbswitch.schema.IndexDescription;
import com.gitee.dbswitch.schema.IndexFieldMeta; import com.gitee.dbswitch.schema.IndexFieldMeta;
import com.gitee.dbswitch.schema.TableDescription;
import com.gitee.dbswitch.schema.SourceProperties; import com.gitee.dbswitch.schema.SourceProperties;
import com.gitee.dbswitch.schema.TableDescription;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.ResultSetMetaData; import java.sql.ResultSetMetaData;
@@ -48,6 +48,8 @@ public abstract class AbstractMetadataProvider
extends AbstractCommonProvider extends AbstractCommonProvider
implements MetadataProvider { implements MetadataProvider {
protected static final String[] TABLE_TYPES = new String[]{"TABLE", "VIEW", "PARTITIONED TABLE"};
protected String catalogName = null; protected String catalogName = null;
protected AbstractMetadataProvider(ProductFactoryProvider factoryProvider) { protected AbstractMetadataProvider(ProductFactoryProvider factoryProvider) {
@@ -75,9 +77,8 @@ public abstract class AbstractMetadataProvider
public List<TableDescription> queryTableList(Connection connection, String schemaName) { public List<TableDescription> queryTableList(Connection connection, String schemaName) {
List<TableDescription> ret = new ArrayList<>(); List<TableDescription> ret = new ArrayList<>();
Set<String> uniqueSet = new LinkedHashSet<>(); Set<String> uniqueSet = new LinkedHashSet<>();
String[] types = new String[]{"TABLE", "VIEW"};
try (ResultSet tables = connection.getMetaData() try (ResultSet tables = connection.getMetaData()
.getTables(catalogName, schemaName, "%", types)) { .getTables(catalogName, schemaName, "%", TABLE_TYPES)) {
while (tables.next()) { while (tables.next()) {
String tableName = tables.getString("TABLE_NAME"); String tableName = tables.getString("TABLE_NAME");
if (uniqueSet.contains(tableName)) { if (uniqueSet.contains(tableName)) {
@@ -103,7 +104,7 @@ public abstract class AbstractMetadataProvider
public TableDescription queryTableMeta(Connection connection, String schemaName, public TableDescription queryTableMeta(Connection connection, String schemaName,
String tableName) { String tableName) {
try (ResultSet tables = connection.getMetaData() try (ResultSet tables = connection.getMetaData()
.getTables(catalogName, schemaName, tableName, new String[]{"TABLE", "VIEW"})) { .getTables(catalogName, schemaName, tableName, TABLE_TYPES)) {
if (tables.next()) { if (tables.next()) {
TableDescription td = new TableDescription(); TableDescription td = new TableDescription();
td.setSchemaName(schemaName); td.setSchemaName(schemaName);

View File

@@ -52,6 +52,9 @@ public class TableDescription {
} }
public void setTableType(String tableType) { public void setTableType(String tableType) {
if ("PARTITIONED TABLE".equals(tableType)) {
tableType = "TABLE";
}
this.tableType = ProductTableEnum.valueOf(tableType.toUpperCase()); this.tableType = ProductTableEnum.valueOf(tableType.toUpperCase());
} }

View File

@@ -79,7 +79,8 @@ public class PostgresMetadataQueryProvider extends AbstractMetadataProvider {
} }
// 低版本的PostgreSQL的表的DDL获取方法 // 低版本的PostgreSQL的表的DDL获取方法
return PostgresUtils.getTableDDL(this, connection, schemaName, tableName); String ddlSql = PostgresUtils.getTableDDL(this, connection, schemaName, tableName);
return DDLFormatterUtils.format(ddlSql);
} }
@Override @Override