MySQL  8.0.17
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 (ibool 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))
#define YYID(n)
Definition: fts0pars.cc:249
#define YY_(msgid)
Definition: fts0pars.cc:236
#define yychar
Definition: fts0pars.cc:69
if(++stacktop > STACKSIZ)
Definition: dbug_analyze.cc:141
#define YYEMPTY
Definition: fts0pars.cc:591

◆ 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:230

◆ 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))
#define YYID(n)
Definition: fts0pars.cc:249

◆ 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))
#define YYID(n)
Definition: fts0pars.cc:249
Definition: fts0pars.cc:146
Definition: fts0pars.cc:147
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   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 YYID(n)
Definition: fts0pars.cc:249
#define YYRHSLOC(Rhs, K)
Definition: fts0pars.cc:654
std::atomic< Type > N
Definition: ut0counter.h:230
if(++stacktop > STACKSIZ)
Definition: dbug_analyze.cc:141

◆ 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   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)) \
short int yytype_int16
Definition: fts0pars.cc:209
#define YYSTACK_GAP_MAXIMUM
Definition: fts0pars.cc:345
union YYSTYPE YYSTYPE
std::atomic< Type > N
Definition: ut0counter.h:230

◆ 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))
#define YYID(n)
Definition: fts0pars.cc:249
#define YYSTACK_GAP_MAXIMUM
Definition: fts0pars.cc:345

◆ 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:982

◆ 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 ( ibool  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", 0
}

◆ 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
}