From 9d8ae4ec3c5cfb1d05ccb77f261b0f6bc5cec5a1 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Mon, 2 Dec 2019 00:53:37 +0100 Subject: [PATCH] refactor/mssql: change default sizing of binary columns to max --- dialect_mssql.go | 4 ++-- types_test.go | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/dialect_mssql.go b/dialect_mssql.go index 29070da2..2fe938b1 100644 --- a/dialect_mssql.go +++ b/dialect_mssql.go @@ -232,10 +232,10 @@ func (db *mssql) SqlType(c *core.Column) string { c.IsPrimaryKey = true c.Nullable = false res = core.BigInt - case core.Bytea, core.Blob, core.Binary, core.TinyBlob, core.MediumBlob, core.LongBlob: + case core.VarBinary, core.Bytea, core.Blob, core.Binary, core.TinyBlob, core.MediumBlob, core.LongBlob: res = core.VarBinary if c.Length == 0 { - c.Length = 50 + res += "(MAX)" } case core.TimeStamp: res = core.DateTime diff --git a/types_test.go b/types_test.go index 274609b2..adbd6438 100644 --- a/types_test.go +++ b/types_test.go @@ -9,8 +9,8 @@ import ( "fmt" "testing" - "xorm.io/core" "github.com/stretchr/testify/assert" + "xorm.io/core" ) func TestArrayField(t *testing.T) { @@ -99,6 +99,29 @@ func TestGetBytes(t *testing.T) { assert.Equal(t, "test", string(b.Data)) } +func TestGetBytesMax(t *testing.T) { + assert.NoError(t, prepareEngine()) + + type Varbinary struct { + Data []byte `xorm:"VARBINARY"` + } + + err := testEngine.Sync2(new(Varbinary)) + assert.NoError(t, err) + + cnt, err := testEngine.Insert(&Varbinary{ + Data: []byte("test"), + }) + assert.NoError(t, err) + assert.EqualValues(t, 1, cnt) + + var b Varbinary + has, err := testEngine.Get(&b) + assert.NoError(t, err) + assert.Equal(t, true, has) + assert.Equal(t, "test", string(b.Data)) +} + type ConvString string func (s *ConvString) FromDB(data []byte) error {