MXS-1196: Report user var read when prepared statements

This commit is contained in:
Johan Wikman
2017-05-02 15:59:43 +03:00
parent da0900786a
commit 62a64cba31
2 changed files with 11 additions and 7 deletions

View File

@ -64,6 +64,7 @@ enum
{
QUERY_TYPE_READ = 0x000002, /*< Read database data:any */
QUERY_TYPE_WRITE = 0x000004, /*< Master data will be modified:master */
QUERY_TYPE_USERVAR_READ = 0x000040, /*< Read a user variable:master or any */
};
typedef enum qc_field_usage
@ -112,7 +113,8 @@ extern void maxscaleCheckTable(Parse*, SrcList* pTables);
extern void maxscaleDeallocate(Parse*, Token* pName);
extern void maxscaleDo(Parse*, ExprList* pEList);
extern void maxscaleDrop(Parse*, MxsDrop* pDrop);
extern void maxscaleExecute(Parse*, Token* pName);
extern void maxscaleExecute(Parse*, Token* pName, int type_mask);
extern void maxscaleExplain(Parse*, SrcList* pName);
extern void maxscaleExplain(Parse*, Token* pNext);
extern void maxscaleFlush(Parse*, Token* pWhat);
extern void maxscaleHandler(Parse*, mxs_handler_t, SrcList* pFullName, Token* pName);
@ -2848,11 +2850,13 @@ prepare ::= PREPARE nm(X) FROM STRING(Y).
execute_variables ::= VARIABLE.
execute_variables ::= execute_variables COMMA VARIABLE.
execute_variables_opt ::= .
execute_variables_opt ::= USING execute_variables.
%type execute_variables_opt {int}
execute ::= EXECUTE nm(X) execute_variables_opt. {
maxscaleExecute(pParse, &X);
execute_variables_opt(A) ::= . { A = 0; }
execute_variables_opt(A) ::= USING execute_variables. { A = QUERY_TYPE_USERVAR_READ; }
execute ::= EXECUTE nm(X) execute_variables_opt(Y). {
maxscaleExecute(pParse, &X, Y);
}
dod ::= DEALLOCATE.