mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Pass thd as an argument to yylex().
This commit is contained in:
parent
87fbeb4098
commit
6a8e2a9cbc
2 changed files with 7 additions and 5 deletions
|
@ -442,13 +442,13 @@ inline static uint int_token(const char *str,uint length)
|
|||
// STATE_OPERATOR_OR_IDENT ; last state was an ident, text or number
|
||||
// (which can't be followed by a signed number)
|
||||
|
||||
int yylex(void *arg)
|
||||
int yylex(void *arg, void *yythd)
|
||||
{
|
||||
reg1 uchar c;
|
||||
int tokval;
|
||||
uint length;
|
||||
enum lex_states state,prev_state;
|
||||
LEX *lex=current_lex;
|
||||
LEX *lex= &(((THD *)yythd)->lex);
|
||||
YYSTYPE *yylval=(YYSTYPE*) arg;
|
||||
|
||||
lex->yylval=yylval; // The global state
|
||||
|
|
|
@ -17,10 +17,12 @@
|
|||
/* sql_yacc.yy */
|
||||
|
||||
%{
|
||||
/* Pass thd as an arg to yyparse(). The type will be void*, so it
|
||||
** must be cast to (THD*) when used. Use the YYTHD macro for this.
|
||||
/* thd is passed as an arg to yyparse(), and subsequently to yylex().
|
||||
** The type will be void*, so it must be cast to (THD*) when used.
|
||||
** Use the YYTHD macro for this.
|
||||
*/
|
||||
#define YYPARSE_PARAM yythd
|
||||
#define YYLEX_PARAM yythd
|
||||
#define YYTHD ((THD *)yythd)
|
||||
|
||||
#define MYSQL_YACC
|
||||
|
@ -37,7 +39,7 @@
|
|||
#include <myisammrg.h>
|
||||
|
||||
extern void yyerror(const char*);
|
||||
int yylex(void *yylval);
|
||||
int yylex(void *yylval, void *yythd);
|
||||
|
||||
#define yyoverflow(A,B,C,D,E,F) if (my_yyoverflow((B),(D),(int*) (F))) { yyerror((char*) (A)); return 2; }
|
||||
|
||||
|
|
Loading…
Reference in a new issue