MXS-1196: Turn certain keywords into ids
This commit is contained in:
parent
77f05b49d0
commit
8b6fc49dc1
@ -2483,6 +2483,26 @@ void maxscaleLock(Parse* pParse, mxs_lock_t type, SrcList* pTables)
|
||||
}
|
||||
}
|
||||
|
||||
int maxscaleTranslateKeyword(int token)
|
||||
{
|
||||
switch (token)
|
||||
{
|
||||
case TK_CHARSET:
|
||||
case TK_DO:
|
||||
case TK_HANDLER:
|
||||
if (this_unit.sql_mode == QC_SQL_MODE_ORACLE)
|
||||
{
|
||||
token = TK_ID;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the tokenization of a keyword.
|
||||
*
|
||||
|
@ -569,11 +569,17 @@ int sqlite3GetToken(const unsigned char *z, int *tokenType){
|
||||
|
||||
if (*tokenType != TK_ID) {
|
||||
extern int maxscaleKeyword(int);
|
||||
if (maxscaleKeyword(*tokenType) != 0)
|
||||
{
|
||||
/* Consume the entire string. */
|
||||
while ( z[i] ) {
|
||||
++i;
|
||||
extern int maxscaleTranslateKeyword(int);
|
||||
|
||||
*tokenType = maxscaleTranslateKeyword(*tokenType);
|
||||
|
||||
if (*tokenType != TK_ID) {
|
||||
if (maxscaleKeyword(*tokenType) != 0)
|
||||
{
|
||||
/* Consume the entire string. */
|
||||
while ( z[i] ) {
|
||||
++i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user