private void refreshTableMetaData(final AlterTableStatement alterTableStatement) { String logicTableName = alterTableStatement.getTables().getSingleTableName(); TableMetaData newTableMetaData = TableMetaDataFactory.newInstance(alterTableStatement, getMetaData().getTable().get(logicTableName)); Optional<String> newTableName = alterTableStatement.getNewTableName(); if (newTableName.isPresent()) { getMetaData().getTable().put(newTableName.get(), newTableMetaData); getMetaData().getTable().remove(logicTableName); } else { getMetaData().getTable().put(logicTableName, newTableMetaData); } }
private void refreshTableMetaData(final ShardingContext shardingContext, final CreateTableStatement createTableStatement) { shardingContext.getMetaData().getTable().put(createTableStatement.getTables().getSingleTableName(), TableMetaDataFactory.newInstance(createTableStatement)); }
@Override protected SimpleChannelPool newPool(final String dataSourceName) { DataSourceMetaData dataSourceMetaData = logicSchema.getMetaData().getDataSource().getActualDataSourceMetaData(dataSourceName); return new FixedChannelPool( bootstrap.remoteAddress(dataSourceMetaData.getHostName(), dataSourceMetaData.getPort()), new BackendNettyClientChannelPoolHandler(dataSourceName, logicSchema.getName()), maxConnections); } };
public MySQLResponseHandler(final String dataSourceName, final String schema) { dataSourceParameter = GLOBAL_REGISTRY.getLogicSchema(schema).getDataSources().get(dataSourceName); dataSourceMetaData = GLOBAL_REGISTRY.getLogicSchema(schema).getMetaData().getDataSource().getActualDataSourceMetaData(dataSourceName); resultMap = new HashMap<>(); }
@Override public SQLStatement parse(final String logicSQL, final boolean useCache) { parsingHook.start(logicSQL); try { SQLStatement result = new SQLParsingEngine(databaseType, logicSQL, shardingRule, shardingMetaData.getTable()).parse(useCache); parsingHook.finishSuccess(result, shardingMetaData.getTable()); return result; // CHECKSTYLE:OFF } catch (final Exception ex) { // CHECKSTYLE:ON parsingHook.finishFailure(ex); throw ex; } }
public ShardingContext(final Map<String, DataSource> dataSourceMap, final ShardingRule shardingRule, final DatabaseType databaseType, final Properties props) throws SQLException { this.cachedDatabaseMetaData = createCachedDatabaseMetaData(dataSourceMap); this.shardingRule = shardingRule; this.databaseType = databaseType; shardingProperties = new ShardingProperties(null == props ? new Properties() : props); int executorSize = shardingProperties.getValue(ShardingPropertiesConstant.EXECUTOR_SIZE); executeEngine = new ShardingExecuteEngine(executorSize); metaData = new ShardingMetaData(getDataSourceURLs(dataSourceMap), shardingRule, databaseType, executeEngine, new JDBCTableMetaDataConnectionManager(dataSourceMap), shardingProperties.<Integer>getValue(ShardingPropertiesConstant.MAX_CONNECTIONS_SIZE_PER_QUERY), shardingProperties.<Boolean>getValue(ShardingPropertiesConstant.CHECK_TABLE_METADATA_ENABLED)); }
private void refreshTableMetaData(final ShardingContext shardingContext, final AlterTableStatement alterTableStatement) { String logicTableName = alterTableStatement.getTables().getSingleTableName(); TableMetaData newTableMetaData = TableMetaDataFactory.newInstance(alterTableStatement, shardingContext.getMetaData().getTable().get(logicTableName)); Optional<String> newTableName = alterTableStatement.getNewTableName(); if (newTableName.isPresent()) { shardingContext.getMetaData().getTable().put(newTableName.get(), newTableMetaData); shardingContext.getMetaData().getTable().remove(logicTableName); } else { shardingContext.getMetaData().getTable().put(logicTableName, newTableMetaData); } }
@Override protected SimpleChannelPool newPool(final String dataSourceName) { DataSourceMetaData dataSourceMetaData = logicSchema.getMetaData().getDataSource().getActualDataSourceMetaData(dataSourceName); return new FixedChannelPool( bootstrap.remoteAddress(dataSourceMetaData.getHostName(), dataSourceMetaData.getPort()), new BackendNettyClientChannelPoolHandler(dataSourceName, logicSchema.getName()), maxConnections); } };
private void refreshTableMetaData(final CreateTableStatement createTableStatement) { getMetaData().getTable().put(createTableStatement.getTables().getSingleTableName(), TableMetaDataFactory.newInstance(createTableStatement)); }
public MySQLResponseHandler(final String dataSourceName, final String schema) { dataSourceParameter = GLOBAL_REGISTRY.getLogicSchema(schema).getDataSources().get(dataSourceName); dataSourceMetaData = GLOBAL_REGISTRY.getLogicSchema(schema).getMetaData().getDataSource().getActualDataSourceMetaData(dataSourceName); resultMap = new HashMap<>(); }
public ComStmtPreparePacket(final int sequenceId, final BackendConnection backendConnection, final MySQLPacketPayload payload) { this.sequenceId = sequenceId; sql = payload.readStringEOF(); schemaName = backendConnection.getSchemaName(); LogicSchema logicSchema = backendConnection.getLogicSchema(); sqlParsingEngine = new SQLParsingEngine(DatabaseType.MySQL, sql, getShardingRule(logicSchema), logicSchema.getMetaData().getTable()); }
private ShardingMetaData createShardingMetaData(final boolean isCheckingMetaData) { return new ShardingMetaData(getDataSourceURLs(getDataSources()), shardingRule, DatabaseType.MySQL, BackendExecutorContext.getInstance().getExecuteEngine(), new ProxyTableMetaDataConnectionManager(getBackendDataSource()), GlobalRegistry.getInstance().getShardingProperties().<Integer>getValue(ShardingPropertiesConstant.MAX_CONNECTIONS_SIZE_PER_QUERY), isCheckingMetaData); }
private void refreshTableMetaData(final AlterTableStatement alterTableStatement) { String logicTableName = alterTableStatement.getTables().getSingleTableName(); TableMetaData newTableMetaData = TableMetaDataFactory.newInstance(alterTableStatement, getMetaData().getTable().get(logicTableName)); Optional<String> newTableName = alterTableStatement.getNewTableName(); if (newTableName.isPresent()) { getMetaData().getTable().put(newTableName.get(), newTableMetaData); getMetaData().getTable().remove(logicTableName); } else { getMetaData().getTable().put(logicTableName, newTableMetaData); } }
private void refreshTableMetaData(final CreateTableStatement createTableStatement) { getMetaData().getTable().put(createTableStatement.getTables().getSingleTableName(), TableMetaDataFactory.newInstance(createTableStatement)); }
public ComStmtPreparePacket(final int sequenceId, final BackendConnection backendConnection, final MySQLPacketPayload payload) { this.sequenceId = sequenceId; sql = payload.readStringEOF(); schemaName = backendConnection.getSchemaName(); LogicSchema logicSchema = backendConnection.getLogicSchema(); sqlParsingEngine = new SQLParsingEngine(DatabaseType.PostgreSQL, sql, getShardingRule(logicSchema), logicSchema.getMetaData().getTable()); }
private ShardingMetaData createShardingMetaData(final boolean isCheckingMetaData) { return new ShardingMetaData(getDataSourceURLs(getDataSources()), shardingRule, DatabaseType.PostgreSQL, BackendExecutorContext.getInstance().getExecuteEngine(), new ProxyTableMetaDataConnectionManager(getBackendDataSource()), GlobalRegistry.getInstance().getShardingProperties().<Integer>getValue(ShardingPropertiesConstant.MAX_CONNECTIONS_SIZE_PER_QUERY), isCheckingMetaData); }
public PostgreSQLComParsePacket(final PostgreSQLPacketPayload payload, final BackendConnection backendConnection) { postgreSQLBinaryStatementRegistry = backendConnection.getPostgreSQLBinaryStatementRegistry(); payload.readInt4(); statementId = payload.readStringNul(); sql = alterSQLToJDBCStyle(payload.readStringNul()); if (!sql.isEmpty()) { getParameterTypes(payload); LogicSchema logicSchema = backendConnection.getLogicSchema(); sqlParsingEngine = new SQLParsingEngine(DatabaseType.PostgreSQL, sql, getShardingRule(logicSchema), logicSchema.getMetaData().getTable()); } }