File tree Expand file tree Collapse file tree 3 files changed +39
-23
lines changed
Expand file tree Collapse file tree 3 files changed +39
-23
lines changed Original file line number Diff line number Diff line change @@ -811,6 +811,7 @@ alter_action_list
811811
812812alter_action
813813 = ALTER_ADD_COLUMN
814+ / ALTER_DROP_KEY_INDEX
814815 / ALTER_DROP_COLUMN
815816 / ALTER_MODIFY_COLUMN
816817 / ALTER_ADD_INDEX_OR_KEY
@@ -866,9 +867,7 @@ ALTER_MODIFY_COLUMN
866867 }
867868
868869ALTER_DROP_COLUMN
869- = KW_DROP __
870- kc :KW_COLUMN __
871- c :column_ref {
870+ = KW_DROP __ kc :KW_COLUMN __ c :column_ref {
872871 return {
873872 action: ' drop' ,
874873 column: c,
@@ -877,8 +876,7 @@ ALTER_DROP_COLUMN
877876 type: ' alter' ,
878877 }
879878 }
880- / KW_DROP __
881- c :column_ref {
879+ / KW_DROP __ c :column_ref {
882880 return {
883881 action: ' drop' ,
884882 column: c,
@@ -887,10 +885,29 @@ ALTER_DROP_COLUMN
887885 }
888886 }
889887
888+ ALTER_DROP_KEY_INDEX
889+ = KW_DROP __ 'PRIMARY' i __ KW_KEY {
890+ return {
891+ action: ' drop' ,
892+ key: ' ' ,
893+ keyword: ' primary key' ,
894+ resource: ' key' ,
895+ type: ' alter' ,
896+ }
897+ }
898+ / KW_DROP __ k :(('FOREIGN' i ? __ KW_KEY ) / (KW_INDEX )) __ c :ident_name {
899+ const resource = Array .isArray (k) ? ' key' : ' index'
900+ return {
901+ action: ' drop' ,
902+ [resource]: c,
903+ keyword: Array .isArray (k) ? ` ${ [k[0 ], k[2 ]].filter (v => v).join (' ' ).toLowerCase ()} ` : k .toLowerCase (),
904+ resource,
905+ type: ' alter' ,
906+ }
907+ }
908+
890909ALTER_ADD_INDEX_OR_KEY
891- = KW_ADD __
892- id :create_index_definition
893- {
910+ = KW_ADD __ id :create_index_definition {
894911 return {
895912 action: ' add' ,
896913 type: ' alter' ,
Original file line number Diff line number Diff line change @@ -1011,7 +1011,7 @@ alter_action_list
10111011alter_action
10121012 = ALTER_ADD_CONSTRAINT
10131013 / ALTER_DROP_CONSTRAINT
1014- / ALTER_DROP_KEY
1014+ / ALTER_DROP_KEY_INDEX
10151015 / ALTER_ENABLE_CONSTRAINT
10161016 / ALTER_DISABLE_CONSTRAINT
10171017 / ALTER_ADD_COLUMN
@@ -1175,7 +1175,7 @@ ALTER_ADD_CONSTRAINT
11751175 }
11761176 }
11771177
1178- ALTER_DROP_KEY
1178+ ALTER_DROP_KEY_INDEX
11791179 = KW_DROP __ 'PRIMARY' i __ KW_KEY {
11801180 return {
11811181 action: ' drop' ,
@@ -1185,21 +1185,13 @@ ALTER_DROP_KEY
11851185 type: ' alter' ,
11861186 }
11871187 }
1188- / KW_DROP __ 'FOREIGN' i __ KW_KEY __ c :ident_name {
1188+ / KW_DROP __ k :(('FOREIGN' i ? __ KW_KEY ) / (KW_INDEX )) __ c :ident_name {
1189+ const resource = Array .isArray (k) ? ' key' : ' index'
11891190 return {
11901191 action: ' drop' ,
1191- key: c,
1192- keyword: ' foreign key' ,
1193- resource: ' key' ,
1194- type: ' alter' ,
1195- }
1196- }
1197- / KW_DROP __ (KW_KEY / KW_INDEX ) __ c :ident_name {
1198- return {
1199- action: ' drop' ,
1200- index: c,
1201- keyword: ' index' ,
1202- resource: ' index' ,
1192+ [resource]: c,
1193+ keyword: Array .isArray (k) ? ` ${ [k[0 ], k[2 ]].filter (v => v).join (' ' ).toLowerCase ()} ` : k .toLowerCase (),
1194+ resource,
12031195 type: ' alter' ,
12041196 }
12051197 }
Original file line number Diff line number Diff line change @@ -879,6 +879,13 @@ describe('mysql', () => {
879879 'SELECT * FROM `test` WHERE `name` LIKE :pattern COLLATE UTF8MB4_GENERAL_CI'
880880 ]
881881 } ,
882+ {
883+ title : 'alter drop index or key' ,
884+ sql : [
885+ 'ALTER TABLE table_name DROP INDEX index_name' ,
886+ 'ALTER TABLE `table_name` DROP INDEX index_name'
887+ ]
888+ } ,
882889 ]
883890 SQL_LIST . forEach ( sqlInfo => {
884891 const { title, sql } = sqlInfo
You can’t perform that action at this time.
0 commit comments