-
Notifications
You must be signed in to change notification settings - Fork 713
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FB8-117: Add thread ID option for SQL SET command #1012
Conversation
sql/sql_yacc.yy
Outdated
@@ -450,7 +450,7 @@ void warn_about_deprecated_national(THD *thd) | |||
1. We do not accept any reduce/reduce conflicts | |||
2. We should not introduce new shift/reduce conflicts any more. | |||
*/ | |||
%expect 108 | |||
%expect 109 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess here (and in the high priority DDL PR) no easy way to avoid this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can fix this by reworking the grammar rules so that the thread id in option_type_with_thread_id is non-optional. It looks like we're confusing the start_option_value_list_following_option_type
rule, because it doesn't know if it needs to reduce option_type
to option_type_with_thread_id
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@inikep, as per @lth's suggestion, can something like the following grammar rules be used instead and can the parse tree be able to support it easily? It basically removes option_type from option_type_with_thread_id and explicitly adds productions for option_type_with_thread_id to the appropriate locations that have productions for option_type. Changes to your existing rules would be:
option_type_with_thread_id:
LOCAL_SYM opt_var_tid
| SESSION_SYM opt_var_tid
;
start_option_value_list_following_option_type:
option_type option_value_following_option_type option_value_list_continued
| option_type_with_thread_id option_value_following_option_type option_value_list_continued
| option_type TRANSACTION_SYM transaction_characteristics
;
option_value:
option_type option_value_following_option_type
| option_type_with_thread_id option_value_following_option_type
| option_value_no_option_type
;
Note I'm only including the grammar rules here without any code associated on those rules. The above change, when compiled with bison, does not have any additional shift/reduce conflicts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
74ae309
to
2b59862
Compare
PR was updated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hermanlee has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of the code looks good. The changes to the parse tree code seems to work, but I'm wondering if it would be simpler to add the thread_id value to the option_type structure directly instead of create a new one.
} | ||
|
||
Security_context *sctx = thd->security_context(); | ||
if (!sctx->check_access(SUPER_ACL) && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to cache the result of the first security_context check? It doesn't seem like the query result could change if it's a pass. Setting multiple variables is probably rare anyway, so maybe this is not worth considering.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code is called only with SET SESSION THREAD_ID
and it's not called without THREAD_ID
. The optimization will make sense only for SET SESSION THREAD_ID var_name1 = var_value1, SET SESSION THREAD_ID var_name2 = var_value2
or more values.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. The use case I was thinking of would have been trying to update one variable in all of outstanding sessions, so the call would be:
SET SESSION thread_id1 var_name = var_value, SESSION thread_id2 var_name = var_value, SESSION thread_id3 var_name = var_value;
But it's minor anyhow.
} | ||
|
||
Security_context *sctx = thd->security_context(); | ||
if (!sctx->check_access(SUPER_ACL) && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. The use case I was thinking of would have been trying to update one variable in all of outstanding sessions, so the call would be:
SET SESSION thread_id1 var_name = var_value, SESSION thread_id2 var_name = var_value, SESSION thread_id3 var_name = var_value;
But it's minor anyhow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mainly have a question about the change in behaviour in the security checks.
sql/set_var.cc
Outdated
!sctx->has_global_grant(STRING_WITH_LEN("SYSTEM_VARIABLES_ADMIN")) | ||
.first) { | ||
mysql_mutex_unlock(&change_thd->LOCK_thd_data); | ||
my_error(ER_SHOW_DENIED_ERROR, MYF(0), thd_id); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know if the change of behaviour here is intentional, but previously, we just checked if the user was an owner of the thread, instead of checking for specific privileges. Now the error is kind of misleading, because you'll get "You are not owner of thread", when we should really be getting something from ER_SPECIFIC_ACCESS_DENIED_ERROR
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I spoke with @hermanlee and the change in behaviour is probably okay.
However, I think we should use ER_SPECIFIC_ACCESS_DENIED_ERROR
instead so that the error is less confusing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
sql/sql_yacc.yy
Outdated
@@ -450,7 +450,7 @@ void warn_about_deprecated_national(THD *thd) | |||
1. We do not accept any reduce/reduce conflicts | |||
2. We should not introduce new shift/reduce conflicts any more. | |||
*/ | |||
%expect 108 | |||
%expect 109 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can fix this by reworking the grammar rules so that the thread id in option_type_with_thread_id is non-optional. It looks like we're confusing the start_option_value_list_following_option_type
rule, because it doesn't know if it needs to reduce option_type
to option_type_with_thread_id
.
@@ -358,12 +359,14 @@ bool sp_create_assignment_instr(THD *thd, const char *expr_end_ptr) { | |||
} | |||
|
|||
/* Remember option_type of the currently parsed LEX. */ | |||
enum_var_type inner_option_type = lex->option_type; | |||
const enum_var_type inner_option_type = lex->option_type; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not too important, but I wonder if this code path actually works? It'd be nice to have simple test for set statements in stored procedures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't work because of an upstream bug:
https://bugs.mysql.com/bug.php?id=95734
Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Summary: Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html fbshipit-source-id: efe2126
@inikep has updated the pull request. Re-import the pull request |
PR was updated with the following changes:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hermanlee has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hermanlee has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.
Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: 19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: #1012 Reviewed By: lth Differential Revision: D15773495 Pulled By: lth fbshipit-source-id: 24798ca
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
…cebook#1012) Summary: Jira issue: https://jira.percona.com/browse/FB8-117 Reference Patch: facebook@19f5aad Added thread ID option to the SQL SET command. The syntax of the command is as follows: `SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]` Notes: - The thread ID can be specified only with the SESSION keyword - If no thread ID is provided, it is assumed to be the current thread - Similarly, if own thread ID is provided, it is equivalent to `SET var_name = var_value` - If the thread with given ID does not exist, it will fail - For commands like `SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3` the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html Pull Request resolved: facebook#1012 Reviewed By: lloyd Differential Revision: D15773495 Pulled By: lth
Summary:
Jira issue: https://jira.percona.com/browse/FB8-117
Reference Patch: 19f5aad
Added thread ID option to the SQL SET command. The syntax of the command is as follows:
SET SESSION [THREAD_ID] var_name = var_value [, [SESSION [THREAD_ID]] var_name = var_value]
Notes:
SET var_name = var_value
SET SESSION THREAD_ID var1 = var_value1, var2 = var_value2, var3 = var_value3
the SESSION THREAD_ID will apply to all three variables as explained in https://dev.mysql.com/doc/refman/5.6/en/set-variable.html