Loading sharding-core/sharding-core-parse/sharding-core-parse-sqlserver/src/main/antlr4/imports/sqlserver/DDLStatement.g4 +91 −76 Original line number Original line Diff line number Diff line Loading @@ -20,7 +20,7 @@ grammar DDLStatement; import Symbol, Keyword, Literals, BaseRule; import Symbol, Keyword, Literals, BaseRule; createTable createTable : createTableHeader createTableBody : CREATE TABLE tableName fileTableClause_ createDefinitionClause_ ; ; createIndex createIndex Loading Loading @@ -58,72 +58,24 @@ truncateTable : TRUNCATE TABLE tableName : TRUNCATE TABLE tableName ; ; createTableHeader fileTableClause_ : CREATE TABLE tableName : (AS FILETABLE)? ; ; createTableBody createDefinitionClause_ : (AS FILETABLE)? LP_ createTableDefinition (COMMA_ createTableDefinition)* (COMMA_ periodClause)? RP_(ON (schemaName LP_ columnName RP_ | ignoredIdentifier_ | STRING_))? : createTableDefinitions_ partitionScheme_ fileGroup_ (TEXTIMAGE_ON (ignoredIdentifier_ | STRING_))? ((FILESTREAM_ON (schemaName) | ignoredIdentifier_ STRING_))? (WITH LP_ tableOption (COMMA_ tableOption)* RP_)? ; ; createTableDefinition createTableDefinitions_ : columnDefinition | computedColumnDefinition | columnSetDefinition | tableConstraint | tableIndex : LP_ createTableDefinition_ (COMMA_ createTableDefinition_)* (COMMA_ periodClause)? RP_ ; periodClause : PERIOD FOR SYSTEM_TIME LP_ columnName COMMA_ columnName RP_ ; tableIndex : INDEX indexName ( (CLUSTERED | NONCLUSTERED)? columnNames | CLUSTERED COLUMNSTORE | NONCLUSTERED? (COLUMNSTORE columnNames | hashWithBucket) | CLUSTERED COLUMNSTORE (WITH LP_ COMPRESSION_DELAY EQ_ (NUMBER_ MINUTES?) RP_)? ) (WHERE expr)? (WITH LP_ indexOption (COMMA_ indexOption)* RP_)? indexOnClause? (FILESTREAM_ON (ignoredIdentifier_ | schemaName | STRING_))? ; tableOption : DATA_COMPRESSION EQ_ (NONE | ROW | PAGE) (ON PARTITIONS LP_ partitionExpressions RP_)? | FILETABLE_DIRECTORY EQ_ ignoredIdentifier_ | FILETABLE_COLLATE_FILENAME EQ_ (collationName | DATABASE_DEAULT) | FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)? | REMOTE_DATA_ARCHIVE EQ_ (ON (LP_ tableStretchOptions (COMMA_ tableStretchOptions)* RP_)? | OFF LP_ MIGRATION_STATE EQ_ PAUSED RP_) | tableOptOption | distributionOption | dataWareHouseTableOption ; tableOptOption : (MEMORY_OPTIMIZED EQ_ ON) | (DURABILITY EQ_ (SCHEMA_ONLY | SCHEMA_AND_DATA)) | (SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)?) ; ; distributionOption createTableDefinition_ : DISTRIBUTION EQ_ (HASH LP_ columnName RP_ | ROUND_ROBIN | REPLICATE) : columnDefinition | computedColumnDefinition | columnSetDefinition | tableConstraint | tableIndex ; dataWareHouseTableOption : CLUSTERED COLUMNSTORE INDEX | HEAP | dataWareHousePartitionOption ; dataWareHousePartitionOption : (PARTITION LP_ columnName RANGE (LEFT | RIGHT)? FOR VALUES LP_ simpleExpr (COMMA_ simpleExpr)* RP_ RP_) ; tableStretchOptions : (FILTER_PREDICATE EQ_ (NULL | functionCall) COMMA_)? MIGRATION_STATE EQ_ (OUTBOUND | INBOUND | PAUSED) ; ; columnDefinition columnDefinition : columnName dataType columnDefinitionOption* (columnConstraint(COMMA_ columnConstraint)*)? columnIndex? : columnName dataType columnDefinitionOption* columnConstraints columnIndex? ; ; columnDefinitionOption columnDefinitionOption Loading Loading @@ -154,6 +106,34 @@ diskTablePrimaryKeyConstraintOption : (CLUSTERED | NONCLUSTERED)? primaryKeyWithClause? primaryKeyOnClause? : (CLUSTERED | NONCLUSTERED)? primaryKeyWithClause? primaryKeyOnClause? ; ; primaryKeyWithClause : WITH (FILLFACTOR EQ_ NUMBER_ | LP_ indexOption (COMMA_ indexOption)* RP_) ; primaryKeyOnClause : onSchemaColumn | onFileGroup | onString ; onSchemaColumn : ON schemaName LP_ columnName RP_ ; onFileGroup : ON ignoredIdentifier_ ; onString : ON STRING_ ; memoryTablePrimaryKeyConstraintOption : CLUSTERED withBucket? ; withBucket : WITH LP_ BUCKET_COUNT EQ_ NUMBER_ RP_ ; columnForeignKeyConstraint columnForeignKeyConstraint : (FOREIGN KEY)? REFERENCES tableName LP_ columnName RP_ foreignKeyOnAction* : (FOREIGN KEY)? REFERENCES tableName LP_ columnName RP_ foreignKeyOnAction* ; ; Loading @@ -166,40 +146,75 @@ foreignKeyOn : NO ACTION | CASCADE | SET (NULL | DEFAULT) : NO ACTION | CASCADE | SET (NULL | DEFAULT) ; ; memoryTablePrimaryKeyConstraintOption checkConstraint : CLUSTERED withBucket? : CHECK(NOT FOR REPLICATION)? LP_ expr RP_ ; ; hashWithBucket columnConstraints : HASH columnNames withBucket : (columnConstraint(COMMA_ columnConstraint)*)? ; ; withBucket partitionScheme_ : WITH LP_ BUCKET_COUNT EQ_ NUMBER_ RP_ : (ON (schemaName LP_ columnName RP_ | ignoredIdentifier_ | STRING_))? ; ; primaryKeyWithClause fileGroup_ : WITH (FILLFACTOR EQ_ NUMBER_ | LP_ indexOption (COMMA_ indexOption)* RP_) : (TEXTIMAGE_ON (ignoredIdentifier_ | STRING_))? ((FILESTREAM_ON (schemaName) | ignoredIdentifier_ STRING_))? (WITH LP_ tableOption (COMMA_ tableOption)* RP_)? ; ; primaryKeyOnClause periodClause : onSchemaColumn | onFileGroup | onString : PERIOD FOR SYSTEM_TIME LP_ columnName COMMA_ columnName RP_ ; ; onSchemaColumn tableIndex : ON schemaName LP_ columnName RP_ : INDEX indexName ( (CLUSTERED | NONCLUSTERED)? columnNames | CLUSTERED COLUMNSTORE | NONCLUSTERED? (COLUMNSTORE columnNames | hashWithBucket) | CLUSTERED COLUMNSTORE (WITH LP_ COMPRESSION_DELAY EQ_ (NUMBER_ MINUTES?) RP_)? ) (WHERE expr)? (WITH LP_ indexOption (COMMA_ indexOption)* RP_)? indexOnClause? (FILESTREAM_ON (ignoredIdentifier_ | schemaName | STRING_))? ; ; onFileGroup tableOption : ON ignoredIdentifier_ : DATA_COMPRESSION EQ_ (NONE | ROW | PAGE) (ON PARTITIONS LP_ partitionExpressions RP_)? | FILETABLE_DIRECTORY EQ_ ignoredIdentifier_ | FILETABLE_COLLATE_FILENAME EQ_ (collationName | DATABASE_DEAULT) | FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)? | REMOTE_DATA_ARCHIVE EQ_ (ON (LP_ tableStretchOptions (COMMA_ tableStretchOptions)* RP_)? | OFF LP_ MIGRATION_STATE EQ_ PAUSED RP_) | tableOptOption | distributionOption | dataWareHouseTableOption ; ; onString tableOptOption : ON STRING_ : (MEMORY_OPTIMIZED EQ_ ON) | (DURABILITY EQ_ (SCHEMA_ONLY | SCHEMA_AND_DATA)) | (SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)?) ; ; checkConstraint distributionOption : CHECK(NOT FOR REPLICATION)? LP_ expr RP_ : DISTRIBUTION EQ_ (HASH LP_ columnName RP_ | ROUND_ROBIN | REPLICATE) ; dataWareHouseTableOption : CLUSTERED COLUMNSTORE INDEX | HEAP | dataWareHousePartitionOption ; dataWareHousePartitionOption : (PARTITION LP_ columnName RANGE (LEFT | RIGHT)? FOR VALUES LP_ simpleExpr (COMMA_ simpleExpr)* RP_ RP_) ; tableStretchOptions : (FILTER_PREDICATE EQ_ (NULL | functionCall) COMMA_)? MIGRATION_STATE EQ_ (OUTBOUND | INBOUND | PAUSED) ; hashWithBucket : HASH columnNames withBucket ; ; columnIndex columnIndex Loading Loading
sharding-core/sharding-core-parse/sharding-core-parse-sqlserver/src/main/antlr4/imports/sqlserver/DDLStatement.g4 +91 −76 Original line number Original line Diff line number Diff line Loading @@ -20,7 +20,7 @@ grammar DDLStatement; import Symbol, Keyword, Literals, BaseRule; import Symbol, Keyword, Literals, BaseRule; createTable createTable : createTableHeader createTableBody : CREATE TABLE tableName fileTableClause_ createDefinitionClause_ ; ; createIndex createIndex Loading Loading @@ -58,72 +58,24 @@ truncateTable : TRUNCATE TABLE tableName : TRUNCATE TABLE tableName ; ; createTableHeader fileTableClause_ : CREATE TABLE tableName : (AS FILETABLE)? ; ; createTableBody createDefinitionClause_ : (AS FILETABLE)? LP_ createTableDefinition (COMMA_ createTableDefinition)* (COMMA_ periodClause)? RP_(ON (schemaName LP_ columnName RP_ | ignoredIdentifier_ | STRING_))? : createTableDefinitions_ partitionScheme_ fileGroup_ (TEXTIMAGE_ON (ignoredIdentifier_ | STRING_))? ((FILESTREAM_ON (schemaName) | ignoredIdentifier_ STRING_))? (WITH LP_ tableOption (COMMA_ tableOption)* RP_)? ; ; createTableDefinition createTableDefinitions_ : columnDefinition | computedColumnDefinition | columnSetDefinition | tableConstraint | tableIndex : LP_ createTableDefinition_ (COMMA_ createTableDefinition_)* (COMMA_ periodClause)? RP_ ; periodClause : PERIOD FOR SYSTEM_TIME LP_ columnName COMMA_ columnName RP_ ; tableIndex : INDEX indexName ( (CLUSTERED | NONCLUSTERED)? columnNames | CLUSTERED COLUMNSTORE | NONCLUSTERED? (COLUMNSTORE columnNames | hashWithBucket) | CLUSTERED COLUMNSTORE (WITH LP_ COMPRESSION_DELAY EQ_ (NUMBER_ MINUTES?) RP_)? ) (WHERE expr)? (WITH LP_ indexOption (COMMA_ indexOption)* RP_)? indexOnClause? (FILESTREAM_ON (ignoredIdentifier_ | schemaName | STRING_))? ; tableOption : DATA_COMPRESSION EQ_ (NONE | ROW | PAGE) (ON PARTITIONS LP_ partitionExpressions RP_)? | FILETABLE_DIRECTORY EQ_ ignoredIdentifier_ | FILETABLE_COLLATE_FILENAME EQ_ (collationName | DATABASE_DEAULT) | FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)? | REMOTE_DATA_ARCHIVE EQ_ (ON (LP_ tableStretchOptions (COMMA_ tableStretchOptions)* RP_)? | OFF LP_ MIGRATION_STATE EQ_ PAUSED RP_) | tableOptOption | distributionOption | dataWareHouseTableOption ; tableOptOption : (MEMORY_OPTIMIZED EQ_ ON) | (DURABILITY EQ_ (SCHEMA_ONLY | SCHEMA_AND_DATA)) | (SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)?) ; ; distributionOption createTableDefinition_ : DISTRIBUTION EQ_ (HASH LP_ columnName RP_ | ROUND_ROBIN | REPLICATE) : columnDefinition | computedColumnDefinition | columnSetDefinition | tableConstraint | tableIndex ; dataWareHouseTableOption : CLUSTERED COLUMNSTORE INDEX | HEAP | dataWareHousePartitionOption ; dataWareHousePartitionOption : (PARTITION LP_ columnName RANGE (LEFT | RIGHT)? FOR VALUES LP_ simpleExpr (COMMA_ simpleExpr)* RP_ RP_) ; tableStretchOptions : (FILTER_PREDICATE EQ_ (NULL | functionCall) COMMA_)? MIGRATION_STATE EQ_ (OUTBOUND | INBOUND | PAUSED) ; ; columnDefinition columnDefinition : columnName dataType columnDefinitionOption* (columnConstraint(COMMA_ columnConstraint)*)? columnIndex? : columnName dataType columnDefinitionOption* columnConstraints columnIndex? ; ; columnDefinitionOption columnDefinitionOption Loading Loading @@ -154,6 +106,34 @@ diskTablePrimaryKeyConstraintOption : (CLUSTERED | NONCLUSTERED)? primaryKeyWithClause? primaryKeyOnClause? : (CLUSTERED | NONCLUSTERED)? primaryKeyWithClause? primaryKeyOnClause? ; ; primaryKeyWithClause : WITH (FILLFACTOR EQ_ NUMBER_ | LP_ indexOption (COMMA_ indexOption)* RP_) ; primaryKeyOnClause : onSchemaColumn | onFileGroup | onString ; onSchemaColumn : ON schemaName LP_ columnName RP_ ; onFileGroup : ON ignoredIdentifier_ ; onString : ON STRING_ ; memoryTablePrimaryKeyConstraintOption : CLUSTERED withBucket? ; withBucket : WITH LP_ BUCKET_COUNT EQ_ NUMBER_ RP_ ; columnForeignKeyConstraint columnForeignKeyConstraint : (FOREIGN KEY)? REFERENCES tableName LP_ columnName RP_ foreignKeyOnAction* : (FOREIGN KEY)? REFERENCES tableName LP_ columnName RP_ foreignKeyOnAction* ; ; Loading @@ -166,40 +146,75 @@ foreignKeyOn : NO ACTION | CASCADE | SET (NULL | DEFAULT) : NO ACTION | CASCADE | SET (NULL | DEFAULT) ; ; memoryTablePrimaryKeyConstraintOption checkConstraint : CLUSTERED withBucket? : CHECK(NOT FOR REPLICATION)? LP_ expr RP_ ; ; hashWithBucket columnConstraints : HASH columnNames withBucket : (columnConstraint(COMMA_ columnConstraint)*)? ; ; withBucket partitionScheme_ : WITH LP_ BUCKET_COUNT EQ_ NUMBER_ RP_ : (ON (schemaName LP_ columnName RP_ | ignoredIdentifier_ | STRING_))? ; ; primaryKeyWithClause fileGroup_ : WITH (FILLFACTOR EQ_ NUMBER_ | LP_ indexOption (COMMA_ indexOption)* RP_) : (TEXTIMAGE_ON (ignoredIdentifier_ | STRING_))? ((FILESTREAM_ON (schemaName) | ignoredIdentifier_ STRING_))? (WITH LP_ tableOption (COMMA_ tableOption)* RP_)? ; ; primaryKeyOnClause periodClause : onSchemaColumn | onFileGroup | onString : PERIOD FOR SYSTEM_TIME LP_ columnName COMMA_ columnName RP_ ; ; onSchemaColumn tableIndex : ON schemaName LP_ columnName RP_ : INDEX indexName ( (CLUSTERED | NONCLUSTERED)? columnNames | CLUSTERED COLUMNSTORE | NONCLUSTERED? (COLUMNSTORE columnNames | hashWithBucket) | CLUSTERED COLUMNSTORE (WITH LP_ COMPRESSION_DELAY EQ_ (NUMBER_ MINUTES?) RP_)? ) (WHERE expr)? (WITH LP_ indexOption (COMMA_ indexOption)* RP_)? indexOnClause? (FILESTREAM_ON (ignoredIdentifier_ | schemaName | STRING_))? ; ; onFileGroup tableOption : ON ignoredIdentifier_ : DATA_COMPRESSION EQ_ (NONE | ROW | PAGE) (ON PARTITIONS LP_ partitionExpressions RP_)? | FILETABLE_DIRECTORY EQ_ ignoredIdentifier_ | FILETABLE_COLLATE_FILENAME EQ_ (collationName | DATABASE_DEAULT) | FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME EQ_ ignoredIdentifier_ | SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)? | REMOTE_DATA_ARCHIVE EQ_ (ON (LP_ tableStretchOptions (COMMA_ tableStretchOptions)* RP_)? | OFF LP_ MIGRATION_STATE EQ_ PAUSED RP_) | tableOptOption | distributionOption | dataWareHouseTableOption ; ; onString tableOptOption : ON STRING_ : (MEMORY_OPTIMIZED EQ_ ON) | (DURABILITY EQ_ (SCHEMA_ONLY | SCHEMA_AND_DATA)) | (SYSTEM_VERSIONING EQ_ ON (LP_ HISTORY_TABLE EQ_ tableName (COMMA_ DATA_CONSISTENCY_CHECK EQ_ (ON | OFF))? RP_)?) ; ; checkConstraint distributionOption : CHECK(NOT FOR REPLICATION)? LP_ expr RP_ : DISTRIBUTION EQ_ (HASH LP_ columnName RP_ | ROUND_ROBIN | REPLICATE) ; dataWareHouseTableOption : CLUSTERED COLUMNSTORE INDEX | HEAP | dataWareHousePartitionOption ; dataWareHousePartitionOption : (PARTITION LP_ columnName RANGE (LEFT | RIGHT)? FOR VALUES LP_ simpleExpr (COMMA_ simpleExpr)* RP_ RP_) ; tableStretchOptions : (FILTER_PREDICATE EQ_ (NULL | functionCall) COMMA_)? MIGRATION_STATE EQ_ (OUTBOUND | INBOUND | PAUSED) ; hashWithBucket : HASH columnNames withBucket ; ; columnIndex columnIndex Loading