Skip to content

Commit

Permalink
Refactor DatabaseAwareQueryableRALExecutor
Browse files Browse the repository at this point in the history
  • Loading branch information
terrymanu committed Jan 25, 2024
1 parent 3a25a52 commit 87b389e
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@
public interface DatabaseAwareQueryableRALExecutor<T extends QueryableRALStatement> extends QueryableRALExecutor<T> {

/**
* Set current database.
* Set database.
*
* @param currentDatabase current database
* @param database database
*/
void setCurrentDatabase(ShardingSphereDatabase currentDatabase);
void setDatabase(ShardingSphereDatabase database);
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ private MergedResult getMergedResult(final QueryableRALExecutor<T> executor) {
((InstanceContextAwareQueryableRALExecutor<T>) executor).setInstanceContext(ProxyContext.getInstance().getContextManager().getInstanceContext());
}
if (executor instanceof DatabaseAwareQueryableRALExecutor) {
((DatabaseAwareQueryableRALExecutor<T>) executor).setCurrentDatabase(ProxyContext.getInstance().getDatabase(DatabaseNameUtils.getDatabaseName(sqlStatement, connectionSession)));
((DatabaseAwareQueryableRALExecutor<T>) executor).setDatabase(ProxyContext.getInstance().getDatabase(DatabaseNameUtils.getDatabaseName(sqlStatement, connectionSession)));
}
if (executor instanceof ConnectionSizeAwareQueryableRALExecutor) {
((ConnectionSizeAwareQueryableRALExecutor<T>) executor).setConnectionSize(connectionSession.getDatabaseConnectionManager().getConnectionSize());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
@Setter
public final class ExportDatabaseConfigurationExecutor implements DatabaseAwareQueryableRALExecutor<ExportDatabaseConfigurationStatement> {

private ShardingSphereDatabase currentDatabase;
private ShardingSphereDatabase database;

@Override
public Collection<String> getColumnNames() {
Expand All @@ -43,7 +43,7 @@ public Collection<String> getColumnNames() {

@Override
public Collection<LocalDataQueryResultRow> getRows(final ExportDatabaseConfigurationStatement sqlStatement, final ShardingSphereMetaData metaData) {
String exportedData = ExportUtils.generateExportDatabaseData(currentDatabase);
String exportedData = ExportUtils.generateExportDatabaseData(database);
if (!sqlStatement.getFilePath().isPresent()) {
return Collections.singleton(new LocalDataQueryResultRow(exportedData));
}
Expand All @@ -53,8 +53,8 @@ public Collection<LocalDataQueryResultRow> getRows(final ExportDatabaseConfigura
}

@Override
public void setCurrentDatabase(final ShardingSphereDatabase currentDatabase) {
this.currentDatabase = currentDatabase;
public void setDatabase(final ShardingSphereDatabase database) {
this.database = database;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
@Setter
public final class ShowTableMetaDataExecutor implements DatabaseAwareQueryableRALExecutor<ShowTableMetaDataStatement> {

private ShardingSphereDatabase currentDatabase;
private ShardingSphereDatabase database;

@Override
public Collection<String> getColumnNames() {
Expand All @@ -50,10 +50,10 @@ public Collection<String> getColumnNames() {

@Override
public Collection<LocalDataQueryResultRow> getRows(final ShowTableMetaDataStatement sqlStatement, final ShardingSphereMetaData metaData) {
String defaultSchema = new DatabaseTypeRegistry(currentDatabase.getProtocolType()).getDefaultSchemaName(currentDatabase.getName());
ShardingSphereSchema schema = currentDatabase.getSchema(defaultSchema);
String defaultSchema = new DatabaseTypeRegistry(database.getProtocolType()).getDefaultSchemaName(database.getName());
ShardingSphereSchema schema = database.getSchema(defaultSchema);
return sqlStatement.getTableNames().stream().filter(each -> schema.getAllTableNames().contains(each.toLowerCase()))
.map(each -> buildTableRows(currentDatabase.getName(), schema, each.toLowerCase())).flatMap(Collection::stream).collect(Collectors.toList());
.map(each -> buildTableRows(database.getName(), schema, each.toLowerCase())).flatMap(Collection::stream).collect(Collectors.toList());
}

private Collection<LocalDataQueryResultRow> buildTableRows(final String databaseName, final ShardingSphereSchema schema, final String tableName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ void assertExecute() {
when(database.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createShardingRuleConfiguration()));
ExportDatabaseConfigurationExecutor executor = new ExportDatabaseConfigurationExecutor();
executor.setCurrentDatabase(database);
executor.setDatabase(database);
Collection<LocalDataQueryResultRow> actual = executor.getRows(new ExportDatabaseConfigurationStatement(mock(DatabaseSegment.class), null), mock(ShardingSphereMetaData.class));
assertThat(actual.size(), is(1));
LocalDataQueryResultRow row = actual.iterator().next();
Expand All @@ -101,7 +101,7 @@ void assertExecuteWithEmptyDatabase() {
when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.emptyList());
ExportDatabaseConfigurationStatement sqlStatement = new ExportDatabaseConfigurationStatement(new DatabaseSegment(0, 0, new IdentifierValue("empty_db")), null);
ExportDatabaseConfigurationExecutor executor = new ExportDatabaseConfigurationExecutor();
executor.setCurrentDatabase(database);
executor.setDatabase(database);
Collection<LocalDataQueryResultRow> actual = executor.getRows(sqlStatement, mock(ShardingSphereMetaData.class));
assertThat(actual.size(), is(1));
LocalDataQueryResultRow row = actual.iterator().next();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class ShowTableMetaDataExecutorTest {
void assertExecute() {
ShardingSphereDatabase database = mockDatabase();
ShowTableMetaDataExecutor executor = new ShowTableMetaDataExecutor();
executor.setCurrentDatabase(database);
executor.setDatabase(database);
Collection<LocalDataQueryResultRow> actual = executor.getRows(createSqlStatement(), mock(ShardingSphereMetaData.class));
assertThat(actual.size(), is(2));
Iterator<LocalDataQueryResultRow> iterator = actual.iterator();
Expand Down

0 comments on commit 87b389e

Please sign in to comment.