You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/02/21 10:54:12 UTC

[shardingsphere] branch master updated: Simplify QueryHeaderBuilderFixture (#24280)

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 b13b69599d0 Simplify QueryHeaderBuilderFixture (#24280)
b13b69599d0 is described below

commit b13b69599d07d16eda4acf4d1bffcf4f0ed1d683
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Feb 21 18:54:03 2023 +0800

    Simplify QueryHeaderBuilderFixture (#24280)
---
 .../jdbc/fixture/QueryHeaderBuilderFixture.java    | 48 +---------------------
 1 file changed, 2 insertions(+), 46 deletions(-)

diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java
index 0ca15e7a72b..b5ada8b4324 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/fixture/QueryHeaderBuilderFixture.java
@@ -19,61 +19,17 @@ package org.apache.shardingsphere.proxy.backend.connector.jdbc.fixture;
 
 import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
-import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
-import org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
 import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder;
 
 import java.sql.SQLException;
-import java.util.Optional;
+import java.sql.Types;
 
 public final class QueryHeaderBuilderFixture implements QueryHeaderBuilder {
     
     @Override
     public QueryHeader build(final QueryResultMetaData queryResultMetaData,
                              final ShardingSphereDatabase database, final String columnName, final String columnLabel, final int columnIndex) throws SQLException {
-        String schemaName = null == database ? "" : database.getName();
-        String actualTableName = queryResultMetaData.getTableName(columnIndex);
-        String tableName;
-        boolean primaryKey;
-        if (null == actualTableName || null == database) {
-            tableName = actualTableName;
-            primaryKey = false;
-        } else {
-            tableName = getLogicTableName(database, actualTableName);
-            ShardingSphereSchema schema = database.getSchema(schemaName);
-            primaryKey = null != schema
-                    && Optional.ofNullable(schema.getTable(tableName)).map(optional -> optional.getColumns().get(columnName.toLowerCase())).map(ShardingSphereColumn::isPrimaryKey).orElse(false);
-        }
-        int columnType = queryResultMetaData.getColumnType(columnIndex);
-        String columnTypeName = queryResultMetaData.getColumnTypeName(columnIndex);
-        int columnLength = queryResultMetaData.getColumnLength(columnIndex);
-        int decimals = queryResultMetaData.getDecimals(columnIndex);
-        boolean signed = queryResultMetaData.isSigned(columnIndex);
-        boolean notNull = queryResultMetaData.isNotNull(columnIndex);
-        boolean autoIncrement = queryResultMetaData.isAutoIncrement(columnIndex);
-        return new QueryHeader(schemaName, tableName, columnLabel, columnName, columnType, columnTypeName, columnLength, decimals, signed, primaryKey, notNull, autoIncrement);
-    }
-    
-    private String getLogicTableName(final ShardingSphereDatabase database, final String actualTableName) {
-        for (DataNodeContainedRule each : database.getRuleMetaData().findRules(DataNodeContainedRule.class)) {
-            Optional<String> logicTable = each.findLogicTableByActualTable(actualTableName);
-            if (logicTable.isPresent()) {
-                return logicTable.get();
-            }
-        }
-        return actualTableName;
-    }
-    
-    @Override
-    public String getType() {
-        return "MySQL";
-    }
-    
-    // TODO to be confirmed, QueryHeaderBuilder should not has default value, just throw unsupported exception if database type missing
-    @Override
-    public boolean isDefault() {
-        return true;
+        return new QueryHeader(null, null, null, null, Types.INTEGER, null, 0, 0, false, false, false, false);
     }
 }