Explorar o código

fix fallback charset handling

test if the fallback is set, do not rely on error code
Arne Hormann %!s(int64=12) %!d(string=hai) anos
pai
achega
162e0fbe06
Modificáronse 1 ficheiros con 7 adicións e 2 borrados
  1. 7 2
      connection.go

+ 7 - 2
connection.go

@@ -48,9 +48,14 @@ func (mc *mysqlConn) handleParams() (err error) {
 		case "charset":
 			charsets := strings.Split(val, ",")
 			for _, charset := range charsets {
+				// ignore errors here - a charset may not exist
 				err = mc.exec("SET NAMES " + charset)
-				if err != nil {
-					return
+				if err == nil {
+					var value []byte
+					value, err = mc.getSystemVar("character_set_connection")
+					if string(value) == charset {
+						break
+					}
 				}
 			}