Merge branch '2.3' into 2.4
This commit is contained in:
@ -633,7 +633,7 @@ columnid(A) ::= nm(X). {
|
|||||||
/*KEY*/
|
/*KEY*/
|
||||||
/*LIKE_KW*/
|
/*LIKE_KW*/
|
||||||
LOCAL
|
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: 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: also "mod(a, 2)" kind of usage will be accepted. Incorrect use will anyway be
|
||||||
// TODO: rejected by the server.
|
// TODO: rejected by the server.
|
||||||
@ -645,7 +645,7 @@ columnid(A) ::= nm(X). {
|
|||||||
PARTITIONS PASSWORD PREVIOUS
|
PARTITIONS PASSWORD PREVIOUS
|
||||||
QUERY QUICK
|
QUERY QUICK
|
||||||
RAISE RECURSIVE /*REINDEX*/ RELEASE /*RENAME*/ /*REPLACE*/ RESET RESTRICT ROLLBACK ROLLUP ROW
|
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*/
|
TABLES TEMP TEMPTABLE /*TRIGGER*/
|
||||||
/*TRUNCATE*/
|
/*TRUNCATE*/
|
||||||
// TODO: UNSIGNED is a reserved word and should not automatically convert into an identifer.
|
// 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
|
%ifdef MAXSCALE
|
||||||
selectnowithsuffix(A) ::= selectnowith(X). {A = X;}
|
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;
|
A = X;
|
||||||
maxscale_set_type_mask(QUERY_TYPE_WRITE);
|
maxscale_set_type_mask(QUERY_TYPE_WRITE);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -351,6 +351,7 @@ static Keyword aKeywordTable[] = {
|
|||||||
{ "MASTER", "TK_MASTER", ALWAYS },
|
{ "MASTER", "TK_MASTER", ALWAYS },
|
||||||
{ "MERGE", "TK_MERGE", ALWAYS },
|
{ "MERGE", "TK_MERGE", ALWAYS },
|
||||||
{ "MOD", "TK_MOD", ALWAYS },
|
{ "MOD", "TK_MOD", ALWAYS },
|
||||||
|
{ "MODE", "TK_MODE", ALWAYS },
|
||||||
{ "NAMES", "TK_NAMES", ALWAYS },
|
{ "NAMES", "TK_NAMES", ALWAYS },
|
||||||
#endif
|
#endif
|
||||||
{ "NATURAL", "TK_JOIN_KW", ALWAYS },
|
{ "NATURAL", "TK_JOIN_KW", ALWAYS },
|
||||||
@ -446,6 +447,7 @@ static Keyword aKeywordTable[] = {
|
|||||||
#ifdef MAXSCALE
|
#ifdef MAXSCALE
|
||||||
{ "SESSION", "TK_SESSION", ALWAYS },
|
{ "SESSION", "TK_SESSION", ALWAYS },
|
||||||
{ "SEPARATOR", "TK_SEPARATOR", ALWAYS },
|
{ "SEPARATOR", "TK_SEPARATOR", ALWAYS },
|
||||||
|
{ "SHARE", "TK_SHARE", ALWAYS },
|
||||||
{ "SHOW", "TK_SHOW", ALWAYS },
|
{ "SHOW", "TK_SHOW", ALWAYS },
|
||||||
{ "SLAVE", "TK_SLAVE", ALWAYS },
|
{ "SLAVE", "TK_SLAVE", ALWAYS },
|
||||||
{ "SPATIAL", "TK_SPATIAL", ALWAYS },
|
{ "SPATIAL", "TK_SPATIAL", ALWAYS },
|
||||||
|
|||||||
@ -36,3 +36,5 @@ QUERY_TYPE_WRITE
|
|||||||
QUERY_TYPE_READ
|
QUERY_TYPE_READ
|
||||||
QUERY_TYPE_WRITE
|
QUERY_TYPE_WRITE
|
||||||
QUERY_TYPE_WRITE
|
QUERY_TYPE_WRITE
|
||||||
|
QUERY_TYPE_WRITE
|
||||||
|
QUERY_TYPE_WRITE
|
||||||
|
|||||||
@ -36,3 +36,5 @@ SET PASSWORD FOR 'user'@'10.0.0.1'='*C50EB75D7CB4C76B5264218B92BC69E6815B057A';
|
|||||||
SELECT UTC_TIMESTAMP();
|
SELECT UTC_TIMESTAMP();
|
||||||
SELECT COUNT(IF(!c.ispackage, 1, NULL)) as cnt FROM test FOR UPDATE;
|
SELECT COUNT(IF(!c.ispackage, 1, NULL)) as cnt FROM test FOR UPDATE;
|
||||||
SELECT handler FROM abc FOR UPDATE;
|
SELECT handler FROM abc FOR UPDATE;
|
||||||
|
SELECT * FROM test LOCK IN SHARE MODE;
|
||||||
|
SELECT * FROM test FOR SHARE;
|
||||||
|
|||||||
Reference in New Issue
Block a user