From 5888015cc67a9e095e6bf841d7858b7569596187 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Thu, 10 Nov 2022 00:17:06 -0800 Subject: [PATCH 1/2] mysql: Return []byte for blob types --- .../testdata/datatype/mysql/go/models.go | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/internal/endtoend/testdata/datatype/mysql/go/models.go b/internal/endtoend/testdata/datatype/mysql/go/models.go index ef9c747cf9..fdbd4906f6 100644 --- a/internal/endtoend/testdata/datatype/mysql/go/models.go +++ b/internal/endtoend/testdata/datatype/mysql/go/models.go @@ -13,30 +13,30 @@ type DtCharacter struct { A sql.NullString B sql.NullString C sql.NullString - D sql.NullString - E sql.NullString - F sql.NullString + D []byte + E []byte + F []byte G sql.NullString H sql.NullString I sql.NullString - J sql.NullString + J []byte K sql.NullString - L sql.NullString + L []byte } type DtCharacterNotNull struct { A string B string C string - D string - E string - F string + D []byte + E []byte + F []byte G string H string I string - J string + J []byte K string - L string + L []byte } type DtDatetime struct { From 12e84344568e900944e796fc42f7c7b7f7c597d6 Mon Sep 17 00:00:00 2001 From: Kyle Conroy Date: Thu, 10 Nov 2022 00:24:42 -0800 Subject: [PATCH 2/2] mysql: Generate correct types for non-null blobs Keep nullable blobs as NullString --- internal/codegen/golang/mysql_type.go | 5 ++++- internal/endtoend/testdata/datatype/mysql/go/models.go | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/codegen/golang/mysql_type.go b/internal/codegen/golang/mysql_type.go index 1c9e6cae53..e227d8a729 100644 --- a/internal/codegen/golang/mysql_type.go +++ b/internal/codegen/golang/mysql_type.go @@ -46,7 +46,10 @@ func mysqlType(req *plugin.CodeGenRequest, col *plugin.Column) string { return "sql.NullInt64" case "blob", "binary", "varbinary", "tinyblob", "mediumblob", "longblob": - return "[]byte" + if notNull { + return "[]byte" + } + return "sql.NullString" case "double", "double precision", "real": if notNull { diff --git a/internal/endtoend/testdata/datatype/mysql/go/models.go b/internal/endtoend/testdata/datatype/mysql/go/models.go index fdbd4906f6..53cb238758 100644 --- a/internal/endtoend/testdata/datatype/mysql/go/models.go +++ b/internal/endtoend/testdata/datatype/mysql/go/models.go @@ -13,15 +13,15 @@ type DtCharacter struct { A sql.NullString B sql.NullString C sql.NullString - D []byte - E []byte - F []byte + D sql.NullString + E sql.NullString + F sql.NullString G sql.NullString H sql.NullString I sql.NullString - J []byte + J sql.NullString K sql.NullString - L []byte + L sql.NullString } type DtCharacterNotNull struct {