未验证 提交 3df3a21c 编写于 作者: L Liang Zhang 提交者: GitHub

Remove useless ShardingGeneratedKeyColumnMetaData (#4787)

* refactor BaseShardingEngine

* refactor SQLRewriteEntry

* refactor BaseShardingEngine

* Remove useless ShardingGeneratedKeyColumnMetaData

* update todo

* update todo

* update todo
上级 392f8a22
......@@ -67,7 +67,7 @@ public final class ShardingMetaDataLoader {
}
Map<String, List<DataNode>> dataNodeGroups = tableRule.getDataNodeGroups();
Map<String, TableMetaData> actualTableMetaDataMap = new HashMap<>(dataNodeGroups.size(), 1);
// TODO use multiple thread for diff data source
// TODO use multiple threads to load meta data for different data sources
for (Entry<String, List<DataNode>> entry : dataNodeGroups.entrySet()) {
for (DataNode each : entry.getValue()) {
actualTableMetaDataMap.put(each.getTableName(), TableMetaDataLoader.load(dataSourceMap.get(each.getDataSourceName()), each.getTableName()));
......@@ -104,7 +104,7 @@ public final class ShardingMetaDataLoader {
? SchemaMetaDataLoader.load(dataSourceMap.get(actualDefaultDataSourceName.get()), maxConnectionsSizePerQuery) : new SchemaMetaData(Collections.emptyMap());
}
// TODO check all meta data for one time
// TODO check all meta data in once
private void checkUniformed(final String logicTableName, final Map<String, TableMetaData> actualTableMetaDataMap) {
ShardingTableMetaDataDecorator decorator = new ShardingTableMetaDataDecorator();
TableMetaData sample = decorator.decorate(actualTableMetaDataMap.values().iterator().next(), logicTableName, shardingRule);
......
......@@ -17,18 +17,15 @@
package org.apache.shardingsphere.core.metadata;
import org.apache.shardingsphere.core.metadata.column.ShardingGeneratedKeyColumnMetaData;
import org.apache.shardingsphere.core.rule.DataNode;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.core.rule.TableRule;
import org.apache.shardingsphere.sql.parser.binder.metadata.column.ColumnMetaData;
import org.apache.shardingsphere.sql.parser.binder.metadata.index.IndexMetaData;
import org.apache.shardingsphere.sql.parser.binder.metadata.table.TableMetaData;
import org.apache.shardingsphere.underlying.common.metadata.decorator.TableMetaDataDecorator;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map.Entry;
import java.util.Optional;
......@@ -39,23 +36,7 @@ public final class ShardingTableMetaDataDecorator implements TableMetaDataDecora
@Override
public TableMetaData decorate(final TableMetaData tableMetaData, final String tableName, final ShardingRule shardingRule) {
return new TableMetaData(getColumnMetaDataList(tableMetaData, tableName, shardingRule), getIndexMetaDataList(tableMetaData, tableName, shardingRule));
}
private Collection<ColumnMetaData> getColumnMetaDataList(final TableMetaData tableMetaData, final String tableName, final ShardingRule shardingRule) {
Optional<String> generateKeyColumnName = shardingRule.findGenerateKeyColumnName(tableName);
if (!generateKeyColumnName.isPresent()) {
return tableMetaData.getColumns().values();
}
Collection<ColumnMetaData> result = new LinkedList<>();
for (ColumnMetaData each : tableMetaData.getColumns().values()) {
if (each.getName().equalsIgnoreCase(generateKeyColumnName.get())) {
result.add(new ShardingGeneratedKeyColumnMetaData(each.getName(), each.getDataType(), each.isPrimaryKey()));
} else {
result.add(each);
}
}
return result;
return new TableMetaData(tableMetaData.getColumns().values(), getIndexMetaDataList(tableMetaData, tableName, shardingRule));
}
private Collection<IndexMetaData> getIndexMetaDataList(final TableMetaData tableMetaData, final String tableName, final ShardingRule shardingRule) {
......
/*
* 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.core.metadata.column;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.sql.parser.binder.metadata.column.ColumnMetaData;
/**
* Column meta data for sharding generated key.
*/
@Getter
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public final class ShardingGeneratedKeyColumnMetaData extends ColumnMetaData {
public ShardingGeneratedKeyColumnMetaData(final String name, final String dataType, final boolean primaryKey) {
super(name, dataType, primaryKey);
}
}
......@@ -17,20 +17,19 @@
package org.apache.shardingsphere.core.shard;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.api.hint.HintManager;
import org.apache.shardingsphere.sharding.route.engine.context.ShardingRouteContext;
import org.apache.shardingsphere.sharding.route.hook.SPIRoutingHook;
import org.apache.shardingsphere.masterslave.route.engine.MasterSlaveRouteDecorator;
import org.apache.shardingsphere.sharding.route.engine.ShardingRouter;
import org.apache.shardingsphere.core.rule.MasterSlaveRule;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.core.shard.log.ShardingSQLLogger;
import org.apache.shardingsphere.encrypt.rewrite.context.EncryptSQLRewriteContextDecorator;
import org.apache.shardingsphere.masterslave.route.engine.MasterSlaveRouteDecorator;
import org.apache.shardingsphere.sharding.execute.context.ShardingExecutionContext;
import org.apache.shardingsphere.sharding.rewrite.context.ShardingSQLRewriteContextDecorator;
import org.apache.shardingsphere.sharding.rewrite.engine.ShardingSQLRewriteEngine;
import org.apache.shardingsphere.sharding.route.engine.ShardingRouter;
import org.apache.shardingsphere.sharding.route.engine.context.ShardingRouteContext;
import org.apache.shardingsphere.sharding.route.hook.SPIRoutingHook;
import org.apache.shardingsphere.sql.parser.SQLParserEngine;
import org.apache.shardingsphere.underlying.common.constant.properties.PropertiesConstant;
import org.apache.shardingsphere.underlying.common.constant.properties.ShardingSphereProperties;
......@@ -63,7 +62,6 @@ public abstract class BaseShardingEngine {
private final ShardingSphereMetaData metaData;
@Getter
private final ShardingRouter shardingRouter;
private final SPIRoutingHook routingHook;
......@@ -88,22 +86,20 @@ public abstract class BaseShardingEngine {
ShardingRouteContext shardingRouteContext = executeRoute(sql, clonedParameters);
ShardingExecutionContext result = new ShardingExecutionContext(shardingRouteContext.getSqlStatementContext(), shardingRouteContext.getGeneratedKey().orElse(null));
result.getExecutionUnits().addAll(HintManager.isDatabaseShardingOnly() ? convert(sql, clonedParameters, shardingRouteContext) : rewriteAndConvert(sql, clonedParameters, shardingRouteContext));
boolean showSQL = properties.getValue(PropertiesConstant.SQL_SHOW);
if (showSQL) {
boolean showSimple = properties.getValue(PropertiesConstant.SQL_SIMPLE);
ShardingSQLLogger.logSQL(sql, showSimple, result.getSqlStatementContext(), result.getExecutionUnits());
if (properties.<Boolean>getValue(PropertiesConstant.SQL_SHOW)) {
ShardingSQLLogger.logSQL(sql, properties.<Boolean>getValue(PropertiesConstant.SQL_SIMPLE), result.getSqlStatementContext(), result.getExecutionUnits());
}
return result;
}
protected abstract List<Object> cloneParameters(List<Object> parameters);
protected abstract ShardingRouteContext route(String sql, List<Object> parameters);
protected abstract ShardingRouteContext route(ShardingRouter shardingRouter, String sql, List<Object> parameters);
private ShardingRouteContext executeRoute(final String sql, final List<Object> clonedParameters) {
routingHook.start(sql);
try {
ShardingRouteContext result = decorate(route(sql, clonedParameters));
ShardingRouteContext result = decorate(route(shardingRouter, sql, clonedParameters));
routingHook.finishSuccess(result, metaData.getSchema());
return result;
// CHECKSTYLE:OFF
......@@ -132,8 +128,8 @@ public abstract class BaseShardingEngine {
private Collection<ExecutionUnit> rewriteAndConvert(final String sql, final List<Object> parameters, final ShardingRouteContext shardingRouteContext) {
Collection<ExecutionUnit> result = new LinkedHashSet<>();
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(
metaData, properties).createSQLRewriteContext(sql, parameters, shardingRouteContext.getSqlStatementContext(), createSQLRewriteContextDecorator(shardingRouteContext));
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(metaData.getSchema(), properties).createSQLRewriteContext(
sql, parameters, shardingRouteContext.getSqlStatementContext(), createSQLRewriteContextDecorator(shardingRouteContext));
for (RouteUnit each : shardingRouteContext.getRouteResult().getRouteUnits()) {
ShardingSQLRewriteEngine sqlRewriteEngine = new ShardingSQLRewriteEngine(shardingRule, shardingRouteContext.getShardingConditions(), each);
SQLRewriteResult sqlRewriteResult = sqlRewriteEngine.rewrite(sqlRewriteContext);
......
......@@ -17,8 +17,9 @@
package org.apache.shardingsphere.core.shard;
import org.apache.shardingsphere.sharding.route.engine.context.ShardingRouteContext;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.sharding.route.engine.ShardingRouter;
import org.apache.shardingsphere.sharding.route.engine.context.ShardingRouteContext;
import org.apache.shardingsphere.sql.parser.SQLParserEngine;
import org.apache.shardingsphere.underlying.common.constant.properties.ShardingSphereProperties;
import org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData;
......@@ -48,7 +49,7 @@ public final class PreparedQueryShardingEngine extends BaseShardingEngine {
}
@Override
protected ShardingRouteContext route(final String sql, final List<Object> parameters) {
return getShardingRouter().route(sql, parameters, true);
protected ShardingRouteContext route(final ShardingRouter shardingRouter, final String sql, final List<Object> parameters) {
return shardingRouter.route(sql, parameters, true);
}
}
......@@ -17,8 +17,9 @@
package org.apache.shardingsphere.core.shard;
import org.apache.shardingsphere.sharding.route.engine.context.ShardingRouteContext;
import org.apache.shardingsphere.core.rule.ShardingRule;
import org.apache.shardingsphere.sharding.route.engine.ShardingRouter;
import org.apache.shardingsphere.sharding.route.engine.context.ShardingRouteContext;
import org.apache.shardingsphere.sql.parser.SQLParserEngine;
import org.apache.shardingsphere.underlying.common.constant.properties.ShardingSphereProperties;
import org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData;
......@@ -48,7 +49,7 @@ public final class SimpleQueryShardingEngine extends BaseShardingEngine {
}
@Override
protected ShardingRouteContext route(final String sql, final List<Object> parameters) {
return getShardingRouter().route(sql, Collections.emptyList(), false);
protected ShardingRouteContext route(final ShardingRouter shardingRouter, final String sql, final List<Object> parameters) {
return shardingRouter.route(sql, Collections.emptyList(), false);
}
}
......@@ -29,6 +29,7 @@ import org.apache.shardingsphere.shardingjdbc.jdbc.core.constant.SQLExceptionCon
import org.apache.shardingsphere.shardingjdbc.jdbc.core.context.EncryptRuntimeContext;
import org.apache.shardingsphere.shardingjdbc.jdbc.core.resultset.EncryptResultSet;
import org.apache.shardingsphere.sql.parser.binder.SQLStatementContextFactory;
import org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaData;
import org.apache.shardingsphere.sql.parser.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.statement.SQLStatement;
import org.apache.shardingsphere.underlying.common.constant.properties.PropertiesConstant;
......@@ -168,8 +169,9 @@ public final class EncryptPreparedStatement extends AbstractShardingPreparedStat
@SuppressWarnings("unchecked")
private SQLUnit getSQLUnit(final String sql) {
SQLStatement sqlStatement = runtimeContext.getSqlParserEngine().parse(sql, true);
sqlStatementContext = SQLStatementContextFactory.newInstance(runtimeContext.getMetaData().getSchema(), sql, getParameters(), sqlStatement);
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(runtimeContext.getMetaData(),
SchemaMetaData schemaMetaData = runtimeContext.getMetaData().getSchema();
sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, sql, getParameters(), sqlStatement);
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(schemaMetaData,
runtimeContext.getProperties()).createSQLRewriteContext(sql, getParameters(), sqlStatementContext, createSQLRewriteContextDecorator(runtimeContext.getRule()));
SQLRewriteResult sqlRewriteResult = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext);
showSQL(sqlRewriteResult.getSql());
......
......@@ -98,7 +98,7 @@ public final class EncryptStatement extends AbstractUnsupportedOperationStatemen
private String getRewriteSQL(final String sql) {
SQLStatement sqlStatement = runtimeContext.getSqlParserEngine().parse(sql, false);
sqlStatementContext = SQLStatementContextFactory.newInstance(runtimeContext.getMetaData().getSchema(), sql, Collections.emptyList(), sqlStatement);
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(runtimeContext.getMetaData(),
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(runtimeContext.getMetaData().getSchema(),
runtimeContext.getProperties()).createSQLRewriteContext(sql, Collections.emptyList(), sqlStatementContext, createSQLRewriteContextDecorator(runtimeContext.getRule()));
String result = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext).getSql();
showSQL(result);
......@@ -112,8 +112,7 @@ public final class EncryptStatement extends AbstractUnsupportedOperationStatemen
}
private void showSQL(final String sql) {
boolean showSQL = runtimeContext.getProperties().<Boolean>getValue(PropertiesConstant.SQL_SHOW);
if (showSQL) {
if (runtimeContext.getProperties().<Boolean>getValue(PropertiesConstant.SQL_SHOW)) {
log.info("Rule Type: encrypt");
log.info("SQL: {}", sql);
}
......
......@@ -27,6 +27,7 @@ import org.apache.shardingsphere.shadow.rewrite.judgement.impl.PreparedJudgement
import org.apache.shardingsphere.shardingjdbc.jdbc.adapter.AbstractShardingPreparedStatementAdapter;
import org.apache.shardingsphere.shardingjdbc.jdbc.core.connection.ShadowConnection;
import org.apache.shardingsphere.sql.parser.binder.SQLStatementContextFactory;
import org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaData;
import org.apache.shardingsphere.sql.parser.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.statement.SQLStatement;
import org.apache.shardingsphere.underlying.common.constant.properties.PropertiesConstant;
......@@ -172,10 +173,11 @@ public final class ShadowPreparedStatement extends AbstractShardingPreparedState
@SuppressWarnings("unchecked")
private SQLUnit getSQLUnit(final String sql) {
SQLStatement sqlStatement = connection.getRuntimeContext().getSqlParserEngine().parse(sql, true);
SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(connection.getRuntimeContext().getMetaData().getSchema(), sql, getParameters(), sqlStatement);
SchemaMetaData schemaMetaData = connection.getRuntimeContext().getMetaData().getSchema();
SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, sql, getParameters(), sqlStatement);
ShadowJudgementEngine shadowJudgementEngine = new PreparedJudgementEngine(connection.getRuntimeContext().getRule(), sqlStatementContext, getParameters());
isShadowSQL = shadowJudgementEngine.isShadowSQL();
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(connection.getRuntimeContext().getMetaData(), connection.getRuntimeContext().getProperties())
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(schemaMetaData, connection.getRuntimeContext().getProperties())
.createSQLRewriteContext(sql, getParameters(), sqlStatementContext, createSQLRewriteContextDecorator(connection.getRuntimeContext().getRule()));
SQLRewriteResult sqlRewriteResult = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext);
showSQL(sqlRewriteResult.getSql());
......
......@@ -184,7 +184,7 @@ public final class ShadowStatement extends AbstractStatementAdapter {
}
private String rewriteSQL(final String sql) {
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(connection.getRuntimeContext().getMetaData(), connection.getRuntimeContext().getProperties())
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(connection.getRuntimeContext().getMetaData().getSchema(), connection.getRuntimeContext().getProperties())
.createSQLRewriteContext(sql, Collections.emptyList(), sqlStatementContext, createSQLRewriteContextDecorator(connection.getRuntimeContext().getRule()));
String result = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext).getSql();
showSQL(result);
......@@ -198,8 +198,7 @@ public final class ShadowStatement extends AbstractStatementAdapter {
}
private void showSQL(final String sql) {
boolean showSQL = connection.getRuntimeContext().getProperties().<Boolean>getValue(PropertiesConstant.SQL_SHOW);
if (showSQL) {
if (connection.getRuntimeContext().getProperties().<Boolean>getValue(PropertiesConstant.SQL_SHOW)) {
log.info("Rule Type: shadow");
log.info("SQL: {} ::: IsShadowSQL: {}", sql, isShadowSQL);
}
......
......@@ -113,7 +113,7 @@ public final class PreparedStatementExecutorWrapper implements JDBCExecutorWrapp
SQLStatement sqlStatement = encryptSchema.getSqlParserEngine().parse(sql, true);
SchemaMetaData schemaMetaData = logicSchema.getMetaData().getSchema();
SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, sql, parameters, sqlStatement);
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData(), ShardingProxyContext.getInstance().getProperties())
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData().getSchema(), ShardingProxyContext.getInstance().getProperties())
.createSQLRewriteContext(sql, parameters, sqlStatementContext, createSQLRewriteContextDecorator(encryptSchema.getEncryptRule()));
SQLRewriteResult sqlRewriteResult = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext);
ExecutionContext result = new ExecutionContext(sqlStatementContext);
......@@ -128,7 +128,7 @@ public final class PreparedStatementExecutorWrapper implements JDBCExecutorWrapp
SchemaMetaData schemaMetaData = logicSchema.getMetaData().getSchema();
SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, sql, parameters, sqlStatement);
ShadowJudgementEngine shadowJudgementEngine = new PreparedJudgementEngine(shadowSchema.getShadowRule(), sqlStatementContext, parameters);
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData(), ShardingProxyContext.getInstance().getProperties())
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData().getSchema(), ShardingProxyContext.getInstance().getProperties())
.createSQLRewriteContext(sql, parameters, sqlStatementContext, createSQLRewriteContextDecorator(shadowSchema.getShadowRule()));
SQLRewriteResult sqlRewriteResult = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext);
ExecutionContext result = new ExecutionContext(sqlStatementContext);
......
......@@ -111,7 +111,7 @@ public final class StatementExecutorWrapper implements JDBCExecutorWrapper {
SQLStatement sqlStatement = encryptSchema.getSqlParserEngine().parse(sql, false);
SchemaMetaData schemaMetaData = logicSchema.getMetaData().getSchema();
SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(schemaMetaData, sql, new LinkedList<>(), sqlStatement);
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData(), ShardingProxyContext.getInstance().getProperties())
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData().getSchema(), ShardingProxyContext.getInstance().getProperties())
.createSQLRewriteContext(sql, Collections.emptyList(), sqlStatementContext, createSQLRewriteContextDecorator(encryptSchema.getEncryptRule()));
SQLRewriteResult sqlRewriteResult = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext);
ExecutionContext result = new ExecutionContext(sqlStatementContext);
......@@ -129,7 +129,7 @@ public final class StatementExecutorWrapper implements JDBCExecutorWrapper {
String dataSourceName = shadowJudgementEngine.isShadowSQL()
? shadowSchema.getShadowRule().getRuleConfiguration().getShadowMappings().get(logicSchema.getDataSources().keySet().iterator().next())
: logicSchema.getDataSources().keySet().iterator().next();
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData(), ShardingProxyContext.getInstance().getProperties())
SQLRewriteContext sqlRewriteContext = new SQLRewriteEntry(logicSchema.getMetaData().getSchema(), ShardingProxyContext.getInstance().getProperties())
.createSQLRewriteContext(sql, Collections.emptyList(), sqlStatementContext, createSQLRewriteContextDecorator(shadowSchema.getShadowRule()));
SQLRewriteResult sqlRewriteResult = new DefaultSQLRewriteEngine().rewrite(sqlRewriteContext);
ExecutionContext result = new ExecutionContext(sqlStatementContext);
......
......@@ -18,9 +18,9 @@
package org.apache.shardingsphere.underlying.rewrite;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaData;
import org.apache.shardingsphere.sql.parser.binder.statement.SQLStatementContext;
import org.apache.shardingsphere.underlying.common.constant.properties.ShardingSphereProperties;
import org.apache.shardingsphere.underlying.common.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.underlying.common.rule.BaseRule;
import org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContext;
import org.apache.shardingsphere.underlying.rewrite.context.SQLRewriteContextDecorator;
......@@ -35,7 +35,7 @@ import java.util.Map.Entry;
@RequiredArgsConstructor
public final class SQLRewriteEntry {
private final ShardingSphereMetaData metaData;
private final SchemaMetaData schemaMetaData;
private final ShardingSphereProperties properties;
......@@ -50,7 +50,7 @@ public final class SQLRewriteEntry {
*/
public SQLRewriteContext createSQLRewriteContext(final String sql, final List<Object> parameters,
final SQLStatementContext sqlStatementContext, final Map<BaseRule, SQLRewriteContextDecorator> decorators) {
SQLRewriteContext result = new SQLRewriteContext(metaData.getSchema(), sqlStatementContext, sql, parameters);
SQLRewriteContext result = new SQLRewriteContext(schemaMetaData, sqlStatementContext, sql, parameters);
decorate(decorators, result);
result.generateSQLTokens();
return result;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册