This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 4604b4cbd11 Refactor InsertStatementContext (#32102)
4604b4cbd11 is described below
commit 4604b4cbd11c55eaa1f3162200db484f0e3a1934
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jul 14 22:16:44 2024 +0800
Refactor InsertStatementContext (#32102)
---
.../context/statement/dml/InsertStatementContext.java | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
index 48d8cd129a8..e3e944ec15b 100644
---
a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
+++
b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/context/statement/dml/InsertStatementContext.java
@@ -35,7 +35,6 @@ import
org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.sql.parser.statement.core.enums.SubqueryType;
-import org.apache.shardingsphere.sql.parser.statement.core.util.TableExtractor;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.ColumnAssignmentSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.InsertValuesSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.assignment.SetAssignmentSegment;
@@ -45,6 +44,7 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.Expr
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.expr.subquery.SubquerySegment;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.statement.core.util.TableExtractor;
import java.util.ArrayList;
import java.util.Collection;
@@ -58,13 +58,8 @@ import java.util.concurrent.atomic.AtomicInteger;
/**
* Insert SQL statement context.
*/
-@Getter
public final class InsertStatementContext extends CommonSQLStatementContext
implements TableAvailable, ParameterAware {
- private final TablesContext tablesContext;
-
- private final List<String> columnNames;
-
private final ShardingSphereMetaData metaData;
private final String currentDatabaseName;
@@ -73,10 +68,19 @@ public final class InsertStatementContext extends
CommonSQLStatementContext impl
private final List<List<ExpressionSegment>> valueExpressions;
+ @Getter
+ private final TablesContext tablesContext;
+
+ @Getter
+ private final List<String> columnNames;
+
+ @Getter
private List<InsertValueContext> insertValueContexts;
+ @Getter
private InsertSelectContext insertSelectContext;
+ @Getter
private OnDuplicateUpdateContext onDuplicateKeyUpdateValueContext;
private GeneratedKeyContext generatedKeyContext;
@@ -216,8 +220,7 @@ public final class InsertStatementContext extends
CommonSQLStatementContext impl
* @return column names collection
*/
public List<String> getInsertColumnNames() {
- InsertStatement insertStatement = getSqlStatement();
- return
insertStatement.getSetAssignment().map(this::getColumnNamesForSetAssignment).orElseGet(()
-> getColumnNamesForInsertColumns(insertStatement.getColumns()));
+ return
getSqlStatement().getSetAssignment().map(this::getColumnNamesForSetAssignment).orElseGet(()
-> getColumnNamesForInsertColumns(getSqlStatement().getColumns()));
}
private List<String> getColumnNamesForSetAssignment(final
SetAssignmentSegment setAssignment) {