Merge branch '2.3' into 2.4

This commit is contained in:
Johan Wikman 2020-06-18 11:58:38 +03:00
commit 31eade1a75
4 changed files with 13 additions and 3 deletions

View File

@ -633,7 +633,7 @@ columnid(A) ::= nm(X). {
/*KEY*/
/*LIKE_KW*/
LOCAL
MASTER /*MATCH*/ MERGE
MASTER /*MATCH*/ MERGE MODE
// TODO: MOD is a keyword that should not decay into an id. However, now that is does,
// TODO: also "mod(a, 2)" kind of usage will be accepted. Incorrect use will anyway be
// TODO: rejected by the server.
@ -645,7 +645,7 @@ columnid(A) ::= nm(X). {
PARTITIONS PASSWORD PREVIOUS
QUERY QUICK
RAISE RECURSIVE /*REINDEX*/ RELEASE /*RENAME*/ /*REPLACE*/ RESET RESTRICT ROLLBACK ROLLUP ROW
SAVEPOINT SELECT_OPTIONS_KW /*SEQUENCE*/ SLAVE /*START*/ STATEMENT STATUS
SAVEPOINT SELECT_OPTIONS_KW /*SEQUENCE*/ SHARE SLAVE /*START*/ STATEMENT STATUS
TABLES TEMP TEMPTABLE /*TRIGGER*/
/*TRUNCATE*/
// TODO: UNSIGNED is a reserved word and should not automatically convert into an identifer.
@ -1045,7 +1045,11 @@ select(A) ::= with(W) selectnowith(X). {
%ifdef MAXSCALE
selectnowithsuffix(A) ::= selectnowith(X). {A = X;}
selectnowithsuffix(A) ::= selectnowith(X) FOR UPDATE. {
for_something ::= FOR UPDATE.
for_something ::= FOR SHARE.
for_something ::= LOCK IN SHARE MODE.
selectnowithsuffix(A) ::= selectnowith(X) for_something. {
A = X;
maxscale_set_type_mask(QUERY_TYPE_WRITE);
}

View File

@ -351,6 +351,7 @@ static Keyword aKeywordTable[] = {
{ "MASTER", "TK_MASTER", ALWAYS },
{ "MERGE", "TK_MERGE", ALWAYS },
{ "MOD", "TK_MOD", ALWAYS },
{ "MODE", "TK_MODE", ALWAYS },
{ "NAMES", "TK_NAMES", ALWAYS },
#endif
{ "NATURAL", "TK_JOIN_KW", ALWAYS },
@ -446,6 +447,7 @@ static Keyword aKeywordTable[] = {
#ifdef MAXSCALE
{ "SESSION", "TK_SESSION", ALWAYS },
{ "SEPARATOR", "TK_SEPARATOR", ALWAYS },
{ "SHARE", "TK_SHARE", ALWAYS },
{ "SHOW", "TK_SHOW", ALWAYS },
{ "SLAVE", "TK_SLAVE", ALWAYS },
{ "SPATIAL", "TK_SPATIAL", ALWAYS },

View File

@ -36,3 +36,5 @@ QUERY_TYPE_WRITE
QUERY_TYPE_READ
QUERY_TYPE_WRITE
QUERY_TYPE_WRITE
QUERY_TYPE_WRITE
QUERY_TYPE_WRITE

View File

@ -36,3 +36,5 @@ SET PASSWORD FOR 'user'@'10.0.0.1'='*C50EB75D7CB4C76B5264218B92BC69E6815B057A';
SELECT UTC_TIMESTAMP();
SELECT COUNT(IF(!c.ispackage, 1, NULL)) as cnt FROM test FOR UPDATE;
SELECT handler FROM abc FOR UPDATE;
SELECT * FROM test LOCK IN SHARE MODE;
SELECT * FROM test FOR SHARE;