Skip to content

Commit 60a6b48

Browse files
committed
Relax ordering of attributes for generated columns
1 parent 47815a3 commit 60a6b48

File tree

3 files changed

+2391
-2226
lines changed

3 files changed

+2391
-2226
lines changed

parse_test.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1957,7 +1957,9 @@ func TestCreateTable(t *testing.T) {
19571957
" total int generated always as (price * qty),\n" +
19581958
" total_virtual int generated always as (price * qty) virtual,\n" +
19591959
" total_stored int generated always as ((price * qty) + 1) stored key,\n" +
1960-
" total_comment int generated always as (ifnull(price, 0) * qty) stored comment 'computed'\n" +
1960+
" total_comment int generated always as (ifnull(price, 0) * qty) stored comment 'computed',\n" +
1961+
" total_not_null int generated always as (ifnull(price, 0) * ifnull(qty, 0)) stored not null,\n" +
1962+
" total_not_null_unique int generated always as (ifnull(price, 0) + ifnull(qty, 0)) stored not null comment 'derived' unique key\n" +
19611963
")",
19621964

19631965
// test defining indexes separately
@@ -2177,6 +2179,10 @@ func TestCreateTable(t *testing.T) {
21772179
"alter table tbl_vis_a add column col_a int invisible",
21782180
"alter table tbl_vis_b modify column col_b int visible not null default 0",
21792181
"alter table tbl_vis_c change column col_old col_new int default 1 invisible",
2182+
"alter table tbl_gen_a add column col_gen int generated always as (col_src + 1) stored not null",
2183+
"alter table tbl_gen_b add column col_gen int generated always as (col_src + 1) not null stored",
2184+
"alter table tbl_gen_c modify column col_gen int generated always as (col_src + 1) comment 'derived' stored",
2185+
"alter table tbl_gen_d change column col_prev col_gen int generated always as (col_src + 1) key stored",
21802186
}
21812187
for _, sql := range validAlterTableMultiSpecSQL {
21822188
tree, err := ParseStrictDDL(sql)
@@ -2461,6 +2467,10 @@ func TestCreateTable(t *testing.T) {
24612467
"alter table tbl_attr_bad6 add column col_a int visible invisible",
24622468
"alter table tbl_attr_bad7 add column col_a int invisible visible",
24632469
"create table tbl_attr_bad8 (col_a int visible visible)",
2470+
"alter table tbl_attr_bad9 add column col_a int generated always as (col_b + 1) stored virtual",
2471+
"alter table tbl_attr_bad10 add column col_a int generated always as (col_b + 1) not null null",
2472+
"alter table tbl_attr_bad11 add column col_a int generated always as (col_b + 1) key unique",
2473+
"alter table tbl_attr_bad12 add column col_a int generated always as (col_b + 1) comment 'a' comment 'b'",
24642474
}
24652475
for _, sql := range invalidColumnAttributeDupSQL {
24662476
tree, err := ParseStrictDDL(sql)

0 commit comments

Comments
 (0)