diff --git a/sql/plsql/PlSqlParser.g4 b/sql/plsql/PlSqlParser.g4 index 3fca93cae8..fdd8b6d22d 100644 --- a/sql/plsql/PlSqlParser.g4 +++ b/sql/plsql/PlSqlParser.g4 @@ -3616,7 +3616,7 @@ range_partitions ; list_partitions - : PARTITION BY LIST '(' column_name ')' ( + : PARTITION BY LIST '(' column_name (',' column_name)* ')' ( AUTOMATIC (STORE IN '(' tablespace (',' tablespace)* ')')? )? ( '(' PARTITION partition_name? list_values_clause table_partition_description ( @@ -3778,7 +3778,10 @@ range_values_list ; list_values_clause - : VALUES '(' (literal (',' literal)* | TIMESTAMP literal (',' TIMESTAMP literal)* | DEFAULT) ')' + : VALUES '(' ( + (literal (',' literal)* | TIMESTAMP literal (',' TIMESTAMP literal)* | DEFAULT) + | '(' (literal (',' literal*) | TIMESTAMP literal (',' TIMESTAMP literal)* | DEFAULT) ')' + ) ')' ; table_partition_description diff --git a/sql/plsql/examples/create_table.sql b/sql/plsql/examples/create_table.sql index b027541e47..95c5feae43 100644 --- a/sql/plsql/examples/create_table.sql +++ b/sql/plsql/examples/create_table.sql @@ -291,4 +291,73 @@ CREATE TABLE "SMARTUP5X_ERP"."MDEAL_ORDER_CHARGED_PRODUCTS" SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS, SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS ) - PARTITION BY LIST ("COMPANY_ID") AUTOMATIC \ No newline at end of file + PARTITION BY LIST ("COMPANY_ID") AUTOMATIC; + +CREATE TABLE "SMARTUP5X_ERP"."MDEAL_DW_DEBTORS" +( "COMPANY_ID" NUMBER(20,0) NOT NULL ENABLE, + "FILIAL_ID" NUMBER(20,0) NOT NULL ENABLE, + "PERSON_ID" NUMBER(20,0) NOT NULL ENABLE, + "DEAL_ID" NUMBER(20,0) NOT NULL ENABLE, + "CURRENCY_ID" NUMBER(20,0) NOT NULL ENABLE, + "PAYMENT_TYPE_ID" NUMBER(20,0) NOT NULL ENABLE, + "CONTRACT_ID" NUMBER(20,0) NOT NULL ENABLE, + "SUBFILIAL_ID" NUMBER(20,0) NOT NULL ENABLE, + "EXPIRY_DATE_ID" NUMBER(20,0) NOT NULL ENABLE, + "AMOUNT" NUMBER(20,6) NOT NULL ENABLE, + "AMOUNT_BASE" NUMBER(20,6) NOT NULL ENABLE, + CONSTRAINT "MDEAL_DW_DEBTORS_PK" PRIMARY KEY ("COMPANY_ID", "FILIAL_ID", "PERSON_ID", "DEAL_ID", "CURRENCY_ID", "PAYMENT_TYPE_ID", "CONTRACT_ID", "SUBFILIAL_ID", "EXPIRY_DATE_ID") + USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_INDEX" LOCAL + (PARTITION "PART_HEAD" NOCOMPRESS + PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_INDEX" , + PARTITION "SYS_P33354" NOCOMPRESS + PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_INDEX" , + PARTITION "SYS_P33355" NOCOMPRESS + PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_INDEX" ) ENABLE, + SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS, + SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS, + SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS +) SEGMENT CREATION IMMEDIATE + PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 + NOCOMPRESS LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_DATA" + PARTITION BY LIST ("COMPANY_ID","FILIAL_ID") AUTOMATIC + (PARTITION "PART_HEAD" VALUES (( 0, 0 )) SEGMENT CREATION IMMEDIATE + PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 + NOCOMPRESS LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_DATA" , + PARTITION "SYS_P33354" VALUES (( 520, 124947 )) SEGMENT CREATION IMMEDIATE + PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 + NOCOMPRESS LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_DATA" , + PARTITION "SYS_P33355" VALUES (( 601, 145653 )) SEGMENT CREATION IMMEDIATE + PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 + NOCOMPRESS LOGGING + STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 + PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 + BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) + TABLESPACE "GWS_DATA" );