From e6f8432e337ec799212f2c11a479e59240320929 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 16 May 2017 15:28:10 +0300 Subject: [PATCH] MXS-1196: Accept :'a' as placeholder variables Oracle SQL accepts statements like PREPARE stmt FROM 'INSERT INTO t1 VALUES (:a,:b)'; PREPARE stmt FROM 'INSERT INTO t1 VALUES (:"a",:"b")'; That is, the variable may be surrounded by quotes. --- .../qc_sqlite/sqlite-src-3110100/src/tokenize.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 055dee4dc..b358ae234 100644 --- a/query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c +++ b/query_classifier/qc_sqlite/sqlite-src-3110100/src/tokenize.c @@ -496,6 +496,20 @@ int sqlite3GetToken(const unsigned char *z, int *tokenType){ break; }else if( c==':' && z[i+1]==':' ){ i++; +#endif +#ifdef MAXSCALE + }else if ( c=='\'' || c=='"' || c=='`' ){ + int q=c; + ++i; + while ( IdChar(z[i]) ) { + ++i; + ++n; + } + if ( z[i]==q ) + { + ++i; + break; + } #endif }else{ break;