Better parsing for SET statements #2008

pull/2078/head
René Cannaò 7 years ago
parent c41fc97fd0
commit 07fec62e35

@ -58,6 +58,7 @@ std::map<std::string,std::vector<string>> SetParser::parse() {
}
} else if (value4 != "") {
// VARIABLE
value5.erase(value5.find_last_not_of(" \n\r\t\,")+1);
key = value4;
op.push_back(value5);
}

@ -139,11 +139,9 @@ TEST(TestParse, SET_NAMES) {
static Test multiple[] = {
{ "SET time_zone = 'Europe/Paris', sql_mode = 'TRADITIONAL'", { Expected("time_zone", {"Europe/Paris"}), Expected("sql_mode", {"TRADITIONAL"}) } },
{ "SET sql_mode = 'TRADITIONAL', NAMES 'utf8 COLLATE 'unicode_ci'", { Expected("sql_mode", {"TRADITIONAL"}), Expected("names", {"utf8", "unicode_ci"}) } },
/* not supported by SetParser
{ "SET @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483",
{ Expected("sql_mode", {"CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO')"}), Expected("sql_auto_is_null", {"0"}),
Expected("wait_timeout", {"2147483"}) } },
*/
};
TEST(TestParse, MULTIPLE) {

Loading…
Cancel
Save