This is an automated email from the ASF dual-hosted git repository.
wangguangyuan 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 cfec448 Parse package, type and indextype segment (#12083)
cfec448 is described below
commit cfec4481a7a41615956ce6640bce11621c190284
Author: Liangda-w <[email protected]>
AuthorDate: Thu Sep 2 02:44:25 2021 +0200
Parse package, type and indextype segment (#12083)
---
.../src/main/antlr4/imports/oracle/BaseRule.g4 | 2 +-
.../src/main/antlr4/imports/oracle/DDLStatement.g4 | 6 +--
.../impl/OracleDDLStatementSQLVisitor.java | 33 +++++++++++++++++
.../statement/impl/OracleStatementSQLVisitor.java | 21 +++++++++++
.../segment/ddl/index/IndextypeSegment.java} | 35 ++++++++++++------
.../segment/ddl/packages/PackageSegment.java} | 35 ++++++++++++------
.../segment/ddl/type/TypeSegment.java} | 34 +++++++++++------
.../ddl/OracleAssociateStatisticsStatement.java | 15 ++++++--
.../oracle/ddl/OracleCommentStatement.java | 3 ++
.../ddl/OracleDisassociateStatisticsStatement.java | 15 ++++++--
.../asserts/segment/function/FunctionAssert.java | 2 +-
.../IndextypeAssert.java} | 24 ++++++------
.../PackageAssert.java} | 23 ++++++------
.../FunctionAssert.java => type/TypeAssert.java} | 22 +++++------
.../impl/AssociateStatisticsStatementAssert.java | 43 +++++++++++++++++++++-
.../statement/ddl/impl/CommentStatementAssert.java | 10 ++++-
.../DisassociateStatisticsStatementAssert.java | 43 +++++++++++++++++++++-
.../impl/index/ExpectedIndextype.java} | 18 ++++-----
.../impl/packages/ExpectedPackage.java} | 18 ++++-----
.../impl/type/ExpectedType.java} | 18 ++++-----
.../ddl/AssociateStatisticsStatementTestCase.java | 18 +++++++--
.../statement/ddl/CommentStatementTestCase.java | 6 ++-
.../DisassociateStatisticsStatementTestCase.java | 18 +++++++--
.../resources/case/ddl/associate-statistics.xml | 22 +++++++----
.../src/main/resources/case/ddl/comment.xml | 4 +-
.../resources/case/ddl/disassociate-statistics.xml | 22 +++++++----
26 files changed, 369 insertions(+), 141 deletions(-)
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 33a94c4..93294a2 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -147,7 +147,7 @@ typeName
: (owner DOT_)? name
;
-indexTypeName
+indextypeName
: (owner DOT_)? name
;
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
index 38e0927..c0b2e1f 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
@@ -1819,7 +1819,7 @@ functionAssociation
| PACKAGES packageName (COMMA_ packageName)*
| TYPES typeName (COMMA_ typeName)*
| INDEXES indexName (COMMA_ indexName)*
- | INDEXTYPES indexTypeName (COMMA_ indexTypeName)*)
+ | INDEXTYPES indextypeName (COMMA_ indextypeName)*)
(usingStatisticsType | defaultCostClause (COMMA_
defaultSelectivityClause)? | defaultSelectivityClause (COMMA_
defaultCostClause)?)
;
@@ -1846,7 +1846,7 @@ disassociateStatistics
| PACKAGES packageName (COMMA_ packageName)*
| TYPES typeName (COMMA_ typeName)*
| INDEXES indexName (COMMA_ indexName)*
- | INDEXTYPES indexTypeName (COMMA_ indexTypeName)*) FORCE?
+ | INDEXTYPES indextypeName (COMMA_ indextypeName)*) FORCE?
;
audit
@@ -1882,7 +1882,7 @@ comment
| AUDIT POLICY policyName
| COLUMN (tableName | viewName | materializedViewName) DOT_ columnName
| EDITION editionName
- | INDEXTYPE indexTypeName
+ | INDEXTYPE indextypeName
| MATERIALIZED VIEW materializedViewName
| MINING MODEL modelName
| OPERATOR operatorName
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
index 43de898..1325f1f 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleDDLStatementSQLVisitor.java
@@ -50,6 +50,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.Flashb
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.FlashbackTableContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.FunctionContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.IndexNameContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.IndextypeNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.InlineConstraintContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.ModifyColPropertiesContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.ModifyColumnSpecificationContext;
@@ -58,11 +59,13 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.NoAudi
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.OperateColumnClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.OutOfLineConstraintContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.OutOfLineRefConstraintContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.PackageNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.PurgeContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.RelationalPropertyContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.RenameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TableNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TruncateTableContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TypeNameContext;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.AlterDefinitionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.CreateDefinitionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.column.ColumnDefinitionSegment;
@@ -76,6 +79,9 @@ import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.al
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.alter.ModifyConstraintDefinitionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DataTypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
@@ -430,6 +436,15 @@ public final class OracleDDLStatementSQLVisitor extends
OracleStatementSQLVisito
for (FunctionContext each: ctx.functionAssociation().function()) {
result.getFunctions().add((FunctionSegment) visit(each));
}
+ for (PackageNameContext each:
ctx.functionAssociation().packageName()) {
+ result.getPackages().add((PackageSegment) visit(each));
+ }
+ for (TypeNameContext each: ctx.functionAssociation().typeName()) {
+ result.getTypes().add((TypeSegment) visit(each));
+ }
+ for (IndextypeNameContext each:
ctx.functionAssociation().indextypeName()) {
+ result.getIndextypes().add((IndextypeSegment) visit(each));
+ }
}
return result;
}
@@ -455,6 +470,21 @@ public final class OracleDDLStatementSQLVisitor extends
OracleStatementSQLVisito
result.getFunctions().add((FunctionSegment) visit(each));
}
}
+ if (null != ctx.packageName()) {
+ for (PackageNameContext each: ctx.packageName()) {
+ result.getPackages().add((PackageSegment) visit(each));
+ }
+ }
+ if (null != ctx.typeName()) {
+ for (TypeNameContext each: ctx.typeName()) {
+ result.getTypes().add((TypeSegment) visit(each));
+ }
+ }
+ if (null != ctx.indextypeName()) {
+ for (IndextypeNameContext each: ctx.indextypeName()) {
+ result.getIndextypes().add((IndextypeSegment) visit(each));
+ }
+ }
return result;
}
@@ -477,6 +507,9 @@ public final class OracleDDLStatementSQLVisitor extends
OracleStatementSQLVisito
if (null != ctx.columnName()) {
result.setColumn((ColumnSegment) visit(ctx.columnName()));
}
+ if (null != ctx.indextypeName()) {
+ result.setIndextype((IndextypeSegment) visit(ctx.indextypeName()));
+ }
return result;
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
index 12dacf7..ff3f9d5 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/java/org/apache/shardingsphere/sql/parser/oracle/visitor/statement/impl/OracleStatementSQLVisitor.java
@@ -45,12 +45,14 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.Functi
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.HexadecimalLiteralsContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.IdentifierContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.IndexNameContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.IndextypeNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.LiteralsContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.NullValueLiteralsContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.NumberLiteralsContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.OrderByClauseContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.OrderByItemContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.OwnerContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.PackageNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.ParameterMarkerContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.PredicateContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.RegularFunctionContext;
@@ -61,6 +63,7 @@ import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.String
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.SynonymNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TableNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TableNamesContext;
+import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.TypeNameContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.UnreservedWordContext;
import
org.apache.shardingsphere.sql.parser.autogen.OracleStatementParser.ViewNameContext;
import
org.apache.shardingsphere.sql.parser.sql.common.constant.AggregationType;
@@ -68,6 +71,9 @@ import
org.apache.shardingsphere.sql.parser.sql.common.constant.OrderDirection;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.constraint.ConstraintSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BetweenExpression;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.BinaryOperationExpression;
@@ -247,6 +253,21 @@ public abstract class OracleStatementSQLVisitor extends
OracleStatementBaseVisit
}
@Override
+ public final ASTNode visitPackageName(final PackageNameContext ctx) {
+ return new PackageSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()));
+ }
+
+ @Override
+ public final ASTNode visitTypeName(final TypeNameContext ctx) {
+ return new TypeSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()));
+ }
+
+ @Override
+ public final ASTNode visitIndextypeName(final IndextypeNameContext ctx) {
+ return new IndextypeSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.name()));
+ }
+
+ @Override
public final ASTNode visitConstraintName(final ConstraintNameContext ctx) {
return new ConstraintSegment(ctx.getStart().getStartIndex(),
ctx.getStop().getStopIndex(), (IdentifierValue) visit(ctx.identifier()));
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/index/IndextypeSegment.java
similarity index 54%
copy from
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
copy to
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/index/IndextypeSegment.java
index b916ef5..674f3c5 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/index/IndextypeSegment.java
@@ -15,26 +15,37 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl;
+package org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.Setter;
-import lombok.ToString;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerAvailable;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+
+import java.util.Optional;
/**
- * Oracle comment statement.
+ * Indextype segment.
*/
+@RequiredArgsConstructor
@Getter
@Setter
-@ToString
-public final class OracleCommentStatement extends AbstractSQLStatement
implements DDLStatement, OracleStatement {
+public final class IndextypeSegment implements SQLSegment, OwnerAvailable {
+
+ private final int startIndex;
+
+ private final int stopIndex;
+
+ private final IdentifierValue identifier;
+
+ private OwnerSegment owner;
- private SimpleTableSegment table;
+ @Override
+ public Optional<OwnerSegment> getOwner() {
+ return Optional.ofNullable(owner);
+ }
- private ColumnSegment column;
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/packages/PackageSegment.java
similarity index 54%
copy from
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
copy to
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/packages/PackageSegment.java
index b916ef5..ab9a542 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/packages/PackageSegment.java
@@ -15,26 +15,37 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl;
+package org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.Setter;
-import lombok.ToString;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerAvailable;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+
+import java.util.Optional;
/**
- * Oracle comment statement.
+ * Package segment.
*/
+@RequiredArgsConstructor
@Getter
@Setter
-@ToString
-public final class OracleCommentStatement extends AbstractSQLStatement
implements DDLStatement, OracleStatement {
+public final class PackageSegment implements SQLSegment, OwnerAvailable {
+
+ private final int startIndex;
+
+ private final int stopIndex;
+
+ private final IdentifierValue identifier;
+
+ private OwnerSegment owner;
- private SimpleTableSegment table;
+ @Override
+ public Optional<OwnerSegment> getOwner() {
+ return Optional.ofNullable(owner);
+ }
- private ColumnSegment column;
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/type/TypeSegment.java
similarity index 54%
copy from
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
copy to
shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/type/TypeSegment.java
index b916ef5..8f71f53 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/common/segment/ddl/type/TypeSegment.java
@@ -15,26 +15,36 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl;
+package org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.Setter;
-import lombok.ToString;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
-import
org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DDLStatement;
-import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.OracleStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.segment.SQLSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerAvailable;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.OwnerSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
+
+import java.util.Optional;
/**
- * Oracle comment statement.
+ * Type segment.
*/
+@RequiredArgsConstructor
@Getter
@Setter
-@ToString
-public final class OracleCommentStatement extends AbstractSQLStatement
implements DDLStatement, OracleStatement {
+public final class TypeSegment implements SQLSegment, OwnerAvailable {
+
+ private final int startIndex;
+
+ private final int stopIndex;
+
+ private final IdentifierValue identifier;
- private SimpleTableSegment table;
+ private OwnerSegment owner;
- private ColumnSegment column;
+ @Override
+ public Optional<OwnerSegment> getOwner() {
+ return Optional.ofNullable(owner);
+ }
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAssociateStatisticsStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAssociateStatisticsStatement.java
index 754952e..18803dd 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAssociateStatisticsStatement.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleAssociateStatisticsStatement.java
@@ -22,6 +22,9 @@ import lombok.Setter;
import lombok.ToString;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
@@ -38,12 +41,18 @@ import java.util.List;
@Setter
@ToString
public final class OracleAssociateStatisticsStatement extends
AbstractSQLStatement implements DDLStatement, OracleStatement {
-
+
private List<IndexSegment> indexes = new LinkedList<>();
private List<SimpleTableSegment> tables = new LinkedList<>();
-
+
private List<ColumnSegment> columns = new LinkedList<>();
-
+
private List<FunctionSegment> functions = new LinkedList<>();
+
+ private List<PackageSegment> packages = new LinkedList<>();
+
+ private List<TypeSegment> types = new LinkedList<>();
+
+ private List<IndextypeSegment> indextypes = new LinkedList<>();
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
index b916ef5..8f7f7bf 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleCommentStatement.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
@@ -37,4 +38,6 @@ public final class OracleCommentStatement extends
AbstractSQLStatement implement
private SimpleTableSegment table;
private ColumnSegment column;
+
+ private IndextypeSegment indextype;
}
diff --git
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDisassociateStatisticsStatement.java
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDisassociateStatisticsStatement.java
index 7063a75..2ef68e1 100644
---
a/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDisassociateStatisticsStatement.java
+++
b/shardingsphere-sql-parser/shardingsphere-sql-parser-statement/src/main/java/org/apache/shardingsphere/sql/parser/sql/dialect/statement/oracle/ddl/OracleDisassociateStatisticsStatement.java
@@ -22,6 +22,9 @@ import lombok.Setter;
import lombok.ToString;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.statement.AbstractSQLStatement;
@@ -38,12 +41,18 @@ import java.util.List;
@Setter
@ToString
public final class OracleDisassociateStatisticsStatement extends
AbstractSQLStatement implements DDLStatement, OracleStatement {
-
+
private List<IndexSegment> indexes = new LinkedList<>();
private List<SimpleTableSegment> tables = new LinkedList<>();
-
+
private List<ColumnSegment> columns = new LinkedList<>();
-
+
private List<FunctionSegment> functions = new LinkedList<>();
+
+ private List<PackageSegment> packages = new LinkedList<>();
+
+ private List<TypeSegment> types = new LinkedList<>();
+
+ private List<IndextypeSegment> indextypes = new LinkedList<>();
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
index d68d64c..908675f 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertTrue;
public final class FunctionAssert {
/**
- * Assert actual function segment is correct with expected index.
+ * Assert actual function segment is correct with expected function.
*
* @param assertContext assert context
* @param actual actual function segment
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/index/IndextypeAssert.java
similarity index 81%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/index/IndextypeAssert.java
index d68d64c..423fd52 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/index/IndextypeAssert.java
@@ -15,37 +15,37 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.function;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.index;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.SQLSegmentAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.owner.OwnerAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.value.IdentifierValueAssert;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.function.ExpectedFunction;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndextype;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
- * Function assert.
+ * Indextype assert.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class FunctionAssert {
-
+public final class IndextypeAssert {
+
/**
- * Assert actual function segment is correct with expected index.
+ * Assert actual indextype segment is correct with expected indextype.
*
* @param assertContext assert context
- * @param actual actual function segment
- * @param expected expected function
+ * @param actual actual indextype segment
+ * @param expected expected indextype
*/
- public static void assertIs(final SQLCaseAssertContext assertContext,
final FunctionSegment actual, final ExpectedFunction expected) {
- assertNotNull(assertContext.getText("Function should exist."),
expected);
- IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(),
expected, "Function");
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final IndextypeSegment actual, final ExpectedIndextype expected) {
+ assertNotNull(assertContext.getText("Indextype should exist."),
expected);
+ IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(),
expected, "Indextype");
if (null != expected.getOwner()) {
assertTrue(assertContext.getText("Actual owner should exist."),
actual.getOwner().isPresent());
OwnerAssert.assertIs(assertContext, actual.getOwner().get(),
expected.getOwner());
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/packages/PackageAssert.java
similarity index 81%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/packages/PackageAssert.java
index d68d64c..40e5081 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/packages/PackageAssert.java
@@ -15,37 +15,37 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.function;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.packages;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.SQLSegmentAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.owner.OwnerAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.value.IdentifierValueAssert;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.function.ExpectedFunction;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.packages.ExpectedPackage;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
- * Function assert.
+ * Package assert.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class FunctionAssert {
+public final class PackageAssert {
/**
- * Assert actual function segment is correct with expected index.
+ * Assert actual package segment is correct with expected package.
*
* @param assertContext assert context
- * @param actual actual function segment
- * @param expected expected function
+ * @param actual actual package segment
+ * @param expected expected package
*/
- public static void assertIs(final SQLCaseAssertContext assertContext,
final FunctionSegment actual, final ExpectedFunction expected) {
- assertNotNull(assertContext.getText("Function should exist."),
expected);
- IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(),
expected, "Function");
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final PackageSegment actual, final ExpectedPackage expected) {
+ assertNotNull(assertContext.getText("Package should exist."),
expected);
+ IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(),
expected, "Package");
if (null != expected.getOwner()) {
assertTrue(assertContext.getText("Actual owner should exist."),
actual.getOwner().isPresent());
OwnerAssert.assertIs(assertContext, actual.getOwner().get(),
expected.getOwner());
@@ -55,3 +55,4 @@ public final class FunctionAssert {
SQLSegmentAssert.assertIs(assertContext, actual, expected);
}
}
+
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/type/TypeAssert.java
similarity index 81%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/type/TypeAssert.java
index d68d64c..180f35d 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/function/FunctionAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/segment/type/TypeAssert.java
@@ -15,37 +15,37 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.function;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.type;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.SQLSegmentAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.owner.OwnerAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.value.IdentifierValueAssert;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.function.ExpectedFunction;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.type.ExpectedType;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
/**
- * Function assert.
+ * Type assert.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class FunctionAssert {
+public final class TypeAssert {
/**
- * Assert actual function segment is correct with expected index.
+ * Assert actual type segment is correct with expected type.
*
* @param assertContext assert context
- * @param actual actual function segment
- * @param expected expected function
+ * @param actual actual type segment
+ * @param expected expected type
*/
- public static void assertIs(final SQLCaseAssertContext assertContext,
final FunctionSegment actual, final ExpectedFunction expected) {
- assertNotNull(assertContext.getText("Function should exist."),
expected);
- IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(),
expected, "Function");
+ public static void assertIs(final SQLCaseAssertContext assertContext,
final TypeSegment actual, final ExpectedType expected) {
+ assertNotNull(assertContext.getText("Type should exist."), expected);
+ IdentifierValueAssert.assertIs(assertContext, actual.getIdentifier(),
expected, "Type");
if (null != expected.getOwner()) {
assertTrue(assertContext.getText("Actual owner should exist."),
actual.getOwner().isPresent());
OwnerAssert.assertIs(assertContext, actual.getOwner().get(),
expected.getOwner());
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AssociateStatisticsStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AssociateStatisticsStatementAssert.java
index 0397e99..dddade4 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AssociateStatisticsStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/AssociateStatisticsStatementAssert.java
@@ -21,13 +21,19 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleAssociateStatisticsStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.column.ColumnAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.function.FunctionAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.index.IndexAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.index.IndextypeAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.packages.PackageAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.table.TableAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.type.TypeAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.AssociateStatisticsStatementTestCase;
/**
@@ -48,6 +54,9 @@ public final class AssociateStatisticsStatementAssert {
assertColumns(assertContext, actual, expected);
assertIndexes(assertContext, actual, expected);
assertFunctions(assertContext, actual, expected);
+ assertPackages(assertContext, actual, expected);
+ assertTypes(assertContext, actual, expected);
+ assertIndextypes(assertContext, actual, expected);
}
private static void assertTables(final SQLCaseAssertContext assertContext,
final OracleAssociateStatisticsStatement actual, final
AssociateStatisticsStatementTestCase expected) {
@@ -55,7 +64,7 @@ public final class AssociateStatisticsStatementAssert {
TableAssert.assertIs(assertContext, actual.getTables(),
expected.getTables());
}
}
-
+
private static void assertColumns(final SQLCaseAssertContext
assertContext, final OracleAssociateStatisticsStatement actual, final
AssociateStatisticsStatementTestCase expected) {
if (null != expected.getColumns()) {
int count = 0;
@@ -75,7 +84,7 @@ public final class AssociateStatisticsStatementAssert {
}
}
}
-
+
private static void assertFunctions(final SQLCaseAssertContext
assertContext, final OracleAssociateStatisticsStatement actual, final
AssociateStatisticsStatementTestCase expected) {
if (null != expected.getFunctions()) {
int count = 0;
@@ -85,4 +94,34 @@ public final class AssociateStatisticsStatementAssert {
}
}
}
+
+ private static void assertPackages(final SQLCaseAssertContext
assertContext, final OracleAssociateStatisticsStatement actual, final
AssociateStatisticsStatementTestCase expected) {
+ if (null != expected.getPackages()) {
+ int count = 0;
+ for (PackageSegment each : actual.getPackages()) {
+ PackageAssert.assertIs(assertContext, each,
expected.getPackages().get(count));
+ count++;
+ }
+ }
+ }
+
+ private static void assertTypes(final SQLCaseAssertContext assertContext,
final OracleAssociateStatisticsStatement actual, final
AssociateStatisticsStatementTestCase expected) {
+ if (null != expected.getTypes()) {
+ int count = 0;
+ for (TypeSegment each : actual.getTypes()) {
+ TypeAssert.assertIs(assertContext, each,
expected.getTypes().get(count));
+ count++;
+ }
+ }
+ }
+
+ private static void assertIndextypes(final SQLCaseAssertContext
assertContext, final OracleAssociateStatisticsStatement actual, final
AssociateStatisticsStatementTestCase expected) {
+ if (null != expected.getIndextypes()) {
+ int count = 0;
+ for (IndextypeSegment each : actual.getIndextypes()) {
+ IndextypeAssert.assertIs(assertContext, each,
expected.getIndextypes().get(count));
+ count++;
+ }
+ }
+ }
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CommentStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CommentStatementAssert.java
index 849e9a0..c8cbd36 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CommentStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/CommentStatementAssert.java
@@ -22,6 +22,7 @@ import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleCommentStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.column.ColumnAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.index.IndextypeAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.table.TableAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.CommentStatementTestCase;
@@ -41,6 +42,7 @@ public final class CommentStatementAssert {
public static void assertIs(final SQLCaseAssertContext assertContext,
final OracleCommentStatement actual, final CommentStatementTestCase expected) {
assertTable(assertContext, actual, expected);
assertColumn(assertContext, actual, expected);
+ assertIndextype(assertContext, actual, expected);
}
private static void assertTable(final SQLCaseAssertContext assertContext,
final OracleCommentStatement actual, final CommentStatementTestCase expected) {
@@ -48,10 +50,16 @@ public final class CommentStatementAssert {
TableAssert.assertIs(assertContext, actual.getTable(),
expected.getTable());
}
}
-
+
private static void assertColumn(final SQLCaseAssertContext assertContext,
final OracleCommentStatement actual, final CommentStatementTestCase expected) {
if (null != expected.getColumn()) {
ColumnAssert.assertIs(assertContext, actual.getColumn(),
expected.getColumn());
}
}
+
+ private static void assertIndextype(final SQLCaseAssertContext
assertContext, final OracleCommentStatement actual, final
CommentStatementTestCase expected) {
+ if (null != expected.getIndextype()) {
+ IndextypeAssert.assertIs(assertContext, actual.getIndextype(),
expected.getIndextype());
+ }
+ }
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DisassociateStatisticsStatementAssert.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DisassociateStatisticsStatementAssert.java
index 9994e97..32c04f5 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DisassociateStatisticsStatementAssert.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/asserts/statement/ddl/impl/DisassociateStatisticsStatementAssert.java
@@ -21,13 +21,19 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.function.FunctionSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndexSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.index.IndextypeSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.packages.PackageSegment;
+import
org.apache.shardingsphere.sql.parser.sql.common.segment.ddl.type.TypeSegment;
import
org.apache.shardingsphere.sql.parser.sql.common.segment.dml.column.ColumnSegment;
import
org.apache.shardingsphere.sql.parser.sql.dialect.statement.oracle.ddl.OracleDisassociateStatisticsStatement;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.SQLCaseAssertContext;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.column.ColumnAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.function.FunctionAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.index.IndexAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.index.IndextypeAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.packages.PackageAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.table.TableAssert;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.asserts.segment.type.TypeAssert;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl.DisassociateStatisticsStatementTestCase;
/**
@@ -48,6 +54,9 @@ public final class DisassociateStatisticsStatementAssert {
assertColumns(assertContext, actual, expected);
assertIndexes(assertContext, actual, expected);
assertFunctions(assertContext, actual, expected);
+ assertPackages(assertContext, actual, expected);
+ assertTypes(assertContext, actual, expected);
+ assertIndextypes(assertContext, actual, expected);
}
private static void assertTables(final SQLCaseAssertContext assertContext,
final OracleDisassociateStatisticsStatement actual, final
DisassociateStatisticsStatementTestCase expected) {
@@ -55,7 +64,7 @@ public final class DisassociateStatisticsStatementAssert {
TableAssert.assertIs(assertContext, actual.getTables(),
expected.getTables());
}
}
-
+
private static void assertColumns(final SQLCaseAssertContext
assertContext, final OracleDisassociateStatisticsStatement actual, final
DisassociateStatisticsStatementTestCase expected) {
if (null != expected.getColumns()) {
int count = 0;
@@ -75,7 +84,7 @@ public final class DisassociateStatisticsStatementAssert {
}
}
}
-
+
private static void assertFunctions(final SQLCaseAssertContext
assertContext, final OracleDisassociateStatisticsStatement actual, final
DisassociateStatisticsStatementTestCase expected) {
if (null != expected.getFunctions()) {
int count = 0;
@@ -85,4 +94,34 @@ public final class DisassociateStatisticsStatementAssert {
}
}
}
+
+ private static void assertPackages(final SQLCaseAssertContext
assertContext, final OracleDisassociateStatisticsStatement actual, final
DisassociateStatisticsStatementTestCase expected) {
+ if (null != expected.getPackages()) {
+ int count = 0;
+ for (PackageSegment each : actual.getPackages()) {
+ PackageAssert.assertIs(assertContext, each,
expected.getPackages().get(count));
+ count++;
+ }
+ }
+ }
+
+ private static void assertTypes(final SQLCaseAssertContext assertContext,
final OracleDisassociateStatisticsStatement actual, final
DisassociateStatisticsStatementTestCase expected) {
+ if (null != expected.getTypes()) {
+ int count = 0;
+ for (TypeSegment each : actual.getTypes()) {
+ TypeAssert.assertIs(assertContext, each,
expected.getTypes().get(count));
+ count++;
+ }
+ }
+ }
+
+ private static void assertIndextypes(final SQLCaseAssertContext
assertContext, final OracleDisassociateStatisticsStatement actual, final
DisassociateStatisticsStatementTestCase expected) {
+ if (null != expected.getIndextypes()) {
+ int count = 0;
+ for (IndextypeSegment each : actual.getIndextypes()) {
+ IndextypeAssert.assertIs(assertContext, each,
expected.getIndextypes().get(count));
+ count++;
+ }
+ }
+ }
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/index/ExpectedIndextype.java
similarity index 68%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/index/ExpectedIndextype.java
index 5572c1d..38f9b5b 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/index/ExpectedIndextype.java
@@ -15,26 +15,22 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.column.ExpectedColumn;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedIdentifierSQLSegment;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedOwner;
import javax.xml.bind.annotation.XmlElement;
/**
- * Comment statement test case.
+ * Expected indextype.
*/
@Getter
@Setter
-public final class CommentStatementTestCase extends SQLParserTestCase {
-
- @XmlElement(name = "table")
- private ExpectedSimpleTable table;
+public final class ExpectedIndextype extends
AbstractExpectedIdentifierSQLSegment {
- @XmlElement(name = "column")
- private ExpectedColumn column;
+ @XmlElement
+ private ExpectedOwner owner;
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/packages/ExpectedPackage.java
similarity index 68%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/packages/ExpectedPackage.java
index 5572c1d..b2dc166 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/packages/ExpectedPackage.java
@@ -15,26 +15,22 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.packages;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.column.ExpectedColumn;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedIdentifierSQLSegment;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedOwner;
import javax.xml.bind.annotation.XmlElement;
/**
- * Comment statement test case.
+ * Expected package.
*/
@Getter
@Setter
-public final class CommentStatementTestCase extends SQLParserTestCase {
-
- @XmlElement(name = "table")
- private ExpectedSimpleTable table;
+public final class ExpectedPackage extends
AbstractExpectedIdentifierSQLSegment {
- @XmlElement(name = "column")
- private ExpectedColumn column;
+ @XmlElement
+ private ExpectedOwner owner;
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/type/ExpectedType.java
similarity index 68%
copy from
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
copy to
shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/type/ExpectedType.java
index 5572c1d..8baf44b 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/segment/impl/type/ExpectedType.java
@@ -15,26 +15,22 @@
* limitations under the License.
*/
-package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.ddl;
+package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.type;
import lombok.Getter;
import lombok.Setter;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.column.ExpectedColumn;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
-import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.AbstractExpectedIdentifierSQLSegment;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedOwner;
import javax.xml.bind.annotation.XmlElement;
/**
- * Comment statement test case.
+ * Expected type.
*/
@Getter
@Setter
-public final class CommentStatementTestCase extends SQLParserTestCase {
-
- @XmlElement(name = "table")
- private ExpectedSimpleTable table;
+public final class ExpectedType extends AbstractExpectedIdentifierSQLSegment {
- @XmlElement(name = "column")
- private ExpectedColumn column;
+ @XmlElement
+ private ExpectedOwner owner;
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AssociateStatisticsStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AssociateStatisticsStatementTestCase.java
index 2a0cd55..f0bbbe5 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AssociateStatisticsStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/AssociateStatisticsStatementTestCase.java
@@ -22,7 +22,10 @@ import lombok.Setter;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.column.ExpectedColumn;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.function.ExpectedFunction;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndex;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndextype;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.packages.ExpectedPackage;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.type.ExpectedType;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
@@ -35,16 +38,25 @@ import java.util.List;
@Getter
@Setter
public final class AssociateStatisticsStatementTestCase extends
SQLParserTestCase {
-
+
@XmlElement(name = "index")
private final List<ExpectedIndex> indexes = new LinkedList<>();
@XmlElement(name = "table")
private final List<ExpectedSimpleTable> tables = new LinkedList<>();
-
+
@XmlElement(name = "column")
private final List<ExpectedColumn> columns = new LinkedList<>();
-
+
@XmlElement(name = "function")
private final List<ExpectedFunction> functions = new LinkedList<>();
+
+ @XmlElement(name = "package")
+ private final List<ExpectedPackage> packages = new LinkedList<>();
+
+ @XmlElement(name = "type")
+ private final List<ExpectedType> types = new LinkedList<>();
+
+ @XmlElement(name = "indextype")
+ private final List<ExpectedIndextype> indextypes = new LinkedList<>();
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
index 5572c1d..65cefd9 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/CommentStatementTestCase.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domai
import lombok.Getter;
import lombok.Setter;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.column.ExpectedColumn;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndextype;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
@@ -34,7 +35,10 @@ public final class CommentStatementTestCase extends
SQLParserTestCase {
@XmlElement(name = "table")
private ExpectedSimpleTable table;
-
+
@XmlElement(name = "column")
private ExpectedColumn column;
+
+ @XmlElement(name = "indextype")
+ private ExpectedIndextype indextype;
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/DisassociateStatisticsStatementTestCase.java
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/DisassociateStatisticsStatementTestCase.java
index 8e452d0..3071718 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/DisassociateStatisticsStatementTestCase.java
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/jaxb/cases/domain/statement/ddl/DisassociateStatisticsStatementTestCase.java
@@ -22,7 +22,10 @@ import lombok.Setter;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.column.ExpectedColumn;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.function.ExpectedFunction;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndex;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.index.ExpectedIndextype;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.packages.ExpectedPackage;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.table.ExpectedSimpleTable;
+import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.segment.impl.type.ExpectedType;
import
org.apache.shardingsphere.test.sql.parser.parameterized.jaxb.cases.domain.statement.SQLParserTestCase;
import javax.xml.bind.annotation.XmlElement;
@@ -35,16 +38,25 @@ import java.util.List;
@Getter
@Setter
public final class DisassociateStatisticsStatementTestCase extends
SQLParserTestCase {
-
+
@XmlElement(name = "index")
private final List<ExpectedIndex> indexes = new LinkedList<>();
@XmlElement(name = "table")
private final List<ExpectedSimpleTable> tables = new LinkedList<>();
-
+
@XmlElement(name = "column")
private final List<ExpectedColumn> columns = new LinkedList<>();
-
+
@XmlElement(name = "function")
private final List<ExpectedFunction> functions = new LinkedList<>();
+
+ @XmlElement(name = "package")
+ private final List<ExpectedPackage> packages = new LinkedList<>();
+
+ @XmlElement(name = "type")
+ private final List<ExpectedType> types = new LinkedList<>();
+
+ @XmlElement(name = "indextype")
+ private final List<ExpectedIndextype> indextypes = new LinkedList<>();
}
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/associate-statistics.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/associate-statistics.xml
index 359abb3..0035ffc 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/associate-statistics.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/associate-statistics.xml
@@ -21,23 +21,31 @@
<table name="employee" start-index="34" stop-index="41" />
<column name="age" start-index="43" stop-index="45" />
</associate-statistics>
-
+
<associate-statistics sql-case-id="associate_statistics_with_columns">
<table name="employee" start-index="34" stop-index="41" />
<column name="age" start-index="43" stop-index="45" />
<table name="employee" start-index="48" stop-index="55" />
<column name="salary" start-index="57" stop-index="62" />
</associate-statistics>
-
+
<associate-statistics sql-case-id="associate_statistics_with_index">
<index name="salary_index" start-index="34" stop-index="45" />
</associate-statistics>
-
+
<associate-statistics sql-case-id="associate_statistics_with_function">
<function name="myFunction" start-index="36" stop-index="45" />
</associate-statistics>
-
- <associate-statistics sql-case-id="associate_statistics_with_package" />
- <associate-statistics sql-case-id="associate_statistics_with_type" />
- <associate-statistics sql-case-id="associate_statistics_with_indextype" />
+
+ <associate-statistics sql-case-id="associate_statistics_with_package">
+ <package name="emp_mgmt" start-index="35" stop-index="42" />
+ </associate-statistics>
+
+ <associate-statistics sql-case-id="associate_statistics_with_type">
+ <type name="Example_typ" start-index="32" stop-index="42" />
+ </associate-statistics>
+
+ <associate-statistics sql-case-id="associate_statistics_with_indextype">
+ <indextype name="indtype" start-index="37" stop-index="43" />
+ </associate-statistics>
</sql-parser-test-cases>
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/comment.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/comment.xml
index 4720040..3a6b009 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/comment.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/comment.xml
@@ -23,7 +23,9 @@
<column name="job_id" start-index="28" stop-index="33" />
</comment>
<comment sql-case-id="comment_on_edition" />
- <comment sql-case-id="comment_on_indextype" />
+ <comment sql-case-id="comment_on_indextype" >
+ <indextype name="indtype" start-index="21" stop-index="27" />
+ </comment>
<comment sql-case-id="comment_on_view" />
<comment sql-case-id="comment_on_model" />
<comment sql-case-id="comment_on_operator" />
diff --git
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/disassociate-statistics.xml
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/disassociate-statistics.xml
index 8d3bd92..505b616 100644
---
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/disassociate-statistics.xml
+++
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/ddl/disassociate-statistics.xml
@@ -21,23 +21,31 @@
<table name="employee" start-index="37" stop-index="44" />
<column name="age" start-index="46" stop-index="48" />
</disassociate-statistics>
-
+
<disassociate-statistics
sql-case-id="disassociate_statistics_from_columns">
<table name="employee" start-index="37" stop-index="44" />
<column name="age" start-index="46" stop-index="48" />
<table name="employee" start-index="51" stop-index="58" />
<column name="salary" start-index="60" stop-index="65" />
</disassociate-statistics>
-
+
<disassociate-statistics sql-case-id="disassociate_statistics_from_index">
<index name="salary_index" start-index="37" stop-index="48" />
</disassociate-statistics>
-
+
<disassociate-statistics
sql-case-id="disassociate_statistics_from_function">
<function name="myFunction" start-index="39" stop-index="48" />
</disassociate-statistics>
-
- <disassociate-statistics
sql-case-id="disassociate_statistics_from_package" />
- <disassociate-statistics sql-case-id="disassociate_statistics_from_type" />
- <disassociate-statistics
sql-case-id="disassociate_statistics_from_indextype" />
+
+ <disassociate-statistics
sql-case-id="disassociate_statistics_from_package">
+ <package name="emp_mgmt" start-index="38" stop-index="45" />
+ </disassociate-statistics>
+
+ <disassociate-statistics sql-case-id="disassociate_statistics_from_type">
+ <type name="example_typ" start-index="35" stop-index="45" />
+ </disassociate-statistics>
+
+ <disassociate-statistics
sql-case-id="disassociate_statistics_from_indextype">
+ <indextype name="indtype" start-index="40" stop-index="46" />
+ </disassociate-statistics>
</sql-parser-test-cases>