Skip to content

Commit a6f10c1

Browse files
Merge pull request taozhi8833998#1422 from taozhi8833998/fix-alter-add-column-mysql
fix: alter add column in mysql
2 parents 6c91a60 + f0df0b7 commit a6f10c1

3 files changed

Lines changed: 46 additions & 3 deletions

File tree

pegjs/mariadb.pegjs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -743,10 +743,19 @@ ALTER_ADD_COLUMN
743743
type: 'alter',
744744
}
745745
}
746+
/ KW_ADD __
747+
cd:create_column_definition {
748+
return {
749+
action: 'add',
750+
...cd,
751+
resource: 'column',
752+
type: 'alter',
753+
}
754+
}
746755

747756
ALTER_DROP_COLUMN
748757
= KW_DROP __
749-
kc:KW_COLUMN? __
758+
kc:KW_COLUMN __
750759
c:column_ref {
751760
return {
752761
action: 'drop',
@@ -756,6 +765,15 @@ ALTER_DROP_COLUMN
756765
type: 'alter',
757766
}
758767
}
768+
/ KW_DROP __
769+
c:column_ref {
770+
return {
771+
action: 'drop',
772+
column: c,
773+
resource: 'column',
774+
type: 'alter',
775+
}
776+
}
759777

760778
ALTER_ADD_INDEX_OR_KEY
761779
= KW_ADD __

pegjs/mysql.pegjs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,7 @@ alter_action
936936

937937
ALTER_ADD_COLUMN
938938
= KW_ADD __
939-
kc:KW_COLUMN? __
939+
kc:KW_COLUMN __
940940
cd:create_column_definition {
941941
return {
942942
action: 'add',
@@ -946,10 +946,19 @@ ALTER_ADD_COLUMN
946946
type: 'alter',
947947
}
948948
}
949+
/ KW_ADD __
950+
cd:create_column_definition {
951+
return {
952+
action: 'add',
953+
...cd,
954+
resource: 'column',
955+
type: 'alter',
956+
}
957+
}
949958

950959
ALTER_DROP_COLUMN
951960
= KW_DROP __
952-
kc:KW_COLUMN? __
961+
kc:KW_COLUMN __
953962
c:column_ref {
954963
return {
955964
action: 'drop',
@@ -959,6 +968,15 @@ ALTER_DROP_COLUMN
959968
type: 'alter',
960969
}
961970
}
971+
/ KW_DROP __
972+
c:column_ref {
973+
return {
974+
action: 'drop',
975+
column: c,
976+
resource: 'column',
977+
type: 'alter',
978+
}
979+
}
962980

963981
ALTER_ADD_INDEX_OR_KEY
964982
= KW_ADD __

test/mysql-mariadb.spec.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,13 @@ describe('mysql', () => {
594594
'DROP VIEW `test_view` CASCADE'
595595
]
596596
},
597+
{
598+
title: 'column name startswith "column"',
599+
sql: [
600+
'ALTER TABLE table_name ADD column4 varchar(255)',
601+
'ALTER TABLE `table_name` ADD `column4` VARCHAR(255)'
602+
]
603+
},
597604
]
598605
SQL_LIST.forEach(sqlInfo => {
599606
const { title, sql } = sqlInfo

0 commit comments

Comments
 (0)