26
26
import org .apache .shardingsphere .infra .route .context .RouteUnit ;
27
27
import org .apache .shardingsphere .infra .spi .type .typed .TypedSPILoader ;
28
28
import org .apache .shardingsphere .mode .persist .service .MetaDataManagerPersistService ;
29
- import org .apache .shardingsphere .sql .parser .statement .core .statement .SQLStatement ;
30
29
import org .apache .shardingsphere .sql .parser .statement .core .statement .ddl .AlterIndexStatement ;
31
30
import org .apache .shardingsphere .sql .parser .statement .core .statement .ddl .AlterSchemaStatement ;
32
31
import org .apache .shardingsphere .sql .parser .statement .core .statement .ddl .AlterTableStatement ;
@@ -79,14 +78,10 @@ public void refresh(final SQLStatementContext sqlStatementContext, final Collect
79
78
}
80
79
Optional <MetaDataRefresher > schemaRefresher = TypedSPILoader .findService (MetaDataRefresher .class , sqlStatementClass );
81
80
if (schemaRefresher .isPresent ()) {
82
- String schemaName = null ;
83
- if (sqlStatementContext instanceof TableAvailable ) {
84
- schemaName = ((TableAvailable ) sqlStatementContext ).getTablesContext ().getSchemaName ()
85
- .orElseGet (() -> new DatabaseTypeRegistry (sqlStatementContext .getDatabaseType ()).getDefaultSchemaName (database .getName ())).toLowerCase ();
86
- }
87
81
Collection <String > logicDataSourceNames = routeUnits .stream ().map (each -> each .getDataSourceMapper ().getLogicName ()).collect (Collectors .toList ());
88
- schemaRefresher .get ().refresh (metaDataManagerPersistService , database ,
89
- logicDataSourceNames , schemaName , sqlStatementContext .getDatabaseType (), sqlStatementContext .getSqlStatement (), props );
82
+ String schemaName = sqlStatementContext instanceof TableAvailable ? getSchemaName (sqlStatementContext ) : null ;
83
+ schemaRefresher .get ().refresh (
84
+ metaDataManagerPersistService , database , logicDataSourceNames , schemaName , sqlStatementContext .getDatabaseType (), sqlStatementContext .getSqlStatement (), props );
90
85
}
91
86
}
92
87
@@ -97,11 +92,13 @@ public void refresh(final SQLStatementContext sqlStatementContext, final Collect
97
92
*/
98
93
@ SuppressWarnings ("unchecked" )
99
94
public void refresh (final SQLStatementContext sqlStatementContext ) {
100
- getFederationMetaDataRefresher (sqlStatementContext ).ifPresent (federationMetaDataRefresher -> {
101
- String schemaName = ((TableAvailable ) sqlStatementContext ).getTablesContext ().getSchemaName ()
102
- .orElseGet (() -> new DatabaseTypeRegistry (sqlStatementContext .getDatabaseType ()).getDefaultSchemaName (database .getName ())).toLowerCase ();
103
- federationMetaDataRefresher .refresh (metaDataManagerPersistService , database , schemaName , sqlStatementContext .getDatabaseType (), sqlStatementContext .getSqlStatement ());
104
- });
95
+ getFederationMetaDataRefresher (sqlStatementContext ).ifPresent (optional -> optional .refresh (
96
+ metaDataManagerPersistService , database , getSchemaName (sqlStatementContext ), sqlStatementContext .getDatabaseType (), sqlStatementContext .getSqlStatement ()));
97
+ }
98
+
99
+ private String getSchemaName (final SQLStatementContext sqlStatementContext ) {
100
+ return ((TableAvailable ) sqlStatementContext ).getTablesContext ().getSchemaName ()
101
+ .orElseGet (() -> new DatabaseTypeRegistry (sqlStatementContext .getDatabaseType ()).getDefaultSchemaName (database .getName ())).toLowerCase ();
105
102
}
106
103
107
104
/**
@@ -116,7 +113,6 @@ public boolean isFederation(final SQLStatementContext sqlStatementContext) {
116
113
117
114
@ SuppressWarnings ("rawtypes" )
118
115
private Optional <FederationMetaDataRefresher > getFederationMetaDataRefresher (final SQLStatementContext sqlStatementContext ) {
119
- Class <? extends SQLStatement > sqlStatementClass = sqlStatementContext .getSqlStatement ().getClass ();
120
- return TypedSPILoader .findService (FederationMetaDataRefresher .class , sqlStatementClass .getSuperclass ());
116
+ return TypedSPILoader .findService (FederationMetaDataRefresher .class , sqlStatementContext .getSqlStatement ().getClass ().getSuperclass ());
121
117
}
122
118
}
0 commit comments