This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 7c67365b394 Avoid overhead of invoking method in Optional.orElse
(#18921)
7c67365b394 is described below
commit 7c67365b394d2e3ac562329b550c135c31ea764d
Author: 吴伟杰 <[email protected]>
AuthorDate: Thu Jul 7 14:22:20 2022 +0800
Avoid overhead of invoking method in Optional.orElse (#18921)
---
.../shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java | 2 +-
.../encrypt/rewrite/condition/EncryptConditionEngine.java | 2 +-
.../rewrite/token/generator/EncryptOrderByItemTokenGenerator.java | 2 +-
.../rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java | 2 +-
.../token/generator/EncryptPredicateRightValueTokenGenerator.java | 2 +-
.../rewrite/token/generator/EncryptProjectionTokenGenerator.java | 2 +-
.../shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java | 2 +-
.../binder/segment/select/projection/engine/ProjectionEngine.java | 3 ++-
.../segment/select/projection/impl/ParameterMarkerProjection.java | 2 +-
.../apache/shardingsphere/infra/database/type/DatabaseTypeEngine.java | 2 +-
.../pool/destroyer/detector/DataSourcePoolActiveDetectorFactory.java | 3 ++-
.../backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java | 2 +-
.../proxy/backend/text/distsql/ral/advanced/PreviewHandler.java | 2 +-
13 files changed, 15 insertions(+), 13 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
index 303a500c81d..f591d3c5ef8 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptAlgorithmMetaData.java
@@ -80,7 +80,7 @@ public final class EncryptAlgorithmMetaData {
return Optional.empty();
}
TablesContext tablesContext =
selectStatementContext.getTablesContext();
- String schemaName =
tablesContext.getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName()));
+ String schemaName = tablesContext.getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
database.getName()));
Map<String, String> expressionTableNames =
tablesContext.findTableNamesByColumnProjection(
Collections.singletonList(columnProjection.get()),
database.getSchemas().get(schemaName));
Optional<String> tableName = findTableName(columnProjection.get(),
expressionTableNames);
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
index af7092b5283..f7ede9ab31d 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/condition/EncryptConditionEngine.java
@@ -89,7 +89,7 @@ public final class EncryptConditionEngine {
final
SQLStatementContext<?> sqlStatementContext, final String databaseName) {
Collection<EncryptCondition> result = new LinkedList<>();
String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
- ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElse(schemas.get(defaultSchema));
+ ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
Map<String, String> expressionTableNames =
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
schema);
for (WhereSegment each : whereSegments) {
Collection<AndPredicate> andPredicates =
ExpressionExtractUtil.getAndPredicates(each.getExpr());
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
index 21bab8d63ed..be125265ba9 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptOrderByItemTokenGenerator.java
@@ -63,7 +63,7 @@ public final class EncryptOrderByItemTokenGenerator
implements CollectionSQLToke
public Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SQLStatementContext sqlStatementContext) {
Collection<SubstitutableColumnNameToken> result = new
LinkedHashSet<>();
String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
- ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElse(schemas.get(defaultSchema));
+ ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
for (OrderByItem each : getOrderByItems(sqlStatementContext)) {
if (each.getSegment() instanceof ColumnOrderByItemSegment) {
ColumnSegment columnSegment = ((ColumnOrderByItemSegment)
each.getSegment()).getColumn();
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
index 4f32d4425c7..fb20efda7ca 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateColumnTokenGenerator.java
@@ -58,7 +58,7 @@ public final class EncryptPredicateColumnTokenGenerator
implements CollectionSQL
public Collection<SubstitutableColumnNameToken> generateSQLTokens(final
SQLStatementContext<?> sqlStatementContext) {
Collection<ColumnSegment> columnSegments = sqlStatementContext
instanceof WhereAvailable ? ((WhereAvailable)
sqlStatementContext).getColumnSegments() : Collections.emptyList();
String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName);
- ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElse(schemas.get(defaultSchema));
+ ShardingSphereSchema schema =
sqlStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
Map<String, String> columnExpressionTableNames =
sqlStatementContext.getTablesContext().findTableNamesByColumnSegment(columnSegments,
schema);
return generateSQLTokens(columnSegments, columnExpressionTableNames);
}
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
index d8b061ccac8..65a929006bc 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
@@ -63,7 +63,7 @@ public final class EncryptPredicateRightValueTokenGenerator
implements Collectio
@Override
public Collection<SQLToken> generateSQLTokens(final SQLStatementContext
sqlStatementContext) {
Collection<SQLToken> result = new LinkedHashSet<>();
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
databaseName));
for (EncryptCondition each : encryptConditions) {
result.add(generateSQLToken(schemaName, each));
}
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
index 591968fc41d..875ce4517d5 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptProjectionTokenGenerator.java
@@ -140,7 +140,7 @@ public final class EncryptProjectionTokenGenerator
implements CollectionSQLToken
}
}
String defaultSchema =
DatabaseTypeEngine.getDefaultSchemaName(selectStatementContext.getDatabaseType(),
databaseName);
- ShardingSphereSchema schema =
selectStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElse(schemas.get(defaultSchema));
+ ShardingSphereSchema schema =
selectStatementContext.getTablesContext().getSchemaName().map(schemas::get).orElseGet(()
-> schemas.get(defaultSchema));
return
selectStatementContext.getTablesContext().findTableNamesByColumnProjection(columns,
schema);
}
diff --git
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
index b65533650ff..cf96f7207aa 100644
---
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
+++
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/merge/dal/ShardingDALResultMerger.java
@@ -57,7 +57,7 @@ public final class ShardingDALResultMerger implements
ResultMerger {
@Override
public MergedResult merge(final List<QueryResult> queryResults, final
SQLStatementContext<?> sqlStatementContext, final ShardingSphereDatabase
database) throws SQLException {
SQLStatement dalStatement = sqlStatementContext.getSqlStatement();
- String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName()));
+ String schemaName =
sqlStatementContext.getTablesContext().getSchemaName().orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(sqlStatementContext.getDatabaseType(),
database.getName()));
if (dalStatement instanceof MySQLShowDatabasesStatement) {
return new LocalDataMergedResult(Collections.singleton(new
LocalDataQueryResultRow(databaseName)));
}
diff --git
a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java
b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java
index 0df6690fb7e..faf41a857e8 100644
---
a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java
+++
b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/engine/ProjectionEngine.java
@@ -156,7 +156,8 @@ public final class ProjectionEngine {
}
String tableName = ((SimpleTableSegment)
table).getTableName().getIdentifier().getValue();
String tableAlias = table.getAlias().orElse(tableName);
- String schemaName = ((SimpleTableSegment)
table).getOwner().map(optional ->
optional.getIdentifier().getValue()).orElse(DatabaseTypeEngine.getDefaultSchemaName(databaseType,
databaseName));
+ String schemaName = ((SimpleTableSegment)
table).getOwner().map(optional -> optional.getIdentifier().getValue())
+ .orElseGet(() ->
DatabaseTypeEngine.getDefaultSchemaName(databaseType, databaseName));
Collection<ColumnProjection> result = new LinkedList<>();
if (null == owner) {
schemas.get(schemaName).getAllColumnNames(tableName).stream().map(each -> new
ColumnProjection(tableAlias, each, null)).forEach(result::add);
diff --git
a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ParameterMarkerProjection.java
b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ParameterMarkerProjection.java
index 32a1f5aa289..8f7a16bd84e 100644
---
a/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ParameterMarkerProjection.java
+++
b/shardingsphere-infra/shardingsphere-infra-binder/src/main/java/org/apache/shardingsphere/infra/binder/segment/select/projection/impl/ParameterMarkerProjection.java
@@ -48,7 +48,7 @@ public final class ParameterMarkerProjection implements
Projection {
@Override
public String getColumnLabel() {
- return getAlias().orElse(String.valueOf(parameterMarkerIndex));
+ return getAlias().orElseGet(() ->
String.valueOf(parameterMarkerIndex));
}
@Override
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngine.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngine.java
index c0fce78255f..d1a19d5fde2 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngine.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngine.java
@@ -48,7 +48,7 @@ public final class DatabaseTypeEngine {
* @return protocol type
*/
public static DatabaseType getProtocolType(final DatabaseConfiguration
databaseConfig, final ConfigurationProperties props) {
- return
findConfiguredDatabaseType(props).orElse(getDatabaseType(databaseConfig.getDataSources().values()));
+ return findConfiguredDatabaseType(props).orElseGet(() ->
getDatabaseType(databaseConfig.getDataSources().values()));
}
/**
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/detector/DataSourcePoolActiveDetectorFactory.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/detector/DataSourcePoolActiveDetectorFactory.java
index bd90c97ed6b..9a0cb4e7864 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/detector/DataSourcePoolActiveDetectorFactory.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/detector/DataSourcePoolActiveDetectorFactory.java
@@ -37,6 +37,7 @@ public final class DataSourcePoolActiveDetectorFactory {
* @return got instance
*/
public static DataSourcePoolActiveDetector getInstance(final String
dataSourceClassName) {
- return
TypedSPIRegistry.findRegisteredService(DataSourcePoolActiveDetector.class,
dataSourceClassName).orElse(RequiredSPIRegistry.getRegisteredService(DataSourcePoolActiveDetector.class));
+ return
TypedSPIRegistry.findRegisteredService(DataSourcePoolActiveDetector.class,
dataSourceClassName)
+ .orElseGet(() ->
RequiredSPIRegistry.getRegisteredService(DataSourcePoolActiveDetector.class));
}
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
index 6e4a567c1f7..38069a16d96 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngine.java
@@ -87,7 +87,7 @@ public final class JDBCDatabaseCommunicationEngine extends
DatabaseCommunication
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
String databaseName =
backendConnection.getConnectionSession().getDatabaseName();
DatabaseType databaseType =
logicSQL.getSqlStatementContext().getDatabaseType();
- String schemaName =
logicSQL.getSqlStatementContext().getTablesContext().getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(databaseType,
databaseName));
+ String schemaName =
logicSQL.getSqlStatementContext().getTablesContext().getSchemaName().orElseGet(()
-> DatabaseTypeEngine.getDefaultSchemaName(databaseType, databaseName));
federationExecutor =
FederationExecutorFactory.newInstance(databaseName, schemaName,
metaDataContexts.getOptimizerContext(),
metaDataContexts.getMetaData().getGlobalRuleMetaData(),
metaDataContexts.getMetaData().getProps(), new
JDBCExecutor(BackendExecutorContext.getInstance().getExecutorEngine(),
backendConnection.isSerialExecute()));
}
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewHandler.java
index 60e1c377af4..f6484d46d03 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/ral/advanced/PreviewHandler.java
@@ -136,7 +136,7 @@ public final class PreviewHandler extends
QueryableRALBackendHandler<PreviewStat
DriverExecutionPrepareEngine<JDBCExecutionUnit, Connection>
prepareEngine = createDriverExecutionPrepareEngine(isReturnGeneratedKeys,
metaDataContexts);
FederationContext context = new FederationContext(true, logicSQL,
metaDataContexts.getMetaData().getDatabases());
DatabaseType databaseType =
metaDataContexts.getMetaData().getDatabases().get(getDatabaseName()).getResource().getDatabaseType();
- String schemaName =
logicSQL.getSqlStatementContext().getTablesContext().getSchemaName().orElse(DatabaseTypeEngine.getDefaultSchemaName(databaseType,
databaseName));
+ String schemaName =
logicSQL.getSqlStatementContext().getTablesContext().getSchemaName().orElseGet(()
-> DatabaseTypeEngine.getDefaultSchemaName(databaseType, databaseName));
FederationExecutor executor =
FederationExecutorFactory.newInstance(databaseName, schemaName,
metaDataContexts.getOptimizerContext(),
metaDataContexts.getMetaData().getGlobalRuleMetaData(),
metaDataContexts.getMetaData().getProps(), new
JDBCExecutor(BackendExecutorContext.getInstance().getExecutorEngine(), false));
executor.executeQuery(prepareEngine,
createPreviewFederationCallback(sqlStatement, databaseType), context);