From e00c94182a14fc8cd626bd5262a9246cb67bebce Mon Sep 17 00:00:00 2001 From: Antonio Jesus Navarro Perez Date: Tue, 12 Mar 2019 16:51:42 +0100 Subject: [PATCH] Add charset to fields Depending of the field type, we must add a specific charset to avoid client errors. If the charset was 0, JDBC clients changed blob types to varchar ones, because the charset was not setted to binary. Signed-off-by: Antonio Jesus Navarro Perez --- server/handler.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/handler.go b/server/handler.go index c209e73ad..73dfec845 100644 --- a/server/handler.go +++ b/server/handler.go @@ -221,9 +221,17 @@ func rowToSQL(s sql.Schema, row sql.Row) []sqltypes.Value { func schemaToFields(s sql.Schema) []*query.Field { fields := make([]*query.Field, len(s)) for i, c := range s { + var charset uint32 + if c.Type.Type() == mysql.TypeBlob { + charset = mysql.CharacterSetBinary + } else { + charset = mysql.CharacterSetUtf8 + } + fields[i] = &query.Field{ - Name: c.Name, - Type: c.Type.Type(), + Name: c.Name, + Type: c.Type.Type(), + Charset: charset, } }