From 2b8d5076e2637c1d982276536e259aeb49adddd8 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 15 Dec 2020 16:55:34 +0200 Subject: [PATCH] MXS-3318 Fix problem When the tokenizer encounters a keyword, it sniffs whether the last non-whitespace character before it happens to be a '.' and if it is, the keyword is assumed to be the second part of a qualified name. Thus, before this commit -- blah. UPDATE ... would not be parsed as KEYWORD (UPDATE) followed by stuff, but as an ID (blah.UPDATE) followed by stuff. With this change, newlines are no longer counted as whitespace. --- query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c b/query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c index fc958424b..ebaee5fcc 100644 --- a/query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c +++ b/query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c @@ -679,7 +679,7 @@ int sqlite3GetToken(const unsigned char *z, int *tokenType){ if (pParse) { if (z != (const unsigned char *)pParse->zTail) { const char *p = (const char*)z - 1; - while ((p != pParse->zTail) && sqlite3Isspace(*p)) { + while ((p != pParse->zTail) && sqlite3Isspace(*p) && *p != '\n') { --p; }