未验证 提交 398213ec 编写于 作者: L Liang Zhang 提交者: GitHub

Rename SQLExecuteEngine.generateExecutionContext and...

Rename SQLExecuteEngine.generateExecutionContext and JDBCExecutorWrapper.generateExecutionContext (#7057)

* Decouple AuthenticationEngine and BackendConnection

* Decouple AuthenticationEngine and BackendConnection

* Refactor PreparedStatementExecutorWrapper

* Rename JDBCExecutorWrapper.generateExecutionContext

* Rename SQLExecuteEngine.generateExecutionContext
上级 4a11fb82
......@@ -83,7 +83,7 @@ public final class JDBCDatabaseCommunicationEngine implements DatabaseCommunicat
@Override
public BackendResponse execute() {
try {
ExecutionContext executionContext = executeEngine.execute(sql);
ExecutionContext executionContext = executeEngine.generateExecutionContext(sql);
if (ProxySchemaContexts.getInstance().getSchemaContexts().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SHOW)) {
SQLLogger.logSQL(sql, ProxySchemaContexts.getInstance().getSchemaContexts().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SIMPLE), executionContext);
}
......
......@@ -28,13 +28,13 @@ import java.sql.SQLException;
public interface SQLExecuteEngine {
/**
* Execute SQL.
* Generate execution context.
*
* @param sql SQL to be routed
* @param sql SQL
* @return execution context
* @throws SQLException SQL exception
*/
ExecutionContext execute(String sql) throws SQLException;
ExecutionContext generateExecutionContext(String sql) throws SQLException;
/**
* Execute SQL.
......
......@@ -76,8 +76,8 @@ public final class JDBCExecuteEngine implements SQLExecuteEngine {
}
@Override
public ExecutionContext execute(final String sql) throws SQLException {
return jdbcExecutorWrapper.execute(sql);
public ExecutionContext generateExecutionContext(final String sql) throws SQLException {
return jdbcExecutorWrapper.generateExecutionContext(sql);
}
@SuppressWarnings("unchecked")
......
......@@ -31,13 +31,13 @@ import java.sql.Statement;
public interface JDBCExecutorWrapper {
/**
* Execute SQL.
* Generate execution context.
*
* @param sql SQL to be routed
* @return execution context
* @throws SQLException SQL exception
*/
ExecutionContext execute(String sql) throws SQLException;
ExecutionContext generateExecutionContext(String sql) throws SQLException;
/**
* Execute SQL.
......
......@@ -61,7 +61,7 @@ public final class PreparedStatementExecutorWrapper implements JDBCExecutorWrapp
@SuppressWarnings("unchecked")
@Override
public ExecutionContext execute(final String sql) {
public ExecutionContext generateExecutionContext(final String sql) {
Collection<ShardingSphereRule> rules = schema.getSchema().getRules();
if (rules.isEmpty()) {
return new ExecutionContext(
......@@ -69,8 +69,8 @@ public final class PreparedStatementExecutorWrapper implements JDBCExecutorWrapp
}
RouteContext routeContext = new DataNodeRouter(schema.getSchema().getMetaData(), PROXY_SCHEMA_CONTEXTS.getSchemaContexts().getProps(), rules).route(sqlStatement, sql, parameters);
routeMetricsCollect(routeContext, rules);
SQLRewriteResult sqlRewriteResult = new SQLRewriteEntry(schema.getSchema().getMetaData().getSchema().getConfiguredSchemaMetaData(),
PROXY_SCHEMA_CONTEXTS.getSchemaContexts().getProps(), rules).rewrite(sql, new ArrayList<>(parameters), routeContext);
SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(schema.getSchema().getMetaData().getSchema().getConfiguredSchemaMetaData(), PROXY_SCHEMA_CONTEXTS.getSchemaContexts().getProps(), rules);
SQLRewriteResult sqlRewriteResult = sqlRewriteEntry.rewrite(sql, new ArrayList<>(parameters), routeContext);
return new ExecutionContext(routeContext.getSqlStatementContext(), ExecutionContextBuilder.build(schema.getSchema().getMetaData(), sqlRewriteResult));
}
......@@ -79,14 +79,14 @@ public final class PreparedStatementExecutorWrapper implements JDBCExecutorWrapp
return ((PreparedStatement) statement).execute();
}
private void routeMetricsCollect(final RouteContext routeContext, final Collection<ShardingSphereRule> rules) {
MetricsUtils.buriedShardingMetrics(routeContext.getRouteResult().getRouteUnits());
MetricsUtils.buriedShardingRuleMetrics(routeContext, rules);
}
@Override
public ExecuteGroupEngine<?> getExecuteGroupEngine(final BackendConnection backendConnection, final StatementOption option) {
int maxConnectionsSizePerQuery = PROXY_SCHEMA_CONTEXTS.getSchemaContexts().getProps().<Integer>getValue(ConfigurationPropertyKey.MAX_CONNECTIONS_SIZE_PER_QUERY);
return new PreparedStatementExecuteGroupEngine(maxConnectionsSizePerQuery, backendConnection, option, schema.getSchema().getRules());
}
private void routeMetricsCollect(final RouteContext routeContext, final Collection<ShardingSphereRule> rules) {
MetricsUtils.buriedShardingMetrics(routeContext.getRouteResult().getRouteUnits());
MetricsUtils.buriedShardingRuleMetrics(routeContext, rules);
}
}
......@@ -56,7 +56,7 @@ public final class StatementExecutorWrapper implements JDBCExecutorWrapper {
private final SQLStatement sqlStatement;
@Override
public ExecutionContext execute(final String sql) {
public ExecutionContext generateExecutionContext(final String sql) {
Collection<ShardingSphereRule> rules = schema.getSchema().getRules();
if (rules.isEmpty()) {
return createExecutionContext(sql);
......
......@@ -60,7 +60,7 @@ public final class ShardingCTLExplainBackendHandler implements TextProtocolBacke
SchemaContext schema = ProxySchemaContexts.getInstance().getSchema(backendConnection.getSchema());
StatementExecutorWrapper statementExecutorWrapper =
new StatementExecutorWrapper(schema, schema.getRuntimeContext().getSqlParserEngine().parse(explainStatement.get().getSql(), false));
executionUnits = statementExecutorWrapper.execute(explainStatement.get().getSql()).getExecutionUnits().iterator();
executionUnits = statementExecutorWrapper.generateExecutionContext(explainStatement.get().getSql()).getExecutionUnits().iterator();
queryHeaders = new ArrayList<>(2);
queryHeaders.add(new QueryHeader("", "", "datasource_name", "", 255, Types.CHAR, 0, false, false, false, false));
queryHeaders.add(new QueryHeader("", "", "sql", "", 255, Types.CHAR, 0, false, false, false, false));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册