From be82687d96d535b585ea84f57f6f56cd8563dff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Thu, 26 Oct 2023 17:09:30 +0200 Subject: [PATCH] Fix invalid SQL for pgsql column type change --- .../rdbms/drivers/postgres/data_definer.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/server/store/adapters/rdbms/drivers/postgres/data_definer.go b/server/store/adapters/rdbms/drivers/postgres/data_definer.go index 11dc9bb82..47a64c40b 100644 --- a/server/store/adapters/rdbms/drivers/postgres/data_definer.go +++ b/server/store/adapters/rdbms/drivers/postgres/data_definer.go @@ -2,6 +2,7 @@ package postgres import ( "context" + "fmt" "github.com/cortezaproject/corteza/server/pkg/dal" "github.com/cortezaproject/corteza/server/store/adapters/rdbms/ddl" @@ -16,6 +17,13 @@ type ( is *informationSchema d *postgresDialect } + + reTypeColumn struct { + Dialect *postgresDialect + Table string + Column string + Type *ddl.ColumnType + } ) var ( @@ -80,7 +88,7 @@ func (dd *dataDefiner) ColumnRename(ctx context.Context, t string, o string, n s } func (dd *dataDefiner) ColumnReType(ctx context.Context, t string, col string, tp *ddl.ColumnType) error { - return ddl.Exec(ctx, dd.conn, &ddl.ReTypeColumn{ + return ddl.Exec(ctx, dd.conn, &reTypeColumn{ Dialect: dd.d, Table: t, Column: col, @@ -109,3 +117,12 @@ func (dd *dataDefiner) IndexDrop(ctx context.Context, t, i string) error { Ident: i, }) } + +func (c *reTypeColumn) ToSQL() (sql string, aa []interface{}, err error) { + return fmt.Sprintf( + `ALTER TABLE %s ALTER COLUMN %s TYPE %s`, + c.Dialect.QuoteIdent(c.Table), + c.Dialect.QuoteIdent(c.Column), + c.Type.Name, + ), nil, nil +}