# HG changeset patch # User Matthew Wild # Date 1436365542 -3600 # Node ID b38db4b634d3ba911ca7a304a27ac4261aaedc42 # Parent 0cbb09afa5c307bfb07a1eb30be8ff661b9b96af util.sql: Add safety check to ensure our chosen connection charset is actually being used (MySQL) diff -r 0cbb09afa5c3 -r b38db4b634d3 util/sql.lua --- a/util/sql.lua Wed Jul 08 15:16:17 2015 +0100 +++ b/util/sql.lua Wed Jul 08 15:25:42 2015 +0100 @@ -286,6 +286,18 @@ return ok, err; end + if driver == "MySQL" then + local ok, actual_charset = self:transaction(function () + return self:select"SHOW SESSION VARIABLES LIKE 'character_set_client'"; + end); + for row in actual_charset do + if row[2] ~= charset then + log("error", "MySQL %s is actually %q (expected %q)", row[1], row[2], charset); + return false, "Failed to set connection encoding"; + end + end + end + return true; end local engine_mt = { __index = engine };