From 164150135ca95559b1b02298888b510ffe99853d Mon Sep 17 00:00:00 2001 From: benjaminjb Date: Mon, 12 Apr 2021 12:26:33 -0500 Subject: [PATCH 1/4] Add nil for jsonb --- slices/map.go | 2 ++ slices/map_test.go | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/slices/map.go b/slices/map.go index c99e8a13..7f04eeee 100644 --- a/slices/map.go +++ b/slices/map.go @@ -19,6 +19,8 @@ func (m Map) Interface() interface{} { func (m *Map) Scan(src interface{}) error { var b []byte switch t := src.(type) { + case nil: + return nil case []byte: b = t case string: diff --git a/slices/map_test.go b/slices/map_test.go index 265d9940..f18dc418 100644 --- a/slices/map_test.go +++ b/slices/map_test.go @@ -35,3 +35,18 @@ func Test_Map_UnMarshalJSON_uninitialized_map_does_not_panic(t *testing.T) { r.Len(maps, 1) }) } + +func Test_Map_Scan(t *testing.T) { + r := require.New(t) + in := []byte(`{"a":"b"}`) + m := Map{} + r.NoError(m.Scan(in)) + r.Equal("b", m["a"]) +} + +func Test_Map_Null_Scan(t *testing.T) { + r := require.New(t) + m := Map{} + r.NoError(m.Scan(nil)) + r.Equal(Map{}, m) +} From e496979f73c2f02ab6aefa3694aacb28374a9202 Mon Sep 17 00:00:00 2001 From: benjaminjb Date: Mon, 12 Apr 2021 13:20:34 -0500 Subject: [PATCH 2/4] checking msqldump version used in github action --- dialect_mysql.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dialect_mysql.go b/dialect_mysql.go index 5dda6f5d..859b9d11 100644 --- a/dialect_mysql.go +++ b/dialect_mysql.go @@ -157,10 +157,11 @@ func (m *mysql) FizzTranslator() fizz.Translator { func (m *mysql) DumpSchema(w io.Writer) error { deets := m.Details() - cmd := exec.Command("mysqldump", "-d", "-h", deets.Host, "-P", deets.Port, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) - if deets.Port == "socket" { - cmd = exec.Command("mysqldump", "-d", "-S", deets.Host, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) - } + cmd := exec.Command("mysqldump", "--version") + // cmd = exec.Command("mysqldump", "-d", "-h", deets.Host, "-P", deets.Port, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) + // if deets.Port == "socket" { + // cmd = exec.Command("mysqldump", "-d", "-S", deets.Host, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) + // } return genericDumpSchema(deets, cmd, w) } From 3887167d285463bff85e4edeb46bec9aea368a12 Mon Sep 17 00:00:00 2001 From: benjaminjb Date: Mon, 12 Apr 2021 13:37:41 -0500 Subject: [PATCH 3/4] checking mysqldump with column-statistics off --- dialect_mysql.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dialect_mysql.go b/dialect_mysql.go index 859b9d11..2ed926dc 100644 --- a/dialect_mysql.go +++ b/dialect_mysql.go @@ -157,11 +157,11 @@ func (m *mysql) FizzTranslator() fizz.Translator { func (m *mysql) DumpSchema(w io.Writer) error { deets := m.Details() - cmd := exec.Command("mysqldump", "--version") - // cmd = exec.Command("mysqldump", "-d", "-h", deets.Host, "-P", deets.Port, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) - // if deets.Port == "socket" { - // cmd = exec.Command("mysqldump", "-d", "-S", deets.Host, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) - // } + // cmd := exec.Command("mysqldump", "--version") + cmd := exec.Command("mysqldump", "--column-statistics=0", "-d", "-h", deets.Host, "-P", deets.Port, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) + if deets.Port == "socket" { + cmd = exec.Command("mysqldump", "--column-statistics=0", "-d", "-S", deets.Host, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) + } return genericDumpSchema(deets, cmd, w) } From 77be5ad1549d301ca3e2e011a4c33c7a0a75c707 Mon Sep 17 00:00:00 2001 From: benjaminjb Date: Mon, 12 Apr 2021 14:12:05 -0500 Subject: [PATCH 4/4] add comment on mysqldump until further investigation --- dialect_mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dialect_mysql.go b/dialect_mysql.go index 2ed926dc..af4dd3b2 100644 --- a/dialect_mysql.go +++ b/dialect_mysql.go @@ -157,7 +157,7 @@ func (m *mysql) FizzTranslator() fizz.Translator { func (m *mysql) DumpSchema(w io.Writer) error { deets := m.Details() - // cmd := exec.Command("mysqldump", "--version") + // Github CI is currently using mysql:5.7 but the mysqldump version doesn't seem to match cmd := exec.Command("mysqldump", "--column-statistics=0", "-d", "-h", deets.Host, "-P", deets.Port, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database) if deets.Port == "socket" { cmd = exec.Command("mysqldump", "--column-statistics=0", "-d", "-S", deets.Host, "-u", deets.User, fmt.Sprintf("--password=%s", deets.Password), deets.Database)