From 2640a2be2bb4298ef86375808a14810f8061f99c Mon Sep 17 00:00:00 2001 From: Lauris BH Date: Tue, 12 Oct 2021 10:32:16 +0300 Subject: [PATCH] Add support for JSON column type --- go.mod | 4 ++-- go.sum | 9 ++++----- mysql.go | 11 ++++++++++- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 2f865a5..6f248fa 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/go-rel/mysql go 1.17 require ( - github.com/go-rel/rel v0.25.1-0.20211011102656-a1b38f01d34a - github.com/go-rel/sql v0.1.1-0.20211011073646-a38034248e90 + github.com/go-rel/rel v0.25.1-0.20211012061337-dfb3d0951876 + github.com/go-rel/sql v0.1.1-0.20211012072023-36066d80a50a github.com/go-sql-driver/mysql v1.6.0 github.com/stretchr/testify v1.7.0 ) diff --git a/go.sum b/go.sum index 8d96ba1..01670b0 100644 --- a/go.sum +++ b/go.sum @@ -4,11 +4,10 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/go-rel/rel v0.25.1-0.20211007095335-eec7ac68c920/go.mod h1:/VBLj1U4ZVb53aB3n22RQwX0V9DvckohseDJQibn2Rs= -github.com/go-rel/rel v0.25.1-0.20211011102656-a1b38f01d34a h1:FAd8FrXgy+G/44OwXYOk3A0b4lhdoyKMgF9m3h6pTt4= -github.com/go-rel/rel v0.25.1-0.20211011102656-a1b38f01d34a/go.mod h1:/VBLj1U4ZVb53aB3n22RQwX0V9DvckohseDJQibn2Rs= -github.com/go-rel/sql v0.1.1-0.20211011073646-a38034248e90 h1:638QwWIymw8cizASdq594qlDM729vYEtJobdy8wv2Lo= -github.com/go-rel/sql v0.1.1-0.20211011073646-a38034248e90/go.mod h1:ukXvTr/zbEZLu+lJCXcKpMg1Vp7Ps9cfKD+Us4kJREo= +github.com/go-rel/rel v0.25.1-0.20211012061337-dfb3d0951876 h1:NAVlxoe5yAmCXKqgwBW2eUuc44zqJaY42v7ldSqxzf8= +github.com/go-rel/rel v0.25.1-0.20211012061337-dfb3d0951876/go.mod h1:/VBLj1U4ZVb53aB3n22RQwX0V9DvckohseDJQibn2Rs= +github.com/go-rel/sql v0.1.1-0.20211012072023-36066d80a50a h1:hyaIbbU0uuitQ6oAH6KHjRaxTUsjUDqVEe32qeGP6aw= +github.com/go-rel/sql v0.1.1-0.20211012072023-36066d80a50a/go.mod h1:M6VxbYbMCeRR50h70wIL6zCw1Ui5x+6plAHyuhnrCLg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= diff --git a/mysql.go b/mysql.go index 7d18008..41b2d8e 100644 --- a/mysql.go +++ b/mysql.go @@ -36,7 +36,7 @@ func New(database *db.DB) rel.Adapter { deleteBuilder = builder.Delete{BufferFactory: bufferFactory, Query: queryBuilder, Filter: filterBuilder} ddlBufferFactory = builder.BufferFactory{InlineValues: true, BoolTrueValue: "true", BoolFalseValue: "false", Quoter: Quote{}, ValueConverter: ValueConvert{}} ddlQueryBuilder = builder.Query{BufferFactory: ddlBufferFactory, Filter: filterBuilder} - tableBuilder = builder.Table{BufferFactory: ddlBufferFactory, ColumnMapper: sql.ColumnMapper} + tableBuilder = builder.Table{BufferFactory: ddlBufferFactory, ColumnMapper: columnMapper} indexBuilder = builder.Index{BufferFactory: ddlBufferFactory, Query: ddlQueryBuilder, Filter: filterBuilder, DropIndexOnTable: true} ) @@ -117,6 +117,15 @@ func errorMapper(err error) error { } } +func columnMapper(column *rel.Column) (string, int, int) { + switch column.Type { + case rel.JSON: + return "JSON", 0, 0 + default: + return sql.ColumnMapper(column) + } +} + func check(err error) { if err != nil { panic(err)