From a80d716472fe3d4c7abeed517c3fed62b159c9c6 Mon Sep 17 00:00:00 2001 From: Andrew Farries Date: Wed, 18 Dec 2024 09:45:58 +0000 Subject: [PATCH] Fall back to raw SQL for `COMPRESSION` options Column compression options are not representable by `pgroll` `Column` definitions. --- pkg/sql2pgroll/create_table.go | 10 +++++++--- pkg/sql2pgroll/create_table_test.go | 5 ++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/sql2pgroll/create_table.go b/pkg/sql2pgroll/create_table.go index ffd24513..53cdbe16 100644 --- a/pkg/sql2pgroll/create_table.go +++ b/pkg/sql2pgroll/create_table.go @@ -122,10 +122,14 @@ func convertColumnDef(col *pgq.ColumnDef) (*migrations.Column, error) { // canConvertColumnDef returns true iff `col` can be converted to a pgroll // `Column` definition. func canConvertColumnDef(col *pgq.ColumnDef) bool { + switch { // Column storage options are not supported - if col.GetStorageName() != "" { + case col.GetStorageName() != "": + return false + // Column compression options are not supported + case col.GetCompression() != "": return false + default: + return true } - - return true } diff --git a/pkg/sql2pgroll/create_table_test.go b/pkg/sql2pgroll/create_table_test.go index 21225032..d98209f1 100644 --- a/pkg/sql2pgroll/create_table_test.go +++ b/pkg/sql2pgroll/create_table_test.go @@ -113,8 +113,11 @@ func TestUnconvertableCreateTableStatements(t *testing.T) { "CREATE TABLE foo(a int, LIKE bar)", "CREATE TABLE foo(LIKE bar)", - // column `STORAGE` options are not supported + // Column `STORAGE` options are not supported "CREATE TABLE foo(a int STORAGE PLAIN)", + + // Column compression options are not supported + "CREATE TABLE foo(a text COMPRESSION pglz)", } for _, sql := range tests {