未验证 提交 559b7beb 编写于 作者: L Liang Zhang 提交者: GitHub

Remove getAllTables() interface to SQLStatement (#4560)

* refactor TableSegmentsAvailable

* refactor TablesContext

* remove TableSegmentsAvailable for SQLStatement
上级 1087cbad
......@@ -21,22 +21,13 @@ import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.DALStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Describe statement.
*/
@Getter
@Setter
public final class DescribeStatement extends DALStatement implements TableSegmentsAvailable {
private TableSegment table;
public final class DescribeStatement extends DALStatement {
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
private TableSegment table;
}
......@@ -23,17 +23,13 @@ import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.RemoveAvailable;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.DALStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Show columns statement.
*/
@Getter
@Setter
public final class ShowColumnsStatement extends DALStatement implements TableSegmentsAvailable {
public final class ShowColumnsStatement extends DALStatement {
private TableSegment table;
......@@ -47,9 +43,4 @@ public final class ShowColumnsStatement extends DALStatement implements TableSeg
public Optional<RemoveAvailable> getFromSchema() {
return Optional.fromNullable(fromSchema);
}
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -21,22 +21,13 @@ import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.DALStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Show create table statement.
*/
@Getter
@Setter
public final class ShowCreateTableStatement extends DALStatement implements TableSegmentsAvailable {
public final class ShowCreateTableStatement extends DALStatement {
private TableSegment table;
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -23,17 +23,13 @@ import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.SchemaSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.DALStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Show columns statement.
*/
@Getter
@Setter
public final class ShowIndexStatement extends DALStatement implements TableSegmentsAvailable {
public final class ShowIndexStatement extends DALStatement {
private TableSegment table;
......@@ -47,9 +43,4 @@ public final class ShowIndexStatement extends DALStatement implements TableSegme
public Optional<SchemaSegment> getSchema() {
return Optional.fromNullable(schema);
}
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -20,22 +20,13 @@ package org.apache.shardingsphere.sql.parser.sql.statement.dcl;
import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Deny user statement.
*/
@Getter
@Setter
public final class DenyUserStatement extends DCLStatement implements TableSegmentsAvailable {
public final class DenyUserStatement extends DCLStatement {
private TableSegment table;
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -19,7 +19,6 @@ package org.apache.shardingsphere.sql.parser.sql.statement.dcl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.LinkedList;
......@@ -28,12 +27,7 @@ import java.util.LinkedList;
* Grant statement.
*/
@Getter
public final class GrantStatement extends DCLStatement implements TableSegmentsAvailable {
public final class GrantStatement extends DCLStatement {
private final Collection<TableSegment> tables = new LinkedList<>();
@Override
public Collection<TableSegment> getAllTables() {
return tables;
}
}
......@@ -19,7 +19,6 @@ package org.apache.shardingsphere.sql.parser.sql.statement.dcl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.LinkedList;
......@@ -28,12 +27,7 @@ import java.util.LinkedList;
* Revoke statement.
*/
@Getter
public final class RevokeStatement extends DCLStatement implements TableSegmentsAvailable {
public final class RevokeStatement extends DCLStatement {
private final Collection<TableSegment> tables = new LinkedList<>();
@Override
public Collection<TableSegment> getAllTables() {
return tables;
}
}
......@@ -22,24 +22,15 @@ import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.IndexSegmentAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Alter index statement.
*/
@Getter
@Setter
public final class AlterIndexStatement extends DDLStatement implements TableSegmentsAvailable, IndexSegmentAvailable {
public final class AlterIndexStatement extends DDLStatement implements IndexSegmentAvailable {
private IndexSegment index;
private TableSegment table;
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -19,13 +19,11 @@ package org.apache.shardingsphere.sql.parser.sql.statement.ddl;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.ColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.alter.AddColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.alter.DropColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.alter.ModifyColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.constraint.ConstraintDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.LinkedList;
......@@ -35,7 +33,7 @@ import java.util.LinkedList;
*/
@RequiredArgsConstructor
@Getter
public final class AlterTableStatement extends DDLStatement implements TableSegmentsAvailable {
public final class AlterTableStatement extends DDLStatement {
private final TableSegment table;
......@@ -46,24 +44,4 @@ public final class AlterTableStatement extends DDLStatement implements TableSegm
private final Collection<DropColumnDefinitionSegment> dropColumnDefinitions = new LinkedList<>();
private final Collection<ConstraintDefinitionSegment> addConstraintDefinitions = new LinkedList<>();
@Override
public Collection<TableSegment> getAllTables() {
Collection<TableSegment> result = new LinkedList<>();
result.add(table);
for (AddColumnDefinitionSegment each : addColumnDefinitions) {
for (ColumnDefinitionSegment columnDefinition : each.getColumnDefinitions()) {
result.addAll(columnDefinition.getReferencedTables());
}
}
for (ModifyColumnDefinitionSegment each : modifyColumnDefinitions) {
result.addAll(each.getColumnDefinition().getReferencedTables());
}
for (ConstraintDefinitionSegment each : addConstraintDefinitions) {
if (each.getReferencedTable().isPresent()) {
result.add(each.getReferencedTable().get());
}
}
return result;
}
}
......@@ -22,24 +22,15 @@ import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.IndexSegmentAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
/**
* Create index statement.
*/
@Getter
@Setter
public final class CreateIndexStatement extends DDLStatement implements TableSegmentsAvailable, IndexSegmentAvailable {
public final class CreateIndexStatement extends DDLStatement implements IndexSegmentAvailable {
private IndexSegment index;
private TableSegment table;
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -24,7 +24,6 @@ import org.apache.shardingsphere.sql.parser.sql.segment.ddl.constraint.Constrain
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.IndexSegmentsAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.LinkedList;
......@@ -34,7 +33,7 @@ import java.util.LinkedList;
*/
@RequiredArgsConstructor
@Getter
public final class CreateTableStatement extends DDLStatement implements TableSegmentsAvailable, IndexSegmentsAvailable {
public final class CreateTableStatement extends DDLStatement implements IndexSegmentsAvailable {
private final TableSegment table;
......@@ -43,19 +42,4 @@ public final class CreateTableStatement extends DDLStatement implements TableSeg
private final Collection<ConstraintDefinitionSegment> constraintDefinitions = new LinkedList<>();
private final Collection<IndexSegment> indexes = new LinkedList<>();
@Override
public Collection<TableSegment> getAllTables() {
Collection<TableSegment> result = new LinkedList<>();
result.add(table);
for (ColumnDefinitionSegment each : columnDefinitions) {
result.addAll(each.getReferencedTables());
}
for (ConstraintDefinitionSegment each : constraintDefinitions) {
if (each.getReferencedTable().isPresent()) {
result.add(each.getReferencedTable().get());
}
}
return result;
}
}
......@@ -22,10 +22,8 @@ import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.index.IndexSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.IndexSegmentsAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedList;
/**
......@@ -33,14 +31,9 @@ import java.util.LinkedList;
*/
@Getter
@Setter
public final class DropIndexStatement extends DDLStatement implements TableSegmentsAvailable, IndexSegmentsAvailable {
public final class DropIndexStatement extends DDLStatement implements IndexSegmentsAvailable {
private final Collection<IndexSegment> indexes = new LinkedList<>();
private TableSegment table;
@Override
public Collection<TableSegment> getAllTables() {
return null == table ? Collections.<TableSegment>emptyList() : Collections.singletonList(table);
}
}
......@@ -19,7 +19,6 @@ package org.apache.shardingsphere.sql.parser.sql.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.LinkedList;
......@@ -28,12 +27,7 @@ import java.util.LinkedList;
* Drop table statement.
*/
@Getter
public final class DropTableStatement extends DDLStatement implements TableSegmentsAvailable {
public final class DropTableStatement extends DDLStatement {
private final Collection<TableSegment> tables = new LinkedList<>();
@Override
public Collection<TableSegment> getAllTables() {
return tables;
}
}
......@@ -19,7 +19,6 @@ package org.apache.shardingsphere.sql.parser.sql.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.Collection;
import java.util.LinkedList;
......@@ -28,12 +27,7 @@ import java.util.LinkedList;
* Truncate table statement.
*/
@Getter
public final class TruncateStatement extends DDLStatement implements TableSegmentsAvailable {
public final class TruncateStatement extends DDLStatement {
private final Collection<TableSegment> tables = new LinkedList<>();
@Override
public Collection<TableSegment> getAllTables() {
return tables;
}
}
......@@ -20,12 +20,8 @@ package org.apache.shardingsphere.sql.parser.sql.statement.dml;
import com.google.common.base.Optional;
import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.AndPredicate;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.PredicateSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.WhereSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.WhereSegmentAvailable;
import java.util.Collection;
......@@ -36,7 +32,7 @@ import java.util.LinkedList;
*/
@Getter
@Setter
public final class DeleteStatement extends DMLStatement implements TableSegmentsAvailable, WhereSegmentAvailable {
public final class DeleteStatement extends DMLStatement implements WhereSegmentAvailable {
private final Collection<TableSegment> tables = new LinkedList<>();
......@@ -46,23 +42,4 @@ public final class DeleteStatement extends DMLStatement implements TableSegments
public Optional<WhereSegment> getWhere() {
return Optional.fromNullable(where);
}
@Override
public Collection<TableSegment> getAllTables() {
Collection<TableSegment> result = new LinkedList<>(tables);
if (null != where) {
result.addAll(getAllTablesFromWhere());
}
return result;
}
private Collection<TableSegment> getAllTablesFromWhere() {
Collection<TableSegment> result = new LinkedList<>();
for (AndPredicate each : where.getAndPredicates()) {
for (PredicateSegment predicate : each.getPredicates()) {
result.addAll(new PredicateExtractor(tables, predicate).extractTables());
}
}
return result;
}
}
......@@ -28,7 +28,6 @@ import org.apache.shardingsphere.sql.parser.sql.segment.dml.column.InsertColumns
import org.apache.shardingsphere.sql.parser.sql.segment.dml.column.OnDuplicateKeyColumnsSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.expr.ExpressionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.ArrayList;
import java.util.Collection;
......@@ -41,7 +40,7 @@ import java.util.List;
*/
@Getter
@Setter
public final class InsertStatement extends DMLStatement implements TableSegmentsAvailable {
public final class InsertStatement extends DMLStatement {
private TableSegment table;
......@@ -171,9 +170,4 @@ public final class InsertStatement extends DMLStatement implements TableSegments
}
return result;
}
@Override
public Collection<TableSegment> getAllTables() {
return Collections.singletonList(table);
}
}
......@@ -18,25 +18,15 @@
package org.apache.shardingsphere.sql.parser.sql.statement.dml;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ProjectionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ProjectionsSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.order.GroupBySegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.order.OrderBySegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.order.item.ColumnOrderByItemSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.order.item.OrderByItemSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.pagination.limit.LimitSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.AndPredicate;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.LockSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.PredicateSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.WhereSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.OwnerAvailable;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.OwnerSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.WhereSegmentAvailable;
import java.util.Collection;
......@@ -47,7 +37,7 @@ import java.util.LinkedList;
*/
@Getter
@Setter
public final class SelectStatement extends DMLStatement implements TableSegmentsAvailable, WhereSegmentAvailable {
public final class SelectStatement extends DMLStatement implements WhereSegmentAvailable {
private final Collection<TableSegment> tables = new LinkedList<>();
......@@ -105,67 +95,4 @@ public final class SelectStatement extends DMLStatement implements TableSegments
public Optional<WhereSegment> getWhere() {
return Optional.fromNullable(where);
}
@Override
public Collection<TableSegment> getAllTables() {
Collection<TableSegment> result = new LinkedList<>(tables);
if (null != where) {
result.addAll(getAllTablesFromWhere());
}
result.addAll(getAllTablesFromProjections());
if (null != groupBy) {
result.addAll(getAllTablesFromOrderByItems(groupBy.getGroupByItems()));
}
if (null != orderBy) {
result.addAll(getAllTablesFromOrderByItems(orderBy.getOrderByItems()));
}
return result;
}
private Collection<TableSegment> getAllTablesFromWhere() {
Collection<TableSegment> result = new LinkedList<>();
for (AndPredicate each : where.getAndPredicates()) {
for (PredicateSegment predicate : each.getPredicates()) {
result.addAll(new PredicateExtractor(tables, predicate).extractTables());
}
}
return result;
}
private Collection<TableSegment> getAllTablesFromProjections() {
Collection<TableSegment> result = new LinkedList<>();
for (ProjectionSegment each : projections.getProjections()) {
if (each instanceof OwnerAvailable) {
Optional<OwnerSegment> owner = ((OwnerAvailable) each).getOwner();
if (owner.isPresent() && isTable(owner.get())) {
result.add(new TableSegment(owner.get().getStartIndex(), owner.get().getStopIndex(), owner.get().getIdentifier()));
}
}
}
return result;
}
private Collection<TableSegment> getAllTablesFromOrderByItems(final Collection<OrderByItemSegment> orderByItems) {
Collection<TableSegment> result = new LinkedList<>();
for (OrderByItemSegment each : orderByItems) {
if (each instanceof ColumnOrderByItemSegment) {
Optional<OwnerSegment> owner = ((ColumnOrderByItemSegment) each).getColumn().getOwner();
if (owner.isPresent() && isTable(owner.get())) {
Preconditions.checkState(((ColumnOrderByItemSegment) each).getColumn().getOwner().isPresent());
OwnerSegment segment = ((ColumnOrderByItemSegment) each).getColumn().getOwner().get();
result.add(new TableSegment(segment.getStartIndex(), segment.getStopIndex(), segment.getIdentifier()));
}
}
}
return result;
}
private boolean isTable(final OwnerSegment owner) {
for (TableSegment each : tables) {
if (owner.getIdentifier().getValue().equals(each.getAlias().orNull())) {
return false;
}
}
return true;
}
}
......@@ -20,13 +20,9 @@ package org.apache.shardingsphere.sql.parser.sql.statement.dml;
import com.google.common.base.Optional;
import lombok.Getter;
import lombok.Setter;
import org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.assignment.SetAssignmentSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.AndPredicate;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.PredicateSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.WhereSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.WhereSegmentAvailable;
import java.util.Collection;
......@@ -37,7 +33,7 @@ import java.util.LinkedList;
*/
@Getter
@Setter
public final class UpdateStatement extends DMLStatement implements TableSegmentsAvailable, WhereSegmentAvailable {
public final class UpdateStatement extends DMLStatement implements WhereSegmentAvailable {
private final Collection<TableSegment> tables = new LinkedList<>();
......@@ -49,23 +45,4 @@ public final class UpdateStatement extends DMLStatement implements TableSegments
public Optional<WhereSegment> getWhere() {
return Optional.fromNullable(where);
}
@Override
public Collection<TableSegment> getAllTables() {
Collection<TableSegment> result = new LinkedList<>(tables);
if (null != where) {
result.addAll(getAllTablesFromWhere());
}
return result;
}
private Collection<TableSegment> getAllTablesFromWhere() {
Collection<TableSegment> result = new LinkedList<>();
for (AndPredicate each : where.getAndPredicates()) {
for (PredicateSegment predicate : each.getPredicates()) {
result.addAll(new PredicateExtractor(tables, predicate).extractTables());
}
}
return result;
}
}
......@@ -32,4 +32,11 @@ public interface TableSegmentsAvailable {
* @return all table segments
*/
Collection<TableSegment> getAllTables();
/**
* Get tables context.
*
* @return tables context
*/
Object getTablesContext();
}
......@@ -17,13 +17,7 @@
package org.apache.shardingsphere.sql.parser.relation.segment.table;
import lombok.ToString;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.SQLStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.DeleteStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.generic.TableSegmentsAvailable;
import java.util.ArrayList;
import java.util.Collection;
......@@ -33,36 +27,21 @@ import java.util.LinkedHashSet;
/**
* Tables context.
*/
@ToString
public final class TablesContext {
private final Collection<Table> tables;
public TablesContext(final SQLStatement sqlStatement) {
if (!(sqlStatement instanceof TableSegmentsAvailable)) {
tables = Collections.emptyList();
return;
}
Collection<TableSegment> tableSegments = getAllTables((TableSegmentsAvailable) sqlStatement);
public TablesContext(final TableSegment tableSegment) {
this(null == tableSegment ? Collections.<TableSegment>emptyList() : Collections.singletonList(tableSegment));
}
public TablesContext(final Collection<TableSegment> tableSegments) {
tables = new ArrayList<>(tableSegments.size());
for (TableSegment each : tableSegments) {
tables.add(new Table(each.getTableName().getIdentifier().getValue(), each.getAlias().orNull()));
}
}
private Collection<TableSegment> getAllTables(final TableSegmentsAvailable sqlStatement) {
if (sqlStatement instanceof SelectStatement) {
return ((SelectStatement) sqlStatement).getTables();
}
if (sqlStatement instanceof UpdateStatement) {
return ((UpdateStatement) sqlStatement).getTables();
}
if (sqlStatement instanceof DeleteStatement) {
return ((DeleteStatement) sqlStatement).getTables();
}
return sqlStatement.getAllTables();
}
/**
* Get table names.
*
......
......@@ -20,8 +20,11 @@ package org.apache.shardingsphere.sql.parser.relation.statement;
import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.SQLStatement;
import java.util.Collections;
/**
* Common SQL statement context.
*
......@@ -37,6 +40,6 @@ public class CommonSQLStatementContext<T extends SQLStatement> implements SQLSta
public CommonSQLStatementContext(final T sqlStatement) {
this.sqlStatement = sqlStatement;
tablesContext = new TablesContext(sqlStatement);
tablesContext = new TablesContext(Collections.<TableSegment>emptyList());
}
}
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dal;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.dialect.mysql.DescribeStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Describe statement context.
*/
@Getter
public final class DescribeStatementContext extends CommonSQLStatementContext<DescribeStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public DescribeStatementContext(final DescribeStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dal;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.dialect.mysql.ShowColumnsStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Show columns statement context.
*/
@Getter
public final class ShowColumnsStatementContext extends CommonSQLStatementContext<ShowColumnsStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public ShowColumnsStatementContext(final ShowColumnsStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dal;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.dialect.mysql.ShowCreateTableStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Show create table statement context.
*/
@Getter
public final class ShowCreateTableStatementContext extends CommonSQLStatementContext<ShowCreateTableStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public ShowCreateTableStatementContext(final ShowCreateTableStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dal;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dal.dialect.mysql.ShowIndexStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Show index statement context.
*/
@Getter
public final class ShowIndexStatementContext extends CommonSQLStatementContext<ShowIndexStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public ShowIndexStatementContext(final ShowIndexStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dcl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dcl.DenyUserStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Deny user statement context.
*/
@Getter
public final class DenyUserStatementContext extends CommonSQLStatementContext<DenyUserStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public DenyUserStatementContext(final DenyUserStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dcl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dcl.GrantStatement;
......@@ -27,10 +29,14 @@ import java.util.Collection;
/**
* Grant statement context.
*/
@Getter
public final class GrantStatementContext extends CommonSQLStatementContext<GrantStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public GrantStatementContext(final GrantStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.dcl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dcl.RevokeStatement;
......@@ -27,10 +29,14 @@ import java.util.Collection;
/**
* Revoke statement context.
*/
@Getter
public final class RevokeStatementContext extends CommonSQLStatementContext<RevokeStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public RevokeStatementContext(final RevokeStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.ddl.AlterIndexStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Alter index statement context.
*/
@Getter
public final class AlterIndexStatementContext extends CommonSQLStatementContext<AlterIndexStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public AlterIndexStatementContext(final AlterIndexStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.ColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.alter.AddColumnDefinitionSegment;
......@@ -32,10 +34,14 @@ import java.util.LinkedList;
/**
* Alter table statement context.
*/
@Getter
public final class AlterTableStatementContext extends CommonSQLStatementContext<AlterTableStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public AlterTableStatementContext(final AlterTableStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.ddl.CreateIndexStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Create index statement context.
*/
@Getter
public final class CreateIndexStatementContext extends CommonSQLStatementContext<CreateIndexStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public CreateIndexStatementContext(final CreateIndexStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.column.ColumnDefinitionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.ddl.constraint.ConstraintDefinitionSegment;
......@@ -30,10 +32,14 @@ import java.util.LinkedList;
/**
* Create table statement context.
*/
@Getter
public final class CreateTableStatementContext extends CommonSQLStatementContext<CreateTableStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public CreateTableStatementContext(final CreateTableStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.ddl.DropIndexStatement;
......@@ -28,10 +30,14 @@ import java.util.Collections;
/**
* Drop index statement context.
*/
@Getter
public final class DropIndexStatementContext extends CommonSQLStatementContext<DropIndexStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public DropIndexStatementContext(final DropIndexStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.ddl.DropTableStatement;
......@@ -27,10 +29,14 @@ import java.util.Collection;
/**
* Drop table statement context.
*/
@Getter
public final class DropTableStatementContext extends CommonSQLStatementContext<DropTableStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public DropTableStatementContext(final DropTableStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
}
@Override
......
......@@ -17,6 +17,8 @@
package org.apache.shardingsphere.sql.parser.relation.statement.ddl;
import lombok.Getter;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.ddl.TruncateStatement;
......@@ -27,10 +29,14 @@ import java.util.Collection;
/**
* Truncate statement context.
*/
@Getter
public final class TruncateStatementContext extends CommonSQLStatementContext<TruncateStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public TruncateStatementContext(final TruncateStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
}
@Override
......
......@@ -19,6 +19,7 @@ package org.apache.shardingsphere.sql.parser.relation.statement.dml;
import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.AndPredicate;
......@@ -38,8 +39,11 @@ import java.util.LinkedList;
@ToString(callSuper = true)
public final class DeleteStatementContext extends CommonSQLStatementContext<DeleteStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public DeleteStatementContext(final DeleteStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
}
@Override
......
......@@ -21,6 +21,7 @@ import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.sql.parser.relation.metadata.RelationMetas;
import org.apache.shardingsphere.sql.parser.relation.segment.insert.InsertValueContext;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.expr.ExpressionSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
......@@ -40,12 +41,15 @@ import java.util.List;
@ToString(callSuper = true)
public final class InsertStatementContext extends CommonSQLStatementContext<InsertStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
private final List<String> columnNames;
private final List<InsertValueContext> insertValueContexts;
public InsertStatementContext(final RelationMetas relationMetas, final List<Object> parameters, final InsertStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTable());
columnNames = sqlStatement.useDefaultColumns() ? relationMetas.getAllColumnNames(sqlStatement.getTable().getTableName().getIdentifier().getValue()) : sqlStatement.getColumnNames();
insertValueContexts = getInsertValueContexts(parameters);
}
......
......@@ -33,6 +33,7 @@ import org.apache.shardingsphere.sql.parser.relation.segment.select.projection.P
import org.apache.shardingsphere.sql.parser.relation.segment.select.projection.ProjectionsContext;
import org.apache.shardingsphere.sql.parser.relation.segment.select.projection.engine.ProjectionsContextEngine;
import org.apache.shardingsphere.sql.parser.relation.segment.select.projection.impl.AggregationProjection;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.item.ProjectionSegment;
......@@ -64,6 +65,8 @@ import java.util.Map;
@ToString(callSuper = true)
public final class SelectStatementContext extends CommonSQLStatementContext<SelectStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
private final ProjectionsContext projectionsContext;
private final GroupByContext groupByContext;
......@@ -78,6 +81,7 @@ public final class SelectStatementContext extends CommonSQLStatementContext<Sele
public SelectStatementContext(final SelectStatement sqlStatement, final GroupByContext groupByContext,
final OrderByContext orderByContext, final ProjectionsContext projectionsContext, final PaginationContext paginationContext) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
this.groupByContext = groupByContext;
this.orderByContext = orderByContext;
this.projectionsContext = projectionsContext;
......@@ -87,6 +91,7 @@ public final class SelectStatementContext extends CommonSQLStatementContext<Sele
public SelectStatementContext(final RelationMetas relationMetas, final String sql, final List<Object> parameters, final SelectStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
groupByContext = new GroupByContextEngine().createGroupByContext(sqlStatement);
orderByContext = new OrderByContextEngine().createOrderBy(sqlStatement, groupByContext);
projectionsContext = new ProjectionsContextEngine(relationMetas).createProjectionsContext(sql, sqlStatement, groupByContext, orderByContext);
......
......@@ -19,6 +19,7 @@ package org.apache.shardingsphere.sql.parser.relation.statement.dml;
import lombok.Getter;
import lombok.ToString;
import org.apache.shardingsphere.sql.parser.relation.segment.table.TablesContext;
import org.apache.shardingsphere.sql.parser.relation.statement.CommonSQLStatementContext;
import org.apache.shardingsphere.sql.parser.sql.predicate.PredicateExtractor;
import org.apache.shardingsphere.sql.parser.sql.segment.dml.predicate.AndPredicate;
......@@ -38,8 +39,11 @@ import java.util.LinkedList;
@ToString(callSuper = true)
public final class UpdateStatementContext extends CommonSQLStatementContext<UpdateStatement> implements TableSegmentsAvailable {
private final TablesContext tablesContext;
public UpdateStatementContext(final UpdateStatement sqlStatement) {
super(sqlStatement);
tablesContext = new TablesContext(sqlStatement.getTables());
}
@Override
......
......@@ -148,17 +148,16 @@ public final class ProjectionsContextEngineTest {
@Test
public void assertCreateProjectionsContextWhenColumnOrderByItemSegmentOwnerPresentAndTablePresent() {
SelectStatement selectStatement = mock(SelectStatement.class);
when(selectStatement.getTables()).thenReturn(Collections.singletonList(new TableSegment(0, 0, new IdentifierValue("name"))));
ProjectionsSegment projectionsSegment = mock(ProjectionsSegment.class);
when(selectStatement.getProjections()).thenReturn(projectionsSegment);
TableSegment tableSegment = new TableSegment(0, 10, new IdentifierValue("name"));
tableSegment.setOwner(new OwnerSegment(0, 0, new IdentifierValue("schema")));
when(selectStatement.getTables()).thenReturn(Collections.singletonList(tableSegment));
ProjectionsSegment projectionsSegment = mock(ProjectionsSegment.class);
when(selectStatement.getProjections()).thenReturn(projectionsSegment);
ShorthandProjectionSegment shorthandProjectionSegment = new ShorthandProjectionSegment(0, 10, "text");
TableSegment table = new TableSegment(0, 10, new IdentifierValue("name"));
OwnerSegment owner = new OwnerSegment(0, 10, new IdentifierValue("name"));
table.setOwner(new OwnerSegment(0, 10, new IdentifierValue("name")));
shorthandProjectionSegment.setOwner(owner);
when(selectStatement.getAllTables()).thenReturn(Collections.singletonList(tableSegment));
ColumnSegment columnSegment = new ColumnSegment(0, 0, new IdentifierValue("col"));
columnSegment.setOwner(owner);
ColumnProjectionSegment columnProjectionSegment = new ColumnProjectionSegment("ColumnProjectionSegment", columnSegment);
......
......@@ -21,13 +21,13 @@ import com.google.common.collect.Sets;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.AliasSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.OwnerSegment;
import org.apache.shardingsphere.sql.parser.sql.segment.generic.TableSegment;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.sql.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.sql.value.identifier.IdentifierValue;
import org.hamcrest.CoreMatchers;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import static org.junit.Assert.assertThat;
......@@ -35,20 +35,15 @@ public final class TablesContextTest {
@Test
public void assertGetTableNames() {
SelectStatement selectStatement = new SelectStatement();
selectStatement.getTables().add(createTableSegment("table_1", "tbl_1"));
selectStatement.getTables().add(createTableSegment("table_2", "tbl_2"));
TablesContext tablesContext = new TablesContext(selectStatement);
TablesContext tablesContext = new TablesContext(Arrays.asList(createTableSegment("table_1", "tbl_1"), createTableSegment("table_2", "tbl_2")));
assertThat(tablesContext.getTableNames(), CoreMatchers.<Collection<String>>is(Sets.newHashSet("table_1", "table_2")));
}
@Test
public void assertInstanceCreatedWhenNoExceptionThrown() {
InsertStatement sqlStatement = new InsertStatement();
TableSegment tableSegment = new TableSegment(0, 10, new IdentifierValue("tbl"));
tableSegment.setOwner(new OwnerSegment(0, 0, new IdentifierValue("schema")));
sqlStatement.setTable(tableSegment);
new TablesContext(sqlStatement);
new TablesContext(Collections.singletonList(tableSegment));
}
private TableSegment createTableSegment(final String tableName, final String alias) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册