This is an automated email from the ASF dual-hosted git repository.
panjuan 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 8bd1c9018a6 Fix sonar issues on Provide multiple methods instead of
using boolean value to determine which action to take (#26021)
8bd1c9018a6 is described below
commit 8bd1c9018a65fdc482280314977d1c2bda4d9472
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jun 3 09:58:38 2023 +0800
Fix sonar issues on Provide multiple methods instead of using boolean value
to determine which action to take (#26021)
---
.../rule/ReadwriteSplittingDataSourceRule.java | 22 ++++---
.../rule/ReadwriteSplittingRule.java | 6 +-
...dardReadwriteSplittingDataSourceRouterTest.java | 2 +-
.../filter/DisabledReadDataSourcesFilterTest.java | 14 ++--
.../infra/instance/ComputeNodeInstance.java | 6 +-
.../infra/state/instance/InstanceStateContext.java | 20 +++---
.../infra/state/InstanceStateContextTest.java | 12 ++--
.../shardingsphere/metadata/MetaDataFactory.java | 75 ----------------------
.../metadata/NewMetaDataFactory.java | 75 ----------------------
.../mode/manager/ContextManager.java | 22 +++++--
.../mode/metadata/MetaDataContextsFactory.java | 69 ++++++--------------
.../mode/metadata/NewMetaDataContextsFactory.java | 67 ++++++-------------
.../statement/type/MySQLDDLStatementVisitor.java | 60 +++++++++--------
13 files changed, 137 insertions(+), 313 deletions(-)
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
index ddd6baf4e98..0cee8049a20 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingDataSourceRule.java
@@ -65,16 +65,20 @@ public final class ReadwriteSplittingDataSourceRule {
}
/**
- * Update disabled data source names.
+ * Enable data source.
*
- * @param dataSourceName data source name
- * @param isDisabled is disabled
+ * @param dataSourceName data source name to be enabled.
*/
- public void updateDisabledDataSourceNames(final String dataSourceName,
final boolean isDisabled) {
- if (isDisabled) {
- disabledDataSourceNames.add(dataSourceName);
- } else {
- disabledDataSourceNames.remove(dataSourceName);
- }
+ public void enableDataSource(final String dataSourceName) {
+ disabledDataSourceNames.remove(dataSourceName);
+ }
+
+ /**
+ * Disable data source.
+ *
+ * @param dataSourceName data source name to be disabled.
+ */
+ public void disableDataSource(final String dataSourceName) {
+ disabledDataSourceNames.add(dataSourceName);
}
}
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
index 5cbb39a35d5..bb294161191 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/ReadwriteSplittingRule.java
@@ -161,7 +161,11 @@ public final class ReadwriteSplittingRule implements
DatabaseRule, DataSourceCon
QualifiedDatabase qualifiedDatabase =
dataSourceEvent.getQualifiedDatabase();
ReadwriteSplittingDataSourceRule dataSourceRule =
dataSourceRules.get(qualifiedDatabase.getGroupName());
Preconditions.checkNotNull(dataSourceRule, "Can not find
readwrite-splitting data source rule in database `%s`",
qualifiedDatabase.getDatabaseName());
-
dataSourceRule.updateDisabledDataSourceNames(dataSourceEvent.getQualifiedDatabase().getDataSourceName(),
DataSourceState.DISABLED == dataSourceEvent.getDataSource().getStatus());
+ if (DataSourceState.DISABLED ==
dataSourceEvent.getDataSource().getStatus()) {
+
dataSourceRule.disableDataSource(dataSourceEvent.getQualifiedDatabase().getDataSourceName());
+ } else {
+
dataSourceRule.enableDataSource(dataSourceEvent.getQualifiedDatabase().getDataSourceName());
+ }
}
@Override
diff --git
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouterTest.java
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouterTest.java
index 82b7c5e9120..51c9756bcd1 100644
---
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouterTest.java
+++
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/StandardReadwriteSplittingDataSourceRouterTest.java
@@ -47,7 +47,7 @@ class StandardReadwriteSplittingDataSourceRouterTest {
@Test
void assertRouteWithFilter() {
- rule.updateDisabledDataSourceNames("read_ds_0", true);
+ rule.disableDataSource("read_ds_0");
assertThat(new
StandardReadwriteSplittingDataSourceRouter().route(rule), is("read_ds_1"));
}
}
diff --git
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/filter/DisabledReadDataSourcesFilterTest.java
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/filter/DisabledReadDataSourcesFilterTest.java
index c19122dd819..96e487d8e75 100644
---
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/filter/DisabledReadDataSourcesFilterTest.java
+++
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/route/standard/filter/DisabledReadDataSourcesFilterTest.java
@@ -48,26 +48,26 @@ class DisabledReadDataSourcesFilterTest {
@Test
void assertGetReadDataSourceNamesWithDisabledDataSourceNames() {
- rule.updateDisabledDataSourceNames("read_ds_0", true);
+ rule.disableDataSource("read_ds_0");
assertThat(new DisabledReadDataSourcesFilter().filter(rule,
Arrays.asList("read_ds_0", "read_ds_1")),
is(Collections.singletonList("read_ds_1")));
}
@Test
- void assertUpdateDisabledDataSourceNamesForDisabled() {
- rule.updateDisabledDataSourceNames("read_ds_0", true);
+ void assertDisableDataSource() {
+ rule.disableDataSource("read_ds_0");
assertThat(new DisabledReadDataSourcesFilter().filter(rule,
Arrays.asList("read_ds_0", "read_ds_1")),
is(Collections.singletonList("read_ds_1")));
}
@Test
- void assertUpdateDisabledDataSourceNamesForEnabled() {
- rule.updateDisabledDataSourceNames("read_ds_0", true);
- rule.updateDisabledDataSourceNames("read_ds_0", false);
+ void assertEnableDataSource() {
+ rule.disableDataSource("read_ds_0");
+ rule.enableDataSource("read_ds_0");
assertThat(new DisabledReadDataSourcesFilter().filter(rule,
Arrays.asList("read_ds_0", "read_ds_1")), is(Arrays.asList("read_ds_0",
"read_ds_1")));
}
@Test
void assertGetEnabledReplicaDataSources() {
- rule.updateDisabledDataSourceNames("read_ds_0", true);
+ rule.disableDataSource("read_ds_0");
assertThat(new DisabledReadDataSourcesFilter().filter(rule,
Arrays.asList("read_ds_0", "read_ds_1")),
is(Collections.singletonList("read_ds_1")));
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
index 24817cedc67..bb59e5d4f11 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstance.java
@@ -63,7 +63,11 @@ public final class ComputeNodeInstance {
* @param status status
*/
public void switchState(final String status) {
- state.switchState(InstanceState.CIRCUIT_BREAK,
InstanceState.CIRCUIT_BREAK.name().equals(status));
+ if (InstanceState.CIRCUIT_BREAK.name().equals(status)) {
+ state.switchToValidState(InstanceState.CIRCUIT_BREAK);
+ } else {
+ state.switchToInvalidState(InstanceState.CIRCUIT_BREAK);
+ }
}
/**
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/state/instance/InstanceStateContext.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/state/instance/InstanceStateContext.java
index 6b53f54e147..aeeb832c298 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/state/instance/InstanceStateContext.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/state/instance/InstanceStateContext.java
@@ -33,15 +33,19 @@ public final class InstanceStateContext {
* Switch state.
*
* @param state state
- * @param on true if state is valid, false if not
*/
- public void switchState(final InstanceState state, final boolean on) {
- if (on) {
- currentState.push(state);
- } else {
- if (getCurrentState() == state) {
- recoverState();
- }
+ public void switchToValidState(final InstanceState state) {
+ currentState.push(state);
+ }
+
+ /**
+ * Switch state.
+ *
+ * @param state state
+ */
+ public void switchToInvalidState(final InstanceState state) {
+ if (getCurrentState() == state) {
+ recoverState();
}
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/state/InstanceStateContextTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/state/InstanceStateContextTest.java
index 9e841043fbf..15350297f53 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/state/InstanceStateContextTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/state/InstanceStateContextTest.java
@@ -30,23 +30,23 @@ class InstanceStateContextTest {
@Test
void assertSwitchStateWithCircuitBreakOn() {
- instanceStateContext.switchState(InstanceState.CIRCUIT_BREAK, true);
+ instanceStateContext.switchToValidState(InstanceState.CIRCUIT_BREAK);
assertThat(instanceStateContext.getCurrentState(),
is(InstanceState.CIRCUIT_BREAK));
- instanceStateContext.switchState(InstanceState.CIRCUIT_BREAK, false);
+ instanceStateContext.switchToInvalidState(InstanceState.CIRCUIT_BREAK);
}
@Test
void assertSwitchStateWithCircuitBreakOff() {
- instanceStateContext.switchState(InstanceState.CIRCUIT_BREAK, false);
+ instanceStateContext.switchToInvalidState(InstanceState.CIRCUIT_BREAK);
assertThat(instanceStateContext.getCurrentState(),
is(InstanceState.OK));
}
@Test
void assertSwitchStateWithMultiState() {
- instanceStateContext.switchState(InstanceState.CIRCUIT_BREAK, true);
- instanceStateContext.switchState(InstanceState.LOCK, true);
+ instanceStateContext.switchToValidState(InstanceState.CIRCUIT_BREAK);
+ instanceStateContext.switchToValidState(InstanceState.LOCK);
assertThat(instanceStateContext.getCurrentState(),
is(InstanceState.LOCK));
- instanceStateContext.switchState(InstanceState.LOCK, false);
+ instanceStateContext.switchToInvalidState(InstanceState.LOCK);
assertThat(instanceStateContext.getCurrentState(),
is(InstanceState.CIRCUIT_BREAK));
}
}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/MetaDataFactory.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/MetaDataFactory.java
deleted file mode 100644
index 6d160ac5cb5..00000000000
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/MetaDataFactory.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.metadata;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.instance.InstanceContext;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
-import org.apache.shardingsphere.metadata.factory.InternalMetaDataFactory;
-import org.apache.shardingsphere.metadata.persist.MetaDataBasedPersistService;
-import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-
-import java.sql.SQLException;
-import java.util.Map;
-
-/**
- * Meta data factory.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class MetaDataFactory {
-
- /**
- * Create database meta data for governance center.
- *
- * @param databaseName database name
- * @param internalLoadMetaData internal load meta data
- * @param persistService meta data persist service
- * @param databaseConfig database configuration
- * @param props configuration properties
- * @param instanceContext instance context
- * @return database meta data
- * @throws SQLException sql exception
- */
- public static ShardingSphereDatabase create(final String databaseName,
final boolean internalLoadMetaData, final MetaDataBasedPersistService
persistService,
- final DatabaseConfiguration
databaseConfig, final ConfigurationProperties props, final InstanceContext
instanceContext) throws SQLException {
- return internalLoadMetaData ?
InternalMetaDataFactory.create(databaseName, persistService, databaseConfig,
props, instanceContext)
- : ExternalMetaDataFactory.create(databaseName, databaseConfig,
props, instanceContext);
- }
-
- /**
- * Create database meta data for governance center.
- *
- * @param internalLoadMetaData internal load meta data
- * @param persistService meta data persist service
- * @param databaseConfigMap database configuration
- * @param props configuration properties
- * @param instanceContext instance context
- * @return database meta data
- * @throws SQLException sql exception
- */
- public static Map<String, ShardingSphereDatabase> create(final boolean
internalLoadMetaData, final MetaDataPersistService persistService,
- final Map<String,
DatabaseConfiguration> databaseConfigMap, final ConfigurationProperties props,
- final
InstanceContext instanceContext) throws SQLException {
- return internalLoadMetaData ?
InternalMetaDataFactory.create(persistService, databaseConfigMap, props,
instanceContext)
- : ExternalMetaDataFactory.create(databaseConfigMap, props,
instanceContext);
- }
-}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/NewMetaDataFactory.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/NewMetaDataFactory.java
deleted file mode 100644
index e7e39830398..00000000000
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/NewMetaDataFactory.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.metadata;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
-import org.apache.shardingsphere.infra.instance.InstanceContext;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
-import org.apache.shardingsphere.metadata.factory.NewInternalMetaDataFactory;
-import org.apache.shardingsphere.metadata.persist.NewMetaDataPersistService;
-
-import java.sql.SQLException;
-import java.util.Map;
-
-/**
- * TODO replace the old implementation after meta data refactor completed
- * New meta data factory.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class NewMetaDataFactory {
-
- /**
- * Create database meta data for governance center.
- *
- * @param databaseName database name
- * @param internalLoadMetaData internal load meta data
- * @param persistService meta data persist service
- * @param databaseConfig database configuration
- * @param props configuration properties
- * @param instanceContext instance context
- * @return database meta data
- * @throws SQLException sql exception
- */
- public static ShardingSphereDatabase create(final String databaseName,
final boolean internalLoadMetaData, final NewMetaDataPersistService
persistService,
- final DatabaseConfiguration
databaseConfig, final ConfigurationProperties props, final InstanceContext
instanceContext) throws SQLException {
- return internalLoadMetaData ?
NewInternalMetaDataFactory.create(databaseName, persistService, databaseConfig,
props, instanceContext)
- : ExternalMetaDataFactory.create(databaseName, databaseConfig,
props, instanceContext);
- }
-
- /**
- * Create database meta data for governance center.
- *
- * @param internalLoadMetaData internal load meta data
- * @param persistService meta data persist service
- * @param databaseConfigMap database configuration
- * @param props configuration properties
- * @param instanceContext instance context
- * @return database meta data
- * @throws SQLException sql exception
- */
- public static Map<String, ShardingSphereDatabase> create(final boolean
internalLoadMetaData, final NewMetaDataPersistService persistService,
- final Map<String,
DatabaseConfiguration> databaseConfigMap, final ConfigurationProperties props,
- final
InstanceContext instanceContext) throws SQLException {
- return internalLoadMetaData ?
NewInternalMetaDataFactory.create(persistService, databaseConfigMap, props,
instanceContext)
- : ExternalMetaDataFactory.create(databaseConfigMap, props,
instanceContext);
- }
-}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index d8268a65c3c..a940cf3b15a 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -51,7 +51,8 @@ import
org.apache.shardingsphere.infra.state.cluster.ClusterState;
import org.apache.shardingsphere.infra.state.cluster.ClusterStateContext;
import
org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData;
import
org.apache.shardingsphere.infra.yaml.data.swapper.YamlShardingSphereRowDataSwapper;
-import org.apache.shardingsphere.metadata.MetaDataFactory;
+import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
+import org.apache.shardingsphere.metadata.factory.InternalMetaDataFactory;
import org.apache.shardingsphere.metadata.persist.MetaDataBasedPersistService;
import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
@@ -372,6 +373,10 @@ public final class ContextManager implements AutoCloseable
{
return newMetaDataContexts(new
ShardingSphereMetaData(changedDatabases, changedGlobalMetaData, props));
}
+ private MetaDataContexts newMetaDataContexts(final ShardingSphereMetaData
metaData) {
+ return new
MetaDataContexts(metaDataContexts.get().getPersistService(), metaData);
+ }
+
/**
* Create changed databases.
*
@@ -382,8 +387,8 @@ public final class ContextManager implements AutoCloseable {
* @return ShardingSphere databases
* @throws SQLException SQL exception
*/
- public synchronized Map<String, ShardingSphereDatabase>
createChangedDatabases(final String databaseName, final boolean
internalLoadMetaData, final SwitchingResource switchingResource,
-
final Collection<RuleConfiguration> ruleConfigs) throws SQLException {
+ public synchronized Map<String, ShardingSphereDatabase>
createChangedDatabases(final String databaseName, final boolean
internalLoadMetaData,
+
final SwitchingResource switchingResource, final
Collection<RuleConfiguration> ruleConfigs) throws SQLException {
if (null != switchingResource &&
!switchingResource.getNewDataSources().isEmpty()) {
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources().putAll(switchingResource.getNewDataSources());
}
@@ -392,16 +397,19 @@ public final class ContextManager implements
AutoCloseable {
: ruleConfigs;
DatabaseConfiguration toBeCreatedDatabaseConfig =
new
DataSourceProvidedDatabaseConfiguration(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources(),
toBeCreatedRuleConfigs);
- ShardingSphereDatabase changedDatabase =
MetaDataFactory.create(metaDataContexts.get().getMetaData().getDatabase(databaseName).getName(),
- internalLoadMetaData,
metaDataContexts.get().getPersistService(), toBeCreatedDatabaseConfig,
metaDataContexts.get().getMetaData().getProps(), instanceContext);
+ ShardingSphereDatabase changedDatabase =
createChangedDatabase(metaDataContexts.get().getMetaData().getDatabase(databaseName).getName(),
internalLoadMetaData,
+ metaDataContexts.get().getPersistService(),
toBeCreatedDatabaseConfig, metaDataContexts.get().getMetaData().getProps(),
instanceContext);
Map<String, ShardingSphereDatabase> result = new
LinkedHashMap<>(metaDataContexts.get().getMetaData().getDatabases());
changedDatabase.getSchemas().putAll(newShardingSphereSchemas(changedDatabase));
result.put(databaseName.toLowerCase(), changedDatabase);
return result;
}
- private MetaDataContexts newMetaDataContexts(final ShardingSphereMetaData
metaData) {
- return new
MetaDataContexts(metaDataContexts.get().getPersistService(), metaData);
+ private ShardingSphereDatabase createChangedDatabase(final String
databaseName, final boolean internalLoadMetaData, final
MetaDataBasedPersistService persistService,
+ final
DatabaseConfiguration databaseConfig, final ConfigurationProperties props,
final InstanceContext instanceContext) throws SQLException {
+ return internalLoadMetaData
+ ? InternalMetaDataFactory.create(databaseName, persistService,
databaseConfig, props, instanceContext)
+ : ExternalMetaDataFactory.create(databaseName, databaseConfig,
props, instanceContext);
}
private Map<String, ShardingSphereSchema> newShardingSphereSchemas(final
ShardingSphereDatabase database) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index 34e72b0ba15..51d51bfbc6d 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -33,10 +33,11 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
-import org.apache.shardingsphere.metadata.MetaDataFactory;
-import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
+import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
+import org.apache.shardingsphere.metadata.factory.InternalMetaDataFactory;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.event.storage.StorageNodeDataSource;
+import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
import javax.sql.DataSource;
import java.sql.SQLException;
@@ -46,7 +47,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
import java.util.stream.Collectors;
/**
@@ -80,37 +80,29 @@ public final class MetaDataContextsFactory {
*/
public static MetaDataContexts create(final MetaDataPersistService
persistService, final ContextManagerBuilderParameter param,
final InstanceContext
instanceContext, final Map<String, StorageNodeDataSource> storageNodes) throws
SQLException {
- boolean databaseMetaDataExisted =
databaseMetaDataExisted(persistService);
- Map<String, DatabaseConfiguration> effectiveDatabaseConfigs =
getDatabaseConfigurations(databaseMetaDataExisted,
- getDatabaseNames(instanceContext, param.getDatabaseConfigs(),
persistService), param.getDatabaseConfigs(), persistService);
+ boolean isDatabaseMetaDataExisted =
!persistService.getDatabaseMetaDataService().loadAllDatabaseNames().isEmpty();
+ Map<String, DatabaseConfiguration> effectiveDatabaseConfigs =
isDatabaseMetaDataExisted
+ ?
createEffectiveDatabaseConfigurations(getDatabaseNames(instanceContext,
param.getDatabaseConfigs(), persistService), param.getDatabaseConfigs(),
persistService)
+ : param.getDatabaseConfigs();
checkDataSourceStates(effectiveDatabaseConfigs, storageNodes,
param.isForce());
- Collection<RuleConfiguration> globalRuleConfigs =
getGlobalRuleConfigs(databaseMetaDataExisted, persistService,
param.getGlobalRuleConfigs());
- ConfigurationProperties props =
getConfigurationProperties(databaseMetaDataExisted, persistService,
param.getProps());
- Map<String, ShardingSphereDatabase> databases =
getDatabases(databaseMetaDataExisted, persistService, effectiveDatabaseConfigs,
props, instanceContext);
+ Collection<RuleConfiguration> globalRuleConfigs =
isDatabaseMetaDataExisted ? persistService.getGlobalRuleService().load() :
param.getGlobalRuleConfigs();
+ ConfigurationProperties props = isDatabaseMetaDataExisted ? new
ConfigurationProperties(persistService.getPropsService().load()) : new
ConfigurationProperties(param.getProps());
+ Map<String, ShardingSphereDatabase> databases =
isDatabaseMetaDataExisted
+ ? InternalMetaDataFactory.create(persistService,
effectiveDatabaseConfigs, props, instanceContext)
+ : ExternalMetaDataFactory.create(effectiveDatabaseConfigs,
props, instanceContext);
ShardingSphereRuleMetaData globalMetaData = new
ShardingSphereRuleMetaData(GlobalRulesBuilder.buildRules(globalRuleConfigs,
databases, props));
MetaDataContexts result = new MetaDataContexts(persistService, new
ShardingSphereMetaData(databases, globalMetaData, props));
- persistDatabaseConfigurations(databaseMetaDataExisted, param, result);
- persistMetaData(databaseMetaDataExisted, result);
+ if (!isDatabaseMetaDataExisted) {
+ persistDatabaseConfigurations(result, param);
+ persistMetaData(result);
+ }
return result;
}
- private static boolean databaseMetaDataExisted(final
MetaDataPersistService persistService) {
- return
!persistService.getDatabaseMetaDataService().loadAllDatabaseNames().isEmpty();
- }
-
private static Collection<String> getDatabaseNames(final InstanceContext
instanceContext, final Map<String, DatabaseConfiguration> databaseConfigs,
final MetaDataPersistService persistService) {
return instanceContext.getInstance().getMetaData() instanceof
JDBCInstanceMetaData ? databaseConfigs.keySet() :
persistService.getDatabaseMetaDataService().loadAllDatabaseNames();
}
- private static ConfigurationProperties getConfigurationProperties(final
boolean databaseMetaDataExisted, final MetaDataPersistService persistService,
final Properties props) {
- return databaseMetaDataExisted ? new
ConfigurationProperties(persistService.getPropsService().load()) : new
ConfigurationProperties(props);
- }
-
- private static Map<String, DatabaseConfiguration>
getDatabaseConfigurations(final boolean databaseMetaDataExisted, final
Collection<String> databaseNames,
-
final Map<String, DatabaseConfiguration> databaseConfigs, final
MetaDataPersistService persistService) {
- return databaseMetaDataExisted ?
createEffectiveDatabaseConfigurations(databaseNames, databaseConfigs,
persistService) : databaseConfigs;
- }
-
private static Map<String, DatabaseConfiguration>
createEffectiveDatabaseConfigurations(final Collection<String> databaseNames,
final Map<String, DatabaseConfiguration> databaseConfigs, final
MetaDataPersistService persistService) {
return databaseNames.stream().collect(
@@ -145,23 +137,6 @@ public final class MetaDataContextsFactory {
return result;
}
- private static Collection<RuleConfiguration> getGlobalRuleConfigs(final
boolean databaseMetaDataExisted, final MetaDataPersistService persistService,
- final
Collection<RuleConfiguration> globalRuleConfigs) {
- return databaseMetaDataExisted ?
persistService.getGlobalRuleService().load() : globalRuleConfigs;
- }
-
- private static Map<String, ShardingSphereDatabase> getDatabases(final
boolean databaseMetaDataExisted, final MetaDataPersistService persistService,
- final
Map<String, DatabaseConfiguration> databaseConfigMap, final
ConfigurationProperties props,
- final
InstanceContext instanceContext) throws SQLException {
- return MetaDataFactory.create(databaseMetaDataExisted, persistService,
databaseConfigMap, props, instanceContext);
- }
-
- private static void persistDatabaseConfigurations(final boolean
databaseMetaDataExisted, final ContextManagerBuilderParameter param, final
MetaDataContexts metadataContexts) {
- if (!databaseMetaDataExisted) {
- persistDatabaseConfigurations(metadataContexts, param);
- }
- }
-
private static void persistDatabaseConfigurations(final MetaDataContexts
metadataContexts, final ContextManagerBuilderParameter param) {
metadataContexts.getPersistService().persistGlobalRuleConfiguration(param.getGlobalRuleConfigs(),
param.getProps());
for (Entry<String, ? extends DatabaseConfiguration> entry :
param.getDatabaseConfigs().entrySet()) {
@@ -172,12 +147,10 @@ public final class MetaDataContextsFactory {
}
}
- private static void persistMetaData(final boolean databaseMetaDataExisted,
final MetaDataContexts metaDataContexts) {
- if (!databaseMetaDataExisted) {
-
metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas()
- .forEach((schemaName, schema) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persist(each.getName(),
schemaName, schema)));
-
metaDataContexts.getShardingSphereData().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> metaDataContexts
-
.getPersistService().getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
- }
+ private static void persistMetaData(final MetaDataContexts
metaDataContexts) {
+ metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas()
+ .forEach((schemaName, schema) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persist(each.getName(),
schemaName, schema)));
+
metaDataContexts.getShardingSphereData().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> metaDataContexts
+
.getPersistService().getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
index 82e8bf99b6a..72f9d93c970 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
@@ -33,7 +33,8 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder;
-import org.apache.shardingsphere.metadata.NewMetaDataFactory;
+import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
+import org.apache.shardingsphere.metadata.factory.NewInternalMetaDataFactory;
import org.apache.shardingsphere.metadata.persist.NewMetaDataPersistService;
import org.apache.shardingsphere.mode.event.storage.StorageNodeDataSource;
import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
@@ -46,7 +47,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
import java.util.stream.Collectors;
/**
@@ -81,38 +81,30 @@ public final class NewMetaDataContextsFactory {
*/
public static MetaDataContexts create(final NewMetaDataPersistService
persistService, final ContextManagerBuilderParameter param,
final InstanceContext
instanceContext, final Map<String, StorageNodeDataSource> storageNodes) throws
SQLException {
- boolean databaseMetaDataExisted =
databaseMetaDataExisted(persistService);
- Map<String, DatabaseConfiguration> effectiveDatabaseConfigs =
getDatabaseConfigurations(databaseMetaDataExisted,
- getDatabaseNames(instanceContext, param.getDatabaseConfigs(),
persistService), param.getDatabaseConfigs(), persistService);
+ boolean isDatabaseMetaDataExisted =
!persistService.getDatabaseMetaDataService().loadAllDatabaseNames().isEmpty();
+ Map<String, DatabaseConfiguration> effectiveDatabaseConfigs =
isDatabaseMetaDataExisted
+ ?
createEffectiveDatabaseConfigurations(getDatabaseNames(instanceContext,
param.getDatabaseConfigs(), persistService), param.getDatabaseConfigs(),
persistService)
+ : param.getDatabaseConfigs();
checkDataSourceStates(effectiveDatabaseConfigs, storageNodes,
param.isForce());
- Collection<RuleConfiguration> globalRuleConfigs =
getGlobalRuleConfigs(databaseMetaDataExisted, persistService,
param.getGlobalRuleConfigs());
- ConfigurationProperties props =
getConfigurationProperties(databaseMetaDataExisted, persistService,
param.getProps());
- Map<String, ShardingSphereDatabase> databases =
getDatabases(databaseMetaDataExisted, persistService, effectiveDatabaseConfigs,
props, instanceContext);
+ Collection<RuleConfiguration> globalRuleConfigs =
isDatabaseMetaDataExisted ? persistService.getGlobalRuleService().load() :
param.getGlobalRuleConfigs();
+ ConfigurationProperties props = isDatabaseMetaDataExisted ? new
ConfigurationProperties(persistService.getPropsService().load()) : new
ConfigurationProperties(param.getProps());
+ Map<String, ShardingSphereDatabase> databases =
isDatabaseMetaDataExisted
+ ? NewInternalMetaDataFactory.create(persistService,
effectiveDatabaseConfigs, props, instanceContext)
+ : ExternalMetaDataFactory.create(effectiveDatabaseConfigs,
props, instanceContext);
ShardingSphereRuleMetaData globalMetaData = new
ShardingSphereRuleMetaData(GlobalRulesBuilder.buildRules(globalRuleConfigs,
databases, props));
MetaDataContexts result = new MetaDataContexts(persistService, new
ShardingSphereMetaData(databases, globalMetaData, props));
- persistDatabaseConfigurations(databaseMetaDataExisted, param, result);
- persistMetaData(databaseMetaDataExisted, result);
+ if (!isDatabaseMetaDataExisted) {
+ persistDatabaseConfigurations(result, param);
+ persistMetaData(result);
+ }
return result;
}
- private static boolean databaseMetaDataExisted(final
NewMetaDataPersistService persistService) {
- return
!persistService.getDatabaseMetaDataService().loadAllDatabaseNames().isEmpty();
- }
-
private static Collection<String> getDatabaseNames(final InstanceContext
instanceContext,
final Map<String,
DatabaseConfiguration> databaseConfigs, final NewMetaDataPersistService
persistService) {
return instanceContext.getInstance().getMetaData() instanceof
JDBCInstanceMetaData ? databaseConfigs.keySet() :
persistService.getDatabaseMetaDataService().loadAllDatabaseNames();
}
- private static ConfigurationProperties getConfigurationProperties(final
boolean databaseMetaDataExisted, final NewMetaDataPersistService
persistService, final Properties props) {
- return databaseMetaDataExisted ? new
ConfigurationProperties(persistService.getPropsService().load()) : new
ConfigurationProperties(props);
- }
-
- private static Map<String, DatabaseConfiguration>
getDatabaseConfigurations(final boolean databaseMetaDataExisted, final
Collection<String> databaseNames,
-
final Map<String, DatabaseConfiguration> databaseConfigs, final
NewMetaDataPersistService persistService) {
- return databaseMetaDataExisted ?
createEffectiveDatabaseConfigurations(databaseNames, databaseConfigs,
persistService) : databaseConfigs;
- }
-
private static Map<String, DatabaseConfiguration>
createEffectiveDatabaseConfigurations(final Collection<String> databaseNames,
final Map<String, DatabaseConfiguration> databaseConfigs, final
NewMetaDataPersistService persistService) {
return databaseNames.stream().collect(
@@ -147,23 +139,6 @@ public final class NewMetaDataContextsFactory {
return result;
}
- private static Collection<RuleConfiguration> getGlobalRuleConfigs(final
boolean databaseMetaDataExisted, final NewMetaDataPersistService persistService,
- final
Collection<RuleConfiguration> globalRuleConfigs) {
- return databaseMetaDataExisted ?
persistService.getGlobalRuleService().load() : globalRuleConfigs;
- }
-
- private static Map<String, ShardingSphereDatabase> getDatabases(final
boolean databaseMetaDataExisted, final NewMetaDataPersistService persistService,
- final
Map<String, DatabaseConfiguration> databaseConfigMap, final
ConfigurationProperties props,
- final
InstanceContext instanceContext) throws SQLException {
- return NewMetaDataFactory.create(databaseMetaDataExisted,
persistService, databaseConfigMap, props, instanceContext);
- }
-
- private static void persistDatabaseConfigurations(final boolean
databaseMetaDataExisted, final ContextManagerBuilderParameter param, final
MetaDataContexts metadataContexts) {
- if (!databaseMetaDataExisted) {
- persistDatabaseConfigurations(metadataContexts, param);
- }
- }
-
private static void persistDatabaseConfigurations(final MetaDataContexts
metadataContexts, final ContextManagerBuilderParameter param) {
metadataContexts.getPersistService().persistGlobalRuleConfiguration(param.getGlobalRuleConfigs(),
param.getProps());
for (Entry<String, ? extends DatabaseConfiguration> entry :
param.getDatabaseConfigs().entrySet()) {
@@ -174,12 +149,10 @@ public final class NewMetaDataContextsFactory {
}
}
- private static void persistMetaData(final boolean databaseMetaDataExisted,
final MetaDataContexts metaDataContexts) {
- if (!databaseMetaDataExisted) {
-
metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas()
- .forEach((schemaName, schema) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persist(each.getName(),
schemaName, schema)));
-
metaDataContexts.getShardingSphereData().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> metaDataContexts
-
.getPersistService().getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
- }
+ private static void persistMetaData(final MetaDataContexts
metaDataContexts) {
+ metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getSchemas()
+ .forEach((schemaName, schema) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persist(each.getName(),
schemaName, schema)));
+
metaDataContexts.getShardingSphereData().getDatabaseData().forEach((databaseName,
databaseData) -> databaseData.getSchemaData().forEach((schemaName, schemaData)
-> metaDataContexts
+
.getPersistService().getShardingSphereDataPersistService().persist(databaseName,
schemaName, schemaData, metaDataContexts.getMetaData().getDatabases())));
}
}
diff --git
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
index 388490e2f0e..69a5aa44383 100644
---
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
+++
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/type/MySQLDDLStatementVisitor.java
@@ -287,35 +287,39 @@ public final class MySQLDDLStatementVisitor extends
MySQLStatementVisitor implem
return result;
}
for (AlterDefinitionSegment each :
((CollectionValue<AlterDefinitionSegment>)
visit(ctx.alterTableActions().alterCommandList().alterList())).getValue()) {
- if (each instanceof AddColumnDefinitionSegment) {
-
result.getAddColumnDefinitions().add((AddColumnDefinitionSegment) each);
- } else if (each instanceof ModifyColumnDefinitionSegment) {
-
result.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment) each);
- } else if (each instanceof ChangeColumnDefinitionSegment) {
-
result.getChangeColumnDefinitions().add((ChangeColumnDefinitionSegment) each);
- } else if (each instanceof DropColumnDefinitionSegment) {
-
result.getDropColumnDefinitions().add((DropColumnDefinitionSegment) each);
- } else if (each instanceof AddConstraintDefinitionSegment) {
-
result.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment) each);
- } else if (each instanceof DropConstraintDefinitionSegment) {
-
result.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment)
each);
- } else if (each instanceof RenameTableDefinitionSegment) {
- result.setRenameTable(((RenameTableDefinitionSegment)
each).getRenameTable());
- } else if (each instanceof ConvertTableDefinitionSegment) {
-
result.setConvertTableDefinition((ConvertTableDefinitionSegment) each);
- } else if (each instanceof DropIndexDefinitionSegment) {
-
result.getDropIndexDefinitions().add((DropIndexDefinitionSegment) each);
- } else if (each instanceof RenameIndexDefinitionSegment) {
-
result.getRenameIndexDefinitions().add((RenameIndexDefinitionSegment) each);
- } else if (each instanceof RenameColumnSegment) {
- result.getRenameColumnDefinitions().add((RenameColumnSegment)
each);
- } else if (each instanceof AlgorithmTypeSegment) {
- result.setAlgorithmSegment((AlgorithmTypeSegment) each);
- } else if (each instanceof LockTableSegment) {
- result.setLockTableSegment((LockTableSegment) each);
- }
+ setAlterDefinition(result, each);
+ }
+ return result;
+ }
+
+ private void setAlterDefinition(final MySQLAlterTableStatement
alterTableStatement, final AlterDefinitionSegment alterDefinitionSegment) {
+ if (alterDefinitionSegment instanceof AddColumnDefinitionSegment) {
+
alterTableStatement.getAddColumnDefinitions().add((AddColumnDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
ModifyColumnDefinitionSegment) {
+
alterTableStatement.getModifyColumnDefinitions().add((ModifyColumnDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
ChangeColumnDefinitionSegment) {
+
alterTableStatement.getChangeColumnDefinitions().add((ChangeColumnDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
DropColumnDefinitionSegment) {
+
alterTableStatement.getDropColumnDefinitions().add((DropColumnDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
AddConstraintDefinitionSegment) {
+
alterTableStatement.getAddConstraintDefinitions().add((AddConstraintDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
DropConstraintDefinitionSegment) {
+
alterTableStatement.getDropConstraintDefinitions().add((DropConstraintDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
RenameTableDefinitionSegment) {
+ alterTableStatement.setRenameTable(((RenameTableDefinitionSegment)
alterDefinitionSegment).getRenameTable());
+ } else if (alterDefinitionSegment instanceof
ConvertTableDefinitionSegment) {
+
alterTableStatement.setConvertTableDefinition((ConvertTableDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
DropIndexDefinitionSegment) {
+
alterTableStatement.getDropIndexDefinitions().add((DropIndexDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof
RenameIndexDefinitionSegment) {
+
alterTableStatement.getRenameIndexDefinitions().add((RenameIndexDefinitionSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof RenameColumnSegment) {
+
alterTableStatement.getRenameColumnDefinitions().add((RenameColumnSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof AlgorithmTypeSegment) {
+ alterTableStatement.setAlgorithmSegment((AlgorithmTypeSegment)
alterDefinitionSegment);
+ } else if (alterDefinitionSegment instanceof LockTableSegment) {
+ alterTableStatement.setLockTableSegment((LockTableSegment)
alterDefinitionSegment);
}
- return result;
}
private ColumnDefinitionSegment generateColumnDefinitionSegment(final
ColumnSegment column, final FieldDefinitionContext ctx) {