Skip to content

Commit 3c1a5fa

Browse files
Fix sql2pgroll conversion of string DEFAULT expressions (#532)
Column `DEFAULT` expressions for strings and bitstrings need to quoted, otherwise they are interpreted as identifiers. Update the test expectations and the conversion code to quote the values.
1 parent cde22df commit 3c1a5fa

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

pkg/sql2pgroll/alter_table.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,15 +276,15 @@ func convertAlterTableSetColumnDefault(stmt *pgq.AlterTableStmt, cmd *pgq.AlterT
276276
// We have a constant
277277
switch v := c.GetVal().(type) {
278278
case *pgq.A_Const_Sval:
279-
operation.Default = nullable.NewNullableWithValue(v.Sval.GetSval())
279+
operation.Default = nullable.NewNullableWithValue(fmt.Sprintf("'%s'", v.Sval.GetSval()))
280280
case *pgq.A_Const_Ival:
281281
operation.Default = nullable.NewNullableWithValue(strconv.FormatInt(int64(v.Ival.Ival), 10))
282282
case *pgq.A_Const_Fval:
283283
operation.Default = nullable.NewNullableWithValue(v.Fval.Fval)
284284
case *pgq.A_Const_Boolval:
285285
operation.Default = nullable.NewNullableWithValue(strconv.FormatBool(v.Boolval.Boolval))
286286
case *pgq.A_Const_Bsval:
287-
operation.Default = nullable.NewNullableWithValue(v.Bsval.Bsval)
287+
operation.Default = nullable.NewNullableWithValue(fmt.Sprintf("'%s'", v.Bsval.GetBsval()))
288288
default:
289289
return nil, fmt.Errorf("unknown constant type: %T", c.GetVal())
290290
}

pkg/sql2pgroll/expect/alter_column.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ var AlterColumnOp4 = &migrations.OpAlterColumn{
4242
var AlterColumnOp5 = &migrations.OpAlterColumn{
4343
Table: "foo",
4444
Column: "bar",
45-
Default: nullable.NewNullableWithValue("baz"),
45+
Default: nullable.NewNullableWithValue("'baz'"),
4646
Up: sql2pgroll.PlaceHolderSQL,
4747
Down: sql2pgroll.PlaceHolderSQL,
4848
}
@@ -82,7 +82,7 @@ var AlterColumnOp9 = &migrations.OpAlterColumn{
8282
var AlterColumnOp10 = &migrations.OpAlterColumn{
8383
Table: "foo",
8484
Column: "bar",
85-
Default: nullable.NewNullableWithValue("b0101"),
85+
Default: nullable.NewNullableWithValue("'b0101'"),
8686
Up: sql2pgroll.PlaceHolderSQL,
8787
Down: sql2pgroll.PlaceHolderSQL,
8888
}

0 commit comments

Comments
 (0)