From 338f2f04105ad89e64530db86aeb387e2ad4789e Mon Sep 17 00:00:00 2001 From: Sten Roger Sandvik Date: Thu, 27 Oct 2022 20:45:50 +0200 Subject: [PATCH] fix: addng dialect override for append-bool (#695) --- dialect/mssqldialect/dialect.go | 11 +++++++++++ schema/append_value.go | 2 +- schema/dialect.go | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/dialect/mssqldialect/dialect.go b/dialect/mssqldialect/dialect.go index f1b05e415..e14824b8f 100755 --- a/dialect/mssqldialect/dialect.go +++ b/dialect/mssqldialect/dialect.go @@ -5,6 +5,7 @@ import ( "encoding/hex" "fmt" "log" + "strconv" "strings" "time" @@ -116,6 +117,16 @@ func (*Dialect) AppendBytes(b, bs []byte) []byte { return b } +func (*Dialect) AppendBool(b []byte, v bool) []byte { + num := 0 + + if v { + num = 1 + } + + return strconv.AppendUint(b, uint64(num), 10) +} + func sqlType(field *schema.Field) string { switch field.DiscoveredSQLType { case sqltype.VarChar: diff --git a/schema/append_value.go b/schema/append_value.go index 93c892082..9f0782e0f 100644 --- a/schema/append_value.go +++ b/schema/append_value.go @@ -183,7 +183,7 @@ func PtrAppender(fn AppenderFunc) AppenderFunc { } func AppendBoolValue(fmter Formatter, b []byte, v reflect.Value) []byte { - return dialect.AppendBool(b, v.Bool()) + return fmter.Dialect().AppendBool(b, v.Bool()) } func AppendIntValue(fmter Formatter, b []byte, v reflect.Value) []byte { diff --git a/schema/dialect.go b/schema/dialect.go index 134460c3d..b73d89bd0 100644 --- a/schema/dialect.go +++ b/schema/dialect.go @@ -29,6 +29,7 @@ type Dialect interface { AppendString(b []byte, s string) []byte AppendBytes(b []byte, bs []byte) []byte AppendJSON(b, jsonb []byte) []byte + AppendBool(b []byte, v bool) []byte } //------------------------------------------------------------------------------ @@ -126,6 +127,10 @@ func (BaseDialect) AppendJSON(b, jsonb []byte) []byte { return b } +func (BaseDialect) AppendBool(b []byte, v bool) []byte { + return dialect.AppendBool(b, v) +} + //------------------------------------------------------------------------------ type nopDialect struct {