From a70d88974f7034eba1e1d1812cd7bc1ca2b3d351 Mon Sep 17 00:00:00 2001 From: Alisha Date: Wed, 31 Jul 2024 14:10:57 -0700 Subject: [PATCH] fix default --- backend/gen/go/db/dbschemas/mysql/system.sql.go | 4 ++-- backend/pkg/dbschemas/sql/mysql/queries/system.sql | 2 +- backend/pkg/sqlmanager/mysql/mysql-manager.go | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/gen/go/db/dbschemas/mysql/system.sql.go b/backend/gen/go/db/dbschemas/mysql/system.sql.go index 27ee6b4be9..27c92c84a4 100644 --- a/backend/gen/go/db/dbschemas/mysql/system.sql.go +++ b/backend/gen/go/db/dbschemas/mysql/system.sql.go @@ -155,7 +155,7 @@ SELECT c.table_name, c.column_name, c.ordinal_position, - COALESCE(c.column_default, 'NULL') as column_default, -- must coalesce because sqlc doesn't appear to work for system structs to output a *string + IFNULL(REPLACE(REPLACE(REPLACE(REPLACE(c.COLUMN_DEFAULT, '_utf8mb4\\\'', '_utf8mb4\''), '_utf8mb3\\\'', '_utf8mb3\''), '\\\'', '\''), '\\\'', '\''), '') AS column_default, -- hack to fix this bug https://bugs.mysql.com/bug.php? c.is_nullable, c.data_type, c.character_maximum_length, @@ -176,7 +176,7 @@ type GetDatabaseSchemaRow struct { TableName string ColumnName string OrdinalPosition int64 - ColumnDefault string + ColumnDefault interface{} IsNullable string DataType string CharacterMaximumLength sql.NullInt64 diff --git a/backend/pkg/dbschemas/sql/mysql/queries/system.sql b/backend/pkg/dbschemas/sql/mysql/queries/system.sql index c521b7f206..d549fbcd06 100644 --- a/backend/pkg/dbschemas/sql/mysql/queries/system.sql +++ b/backend/pkg/dbschemas/sql/mysql/queries/system.sql @@ -4,7 +4,7 @@ SELECT c.table_name, c.column_name, c.ordinal_position, - COALESCE(c.column_default, 'NULL') as column_default, -- must coalesce because sqlc doesn't appear to work for system structs to output a *string + IFNULL(REPLACE(REPLACE(REPLACE(REPLACE(c.COLUMN_DEFAULT, '_utf8mb4\\\'', '_utf8mb4\''), '_utf8mb3\\\'', '_utf8mb3\''), '\\\'', '\''), '\\\'', '\''), '') AS column_default, -- hack to fix this bug https://bugs.mysql.com/bug.php? c.is_nullable, c.data_type, c.character_maximum_length, diff --git a/backend/pkg/sqlmanager/mysql/mysql-manager.go b/backend/pkg/sqlmanager/mysql/mysql-manager.go index c131475d70..ae1aeae9c7 100644 --- a/backend/pkg/sqlmanager/mysql/mysql-manager.go +++ b/backend/pkg/sqlmanager/mysql/mysql-manager.go @@ -39,12 +39,16 @@ func (m *MysqlManager) GetDatabaseSchema(ctx context.Context) ([]*sqlmanager_sha generatedTypeCopy := row.Extra.String generatedType = &generatedTypeCopy } + columnDefaultStr, err := convertUInt8ToString(row.ColumnDefault) + if err != nil { + return nil, err + } result = append(result, &sqlmanager_shared.DatabaseSchemaRow{ TableSchema: row.TableSchema, TableName: row.TableName, ColumnName: row.ColumnName, DataType: row.DataType, - ColumnDefault: row.ColumnDefault, + ColumnDefault: columnDefaultStr, IsNullable: row.IsNullable, GeneratedType: generatedType, })