MySQL 8.3.0
Source Code Documentation
fts0pars.cc File Reference
#include "ha_prototypes.h"
#include "mem0mem.h"
#include "fts0ast.h"
#include "fts0blex.h"
#include "fts0tlex.h"
#include "fts0pars.h"
#include <my_sys.h>
#include <stddef.h>
#include <stdlib.h>

Classes

struct  fts_lexer_t
 
union  YYSTYPE
 
union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "2.5"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   1
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define YYLSP_NEEDED   0
 
#define yyparse   ftsparse
 
#define yylex   ftslex
 
#define yyerror   ftserror
 
#define yylval   ftslval
 
#define yychar   ftschar
 
#define yydebug   ftsdebug
 
#define yynerrs   ftsnerrs
 
#define ftslex   fts_lexer
 
#define YYERROR_VERBOSE
 
#define YYPARSE_PARAM   state
 
#define YYLEX_PARAM   ((fts_ast_state_t*) state)->lexer
 
#define YYTOKENFREE(token)   fts_ast_string_free((token))
 
#define YYDEBUG   0
 
#define YYERROR_VERBOSE   1
 
#define YYTOKEN_TABLE   0
 
#define YYTOKENTYPE
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define yystype   YYSTYPE /* obsolescent; will be withdrawn */
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(msgid)   msgid
 
#define YYUSE(e)   ((void) (e))
 
#define YYID(n)   (n)
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define EXIT_SUCCESS   0
 
#define YYMALLOC   malloc
 
#define YYFREE   free
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(To, From, Count)
 
#define YYFINAL   3
 
#define YYLAST   52
 
#define YYNTOKENS   16
 
#define YYNNTS   8
 
#define YYNRULES   24
 
#define YYNSTATES   33
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   261
 
#define YYTRANSLATE(YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -5
 
#define YYTABLE_NINF   -1
 
#define yypact_value_is_default(yystate)    ((yystate) == (-5))
 
#define yytable_value_is_error(yytable_value)    YYID (0)
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYFAIL   goto yyerrlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYERRCLEANUP
 
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
 
#define YYLLOC_DEFAULT(Current, Rhs, N)
 
#define YY_LOCATION_PRINT(File, Loc)   ((void) 0)
 
#define YYLEX   yylex (&yylval, YYLEX_PARAM)
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYCASE_(N, S)
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
#define YYSYNTAX_ERROR
 

Typedefs

typedef int(* fts_scan) ()
 
typedef int(* fts_scanner_alt) (YYSTYPE *val, yyscan_t yyscanner)
 
typedef int(* fts_scanner) ()
 
typedef union YYSTYPE YYSTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  yytokentype {
  FTS_OPER = 258 , FTS_TEXT = 259 , FTS_TERM = 260 , FTS_NUMB = 261 ,
  FTS_OPER = 258 , FTS_TEXT = 259 , FTS_TERM = 260 , FTS_NUMB = 261 ,
  PARS_INT_LIT = 258 , PARS_FLOAT_LIT = 259 , PARS_STR_LIT = 260 , PARS_FIXBINARY_LIT = 261 ,
  PARS_BLOB_LIT = 262 , PARS_NULL_LIT = 263 , PARS_ID_TOKEN = 264 , PARS_AND_TOKEN = 265 ,
  PARS_OR_TOKEN = 266 , PARS_NOT_TOKEN = 267 , PARS_GE_TOKEN = 268 , PARS_LE_TOKEN = 269 ,
  PARS_NE_TOKEN = 270 , PARS_PROCEDURE_TOKEN = 271 , PARS_IN_TOKEN = 272 , PARS_OUT_TOKEN = 273 ,
  PARS_BINARY_TOKEN = 274 , PARS_BLOB_TOKEN = 275 , PARS_INT_TOKEN = 276 , PARS_INTEGER_TOKEN = 277 ,
  PARS_FLOAT_TOKEN = 278 , PARS_CHAR_TOKEN = 279 , PARS_IS_TOKEN = 280 , PARS_BEGIN_TOKEN = 281 ,
  PARS_END_TOKEN = 282 , PARS_IF_TOKEN = 283 , PARS_THEN_TOKEN = 284 , PARS_ELSE_TOKEN = 285 ,
  PARS_ELSIF_TOKEN = 286 , PARS_LOOP_TOKEN = 287 , PARS_WHILE_TOKEN = 288 , PARS_RETURN_TOKEN = 289 ,
  PARS_SELECT_TOKEN = 290 , PARS_SUM_TOKEN = 291 , PARS_COUNT_TOKEN = 292 , PARS_DISTINCT_TOKEN = 293 ,
  PARS_FROM_TOKEN = 294 , PARS_WHERE_TOKEN = 295 , PARS_FOR_TOKEN = 296 , PARS_DDOT_TOKEN = 297 ,
  PARS_READ_TOKEN = 298 , PARS_ORDER_TOKEN = 299 , PARS_BY_TOKEN = 300 , PARS_ASC_TOKEN = 301 ,
  PARS_DESC_TOKEN = 302 , PARS_INSERT_TOKEN = 303 , PARS_INTO_TOKEN = 304 , PARS_VALUES_TOKEN = 305 ,
  PARS_UPDATE_TOKEN = 306 , PARS_SET_TOKEN = 307 , PARS_DELETE_TOKEN = 308 , PARS_CURRENT_TOKEN = 309 ,
  PARS_OF_TOKEN = 310 , PARS_CREATE_TOKEN = 311 , PARS_TABLE_TOKEN = 312 , PARS_INDEX_TOKEN = 313 ,
  PARS_UNIQUE_TOKEN = 314 , PARS_CLUSTERED_TOKEN = 315 , PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316 , PARS_ON_TOKEN = 317 ,
  PARS_ASSIGN_TOKEN = 318 , PARS_DECLARE_TOKEN = 319 , PARS_CURSOR_TOKEN = 320 , PARS_SQL_TOKEN = 321 ,
  PARS_OPEN_TOKEN = 322 , PARS_FETCH_TOKEN = 323 , PARS_CLOSE_TOKEN = 324 , PARS_NOTFOUND_TOKEN = 325 ,
  PARS_TO_BINARY_TOKEN = 326 , PARS_SUBSTR_TOKEN = 327 , PARS_CONCAT_TOKEN = 328 , PARS_INSTR_TOKEN = 329 ,
  PARS_LENGTH_TOKEN = 330 , PARS_COMMIT_TOKEN = 331 , PARS_ROLLBACK_TOKEN = 332 , PARS_WORK_TOKEN = 333 ,
  PARS_UNSIGNED_TOKEN = 334 , PARS_EXIT_TOKEN = 335 , PARS_FUNCTION_TOKEN = 336 , PARS_LOCK_TOKEN = 337 ,
  PARS_SHARE_TOKEN = 338 , PARS_MODE_TOKEN = 339 , PARS_LIKE_TOKEN = 340 , PARS_LIKE_TOKEN_EXACT = 341 ,
  PARS_LIKE_TOKEN_PREFIX = 342 , PARS_LIKE_TOKEN_SUFFIX = 343 , PARS_LIKE_TOKEN_SUBSTR = 344 , PARS_TABLE_NAME_TOKEN = 345 ,
  PARS_COMPACT_TOKEN = 346 , PARS_BLOCK_SIZE_TOKEN = 347 , PARS_BIGINT_TOKEN = 348 , NEG = 349 ,
  PARS_INT_LIT = 258 , PARS_FLOAT_LIT = 259 , PARS_STR_LIT = 260 , PARS_FIXBINARY_LIT = 261 ,
  PARS_BLOB_LIT = 262 , PARS_NULL_LIT = 263 , PARS_ID_TOKEN = 264 , PARS_AND_TOKEN = 265 ,
  PARS_OR_TOKEN = 266 , PARS_NOT_TOKEN = 267 , PARS_GE_TOKEN = 268 , PARS_LE_TOKEN = 269 ,
  PARS_NE_TOKEN = 270 , PARS_PROCEDURE_TOKEN = 271 , PARS_IN_TOKEN = 272 , PARS_OUT_TOKEN = 273 ,
  PARS_BINARY_TOKEN = 274 , PARS_BLOB_TOKEN = 275 , PARS_INT_TOKEN = 276 , PARS_INTEGER_TOKEN = 277 ,
  PARS_FLOAT_TOKEN = 278 , PARS_CHAR_TOKEN = 279 , PARS_IS_TOKEN = 280 , PARS_BEGIN_TOKEN = 281 ,
  PARS_END_TOKEN = 282 , PARS_IF_TOKEN = 283 , PARS_THEN_TOKEN = 284 , PARS_ELSE_TOKEN = 285 ,
  PARS_ELSIF_TOKEN = 286 , PARS_LOOP_TOKEN = 287 , PARS_WHILE_TOKEN = 288 , PARS_RETURN_TOKEN = 289 ,
  PARS_SELECT_TOKEN = 290 , PARS_SUM_TOKEN = 291 , PARS_COUNT_TOKEN = 292 , PARS_DISTINCT_TOKEN = 293 ,
  PARS_FROM_TOKEN = 294 , PARS_WHERE_TOKEN = 295 , PARS_FOR_TOKEN = 296 , PARS_DDOT_TOKEN = 297 ,
  PARS_READ_TOKEN = 298 , PARS_ORDER_TOKEN = 299 , PARS_BY_TOKEN = 300 , PARS_ASC_TOKEN = 301 ,
  PARS_DESC_TOKEN = 302 , PARS_INSERT_TOKEN = 303 , PARS_INTO_TOKEN = 304 , PARS_VALUES_TOKEN = 305 ,
  PARS_UPDATE_TOKEN = 306 , PARS_SET_TOKEN = 307 , PARS_DELETE_TOKEN = 308 , PARS_CURRENT_TOKEN = 309 ,
  PARS_OF_TOKEN = 310 , PARS_CREATE_TOKEN = 311 , PARS_TABLE_TOKEN = 312 , PARS_INDEX_TOKEN = 313 ,
  PARS_UNIQUE_TOKEN = 314 , PARS_CLUSTERED_TOKEN = 315 , PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316 , PARS_ON_TOKEN = 317 ,
  PARS_ASSIGN_TOKEN = 318 , PARS_DECLARE_TOKEN = 319 , PARS_CURSOR_TOKEN = 320 , PARS_SQL_TOKEN = 321 ,
  PARS_OPEN_TOKEN = 322 , PARS_FETCH_TOKEN = 323 , PARS_CLOSE_TOKEN = 324 , PARS_NOTFOUND_TOKEN = 325 ,
  PARS_TO_BINARY_TOKEN = 326 , PARS_SUBSTR_TOKEN = 327 , PARS_CONCAT_TOKEN = 328 , PARS_INSTR_TOKEN = 329 ,
  PARS_LENGTH_TOKEN = 330 , PARS_COMMIT_TOKEN = 331 , PARS_ROLLBACK_TOKEN = 332 , PARS_WORK_TOKEN = 333 ,
  PARS_UNSIGNED_TOKEN = 334 , PARS_EXIT_TOKEN = 335 , PARS_FUNCTION_TOKEN = 336 , PARS_LOCK_TOKEN = 337 ,
  PARS_SHARE_TOKEN = 338 , PARS_MODE_TOKEN = 339 , PARS_LIKE_TOKEN = 340 , PARS_LIKE_TOKEN_EXACT = 341 ,
  PARS_LIKE_TOKEN_PREFIX = 342 , PARS_LIKE_TOKEN_SUFFIX = 343 , PARS_LIKE_TOKEN_SUBSTR = 344 , PARS_TABLE_NAME_TOKEN = 345 ,
  PARS_COMPACT_TOKEN = 346 , PARS_BLOCK_SIZE_TOKEN = 347 , PARS_BIGINT_TOKEN = 348 , NEG = 349
}
 

Functions

int fts_lexer (YYSTYPE *, fts_lexer_t *)
 
int fts_blexer (YYSTYPE *, yyscan_t)
 
int fts_tlexer (YYSTYPE *, yyscan_t)
 
int ftserror (const char *p)
 
static YYSIZE_T yystrlen (const char *yystr)
 
static char * yystpcpy (char *yydest, const char *yysrc)
 
static YYSIZE_T yytnamerr (char *yyres, const char *yystr)
 
static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
 
static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 
int yyparse (void *YYPARSE_PARAM)
 
fts_lexer_tfts_lexer_create (bool boolean_mode, const byte *query, ulint query_len)
 
void fts_lexer_free (fts_lexer_t *fts_lexer)
 in: lexer instance to free More...
 
int fts_parse (fts_ast_state_t *state)
 in: ast state instance. More...
 

Variables

static const yytype_uint8 yytranslate []
 
static const char *const yytname []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 
static const yytype_uint8 yydefact []
 
static const yytype_int8 yydefgoto []
 
static const yytype_int8 yypact []
 
static const yytype_int8 yypgoto []
 
static const yytype_uint8 yytable []
 
static const yytype_int8 yycheck []
 
static const yytype_uint8 yystos []
 

Macro Definition Documentation

◆ EXIT_SUCCESS

#define EXIT_SUCCESS   0

◆ ftslex

#define ftslex   fts_lexer

◆ YY_

#define YY_ (   msgid)    msgid

◆ YY_LOCATION_PRINT

#define YY_LOCATION_PRINT (   File,
  Loc 
)    ((void) 0)

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)

◆ YY_SYMBOL_PRINT

#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)

◆ YYABORT

#define YYABORT   goto yyabortlab

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

◆ YYBACKUP

#define YYBACKUP (   Token,
  Value 
)
Value:
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
a nullable SQL value.
Definition: sql_value.h:39
#define YYID(n)
Definition: fts0pars.cc:249
#define yychar
Definition: fts0pars.cc:69
#define YY_(msgid)
Definition: fts0pars.cc:236
#define YYEMPTY
Definition: fts0pars.cc:590
if(!(yy_init))
Definition: lexyy.cc:1144

◆ YYBISON

#define YYBISON   1

◆ YYBISON_VERSION

#define YYBISON_VERSION   "2.5"

◆ YYCASE_

#define YYCASE_ (   N,
 
)
Value:
case N: \
yyformat = S; \
break
std::atomic< Type > N
Definition: ut0counter.h:224

◆ yychar

#define yychar   ftschar

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

◆ YYCOPY

#define YYCOPY (   To,
  From,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

◆ yydebug

#define yydebug   ftsdebug

◆ YYDEBUG

#define YYDEBUG   0

◆ YYDPRINTF

#define YYDPRINTF (   Args)

◆ YYEMPTY

#define YYEMPTY   (-2)

◆ YYEOF

#define YYEOF   0

◆ YYERRCLEANUP

#define YYERRCLEANUP
Value:
do \
switch (yylastchar) \
{ \
case FTS_NUMB: \
case FTS_TEXT: \
case FTS_TERM: \
YYTOKENFREE(yylval.token); \
break; \
default: \
break; \
} \
while (YYID (0))
@ FTS_NUMB
Definition: fts0pars.cc:147
@ FTS_TERM
Definition: fts0pars.cc:146
@ FTS_TEXT
Definition: fts0pars.cc:145
#define yylval
Definition: fts0pars.cc:68

◆ YYERRCODE

#define YYERRCODE   256

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

◆ yyerror

#define yyerror   ftserror

◆ YYERROR

#define YYERROR   goto yyerrorlab

◆ YYERROR_VERBOSE [1/2]

#define YYERROR_VERBOSE

◆ YYERROR_VERBOSE [2/2]

#define YYERROR_VERBOSE   1

◆ YYFAIL

#define YYFAIL   goto yyerrlab

◆ YYFINAL

#define YYFINAL   3

◆ YYFREE

#define YYFREE   free

◆ YYID

#define YYID (   n)    (n)

◆ YYINITDEPTH

#define YYINITDEPTH   200

◆ YYLAST

#define YYLAST   52

◆ yylex

#define yylex (   void)    ftslex

◆ YYLEX

#define YYLEX   yylex (&yylval, YYLEX_PARAM)

◆ YYLEX_PARAM

#define YYLEX_PARAM   ((fts_ast_state_t*) state)->lexer

◆ YYLLOC_DEFAULT

#define YYLLOC_DEFAULT (   Current,
  Rhs,
 
)
Value:
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#define YYRHSLOC(Rhs, K)
Definition: fts0pars.cc:653

◆ YYLSP_NEEDED

#define YYLSP_NEEDED   0

◆ yylval

YYSTYPE yylval   ftslval

◆ YYMALLOC

#define YYMALLOC   malloc

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

◆ YYMAXUTOK

#define YYMAXUTOK   261

◆ yynerrs

#define yynerrs   ftsnerrs

◆ YYNNTS

#define YYNNTS   8

◆ YYNRULES

#define YYNRULES   24

◆ YYNSTATES

#define YYNSTATES   33

◆ YYNTOKENS

#define YYNTOKENS   16

◆ YYPACT_NINF

#define YYPACT_NINF   -5

◆ yypact_value_is_default

#define yypact_value_is_default (   yystate)     ((yystate) == (-5))

◆ yyparse

#define yyparse (   void)    ftsparse

◆ YYPARSE_PARAM

#define YYPARSE_PARAM   state

◆ YYPOPSTACK

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N))

◆ YYPULL

#define YYPULL   1

◆ YYPURE

#define YYPURE   1

◆ YYPUSH

#define YYPUSH   0

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

◆ YYRHSLOC

#define YYRHSLOC (   Rhs,
 
)    ((Rhs)[K])

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

◆ YYSIZE_T

#define YYSIZE_T   size_t

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

◆ YYSTACK_BYTES

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
union YYSTYPE YYSTYPE
#define YYSTACK_GAP_MAXIMUM
Definition: fts0pars.cc:345
short int yytype_int16
Definition: sql_hints.yy.cc:296

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

◆ YYSTACK_GAP_MAXIMUM

#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)

◆ YYSTACK_RELOCATE

#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))

◆ yystype

#define yystype   YYSTYPE /* obsolescent; will be withdrawn */

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

◆ YYSYNTAX_ERROR

#define YYSYNTAX_ERROR
Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
Definition: fts0pars.cc:976

◆ YYTABLE_NINF

#define YYTABLE_NINF   -1

◆ yytable_value_is_error

#define yytable_value_is_error (   yytable_value)     YYID (0)

◆ YYTERROR

#define YYTERROR   1

◆ YYTOKEN_TABLE

#define YYTOKEN_TABLE   0

◆ YYTOKENFREE

#define YYTOKENFREE (   token)    fts_ast_string_free((token))

◆ YYTOKENTYPE

#define YYTOKENTYPE

◆ YYTRANSLATE

#define YYTRANSLATE (   YYX)     ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

◆ YYUSE

#define YYUSE (   e)    ((void) (e))

Typedef Documentation

◆ fts_scan

typedef int(* fts_scan) ()

◆ fts_scanner

typedef int(* fts_scanner) ()

◆ fts_scanner_alt

typedef int(* fts_scanner_alt) (YYSTYPE *val, yyscan_t yyscanner)

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

◆ yytype_int16

typedef short int yytype_int16

◆ yytype_int8

typedef signed char yytype_int8

◆ yytype_uint16

typedef unsigned short int yytype_uint16

◆ yytype_uint8

typedef unsigned char yytype_uint8

Enumeration Type Documentation

◆ yytokentype

Enumerator
FTS_OPER 
FTS_TEXT 
FTS_TERM 
FTS_NUMB 
FTS_OPER 
FTS_TEXT 
FTS_TERM 
FTS_NUMB 
PARS_INT_LIT 
PARS_FLOAT_LIT 
PARS_STR_LIT 
PARS_FIXBINARY_LIT 
PARS_BLOB_LIT 
PARS_NULL_LIT 
PARS_ID_TOKEN 
PARS_AND_TOKEN 
PARS_OR_TOKEN 
PARS_NOT_TOKEN 
PARS_GE_TOKEN 
PARS_LE_TOKEN 
PARS_NE_TOKEN 
PARS_PROCEDURE_TOKEN 
PARS_IN_TOKEN 
PARS_OUT_TOKEN 
PARS_BINARY_TOKEN 
PARS_BLOB_TOKEN 
PARS_INT_TOKEN 
PARS_INTEGER_TOKEN 
PARS_FLOAT_TOKEN 
PARS_CHAR_TOKEN 
PARS_IS_TOKEN 
PARS_BEGIN_TOKEN 
PARS_END_TOKEN 
PARS_IF_TOKEN 
PARS_THEN_TOKEN 
PARS_ELSE_TOKEN 
PARS_ELSIF_TOKEN 
PARS_LOOP_TOKEN 
PARS_WHILE_TOKEN 
PARS_RETURN_TOKEN 
PARS_SELECT_TOKEN 
PARS_SUM_TOKEN 
PARS_COUNT_TOKEN 
PARS_DISTINCT_TOKEN 
PARS_FROM_TOKEN 
PARS_WHERE_TOKEN 
PARS_FOR_TOKEN 
PARS_DDOT_TOKEN 
PARS_READ_TOKEN 
PARS_ORDER_TOKEN 
PARS_BY_TOKEN 
PARS_ASC_TOKEN 
PARS_DESC_TOKEN 
PARS_INSERT_TOKEN 
PARS_INTO_TOKEN 
PARS_VALUES_TOKEN 
PARS_UPDATE_TOKEN 
PARS_SET_TOKEN 
PARS_DELETE_TOKEN 
PARS_CURRENT_TOKEN 
PARS_OF_TOKEN 
PARS_CREATE_TOKEN 
PARS_TABLE_TOKEN 
PARS_INDEX_TOKEN 
PARS_UNIQUE_TOKEN 
PARS_CLUSTERED_TOKEN 
PARS_DOES_NOT_FIT_IN_MEM_TOKEN 
PARS_ON_TOKEN 
PARS_ASSIGN_TOKEN 
PARS_DECLARE_TOKEN 
PARS_CURSOR_TOKEN 
PARS_SQL_TOKEN 
PARS_OPEN_TOKEN 
PARS_FETCH_TOKEN 
PARS_CLOSE_TOKEN 
PARS_NOTFOUND_TOKEN 
PARS_TO_BINARY_TOKEN 
PARS_SUBSTR_TOKEN 
PARS_CONCAT_TOKEN 
PARS_INSTR_TOKEN 
PARS_LENGTH_TOKEN 
PARS_COMMIT_TOKEN 
PARS_ROLLBACK_TOKEN 
PARS_WORK_TOKEN 
PARS_UNSIGNED_TOKEN 
PARS_EXIT_TOKEN 
PARS_FUNCTION_TOKEN 
PARS_LOCK_TOKEN 
PARS_SHARE_TOKEN 
PARS_MODE_TOKEN 
PARS_LIKE_TOKEN 
PARS_LIKE_TOKEN_EXACT 
PARS_LIKE_TOKEN_PREFIX 
PARS_LIKE_TOKEN_SUFFIX 
PARS_LIKE_TOKEN_SUBSTR 
PARS_TABLE_NAME_TOKEN 
PARS_COMPACT_TOKEN 
PARS_BLOCK_SIZE_TOKEN 
PARS_BIGINT_TOKEN 
NEG 
PARS_INT_LIT 
PARS_FLOAT_LIT 
PARS_STR_LIT 
PARS_FIXBINARY_LIT 
PARS_BLOB_LIT 
PARS_NULL_LIT 
PARS_ID_TOKEN 
PARS_AND_TOKEN 
PARS_OR_TOKEN 
PARS_NOT_TOKEN 
PARS_GE_TOKEN 
PARS_LE_TOKEN 
PARS_NE_TOKEN 
PARS_PROCEDURE_TOKEN 
PARS_IN_TOKEN 
PARS_OUT_TOKEN 
PARS_BINARY_TOKEN 
PARS_BLOB_TOKEN 
PARS_INT_TOKEN 
PARS_INTEGER_TOKEN 
PARS_FLOAT_TOKEN 
PARS_CHAR_TOKEN 
PARS_IS_TOKEN 
PARS_BEGIN_TOKEN 
PARS_END_TOKEN 
PARS_IF_TOKEN 
PARS_THEN_TOKEN 
PARS_ELSE_TOKEN 
PARS_ELSIF_TOKEN 
PARS_LOOP_TOKEN 
PARS_WHILE_TOKEN 
PARS_RETURN_TOKEN 
PARS_SELECT_TOKEN 
PARS_SUM_TOKEN 
PARS_COUNT_TOKEN 
PARS_DISTINCT_TOKEN 
PARS_FROM_TOKEN 
PARS_WHERE_TOKEN 
PARS_FOR_TOKEN 
PARS_DDOT_TOKEN 
PARS_READ_TOKEN 
PARS_ORDER_TOKEN 
PARS_BY_TOKEN 
PARS_ASC_TOKEN 
PARS_DESC_TOKEN 
PARS_INSERT_TOKEN 
PARS_INTO_TOKEN 
PARS_VALUES_TOKEN 
PARS_UPDATE_TOKEN 
PARS_SET_TOKEN 
PARS_DELETE_TOKEN 
PARS_CURRENT_TOKEN 
PARS_OF_TOKEN 
PARS_CREATE_TOKEN 
PARS_TABLE_TOKEN 
PARS_INDEX_TOKEN 
PARS_UNIQUE_TOKEN 
PARS_CLUSTERED_TOKEN 
PARS_DOES_NOT_FIT_IN_MEM_TOKEN 
PARS_ON_TOKEN 
PARS_ASSIGN_TOKEN 
PARS_DECLARE_TOKEN 
PARS_CURSOR_TOKEN 
PARS_SQL_TOKEN 
PARS_OPEN_TOKEN 
PARS_FETCH_TOKEN 
PARS_CLOSE_TOKEN 
PARS_NOTFOUND_TOKEN 
PARS_TO_BINARY_TOKEN 
PARS_SUBSTR_TOKEN 
PARS_CONCAT_TOKEN 
PARS_INSTR_TOKEN 
PARS_LENGTH_TOKEN 
PARS_COMMIT_TOKEN 
PARS_ROLLBACK_TOKEN 
PARS_WORK_TOKEN 
PARS_UNSIGNED_TOKEN 
PARS_EXIT_TOKEN 
PARS_FUNCTION_TOKEN 
PARS_LOCK_TOKEN 
PARS_SHARE_TOKEN 
PARS_MODE_TOKEN 
PARS_LIKE_TOKEN 
PARS_LIKE_TOKEN_EXACT 
PARS_LIKE_TOKEN_PREFIX 
PARS_LIKE_TOKEN_SUFFIX 
PARS_LIKE_TOKEN_SUBSTR 
PARS_TABLE_NAME_TOKEN 
PARS_COMPACT_TOKEN 
PARS_BLOCK_SIZE_TOKEN 
PARS_BIGINT_TOKEN 
NEG 

Function Documentation

◆ fts_blexer()

int fts_blexer ( YYSTYPE ,
yyscan_t   
)

◆ fts_lexer()

int fts_lexer ( YYSTYPE val,
fts_lexer_t fts_lexer 
)

◆ fts_lexer_create()

fts_lexer_t * fts_lexer_create ( bool  boolean_mode,
const byte query,
ulint  query_len 
)
Parameters
boolean_modein: query type
queryin: query string
query_lenin: query string len

◆ fts_lexer_free()

void fts_lexer_free ( fts_lexer_t fts_lexer)

in: lexer instance to free

◆ fts_parse()

int fts_parse ( fts_ast_state_t state)

in: ast state instance.

◆ fts_tlexer()

int fts_tlexer ( YYSTYPE ,
yyscan_t   
)

◆ ftserror()

int ftserror ( const char *  p)

◆ yydestruct()

static void yydestruct ( const char *  yymsg,
int  yytype,
YYSTYPE yyvaluep 
)
static

◆ yyparse()

int yyparse ( void *  YYPARSE_PARAM)

◆ yystpcpy()

static char * yystpcpy ( char *  yydest,
const char *  yysrc 
)
static

◆ yystrlen()

static YYSIZE_T yystrlen ( const char *  yystr)
static

◆ yysyntax_error()

static int yysyntax_error ( YYSIZE_T yymsg_alloc,
char **  yymsg,
yytype_int16 yyssp,
int  yytoken 
)
static

◆ yytnamerr()

static YYSIZE_T yytnamerr ( char *  yyres,
const char *  yystr 
)
static

Variable Documentation

◆ yycheck

const yytype_int8 yycheck[]
static
Initial value:
=
{
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 4, 5, 6, 7, 8, 9, 10, 11,
12, 12, 14, 4, 5, 6, 5, 6, 0, 13,
21, 12, 16, 14, 14, 14, 6, 15, 14, 6,
15, -1, 16
}

◆ yydefact

const yytype_uint8 yydefact[]
static
Initial value:
=
{
3, 0, 2, 1, 24, 21, 22, 17, 16, 18,
19, 20, 3, 0, 5, 4, 0, 8, 9, 0,
23, 3, 13, 15, 10, 0, 6, 0, 12, 0,
11, 7, 14
}

◆ yydefgoto

const yytype_int8 yydefgoto[]
static
Initial value:
=
{
-1, 1, 2, 14, 15, 16, 17, 18
}

◆ yypact

const yytype_int8 yypact[]
static
Initial value:
=
{
-5, 38, 18, -5, -5, -5, -5, -5, -5, -5,
-5, -5, -5, 31, -5, -5, 29, 30, 32, -4,
-5, -5, 34, 35, -5, 40, -5, 7, -5, 43,
-5, -5, -5
}

◆ yypgoto

const yytype_int8 yypgoto[]
static
Initial value:
=
{
-5, -5, 19, -5, -5, -5, 26, 36
}

◆ yyr1

const yytype_uint8 yyr1[]
static
Initial value:
=
{
0, 16, 17, 18, 18, 18, 19, 19, 20, 20,
20, 20, 20, 20, 20, 20, 21, 21, 21, 21,
21, 22, 22, 22, 23
}

◆ yyr2

const yytype_uint8 yyr2[]
static
Initial value:
=
{
0, 2, 1, 0, 2, 2, 3, 4, 1, 1,
2, 3, 3, 2, 4, 2, 1, 1, 1, 1,
1, 1, 1, 2, 1
}

◆ yystos

const yytype_uint8 yystos[]
static
Initial value:
=
{
0, 17, 18, 0, 4, 5, 6, 7, 8, 9,
10, 11, 12, 14, 19, 20, 21, 22, 23, 18,
22, 12, 22, 23, 14, 15, 13, 18, 14, 15,
6, 13, 6
}

◆ yytable

const yytype_uint8 yytable[]
static
Initial value:
=
{
4, 5, 6, 7, 8, 9, 10, 11, 12, 26,
13, 4, 5, 6, 7, 8, 9, 10, 11, 12,
31, 13, 4, 5, 6, 7, 8, 9, 10, 11,
12, 19, 13, 4, 5, 6, 5, 6, 3, 20,
27, 21, 22, 13, 24, 13, 30, 25, 28, 32,
29, 0, 23
}

◆ yytname

const char* const yytname[]
static
Initial value:
= {
"$end", "error", "$undefined", "FTS_OPER", "FTS_TEXT",
"FTS_TERM", "FTS_NUMB", "'+'", "'-'", "'~'",
"'<'", "'>'", "'('", "')'", "'*'",
"'@'", "$accept", "query", "expr_lst", "sub_expr",
"expr", "prefix", "term", "text", nullptr}

◆ yytranslate

const yytype_uint8 yytranslate[]
static
Initial value:
=
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
12, 13, 14, 7, 2, 8, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
10, 2, 11, 2, 15, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 9, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6
}