Commit 367cac7a authored by terrymanu's avatar terrymanu
Browse files

remove showSQL param from BackendHandler

parent 9780093c
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -76,8 +76,6 @@ public final class SQLPacketsBackendHandler implements BackendHandler {
    
    private final DatabaseType databaseType;
    
    private final boolean showSQL;
    
    private MergedResult mergedResult;
    
    private int currentSequenceId;
@@ -88,22 +86,24 @@ public final class SQLPacketsBackendHandler implements BackendHandler {
    
    private boolean hasMoreResultValueFlag;
    
    public SQLPacketsBackendHandler(final CommandPacketRebuilder rebuilder, final DatabaseType databaseType, final boolean showSQL) {
    private final RuleRegistry ruleRegistry;
    
    public SQLPacketsBackendHandler(final CommandPacketRebuilder rebuilder, final DatabaseType databaseType) {
        this.rebuilder = rebuilder;
        this.databaseType = databaseType;
        this.showSQL = showSQL;
        isMerged = false;
        hasMoreResultValueFlag = true;
        ruleRegistry = RuleRegistry.getInstance();
    }
    
    @Override
    public CommandResponsePackets execute() {
        return RuleRegistry.getInstance().isMasterSlaveOnly() ? executeForMasterSlave() : executeForSharding();
        return ruleRegistry.isMasterSlaveOnly() ? executeForMasterSlave() : executeForSharding();
    }
    
    private CommandResponsePackets executeForMasterSlave() {
        SQLStatement sqlStatement = new SQLJudgeEngine(rebuilder.sql()).judge();
        String dataSourceName = new MasterSlaveRouter(RuleRegistry.getInstance().getMasterSlaveRule()).route(sqlStatement.getType()).iterator().next();
        String dataSourceName = new MasterSlaveRouter(ruleRegistry.getMasterSlaveRule()).route(sqlStatement.getType()).iterator().next();
        synchronizedFuture = new SynchronizedFuture<>(1);
        MySQLResultCache.getInstance().putFuture(rebuilder.connectionId(), synchronizedFuture);
        CommandPacket commandPacket = rebuilder.rebuild(rebuilder.sequenceId(), rebuilder.connectionId(), rebuilder.sql());
@@ -119,8 +119,8 @@ public final class SQLPacketsBackendHandler implements BackendHandler {
    }
    
    private CommandResponsePackets executeForSharding() {
        StatementRoutingEngine routingEngine = new StatementRoutingEngine(RuleRegistry.getInstance().getShardingRule(),
                RuleRegistry.getInstance().getShardingMetaData(), databaseType, showSQL, RuleRegistry.getInstance().getShardingDataSourceMetaData());
        StatementRoutingEngine routingEngine = new StatementRoutingEngine(
                ruleRegistry.getShardingRule(), ruleRegistry.getShardingMetaData(), databaseType, ruleRegistry.isShowSQL(), ruleRegistry.getShardingDataSourceMetaData());
        SQLRouteResult routeResult = routingEngine.route(rebuilder.sql());
        if (routeResult.getExecutionUnits().isEmpty()) {
            return new CommandResponsePackets(new OKPacket(1));
@@ -203,8 +203,8 @@ public final class SQLPacketsBackendHandler implements BackendHandler {
    
    private CommandResponsePackets mergeDQLorDAL(final SQLStatement sqlStatement, final List<CommandResponsePackets> packets, final List<QueryResult> queryResults) {
        try {
            mergedResult = MergeEngineFactory.newInstance(RuleRegistry.getInstance().getShardingRule(), queryResults,
                    sqlStatement, RuleRegistry.getInstance().getShardingMetaData()).merge();
            mergedResult = MergeEngineFactory.newInstance(ruleRegistry.getShardingRule(), queryResults,
                    sqlStatement, ruleRegistry.getShardingMetaData()).merge();
            isMerged = true;
        } catch (final SQLException ex) {
            return new CommandResponsePackets(new ErrPacket(1, ex));
+2 −5
Original line number Diff line number Diff line
@@ -59,18 +59,15 @@ public final class JDBCStatementBackendHandler extends JDBCBackendHandler {
    
    private final DatabaseType databaseType;
    
    private final boolean showSQL;
    
    @Getter
    private final List<ColumnType> columnTypes;
    
    private final RuleRegistry ruleRegistry;
    
    public JDBCStatementBackendHandler(final List<PreparedStatementParameter> preparedStatementParameters, final int statementId, final DatabaseType databaseType, final boolean showSQL) {
    public JDBCStatementBackendHandler(final List<PreparedStatementParameter> preparedStatementParameters, final int statementId, final DatabaseType databaseType) {
        super(PreparedStatementRegistry.getInstance().getSQL(statementId), ProxyJDBCResourceFactory.newPrepareResource());
        this.preparedStatementParameters = preparedStatementParameters;
        this.databaseType = databaseType;
        this.showSQL = showSQL;
        columnTypes = new CopyOnWriteArrayList<>();
        ruleRegistry = RuleRegistry.getInstance();
    }
@@ -78,7 +75,7 @@ public final class JDBCStatementBackendHandler extends JDBCBackendHandler {
    @Override
    protected SQLRouteResult doShardingRoute() {
        PreparedStatementRoutingEngine routingEngine = new PreparedStatementRoutingEngine(
                getSql(), ruleRegistry.getShardingRule(), ruleRegistry.getShardingMetaData(), databaseType, showSQL, ruleRegistry.getShardingDataSourceMetaData());
                getSql(), ruleRegistry.getShardingRule(), ruleRegistry.getShardingMetaData(), databaseType, ruleRegistry.isShowSQL(), ruleRegistry.getShardingDataSourceMetaData());
        return routingEngine.route(getComStmtExecuteParameters());
    }
    
+2 −5
Original line number Diff line number Diff line
@@ -50,21 +50,18 @@ public final class JDBCTextBackendHandler extends JDBCBackendHandler {
   
    private final DatabaseType databaseType;
    
    private final boolean showSQL;
    
    private final RuleRegistry ruleRegistry;
    
    public JDBCTextBackendHandler(final String sql, final DatabaseType databaseType, final boolean showSQL) {
    public JDBCTextBackendHandler(final String sql, final DatabaseType databaseType) {
        super(sql, ProxyJDBCResourceFactory.newResource());
        this.databaseType = databaseType;
        this.showSQL = showSQL;
        ruleRegistry = RuleRegistry.getInstance();
    }
    
    @Override
    protected SQLRouteResult doShardingRoute() {
        StatementRoutingEngine routingEngine = new StatementRoutingEngine(
                ruleRegistry.getShardingRule(), ruleRegistry.getShardingMetaData(), databaseType, showSQL, ruleRegistry.getShardingDataSourceMetaData());
                ruleRegistry.getShardingRule(), ruleRegistry.getShardingMetaData(), databaseType, ruleRegistry.isShowSQL(), ruleRegistry.getShardingDataSourceMetaData());
        return routingEngine.route(getSql());
    }
    
+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public final class ComStmtExecutePacket extends CommandPacket {
        }
        newParametersBoundFlag = NewParametersBoundFlag.valueOf(mysqlPacketPayload.readInt1());
        setParameterList(mysqlPacketPayload, numParameters, newParametersBoundFlag);
        statementExecuteBackendHandler = new JDBCStatementBackendHandler(preparedStatementParameters, statementId, DatabaseType.MySQL, RuleRegistry.getInstance().isShowSQL());
        statementExecuteBackendHandler = new JDBCStatementBackendHandler(preparedStatementParameters, statementId, DatabaseType.MySQL);
    }
    
    private void setParameterList(final MySQLPacketPayload mysqlPacketPayload, final int numParameters, final NewParametersBoundFlag newParametersBoundFlag) {
+5 −8
Original line number Diff line number Diff line
@@ -88,9 +88,7 @@ public final class ComFieldListPacket extends CommandPacket implements CommandPa
    }
    
    private BackendHandler getBackendHandler(final String sql) {
        return RuleRegistry.getInstance().isWithoutJdbc()
                ? new SQLPacketsBackendHandler(this, DatabaseType.MySQL, RuleRegistry.getInstance().isShowSQL())
                : new JDBCTextBackendHandler(sql, DatabaseType.MySQL, RuleRegistry.getInstance().isShowSQL());
        return RuleRegistry.getInstance().isWithoutJdbc() ? new SQLPacketsBackendHandler(this, DatabaseType.MySQL) : new JDBCTextBackendHandler(sql, DatabaseType.MySQL);
    }
    
    @Override
@@ -104,15 +102,14 @@ public final class ComFieldListPacket extends CommandPacket implements CommandPa
    
    @Override
    public DatabaseProtocolPacket getResultValue() {
        DatabaseProtocolPacket result = backendHandler.getResultValue();
        DatabaseProtocolPacket resultValue = backendHandler.getResultValue();
        if (!backendHandler.isHasMoreResultValueFlag()) {
            return new EofPacket(++currentSequenceId, 0, StatusFlag.SERVER_STATUS_AUTOCOMMIT.getValue());
        }
        if (result instanceof TextResultSetRowPacket) {
            TextResultSetRowPacket fieldListResponse = (TextResultSetRowPacket) result;
        if (resultValue instanceof TextResultSetRowPacket) {
            TextResultSetRowPacket fieldListResponse = (TextResultSetRowPacket) resultValue;
            String columnName = (String) fieldListResponse.getData().get(0);
            return new ColumnDefinition41Packet(++currentSequenceId, ShardingConstant.LOGIC_SCHEMA_NAME, table, table,
                columnName, columnName, 100, ColumnType.MYSQL_TYPE_VARCHAR, 0);
            return new ColumnDefinition41Packet(++currentSequenceId, ShardingConstant.LOGIC_SCHEMA_NAME, table, table, columnName, columnName, 100, ColumnType.MYSQL_TYPE_VARCHAR, 0);
        }
        return new ErrPacket(1, 0, "", "");
    }
Loading