OmniSciDB  a667adc9c8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Parser_wnd_pregen.cpp File Reference
#include <stdio.h>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/regex.hpp>
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <list>
#include <mutex>
#include <sstream>
#include <stdexcept>
#include <string>
#include <utility>
#include "Parser/FlexLexer.h"
#include "ParserNode.h"
#include "ReservedKeywords.h"
#include "TrackedPtr.h"
+ Include dependency graph for Parser_wnd_pregen.cpp:

Go to the source code of this file.

Classes

union  yy_Parser_stype
 
class  SQLLexer
 

Macros

#define YY_Parser_h_included
 
#define const
 
#define YYBISON   1
 
#define YY_Parser_CLASS   SQLParser
 
#define YY_Parser_LVAL   yylval
 
#define YY_Parser_CONSTRUCTOR_INIT   : lexer(yylval)
 
#define YY_Parser_MEMBERS
 
#define YY_Parser_LEX_BODY   { return lexer.yylex(); }
 
#define YY_Parser_ERROR_BODY
 
#define YY_Parser_PARSE_PARAM   std::list<std::unique_ptr<Stmt>>& parseTrees
 
#define YY_Parser_STYPE   yy_Parser_stype
 
#define YY_Parser_BISON   1
 
#define YY_Parser_COMPATIBILITY   1
 
#define yystype   YY_Parser_STYPE
 
#define YY_Parser_USE_GOTO   1
 
#define YY_Parser_PARSE   yyparse
 
#define YY_Parser_LEX   yylex
 
#define YY_Parser_LLOC   yylloc
 
#define YY_Parser_CHAR   yychar
 
#define YY_Parser_NERRS   yynerrs
 
#define YY_Parser_DEBUG_FLAG   yydebug
 
#define YY_Parser_ERROR   yyerror
 
#define YYSTYPE   YY_Parser_STYPE
 
#define NAME   258
 
#define DASHEDNAME   259
 
#define EMAIL   260
 
#define STRING   261
 
#define FWDSTR   262
 
#define SELECTSTRING   263
 
#define QUOTED_IDENTIFIER   264
 
#define INTNUM   265
 
#define FIXEDNUM   266
 
#define OR   267
 
#define AND   268
 
#define NOT   269
 
#define EQUAL   270
 
#define COMPARISON   271
 
#define UMINUS   272
 
#define ADD   273
 
#define ALL   274
 
#define ALTER   275
 
#define AMMSC   276
 
#define ANY   277
 
#define ARCHIVE   278
 
#define ARRAY   279
 
#define AS   280
 
#define ASC   281
 
#define AUTHORIZATION   282
 
#define BETWEEN   283
 
#define BIGINT   284
 
#define BOOLEAN   285
 
#define BY   286
 
#define CASE   287
 
#define CAST   288
 
#define CHAR_LENGTH   289
 
#define CHARACTER   290
 
#define CHECK   291
 
#define CLOSE   292
 
#define CLUSTER   293
 
#define COLUMN   294
 
#define COMMIT   295
 
#define CONTINUE   296
 
#define COPY   297
 
#define CREATE   298
 
#define CURRENT   299
 
#define CURSOR   300
 
#define DATABASE   301
 
#define DATAFRAME   302
 
#define DATE   303
 
#define DATETIME   304
 
#define DATE_TRUNC   305
 
#define DECIMAL   306
 
#define DECLARE   307
 
#define DEFAULT   308
 
#define DELETE   309
 
#define DESC   310
 
#define DICTIONARY   311
 
#define DISTINCT   312
 
#define DOUBLE   313
 
#define DROP   314
 
#define DUMP   315
 
#define ELSE   316
 
#define END   317
 
#define EXISTS   318
 
#define EXTRACT   319
 
#define FETCH   320
 
#define FIRST   321
 
#define FLOAT   322
 
#define FOR   323
 
#define FOREIGN   324
 
#define FOUND   325
 
#define FROM   326
 
#define GEOGRAPHY   327
 
#define GEOMETRY   328
 
#define GRANT   329
 
#define GROUP   330
 
#define HAVING   331
 
#define IF   332
 
#define ILIKE   333
 
#define IN   334
 
#define INSERT   335
 
#define INTEGER   336
 
#define INTO   337
 
#define IS   338
 
#define LANGUAGE   339
 
#define LAST   340
 
#define LENGTH   341
 
#define LIKE   342
 
#define LIMIT   343
 
#define LINESTRING   344
 
#define MOD   345
 
#define MULTIPOLYGON   346
 
#define NOW   347
 
#define NULLX   348
 
#define NUMERIC   349
 
#define OF   350
 
#define OFFSET   351
 
#define ON   352
 
#define OPEN   353
 
#define OPTIMIZE   354
 
#define OPTIMIZED   355
 
#define OPTION   356
 
#define ORDER   357
 
#define PARAMETER   358
 
#define POINT   359
 
#define POLYGON   360
 
#define PRECISION   361
 
#define PRIMARY   362
 
#define PRIVILEGES   363
 
#define PROCEDURE   364
 
#define SERVER   365
 
#define SMALLINT   366
 
#define SOME   367
 
#define TABLE   368
 
#define TEMPORARY   369
 
#define TEXT   370
 
#define THEN   371
 
#define TIME   372
 
#define TIMESTAMP   373
 
#define TINYINT   374
 
#define TO   375
 
#define TRUNCATE   376
 
#define UNION   377
 
#define PUBLIC   378
 
#define REAL   379
 
#define REFERENCES   380
 
#define RENAME   381
 
#define RESTORE   382
 
#define REVOKE   383
 
#define ROLE   384
 
#define ROLLBACK   385
 
#define SCHEMA   386
 
#define SELECT   387
 
#define SET   388
 
#define SHARD   389
 
#define SHARED   390
 
#define SHOW   391
 
#define UNIQUE   392
 
#define UPDATE   393
 
#define USER   394
 
#define VALIDATE   395
 
#define VALUES   396
 
#define VIEW   397
 
#define WHEN   398
 
#define WHENEVER   399
 
#define WHERE   400
 
#define WITH   401
 
#define WORK   402
 
#define EDIT   403
 
#define ACCESS   404
 
#define DASHBOARD   405
 
#define SQL   406
 
#define EDITOR   407
 
#define YYFINAL   686
 
#define YYFLAG   -32768
 
#define YYNTBASE   167
 
#define YYTRANSLATE(x)   ((unsigned)(x) <= 407 ? yytranslate[x] : 288)
 
#define YYLAST   1690
 
#define YYGOTO(lb)
 
#define YYBEGINGOTO
 
#define YYLABEL(lb)
 
#define YYENDGOTO
 
#define YYBEGINDECLARELABEL   enum yy_labels { yygotostart
 
#define YYDECLARELABEL(lb)   , lb
 
#define YYENDDECLARELABEL
 
#define __ALLOCA_return(num)   return (num)
 
#define __ALLOCA_alloca(size)   alloca(size)
 
#define __ALLOCA_free(ptr, ref)
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (YY_Parser_CHAR = YYEMPTY)
 
#define YYEMPTY   -2
 
#define YYEOF   0
 
#define YYACCEPT   __ALLOCA_return(0)
 
#define YYABORT   __ALLOCA_return(1)
 
#define YYERROR   YYGOTO(yyerrlab1)
 
#define YYFAIL   YYGOTO(yyerrlab)
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(token, value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYLEX   YY_Parser_LEX()
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYPOPSTACK   (yyvsp--, yyssp--)
 

Functions

YYBEGINDECLARELABEL YYDECLARELABEL (yyerrlab) YYDECLARELABEL(yyerrlab1) YYDECLARELABEL(yyerrdefault) YYDECLARELABEL(yyerrpop) YYENDDECLARELABELint YY_Parser_CHAR
 
static void __yy_bcopy (from, to, count) char *from
 
 if (yyssp >=yyss+yystacksize-1)
 
 YYGOTO (yybackup)
 
 YYGOTO (yydefault)
 
 if (YY_Parser_CHAR==YYEMPTY)
 
 if (YY_Parser_CHAR<=0)
 
 if (yyn< 0)
 
else if (yyn==0) YYGOTO(yyerrlab)
 
 YYGOTO (yynewstate)
 
 YYGOTO (yyerrlab)
 
 switch (yyn)
 
 YYLABEL (yyerrlab)
 
 YYGOTO (yyerrlab1)
 
 YYLABEL (yyerrlab1) if(yyerrstatus
 
 YYGOTO (yyerrhandle)
 
 YYLABEL (yyerrdefault) YYLABEL(yyerrpop) YYABORT
 
 YYGOTO (yyerrdefault)
 

Variables

static const short yytranslate []
 
static const short yyr1 []
 
static const short yyr2 []
 
static const short yydefact []
 
static const short yydefgoto []
 
static const short yypact []
 
static const short yypgoto []
 
static const short yytable []
 
static const short yycheck []
 
YY_Parser_STYPE YY_Parser_LVAL
 
int YY_Parser_NERRS = 0
 
char * to
 
int count
 
char * f = from
 
char * t = to
 
int i = count
 
int YY_Parser_PARSE_PARAM_DEF
 
int yyn = yypact[yystate]
 
short * yyssp = yyss - 1
 
YY_Parser_STYPEyyvsp = yyvs
 
int yyerrstatus = 0
 
int yychar1 = 0
 
short yyssa [YYINITDEPTH]
 
YY_Parser_STYPE yyvsa [YYINITDEPTH]
 
short * yyss = yyssa
 
YY_Parser_STYPEyyvs = yyvsa
 
int yystacksize = YYINITDEPTH
 
YY_Parser_STYPE yyval = yyvsp[1 - yylen]
 
int yylen = yyr2[yyn]
 
YYBEGINGOTO yystate = 0
 
 YY_Parser_CHAR = YYEMPTY
 
 else
 
 YYACCEPT
 

Macro Definition Documentation

#define __ALLOCA_alloca (   size)    alloca(size)

Referenced by if().

#define __ALLOCA_free (   ptr,
  ref 
)

Referenced by if().

#define __ALLOCA_return (   num)    return (num)

Referenced by if().

#define ACCESS   404

Definition at line 489 of file Parser_wnd_pregen.cpp.

#define ADD   273

Definition at line 358 of file Parser_wnd_pregen.cpp.

#define ALTER   275

Definition at line 360 of file Parser_wnd_pregen.cpp.

#define AMMSC   276

Definition at line 361 of file Parser_wnd_pregen.cpp.

#define ANY   277

Definition at line 362 of file Parser_wnd_pregen.cpp.

Referenced by com.mapd.calcite.parser.MapDSqlOperatorTable.ApproxCountDistinct::ApproxCountDistinct(), com.mapd.calcite.parser.MapDTable::getRelDataType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_IsEmpty::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_IsValid::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Contains::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Intersects::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Overlaps::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Approx_Overlaps::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Disjoint::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Within::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_DWithin::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_DFullyWithin::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Distance::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_MaxDistance::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Centroid::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Buffer::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Intersection::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Union::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Difference::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_GeogFromText::ST_GeogFromText(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_GeomFromText::ST_GeomFromText(), and org.apache.calcite.rel.externalize.MapDRelJson::toDistribution().

#define ARCHIVE   278

Definition at line 363 of file Parser_wnd_pregen.cpp.

#define AS   280
#define ASC   281

Definition at line 366 of file Parser_wnd_pregen.cpp.

#define AUTHORIZATION   282

Definition at line 367 of file Parser_wnd_pregen.cpp.

#define BETWEEN   283

Definition at line 368 of file Parser_wnd_pregen.cpp.

#define BIGINT   284

Definition at line 369 of file Parser_wnd_pregen.cpp.

Referenced by get_sql_types(), com.omnisci.jdbc.OmniSciResultSet::getArray(), com.omnisci.jdbc.OmniSciResultSet::getDoubleInternal(), com.omnisci.jdbc.OmniSciResultSet::getObject(), com.mapd.calcite.parser.MapDTable::getRelDataType(), com.omnisci.jdbc.OmniSciArray::getResultSet(), com.omnisci.jdbc.OmniSciResultSet::getStringInternal(), com.mapd.calcite.parser.MapDSqlOperatorTable.MyUDFFunction::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.PgExtract::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.Datepart::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.Datediff::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.OffsetInFragment::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ApproxCountDistinct::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.MapD_GeoPolyBoundsPtr::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.OmniSci_Geo_PolyBoundsPtr::inferReturnType(), com.omnisci.jdbc.OmniSciArray::OmniSciArray(), org.apache.calcite.sql2rel.SqlToRelConverter::rewriteAggregateWithGroupId(), org.apache.calcite.sql2rel.SqlToRelConverter::substituteSubQuery(), thrift_to_type(), com.omnisci.jdbc.OmniSciType::toJava(), com.mapd.parser.server.ExtensionFunction::toSqlTypeName(), org.apache.calcite.sql2rel.SqlToRelConverter::translateIn(), type_to_thrift(), com.mapd.metadata.MetaConnect::typeToThrift(), and com.mapd.utility.SQLImporter::verifyColumnSignaturesMatch().

#define BOOLEAN   285
#define BY   286

Definition at line 371 of file Parser_wnd_pregen.cpp.

#define CAST   288
#define CHAR_LENGTH   289

Definition at line 374 of file Parser_wnd_pregen.cpp.

#define CHARACTER   290

Definition at line 375 of file Parser_wnd_pregen.cpp.

#define CHECK   291

Definition at line 376 of file Parser_wnd_pregen.cpp.

#define CLOSE   292

Definition at line 377 of file Parser_wnd_pregen.cpp.

#define CLUSTER   293

Definition at line 378 of file Parser_wnd_pregen.cpp.

#define COMMIT   295

Definition at line 380 of file Parser_wnd_pregen.cpp.

#define COMPARISON   271

Definition at line 356 of file Parser_wnd_pregen.cpp.

#define CONTINUE   296

Definition at line 381 of file Parser_wnd_pregen.cpp.

#define COPY   297

Definition at line 382 of file Parser_wnd_pregen.cpp.

#define CREATE   298

Definition at line 383 of file Parser_wnd_pregen.cpp.

#define CURRENT   299

Definition at line 384 of file Parser_wnd_pregen.cpp.

#define DASHBOARD   405

Definition at line 490 of file Parser_wnd_pregen.cpp.

#define DASHEDNAME   259

Definition at line 344 of file Parser_wnd_pregen.cpp.

#define DATABASE   301

Definition at line 386 of file Parser_wnd_pregen.cpp.

#define DATAFRAME   302

Definition at line 387 of file Parser_wnd_pregen.cpp.

#define DATE_TRUNC   305

Definition at line 390 of file Parser_wnd_pregen.cpp.

#define DATETIME   304

Definition at line 389 of file Parser_wnd_pregen.cpp.

#define DECLARE   307

Definition at line 392 of file Parser_wnd_pregen.cpp.

#define DESC   310

Definition at line 395 of file Parser_wnd_pregen.cpp.

#define DISTINCT   312

Definition at line 397 of file Parser_wnd_pregen.cpp.

#define DOUBLE   313

Definition at line 398 of file Parser_wnd_pregen.cpp.

Referenced by import_export::TypedImportBuffer::add_arrow_values(), ThriftSerializers::column_ranges_from_thrift(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::create_parquet_floating_point_encoder(), com.mapd.calcite.parser.MapDParser::expandCovariance(), com.mapd.calcite.parser.MapDParser::expandVariance(), com.omnisci.jdbc.OmniSciPrepareTest::get_metadata(), get_sql_types(), com.omnisci.jdbc.OmniSciResultSet::getArray(), com.omnisci.jdbc.OmniSciResultSet::getDoubleInternal(), com.omnisci.jdbc.OmniSciResultSet::getObject(), getOmnisciType(), com.mapd.calcite.parser.MapDTable::getRelDataType(), com.omnisci.jdbc.OmniSciArray::getResultSet(), com.omnisci.jdbc.OmniSciResultSet::getStringInternal(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Distance::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_MaxDistance::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_X::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Y::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_XMin::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_XMax::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_YMin::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_YMax::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Length::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Perimeter::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Area::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ApproxMedian::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.MapDAvg::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.convert_meters_to_pixel_width::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.convert_meters_to_pixel_height::inferReturnType(), com.omnisci.jdbc.OmniSciArray::OmniSciArray(), thrift_to_type(), com.omnisci.jdbc.OmniSciType::toJava(), com.mapd.parser.server.ExtensionFunction::toSqlTypeName(), anonymous_namespace{ArrowResultSet.cpp}::type_from_arrow_field(), type_to_thrift(), com.mapd.metadata.MetaConnect::typeToThrift(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_floating_point_mapping(), anonymous_namespace{ArrowImporter.h}::value_getter(), and com.mapd.utility.SQLImporter::verifyColumnSignaturesMatch().

#define DROP   314

Definition at line 399 of file Parser_wnd_pregen.cpp.

#define DUMP   315

Definition at line 400 of file Parser_wnd_pregen.cpp.

#define EDIT   403

Definition at line 488 of file Parser_wnd_pregen.cpp.

#define EDITOR   407

Definition at line 492 of file Parser_wnd_pregen.cpp.

#define ELSE   316

Definition at line 401 of file Parser_wnd_pregen.cpp.

#define EMAIL   260

Definition at line 345 of file Parser_wnd_pregen.cpp.

#define END   317

Definition at line 402 of file Parser_wnd_pregen.cpp.

#define EQUAL   270

Definition at line 355 of file Parser_wnd_pregen.cpp.

#define EXTRACT   319

Definition at line 404 of file Parser_wnd_pregen.cpp.

#define FETCH   320

Definition at line 405 of file Parser_wnd_pregen.cpp.

#define FIRST   321

Definition at line 406 of file Parser_wnd_pregen.cpp.

#define FIXEDNUM   266

Definition at line 351 of file Parser_wnd_pregen.cpp.

#define FOR   323

Definition at line 408 of file Parser_wnd_pregen.cpp.

#define FOREIGN   324

Definition at line 409 of file Parser_wnd_pregen.cpp.

#define FOUND   325

Definition at line 410 of file Parser_wnd_pregen.cpp.

#define FROM   326

Definition at line 411 of file Parser_wnd_pregen.cpp.

#define FWDSTR   262

Definition at line 347 of file Parser_wnd_pregen.cpp.

#define GEOGRAPHY   327
#define GRANT   329

Definition at line 414 of file Parser_wnd_pregen.cpp.

#define GROUP   330

Definition at line 415 of file Parser_wnd_pregen.cpp.

#define HAVING   331

Definition at line 416 of file Parser_wnd_pregen.cpp.

#define IF   332

Definition at line 417 of file Parser_wnd_pregen.cpp.

#define ILIKE   333

Definition at line 418 of file Parser_wnd_pregen.cpp.

#define INTEGER   336

Definition at line 421 of file Parser_wnd_pregen.cpp.

Referenced by com.mapd.calcite.parser.MapDSqlOperatorTable.ApproxCountDistinct::ApproxCountDistinct(), ThriftSerializers::column_ranges_from_thrift(), com.omnisci.jdbc.OmniSciPrepareTest::get_metadata(), com.mapd.calcite.parser.MapDTable::getRelDataType(), com.mapd.calcite.parser.MapDSqlOperatorTable.Length::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.CharLength::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.KeyForString::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ArrayLength::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_GeogFromText::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_GeomFromText::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Transform::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_PointN::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_EndPoint::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_StartPoint::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_NPoints::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_NRings::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_SRID::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_SetSRID::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Point::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Centroid::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Buffer::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Intersection::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Union::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_Difference::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.CastToGeography::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.MapD_GeoPolyRenderGroup::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.OmniSci_Geo_PolyRenderGroup::inferReturnType(), com.mapd.calcite.parser.MapDSqlOperatorTable.Truncate::signature(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_GeogFromText::ST_GeogFromText(), com.mapd.calcite.parser.MapDSqlOperatorTable.ST_GeomFromText::ST_GeomFromText(), com.omnisci.jdbc.OmniSciType::toJava(), and com.mapd.parser.server.ExtensionFunction::toSqlTypeName().

#define INTNUM   265

Definition at line 350 of file Parser_wnd_pregen.cpp.

#define INTO   337

Definition at line 422 of file Parser_wnd_pregen.cpp.

#define IS   338

Definition at line 423 of file Parser_wnd_pregen.cpp.

#define LANGUAGE   339

Definition at line 424 of file Parser_wnd_pregen.cpp.

#define LAST   340

Definition at line 425 of file Parser_wnd_pregen.cpp.

#define LENGTH   341

Definition at line 426 of file Parser_wnd_pregen.cpp.

#define LIKE   342

Definition at line 427 of file Parser_wnd_pregen.cpp.

#define LIMIT   343

Definition at line 428 of file Parser_wnd_pregen.cpp.

#define MOD   345

Definition at line 430 of file Parser_wnd_pregen.cpp.

#define NAME   258

Definition at line 343 of file Parser_wnd_pregen.cpp.

#define NOW   347

Definition at line 432 of file Parser_wnd_pregen.cpp.

#define NULLX   348

Definition at line 433 of file Parser_wnd_pregen.cpp.

#define OF   350

Definition at line 435 of file Parser_wnd_pregen.cpp.

#define OFFSET   351
#define ON   352
#define OPEN   353

Definition at line 438 of file Parser_wnd_pregen.cpp.

#define OPTIMIZE   354

Definition at line 439 of file Parser_wnd_pregen.cpp.

#define OPTIMIZED   355

Definition at line 440 of file Parser_wnd_pregen.cpp.

#define OPTION   356

Definition at line 441 of file Parser_wnd_pregen.cpp.

#define ORDER   357

Definition at line 442 of file Parser_wnd_pregen.cpp.

#define PARAMETER   358

Definition at line 443 of file Parser_wnd_pregen.cpp.

#define PRECISION   361

Definition at line 446 of file Parser_wnd_pregen.cpp.

#define PRIMARY   362
#define PRIVILEGES   363

Definition at line 448 of file Parser_wnd_pregen.cpp.

#define PROCEDURE   364

Definition at line 449 of file Parser_wnd_pregen.cpp.

#define PUBLIC   378

Definition at line 463 of file Parser_wnd_pregen.cpp.

#define QUOTED_IDENTIFIER   264

Definition at line 349 of file Parser_wnd_pregen.cpp.

#define REAL   379

Definition at line 464 of file Parser_wnd_pregen.cpp.

#define REFERENCES   380

Definition at line 465 of file Parser_wnd_pregen.cpp.

#define RENAME   381

Definition at line 466 of file Parser_wnd_pregen.cpp.

#define RESTORE   382

Definition at line 467 of file Parser_wnd_pregen.cpp.

#define REVOKE   383

Definition at line 468 of file Parser_wnd_pregen.cpp.

#define ROLE   384

Definition at line 469 of file Parser_wnd_pregen.cpp.

#define ROLLBACK   385

Definition at line 470 of file Parser_wnd_pregen.cpp.

#define SCHEMA   386
#define SELECTSTRING   263

Definition at line 348 of file Parser_wnd_pregen.cpp.

#define SERVER   365

Definition at line 450 of file Parser_wnd_pregen.cpp.

Referenced by DBHandler::get_status().

#define SET   388

Definition at line 473 of file Parser_wnd_pregen.cpp.

#define SHARD   389

Definition at line 474 of file Parser_wnd_pregen.cpp.

#define SHARED   390

Definition at line 475 of file Parser_wnd_pregen.cpp.

#define SHOW   391

Definition at line 476 of file Parser_wnd_pregen.cpp.

#define SQL   406

Definition at line 491 of file Parser_wnd_pregen.cpp.

#define TABLE   368
#define TEMPORARY   369

Definition at line 454 of file Parser_wnd_pregen.cpp.

#define THEN   371

Definition at line 456 of file Parser_wnd_pregen.cpp.

#define TO   375

Definition at line 460 of file Parser_wnd_pregen.cpp.

#define TRUNCATE   376

Definition at line 461 of file Parser_wnd_pregen.cpp.

#define UMINUS   272

Definition at line 357 of file Parser_wnd_pregen.cpp.

#define UNIQUE   392

Definition at line 477 of file Parser_wnd_pregen.cpp.

#define USER   394

Definition at line 479 of file Parser_wnd_pregen.cpp.

#define VALIDATE   395

Definition at line 480 of file Parser_wnd_pregen.cpp.

#define WHEN   398

Definition at line 483 of file Parser_wnd_pregen.cpp.

#define WHENEVER   399

Definition at line 484 of file Parser_wnd_pregen.cpp.

#define WHERE   400

Definition at line 485 of file Parser_wnd_pregen.cpp.

#define WORK   402

Definition at line 487 of file Parser_wnd_pregen.cpp.

#define YY_Parser_BISON   1

Definition at line 182 of file Parser_wnd_pregen.cpp.

#define YY_Parser_CHAR   yychar

Definition at line 279 of file Parser_wnd_pregen.cpp.

#define YY_Parser_CLASS   SQLParser

Definition at line 83 of file Parser_wnd_pregen.cpp.

#define YY_Parser_COMPATIBILITY   1

Definition at line 185 of file Parser_wnd_pregen.cpp.

#define YY_Parser_CONSTRUCTOR_INIT   : lexer(yylval)

Definition at line 85 of file Parser_wnd_pregen.cpp.

#define YY_Parser_DEBUG_FLAG   yydebug

Definition at line 285 of file Parser_wnd_pregen.cpp.

Referenced by if().

#define YY_Parser_ERROR   yyerror

Definition at line 288 of file Parser_wnd_pregen.cpp.

Referenced by if(), and YYLABEL().

#define YY_Parser_ERROR_BODY
Value:
{} /*{ std::cerr << "Syntax error on line " << lexer.lineno() << ". Last word parsed: \
" << lexer.YYText() << std::endl; } */

Definition at line 125 of file Parser_wnd_pregen.cpp.

#define YY_Parser_h_included

Definition at line 1 of file Parser_wnd_pregen.cpp.

#define YY_Parser_LEX   yylex

Definition at line 270 of file Parser_wnd_pregen.cpp.

#define YY_Parser_LEX_BODY   { return lexer.yylex(); }

Definition at line 123 of file Parser_wnd_pregen.cpp.

#define YY_Parser_LLOC   yylloc

Definition at line 276 of file Parser_wnd_pregen.cpp.

#define YY_Parser_LVAL   yylval

Definition at line 84 of file Parser_wnd_pregen.cpp.

#define YY_Parser_MEMBERS

Definition at line 86 of file Parser_wnd_pregen.cpp.

#define YY_Parser_NERRS   yynerrs

Definition at line 282 of file Parser_wnd_pregen.cpp.

Referenced by YYLABEL().

#define YY_Parser_PARSE   yyparse

Definition at line 267 of file Parser_wnd_pregen.cpp.

#define YY_Parser_PARSE_PARAM   std::list<std::unique_ptr<Stmt>>& parseTrees

Definition at line 155 of file Parser_wnd_pregen.cpp.

#define YY_Parser_STYPE   yy_Parser_stype

Definition at line 169 of file Parser_wnd_pregen.cpp.

Referenced by if().

#define YY_Parser_USE_GOTO   1

Definition at line 215 of file Parser_wnd_pregen.cpp.

#define YYABORT   __ALLOCA_return(1)

Referenced by if().

#define YYACCEPT   __ALLOCA_return(0)
#define YYBACKUP (   token,
  value 
)
Value:
YY_Parser_CHAR = (token), YY_Parser_LVAL = (value); \
YYGOTO(yybackup); \
} else { \
YY_Parser_ERROR("syntax error: cannot back up"); \
} \
while (0)
int yychar1
#define YY_Parser_LVAL
int yylen
#define YY_Parser_CHAR
#define YYEMPTY
#define YY_Parser_ERROR
#define YYGOTO(lb)
#define YYTRANSLATE(x)
#define YYPOPSTACK
#define YYERROR
if(yyssp >=yyss+yystacksize-1)
#define YYBEGINDECLARELABEL   enum yy_labels { yygotostart

Definition at line 1925 of file Parser_wnd_pregen.cpp.

#define YYBEGINGOTO
Value:
enum yy_labels yy_gotostate = yygotostart; \
for (;;) \
switch (yy_gotostate) { \
case yygotostart: {

Definition at line 1914 of file Parser_wnd_pregen.cpp.

#define YYBISON   1

Definition at line 81 of file Parser_wnd_pregen.cpp.

#define yyclearin   (YY_Parser_CHAR = YYEMPTY)
#define YYDECLARELABEL (   lb)    , lb

Definition at line 1926 of file Parser_wnd_pregen.cpp.

#define YYEMPTY   -2
#define YYENDDECLARELABEL
Value:
} \
;

Definition at line 1927 of file Parser_wnd_pregen.cpp.

#define YYENDGOTO
Value:
} \
}

Definition at line 1922 of file Parser_wnd_pregen.cpp.

#define YYEOF   0

Referenced by if().

#define YYERRCODE   256
#define yyerrok   (yyerrstatus = 0)
#define YYERROR   YYGOTO(yyerrlab1)
#define YYFAIL   YYGOTO(yyerrlab)
#define YYFINAL   686

Definition at line 1042 of file Parser_wnd_pregen.cpp.

#define YYFLAG   -32768

Definition at line 1043 of file Parser_wnd_pregen.cpp.

Referenced by if(), and YYLABEL().

#define YYGOTO (   lb)
Value:
{ \
yy_gotostate = lb; \
continue; \
}

Definition at line 1909 of file Parser_wnd_pregen.cpp.

Referenced by if().

#define YYINITDEPTH   200

Definition at line 2047 of file Parser_wnd_pregen.cpp.

#define YYLABEL (   lb)
Value:
} \
case lb: {

Definition at line 1919 of file Parser_wnd_pregen.cpp.

#define YYLAST   1690

Definition at line 1676 of file Parser_wnd_pregen.cpp.

Referenced by YYLABEL().

#define YYLEX   YY_Parser_LEX()

Referenced by if().

#define YYMAXDEPTH   10000

Definition at line 2058 of file Parser_wnd_pregen.cpp.

Referenced by if().

#define YYNTBASE   167

Definition at line 1044 of file Parser_wnd_pregen.cpp.

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

Definition at line 2123 of file Parser_wnd_pregen.cpp.

#define YYRECOVERING ( )    (!!yyerrstatus)
#define yystype   YY_Parser_STYPE

Definition at line 210 of file Parser_wnd_pregen.cpp.

#define YYSTYPE   YY_Parser_STYPE

Definition at line 315 of file Parser_wnd_pregen.cpp.

#define YYTERROR   1
#define YYTRANSLATE (   x)    ((unsigned)(x) <= 407 ? yytranslate[x] : 288)

Definition at line 1046 of file Parser_wnd_pregen.cpp.

Function Documentation

static void __yy_bcopy ( from  ,
to  ,
count   
)
static

Referenced by if().

+ Here is the caller graph for this function:

if ( yyssp >=yyss+yystacksize 1)

Definition at line 2172 of file Parser_wnd_pregen.cpp.

References __ALLOCA_alloca, __ALLOCA_free, __ALLOCA_return, __yy_bcopy(), YY_Parser_DEBUG_FLAG, YY_Parser_ERROR, YY_Parser_STYPE, YYABORT, YYMAXDEPTH, yyss, and yyvs.

Referenced by QueryFragmentDescriptor::buildMultifragKernelMap(), org.apache.calcite.sql2rel.SqlToRelConverter::convertNonCorrelatedSubQuery(), com.omnisci.jdbc.OmniSciResultSet::getDouble(), com.omnisci.jdbc.OmniSciResultSet::getString(), com.mapd.tests.DateTimeTest::main(), and com.mapd.calcite.parser.MapDParser::parseSql().

2172  {
2173  /* Give user a chance to reallocate the stack */
2174  /* Use copies of these so that the &'s don't force the real ones into memory. */
2175  YY_Parser_STYPE* yyvs1 = yyvs;
2176  short* yyss1 = yyss;
2177 #ifdef YY_Parser_LSP_NEEDED
2178  YY_Parser_LTYPE* yyls1 = yyls;
2179 #endif
2180 
2181  /* Get the current used size of the three stacks, in elements. */
2182  int size = yyssp - yyss + 1;
2183 
2184 #ifdef yyoverflow
2185  /* Each stack pointer address is followed by the size of
2186  the data in use in that stack, in bytes. */
2187 #ifdef YY_Parser_LSP_NEEDED
2188  /* This used to be a conditional around just the two extra args,
2189  but that might be undefined if yyoverflow is a macro. */
2190  yyoverflow("parser stack overflow",
2191  &yyss1,
2192  size * sizeof(*yyssp),
2193  &yyvs1,
2194  size * sizeof(*yyvsp),
2195  &yyls1,
2196  size * sizeof(*yylsp),
2197  &yystacksize);
2198 #else
2199  yyoverflow("parser stack overflow",
2200  &yyss1,
2201  size * sizeof(*yyssp),
2202  &yyvs1,
2203  size * sizeof(*yyvsp),
2204  &yystacksize);
2205 #endif
2206 
2207  yyss = yyss1;
2208  yyvs = yyvs1;
2209 #ifdef YY_Parser_LSP_NEEDED
2210  yyls = yyls1;
2211 #endif
2212 #else /* no yyoverflow */
2213  /* Extend the stack our own way. */
2214  if (yystacksize >= YYMAXDEPTH) {
2215  YY_Parser_ERROR("parser stack overflow");
2216  __ALLOCA_return(2);
2217  }
2218  yystacksize *= 2;
2219  if (yystacksize > YYMAXDEPTH)
2221  yyss = (short*)__ALLOCA_alloca(yystacksize * sizeof(*yyssp));
2222  __yy_bcopy((char*)yyss1, (char*)yyss, size * sizeof(*yyssp));
2223  __ALLOCA_free(yyss1, yyssa);
2225  __yy_bcopy((char*)yyvs1, (char*)yyvs, size * sizeof(*yyvsp));
2226  __ALLOCA_free(yyvs1, yyvsa);
2227 #ifdef YY_Parser_LSP_NEEDED
2228  yyls = (YY_Parser_LTYPE*)__ALLOCA_alloca(yystacksize * sizeof(*yylsp));
2229  __yy_bcopy((char*)yyls1, (char*)yyls, size * sizeof(*yylsp));
2230  __ALLOCA_free(yyls1, yylsa);
2231 #endif
2232 #endif /* no yyoverflow */
2233 
2234  yyssp = yyss + size - 1;
2235  yyvsp = yyvs + size - 1;
2236 #ifdef YY_Parser_LSP_NEEDED
2237  yylsp = yyls + size - 1;
2238 #endif
2239 
2240 #if YY_Parser_DEBUG != 0
2242  fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2243 #endif
2244 
2245  if (yyssp >= yyss + yystacksize - 1)
2246  YYABORT;
2247  }
#define YY_Parser_STYPE
int yystacksize
YY_Parser_STYPE * yyvsp
YY_Parser_STYPE yyvsa[YYINITDEPTH]
short * yyssp
YY_Parser_STYPE * yyvs
short * yyss
#define YYABORT
static void __yy_bcopy(from, to, count) char *from
#define __ALLOCA_return(num)
short yyssa[YYINITDEPTH]
#define YY_Parser_DEBUG_FLAG
#define YY_Parser_ERROR
#define YYMAXDEPTH
#define __ALLOCA_alloca(size)
#define __ALLOCA_free(ptr, ref)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

if ( YY_Parser_CHAR  = YYEMPTY)

Definition at line 2272 of file Parser_wnd_pregen.cpp.

References YY_Parser_DEBUG_FLAG, and YYLEX.

2272  {
2273 #if YY_Parser_DEBUG != 0
2275  fprintf(stderr, "Reading a token: ");
2276 #endif
2278  }
#define YY_Parser_CHAR
#define YY_Parser_DEBUG_FLAG
#define YYLEX
if ( YY_Parser_CHAR<=  0)

Definition at line 2282 of file Parser_wnd_pregen.cpp.

References YY_Parser_DEBUG_FLAG, and YYEOF.

2283  {
2284  yychar1 = 0;
2285  YY_Parser_CHAR = YYEOF; /* Don't call YYLEX any more */
2286 
2287 #if YY_Parser_DEBUG != 0
2289  fprintf(stderr, "Now at end of input.\n");
2290 #endif
2291  } else {
int yychar1
#define YY_Parser_CHAR
#define YY_Parser_DEBUG_FLAG
#define YYEOF
if ( )

Definition at line 2320 of file Parser_wnd_pregen.cpp.

References YYFLAG, YYGOTO, and yyn.

2320  {
2321  if (yyn == YYFLAG)
2322  YYGOTO(yyerrlab);
2323  yyn = -yyn;
2324  YYGOTO(yyreduce);
2325  } else if (yyn == 0)
#define YYFLAG
#define YYGOTO(lb)
else if ( yyn  = =0)
switch ( yyn  )

Definition at line 2380 of file Parser_wnd_pregen.cpp.

References kAND, kARRAY_AT, kBIGINT, kBOOLEAN, kCHAR, kDATE, kDECIMAL, kDIVIDE, kDOUBLE, kFLOAT, kGEOGRAPHY, kGEOMETRY, kINT, kLINESTRING, kMINUS, kMODULO, kMULTIPLY, kMULTIPOLYGON, kNOT, kNUMERIC, kONE, kOR, kPLUS, kPOINT, kPOLYGON, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kUMINUS, Parser::TrackedPtr< T >::make(), Parser::TrackedListPtr< T >::make(), Parser::TrackedPtr< T >::makeEmpty(), Parser::TrackedListPtr< T >::makeEmpty(), reserved_keywords, and to_string().

Referenced by decompress(), com.omnisci.jdbc.OmniSciResultSet::getDoubleInternal(), com.omnisci.jdbc.OmniSciResultSet::getStringInternal(), and com.mapd.common.SockTransportProperties::SockTransportProperties().

2380  {
2381  case 1:
2382 
2383  {
2384  parseTrees.emplace_front(dynamic_cast<Stmt*>((yyvsp[-1].nodeval)->release()));
2385  ;
2386  break;
2387  }
2388  case 2:
2389 
2390  {
2391  parseTrees.emplace_front(dynamic_cast<Stmt*>((yyvsp[-1].nodeval)->release()));
2392  ;
2393  break;
2394  }
2395  case 3:
2396 
2397  {
2398  yyval.nodeval = yyvsp[0].nodeval;
2399  ;
2400  break;
2401  }
2402  case 4:
2403 
2404  {
2405  yyval.nodeval = yyvsp[0].nodeval;
2406  ;
2407  break;
2408  }
2409  case 5:
2410 
2411  {
2412  yyval.nodeval = yyvsp[0].nodeval;
2413  ;
2414  break;
2415  }
2416  case 6:
2417 
2418  {
2419  yyval.nodeval = yyvsp[0].nodeval;
2420  ;
2421  break;
2422  }
2423  case 7:
2424 
2425  {
2426  yyval.nodeval = yyvsp[0].nodeval;
2427  ;
2428  break;
2429  }
2430  case 8:
2431 
2432  {
2433  yyval.nodeval = yyvsp[0].nodeval;
2434  ;
2435  break;
2436  }
2437  case 9:
2438 
2439  {
2440  yyval.nodeval = yyvsp[0].nodeval;
2441  ;
2442  break;
2443  }
2444  case 10:
2445 
2446  {
2447  yyval.nodeval = yyvsp[0].nodeval;
2448  ;
2449  break;
2450  }
2451  case 11:
2452 
2453  {
2454  yyval.nodeval = yyvsp[0].nodeval;
2455  ;
2456  break;
2457  }
2458  case 12:
2459 
2460  {
2461  yyval.nodeval = yyvsp[0].nodeval;
2462  ;
2463  break;
2464  }
2465  case 13:
2466 
2467  {
2468  yyval.nodeval = yyvsp[0].nodeval;
2469  ;
2470  break;
2471  }
2472  case 14:
2473 
2474  {
2475  yyval.nodeval = yyvsp[0].nodeval;
2476  ;
2477  break;
2478  }
2479  case 15:
2480 
2481  {
2482  yyval.nodeval = yyvsp[0].nodeval;
2483  ;
2484  break;
2485  }
2486  case 16:
2487 
2488  {
2489  yyval.nodeval = yyvsp[0].nodeval;
2490  ;
2491  break;
2492  }
2493  case 17:
2494 
2495  {
2496  yyval.nodeval = yyvsp[0].nodeval;
2497  ;
2498  break;
2499  }
2500  case 18:
2501 
2502  {
2503  yyval.nodeval = yyvsp[0].nodeval;
2504  ;
2505  break;
2506  }
2507  case 19:
2508 
2509  {
2510  yyval.nodeval = yyvsp[0].nodeval;
2511  ;
2512  break;
2513  }
2514  case 20:
2515 
2516  {
2517  yyval.nodeval = yyvsp[0].nodeval;
2518  ;
2519  break;
2520  }
2521  case 21:
2522 
2523  {
2524  yyval.nodeval = yyvsp[0].nodeval;
2525  ;
2526  break;
2527  }
2528  case 22:
2529 
2530  {
2531  yyval.nodeval = yyvsp[0].nodeval;
2532  ;
2533  break;
2534  }
2535  case 23:
2536 
2537  {
2538  yyval.nodeval = yyvsp[0].nodeval;
2539  ;
2540  break;
2541  }
2542  case 24:
2543 
2544  {
2545  yyval.nodeval = yyvsp[0].nodeval;
2546  ;
2547  break;
2548  }
2549  case 25:
2550 
2551  {
2552  yyval.nodeval = yyvsp[0].nodeval;
2553  ;
2554  break;
2555  }
2556  case 26:
2557 
2558  {
2559  yyval.nodeval = yyvsp[0].nodeval;
2560  ;
2561  break;
2562  }
2563  case 27:
2564 
2565  {
2566  yyval.nodeval = yyvsp[0].nodeval;
2567  ;
2568  break;
2569  }
2570  case 28:
2571 
2572  {
2573  yyval.nodeval = yyvsp[0].nodeval;
2574  ;
2575  break;
2576  }
2577  case 29:
2578 
2579  {
2580  yyval.nodeval = yyvsp[0].nodeval;
2581  ;
2582  break;
2583  }
2584  case 30:
2585 
2586  {
2587  yyval.nodeval = yyvsp[0].nodeval;
2588  ;
2589  break;
2590  }
2591  case 31:
2592 
2593  {
2594  yyval.nodeval = TrackedPtr<Node>::make(
2595  lexer.parsed_node_tokens_,
2596  new CreateDBStmt((yyvsp[0].stringval)->release(), nullptr, yyvsp[-1].boolval));
2597  ;
2598  break;
2599  }
2600  case 32:
2601 
2602  {
2603  yyval.nodeval = TrackedPtr<Node>::make(
2604  lexer.parsed_node_tokens_,
2605  new CreateDBStmt((yyvsp[-3].stringval)->release(),
2606  reinterpret_cast<std::list<NameValueAssign*>*>(
2607  (yyvsp[-1].listval)->release()),
2608  yyvsp[-4].boolval));
2609  ;
2610  break;
2611  }
2612  case 33:
2613 
2614  {
2615  yyval.nodeval = TrackedPtr<Node>::make(
2616  lexer.parsed_node_tokens_,
2617  new DropDBStmt((yyvsp[0].stringval)->release(), yyvsp[-1].boolval));
2618  ;
2619  break;
2620  }
2621  case 34:
2622 
2623  {
2624  yyval.nodeval =
2625  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2626  new RenameDatabaseStmt((yyvsp[-3].stringval)->release(),
2627  (yyvsp[0].stringval)->release()));
2628  ;
2629  break;
2630  }
2631  case 35:
2632 
2633  {
2634  yyval.nodeval = TrackedPtr<Node>::make(
2635  lexer.parsed_node_tokens_,
2636  new CreateUserStmt((yyvsp[-3].stringval)->release(),
2637  reinterpret_cast<std::list<NameValueAssign*>*>(
2638  (yyvsp[-1].listval)->release())));
2639  ;
2640  break;
2641  }
2642  case 36:
2643 
2644  {
2645  yyval.nodeval = TrackedPtr<Node>::make(
2646  lexer.parsed_node_tokens_, new DropUserStmt((yyvsp[0].stringval)->release()));
2647  ;
2648  break;
2649  }
2650  case 37:
2651 
2652  {
2653  yyval.nodeval = TrackedPtr<Node>::make(
2654  lexer.parsed_node_tokens_,
2655  new AlterUserStmt((yyvsp[-3].stringval)->release(),
2656  reinterpret_cast<std::list<NameValueAssign*>*>(
2657  (yyvsp[-1].listval)->release())));
2658  ;
2659  break;
2660  }
2661  case 38:
2662 
2663  {
2664  yyval.nodeval =
2665  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2666  new RenameUserStmt((yyvsp[-3].stringval)->release(),
2667  (yyvsp[0].stringval)->release()));
2668  ;
2669  break;
2670  }
2671  case 39:
2672 
2673  {
2674  yyval.listval =
2675  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
2676  ;
2677  break;
2678  }
2679  case 40:
2680 
2681  {
2682  yyval.listval = yyvsp[-2].listval;
2683  yyval.listval->push_back(yyvsp[0].nodeval);
2684  ;
2685  break;
2686  }
2687  case 41:
2688 
2689  {
2690  yyval.nodeval = TrackedPtr<Node>::make(
2691  lexer.parsed_node_tokens_,
2692  new NameValueAssign((yyvsp[-2].stringval)->release(),
2693  dynamic_cast<Literal*>((yyvsp[0].nodeval)->release())));
2694  ;
2695  break;
2696  }
2697  case 42:
2698 
2699  {
2700  yyval.boolval = true;
2701  ;
2702  break;
2703  }
2704  case 43:
2705 
2706  {
2707  yyval.boolval = false;
2708  ;
2709  break;
2710  }
2711  case 44:
2712 
2713  {
2714  yyval.boolval = true;
2715  ;
2716  break;
2717  }
2718  case 45:
2719 
2720  {
2721  yyval.boolval = false;
2722  ;
2723  break;
2724  }
2725  case 46:
2726 
2727  {
2728  yyval.nodeval = TrackedPtr<Node>::make(
2729  lexer.parsed_node_tokens_,
2730  new CreateTableAsSelectStmt((yyvsp[-3].stringval)->release(),
2731  (yyvsp[-1].stringval)->release(),
2732  yyvsp[-6].boolval,
2733  yyvsp[-4].boolval,
2734  reinterpret_cast<std::list<NameValueAssign*>*>(
2735  (yyvsp[0].listval)->release())));
2736  ;
2737  break;
2738  }
2739  case 47:
2740 
2741  {
2742  yyval.nodeval = TrackedPtr<Node>::make(
2743  lexer.parsed_node_tokens_,
2744  new CreateTableStmt(
2745  (yyvsp[-4].stringval)->release(),
2746  nullptr,
2747  reinterpret_cast<std::list<TableElement*>*>((yyvsp[-2].listval)->release()),
2748  yyvsp[-7].boolval,
2749  yyvsp[-5].boolval,
2750  reinterpret_cast<std::list<NameValueAssign*>*>(
2751  (yyvsp[0].listval)->release())));
2752  ;
2753  break;
2754  }
2755  case 48:
2756 
2757  {
2758  yyval.nodeval = TrackedPtr<Node>::make(
2759  lexer.parsed_node_tokens_,
2760  new CreateTableStmt(
2761  (yyvsp[-4].stringval)->release(),
2762  (yyvsp[-7].stringval)->release(),
2763  reinterpret_cast<std::list<TableElement*>*>((yyvsp[-2].listval)->release()),
2764  false,
2765  yyvsp[-5].boolval,
2766  reinterpret_cast<std::list<NameValueAssign*>*>(
2767  (yyvsp[0].listval)->release())));
2768  ;
2769  break;
2770  }
2771  case 49:
2772 
2773  {
2774  yyval.nodeval = TrackedPtr<Node>::make(
2775  lexer.parsed_node_tokens_,
2776  new CreateDataframeStmt(
2777  (yyvsp[-6].stringval)->release(),
2778  reinterpret_cast<std::list<TableElement*>*>((yyvsp[-4].listval)->release()),
2779  (yyvsp[-1].stringval)->release(),
2780  reinterpret_cast<std::list<NameValueAssign*>*>(
2781  (yyvsp[0].listval)->release())));
2782  ;
2783  break;
2784  }
2785  case 50:
2786 
2787  {
2788  yyval.nodeval = TrackedPtr<Node>::make(
2789  lexer.parsed_node_tokens_,
2790  new ShowCreateTableStmt((yyvsp[0].stringval)->release()));
2791  ;
2792  break;
2793  }
2794  case 51:
2795 
2796  {
2797  yyval.boolval = true;
2798  ;
2799  break;
2800  }
2801  case 52:
2802 
2803  {
2804  yyval.boolval = false;
2805  ;
2806  break;
2807  }
2808  case 53:
2809 
2810  {
2811  yyval.nodeval = TrackedPtr<Node>::make(
2812  lexer.parsed_node_tokens_,
2813  new DropTableStmt((yyvsp[0].stringval)->release(), yyvsp[-1].boolval));
2814  ;
2815  break;
2816  }
2817  case 54:
2818 
2819  {
2820  yyval.nodeval =
2821  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2822  new TruncateTableStmt((yyvsp[0].stringval)->release()));
2823  ;
2824  break;
2825  }
2826  case 55:
2827 
2828  {
2829  yyval.nodeval =
2830  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2831  new RenameTableStmt((yyvsp[-3].stringval)->release(),
2832  (yyvsp[0].stringval)->release()));
2833  ;
2834  break;
2835  }
2836  case 56:
2837 
2838  {
2839  yyval.nodeval =
2840  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2841  new RenameColumnStmt((yyvsp[-5].stringval)->release(),
2842  (yyvsp[-2].stringval)->release(),
2843  (yyvsp[0].stringval)->release()));
2844  ;
2845  break;
2846  }
2847  case 59:
2848 
2849  {
2850  yyval.listval =
2851  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
2852  ;
2853  break;
2854  }
2855  case 60:
2856 
2857  {
2858  yyval.listval = yyvsp[-2].listval;
2859  yyval.listval->push_back(yyvsp[0].nodeval);
2860  ;
2861  break;
2862  }
2863  case 61:
2864 
2865  {
2866  yyval.nodeval = TrackedPtr<Node>::make(
2867  lexer.parsed_node_tokens_,
2868  new AddColumnStmt((yyvsp[-3].stringval)->release(),
2869  dynamic_cast<ColumnDef*>((yyvsp[0].nodeval)->release())));
2870  ;
2871  break;
2872  }
2873  case 62:
2874 
2875  {
2876  yyval.nodeval = TrackedPtr<Node>::make(
2877  lexer.parsed_node_tokens_,
2878  new AddColumnStmt(
2879  (yyvsp[-4].stringval)->release(),
2880  reinterpret_cast<std::list<ColumnDef*>*>((yyvsp[-1].listval)->release())));
2881  ;
2882  break;
2883  }
2884  case 63:
2885 
2886  {
2887  yyval.nodeval =
2888  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2889  new DropColumnStmt((yyvsp[-1].stringval)->release(),
2890  (yyvsp[0].slistval)->release()));
2891  ;
2892  break;
2893  }
2894  case 64:
2895 
2896  {
2897  yyval.listval =
2898  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
2899  ;
2900  break;
2901  }
2902  case 65:
2903 
2904  {
2905  (yyvsp[-2].listval)->push_back(yyvsp[0].nodeval);
2906  ;
2907  break;
2908  }
2909  case 66:
2910 
2911  {
2912  yyval.stringval = yyvsp[0].stringval;
2913  ;
2914  break;
2915  }
2916  case 67:
2917 
2918  {
2919  yyval.nodeval = TrackedPtr<Node>::make(
2920  lexer.parsed_node_tokens_,
2921  new CopyTableStmt((yyvsp[-3].stringval)->release(),
2922  (yyvsp[-1].stringval)->release(),
2923  reinterpret_cast<std::list<NameValueAssign*>*>(
2924  (yyvsp[0].listval)->release())));
2925  ;
2926  break;
2927  }
2928  case 68:
2929 
2930  {
2931  if (!boost::istarts_with(*(yyvsp[-4].stringval)->get(), "SELECT") &&
2932  !boost::istarts_with(*(yyvsp[-4].stringval)->get(), "WITH")) {
2933  throw std::runtime_error("SELECT or WITH statement expected");
2934  }
2935  *(yyvsp[-4].stringval)->get() += ";";
2936  yyval.nodeval = TrackedPtr<Node>::make(
2937  lexer.parsed_node_tokens_,
2938  new ExportQueryStmt((yyvsp[-4].stringval)->release(),
2939  (yyvsp[-1].stringval)->release(),
2940  reinterpret_cast<std::list<NameValueAssign*>*>(
2941  (yyvsp[0].listval)->release())));
2942  ;
2943  break;
2944  }
2945  case 71:
2946 
2947  {
2948  yyval.nodeval = TrackedPtr<Node>::make(
2949  lexer.parsed_node_tokens_,
2950  new DumpTableStmt((yyvsp[-3].stringval)->release(),
2951  (yyvsp[-1].stringval)->release(),
2952  reinterpret_cast<std::list<NameValueAssign*>*>(
2953  (yyvsp[0].listval)->release())));
2954  ;
2955  break;
2956  }
2957  case 72:
2958 
2959  {
2960  yyval.nodeval = TrackedPtr<Node>::make(
2961  lexer.parsed_node_tokens_,
2962  new RestoreTableStmt((yyvsp[-3].stringval)->release(),
2963  (yyvsp[-1].stringval)->release(),
2964  reinterpret_cast<std::list<NameValueAssign*>*>(
2965  (yyvsp[0].listval)->release())));
2966  ;
2967  break;
2968  }
2969  case 73:
2970 
2971  {
2972  yyval.nodeval = TrackedPtr<Node>::make(
2973  lexer.parsed_node_tokens_, new CreateRoleStmt((yyvsp[0].stringval)->release()));
2974  ;
2975  break;
2976  }
2977  case 74:
2978 
2979  {
2980  yyval.nodeval = TrackedPtr<Node>::make(
2981  lexer.parsed_node_tokens_, new DropRoleStmt((yyvsp[0].stringval)->release()));
2982  ;
2983  break;
2984  }
2985  case 75:
2986 
2987  {
2988  yyval.nodeval =
2989  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
2990  new GrantPrivilegesStmt((yyvsp[-5].slistval)->release(),
2991  (yyvsp[-3].stringval)->release(),
2992  (yyvsp[-2].stringval)->release(),
2993  (yyvsp[0].slistval)->release()));
2994  ;
2995  break;
2996  }
2997  case 76:
2998 
2999  {
3000  yyval.nodeval = TrackedPtr<Node>::make(
3001  lexer.parsed_node_tokens_,
3002  new RevokePrivilegesStmt((yyvsp[-5].slistval)->release(),
3003  (yyvsp[-3].stringval)->release(),
3004  (yyvsp[-2].stringval)->release(),
3005  (yyvsp[0].slistval)->release()));
3006  ;
3007  break;
3008  }
3009  case 77:
3010 
3011  {
3012  yyval.nodeval =
3013  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3014  new GrantRoleStmt((yyvsp[-2].slistval)->release(),
3015  (yyvsp[0].slistval)->release()));
3016  ;
3017  break;
3018  }
3019  case 78:
3020 
3021  {
3022  yyval.nodeval =
3023  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3024  new RevokeRoleStmt((yyvsp[-2].slistval)->release(),
3025  (yyvsp[0].slistval)->release()));
3026  ;
3027  break;
3028  }
3029  case 79:
3030 
3031  {
3032  yyval.nodeval = TrackedPtr<Node>::make(
3033  lexer.parsed_node_tokens_,
3034  new OptimizeTableStmt((yyvsp[-1].stringval)->release(),
3035  reinterpret_cast<std::list<NameValueAssign*>*>(
3036  (yyvsp[0].listval)->release())));
3037  ;
3038  break;
3039  }
3040  case 80:
3041 
3042  {
3043  yyval.nodeval = TrackedPtr<Node>::make(
3044  lexer.parsed_node_tokens_,
3045  new ValidateStmt((yyvsp[-1].stringval)->release(),
3046  reinterpret_cast<std::list<NameValueAssign*>*>(
3047  (yyvsp[0].listval)->release())));
3048  ;
3049  break;
3050  }
3051  case 81:
3052 
3053  {
3054  yyval.listval =
3055  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
3056  ;
3057  break;
3058  }
3059  case 82:
3060 
3061  {
3062  yyval.listval = yyvsp[-2].listval;
3063  yyval.listval->push_back(yyvsp[0].nodeval);
3064  ;
3065  break;
3066  }
3067  case 83:
3068 
3069  {
3070  yyval.nodeval = yyvsp[0].nodeval;
3071  ;
3072  break;
3073  }
3074  case 84:
3075 
3076  {
3077  yyval.nodeval = yyvsp[0].nodeval;
3078  ;
3079  break;
3080  }
3081  case 85:
3082 
3083  {
3084  yyval.nodeval = TrackedPtr<Node>::make(
3085  lexer.parsed_node_tokens_,
3086  new ColumnDef((yyvsp[-2].stringval)->release(),
3087  dynamic_cast<SQLType*>((yyvsp[-1].nodeval)->release()),
3088  dynamic_cast<CompressDef*>((yyvsp[0].nodeval)->release()),
3089  nullptr));
3090  ;
3091  break;
3092  }
3093  case 86:
3094 
3095  {
3096  yyval.nodeval = TrackedPtr<Node>::make(
3097  lexer.parsed_node_tokens_,
3098  new ColumnDef(
3099  (yyvsp[-3].stringval)->release(),
3100  dynamic_cast<SQLType*>((yyvsp[-2].nodeval)->release()),
3101  dynamic_cast<CompressDef*>((yyvsp[0].nodeval)->release()),
3102  dynamic_cast<ColumnConstraintDef*>((yyvsp[-1].nodeval)->release())));
3103  ;
3104  break;
3105  }
3106  case 87:
3107 
3108  {
3109  if (!boost::iequals(*(yyvsp[-1].stringval)->get(), "encoding"))
3110  throw std::runtime_error("Invalid identifier " + *(yyvsp[-1].stringval)->get() +
3111  " in column definition.");
3112  delete (yyvsp[-1].stringval)->release();
3113  yyval.nodeval = TrackedPtr<Node>::make(
3114  lexer.parsed_node_tokens_, new CompressDef((yyvsp[0].stringval)->release(), 0));
3115  ;
3116  break;
3117  }
3118  case 88:
3119 
3120  {
3121  if (!boost::iequals(*(yyvsp[-4].stringval)->get(), "encoding"))
3122  throw std::runtime_error("Invalid identifier " + *(yyvsp[-4].stringval)->get() +
3123  " in column definition.");
3124  delete (yyvsp[-4].stringval)->release();
3125  yyval.nodeval = TrackedPtr<Node>::make(
3126  lexer.parsed_node_tokens_,
3127  new CompressDef((yyvsp[-3].stringval)->release(), (int)yyvsp[-1].intval));
3128  ;
3129  break;
3130  }
3131  case 89:
3132 
3133  {
3134  yyval.nodeval = TrackedPtr<Node>::makeEmpty();
3135  ;
3136  break;
3137  }
3138  case 90:
3139 
3140  {
3141  yyval.nodeval =
3142  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3143  new ColumnConstraintDef(true, false, false, nullptr));
3144  ;
3145  break;
3146  }
3147  case 91:
3148 
3149  {
3150  yyval.nodeval = TrackedPtr<Node>::make(
3151  lexer.parsed_node_tokens_, new ColumnConstraintDef(true, true, false, nullptr));
3152  ;
3153  break;
3154  }
3155  case 92:
3156 
3157  {
3158  if (!boost::iequals(*(yyvsp[0].stringval)->get(), "key"))
3159  throw std::runtime_error("Syntax error at " + *(yyvsp[0].stringval)->get());
3160  yyval.nodeval = TrackedPtr<Node>::make(
3161  lexer.parsed_node_tokens_, new ColumnConstraintDef(true, true, true, nullptr));
3162  ;
3163  break;
3164  }
3165  case 93:
3166 
3167  {
3168  yyval.nodeval = TrackedPtr<Node>::make(
3169  lexer.parsed_node_tokens_,
3170  new ColumnConstraintDef(false,
3171  false,
3172  false,
3173  dynamic_cast<Literal*>((yyvsp[0].nodeval)->release())));
3174  ;
3175  break;
3176  }
3177  case 94:
3178 
3179  {
3180  yyval.nodeval = TrackedPtr<Node>::make(
3181  lexer.parsed_node_tokens_,
3182  new ColumnConstraintDef(false, false, false, new NullLiteral()));
3183  ;
3184  break;
3185  }
3186  case 95:
3187 
3188  {
3189  yyval.nodeval = TrackedPtr<Node>::make(
3190  lexer.parsed_node_tokens_,
3191  new ColumnConstraintDef(false, false, false, new UserLiteral()));
3192  ;
3193  break;
3194  }
3195  case 96:
3196 
3197  {
3198  yyval.nodeval = TrackedPtr<Node>::make(
3199  lexer.parsed_node_tokens_,
3200  new ColumnConstraintDef(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
3201  ;
3202  break;
3203  }
3204  case 97:
3205 
3206  {
3207  yyval.nodeval = TrackedPtr<Node>::make(
3208  lexer.parsed_node_tokens_,
3209  new ColumnConstraintDef((yyvsp[0].stringval)->release(), nullptr));
3210  ;
3211  break;
3212  }
3213  case 98:
3214 
3215  {
3216  yyval.nodeval = TrackedPtr<Node>::make(
3217  lexer.parsed_node_tokens_,
3218  new ColumnConstraintDef((yyvsp[-3].stringval)->release(),
3219  (yyvsp[-1].stringval)->release()));
3220  ;
3221  break;
3222  }
3223  case 99:
3224 
3225  {
3226  yyval.nodeval =
3227  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3228  new UniqueDef(false, (yyvsp[-1].slistval)->release()));
3229  ;
3230  break;
3231  }
3232  case 100:
3233 
3234  {
3235  if (!boost::iequals(*(yyvsp[-3].stringval)->get(), "key"))
3236  throw std::runtime_error("Syntax error at " + *(yyvsp[-3].stringval)->get());
3237  yyval.nodeval =
3238  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3239  new UniqueDef(true, (yyvsp[-1].slistval)->release()));
3240  ;
3241  break;
3242  }
3243  case 101:
3244 
3245  {
3246  if (!boost::iequals(*(yyvsp[-5].stringval)->get(), "key"))
3247  throw std::runtime_error("Syntax error at " + *(yyvsp[-5].stringval)->get());
3248  yyval.nodeval = TrackedPtr<Node>::make(
3249  lexer.parsed_node_tokens_,
3250  new ForeignKeyDef(
3251  (yyvsp[-3].slistval)->release(), (yyvsp[0].stringval)->release(), nullptr));
3252  ;
3253  break;
3254  }
3255  case 102:
3256 
3257  {
3258  if (!boost::iequals(*(yyvsp[-8].stringval)->get(), "key"))
3259  throw std::runtime_error("Syntax error at " + *(yyvsp[-8].stringval)->get());
3260  yyval.nodeval =
3261  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3262  new ForeignKeyDef((yyvsp[-6].slistval)->release(),
3263  (yyvsp[-3].stringval)->release(),
3264  (yyvsp[-1].slistval)->release()));
3265  ;
3266  break;
3267  }
3268  case 103:
3269 
3270  {
3271  if (!boost::iequals(*(yyvsp[-3].stringval)->get(), "key"))
3272  throw std::runtime_error("Syntax error at " + *(yyvsp[-3].stringval)->get());
3273  yyval.nodeval = TrackedPtr<Node>::make(
3274  lexer.parsed_node_tokens_, new ShardKeyDef(*(yyvsp[-1].stringval)->get()));
3275  delete (yyvsp[-3].stringval)->release();
3276  delete (yyvsp[-1].stringval)->release();
3277  ;
3278  break;
3279  }
3280  case 104:
3281 
3282  {
3283  yyval.nodeval =
3284  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3285  new SharedDictionaryDef(*(yyvsp[-6].stringval)->get(),
3286  *(yyvsp[-3].stringval)->get(),
3287  *(yyvsp[-1].stringval)->get()));
3288  delete (yyvsp[-6].stringval)->release();
3289  delete (yyvsp[-3].stringval)->release();
3290  delete (yyvsp[-1].stringval)->release();
3291  ;
3292  break;
3293  }
3294  case 105:
3295 
3296  {
3297  yyval.nodeval = TrackedPtr<Node>::make(
3298  lexer.parsed_node_tokens_,
3299  new CheckDef(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
3300  ;
3301  break;
3302  }
3303  case 106:
3304 
3305  {
3307  lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
3308  ;
3309  break;
3310  }
3311  case 107:
3312 
3313  {
3314  yyval.slistval = yyvsp[-2].slistval;
3315  yyval.slistval->push_back(yyvsp[0].stringval);
3316  ;
3317  break;
3318  }
3319  case 108:
3320 
3321  {
3322  yyval.listval = yyvsp[-1].listval;
3323  ;
3324  break;
3325  }
3326  case 109:
3327 
3328  {
3330  ;
3331  break;
3332  }
3333  case 110:
3334 
3335  {
3336  yyval.nodeval = TrackedPtr<Node>::make(
3337  lexer.parsed_node_tokens_,
3338  new DropViewStmt((yyvsp[0].stringval)->release(), yyvsp[-1].boolval));
3339  ;
3340  break;
3341  }
3342  case 111:
3343 
3344  {
3346  ;
3347  break;
3348  }
3349  case 112:
3350 
3351  {
3352  yyval.slistval = yyvsp[-1].slistval;
3353  ;
3354  break;
3355  }
3356  case 113:
3357 
3358  {
3360  ;
3361  break;
3362  }
3363  case 114:
3364 
3365  {
3366  yyval.listval = yyvsp[0].listval;
3367  ;
3368  break;
3369  }
3370  case 115:
3371 
3372  {
3373  yyval.listval =
3374  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
3375  ;
3376  break;
3377  }
3378  case 116:
3379 
3380  {
3381  yyval.listval = yyvsp[-2].listval;
3382  yyval.listval->push_back(yyvsp[0].nodeval);
3383  ;
3384  break;
3385  }
3386  case 117:
3387 
3388  {
3389  yyval.nodeval = TrackedPtr<Node>::make(
3390  lexer.parsed_node_tokens_,
3391  new OrderSpec(yyvsp[-2].intval, nullptr, yyvsp[-1].boolval, yyvsp[0].boolval));
3392  ;
3393  break;
3394  }
3395  case 118:
3396 
3397  {
3398  yyval.nodeval = TrackedPtr<Node>::make(
3399  lexer.parsed_node_tokens_,
3400  new OrderSpec(0,
3401  dynamic_cast<ColumnRef*>((yyvsp[-2].nodeval)->release()),
3402  yyvsp[-1].boolval,
3403  yyvsp[0].boolval));
3404  ;
3405  break;
3406  }
3407  case 119:
3408 
3409  {
3410  yyval.boolval = false; /* default is ASC */
3411  ;
3412  break;
3413  }
3414  case 120:
3415 
3416  {
3417  yyval.boolval = false;
3418  ;
3419  break;
3420  }
3421  case 121:
3422 
3423  {
3424  yyval.boolval = true;
3425  ;
3426  break;
3427  }
3428  case 122:
3429 
3430  {
3431  yyval.boolval = false; /* default is NULL LAST */
3432  ;
3433  break;
3434  }
3435  case 123:
3436 
3437  {
3438  yyval.boolval = true;
3439  ;
3440  break;
3441  }
3442  case 124:
3443 
3444  {
3445  yyval.boolval = false;
3446  ;
3447  break;
3448  }
3449  case 130:
3450 
3451  {
3452  yyval.nodeval = TrackedPtr<Node>::make(
3453  lexer.parsed_node_tokens_,
3454  new DeleteStmt((yyvsp[-1].stringval)->release(),
3455  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3456  ;
3457  break;
3458  }
3459  case 131:
3460 
3461  {
3462  yyval.nodeval = TrackedPtr<Node>::make(
3463  lexer.parsed_node_tokens_,
3464  new InsertValuesStmt(
3465  (yyvsp[-5].stringval)->release(),
3466  (yyvsp[-4].slistval)->release(),
3467  reinterpret_cast<std::list<Expr*>*>((yyvsp[-1].listval)->release())));
3468  ;
3469  break;
3470  }
3471  case 132:
3472 
3473  {
3474  yyval.nodeval = TrackedPtr<Node>::make(
3475  lexer.parsed_node_tokens_,
3476  new InsertIntoTableAsSelectStmt((yyvsp[-2].stringval)->release(),
3477  (yyvsp[0].stringval)->release(),
3478  (yyvsp[-1].slistval)->release()));
3479  ;
3480  break;
3481  }
3482  case 133:
3483 
3484  {
3485  yyval.boolval = false;
3486  ;
3487  break;
3488  }
3489  case 134:
3490 
3491  {
3492  yyval.boolval = false;
3493  ;
3494  break;
3495  }
3496  case 135:
3497 
3498  {
3499  yyval.boolval = true;
3500  ;
3501  break;
3502  }
3503  case 136:
3504 
3505  {
3506  yyval.listval =
3507  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
3508  ;
3509  break;
3510  }
3511  case 137:
3512 
3513  {
3514  yyval.listval = yyvsp[-2].listval;
3515  yyval.listval->push_back(yyvsp[0].nodeval);
3516  ;
3517  break;
3518  }
3519  case 138:
3520 
3521  {
3522  yyval.nodeval = TrackedPtr<Node>::make(
3523  lexer.parsed_node_tokens_,
3524  new Assignment((yyvsp[-2].stringval)->release(),
3525  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3526  ;
3527  break;
3528  }
3529  case 139:
3530 
3531  {
3532  yyval.nodeval = TrackedPtr<Node>::make(
3533  lexer.parsed_node_tokens_,
3534  new UpdateStmt(
3535  (yyvsp[-3].stringval)->release(),
3536  reinterpret_cast<std::list<Assignment*>*>((yyvsp[-1].listval)->release()),
3537  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3538  ;
3539  break;
3540  }
3541  case 140:
3542 
3543  {
3544  yyval.nodeval = TrackedPtr<Node>::makeEmpty();
3545  ;
3546  break;
3547  }
3548  case 141:
3549 
3550  {
3551  yyval.nodeval = yyvsp[0].nodeval;
3552  ;
3553  break;
3554  }
3555  case 142:
3556 
3557  {
3558  yyval.intval = yyvsp[0].intval;
3559  if (yyval.intval <= 0)
3560  throw std::runtime_error("LIMIT must be positive.");
3561  ;
3562  break;
3563  }
3564  case 143:
3565 
3566  {
3567  yyval.intval = 0; /* 0 means ALL */
3568  ;
3569  break;
3570  }
3571  case 144:
3572 
3573  {
3574  yyval.intval = 0; /* 0 means ALL */
3575  ;
3576  break;
3577  }
3578  case 145:
3579 
3580  {
3581  yyval.intval = yyvsp[0].intval;
3582  ;
3583  break;
3584  }
3585  case 146:
3586 
3587  {
3588  if (!boost::iequals(*(yyvsp[0].stringval)->get(), "row") &&
3589  !boost::iequals(*(yyvsp[0].stringval)->get(), "rows"))
3590  throw std::runtime_error("Invalid word in OFFSET clause " +
3591  *(yyvsp[0].stringval)->get());
3592  delete (yyvsp[0].stringval)->release();
3593  yyval.intval = yyvsp[-1].intval;
3594  ;
3595  break;
3596  }
3597  case 147:
3598 
3599  {
3600  yyval.intval = 0;
3601  ;
3602  break;
3603  }
3604  case 148:
3605 
3606  {
3607  yyval.nodeval = TrackedPtr<Node>::make(
3608  lexer.parsed_node_tokens_,
3609  new SelectStmt(
3610  dynamic_cast<QueryExpr*>((yyvsp[-3].nodeval)->release()),
3611  reinterpret_cast<std::list<OrderSpec*>*>((yyvsp[-2].listval)->release()),
3612  yyvsp[-1].intval,
3613  yyvsp[0].intval));
3614  ;
3615  break;
3616  }
3617  case 149:
3618 
3619  {
3620  yyval.nodeval = yyvsp[0].nodeval;
3621  ;
3622  break;
3623  }
3624  case 150:
3625 
3626  {
3627  yyval.nodeval = TrackedPtr<Node>::make(
3628  lexer.parsed_node_tokens_,
3629  new UnionQuery(false,
3630  dynamic_cast<QueryExpr*>((yyvsp[-2].nodeval)->release()),
3631  dynamic_cast<QueryExpr*>((yyvsp[0].nodeval)->release())));
3632  ;
3633  break;
3634  }
3635  case 151:
3636 
3637  {
3638  yyval.nodeval = TrackedPtr<Node>::make(
3639  lexer.parsed_node_tokens_,
3640  new UnionQuery(true,
3641  dynamic_cast<QueryExpr*>((yyvsp[-3].nodeval)->release()),
3642  dynamic_cast<QueryExpr*>((yyvsp[0].nodeval)->release())));
3643  ;
3644  break;
3645  }
3646  case 152:
3647 
3648  {
3649  yyval.nodeval = yyvsp[0].nodeval;
3650  ;
3651  break;
3652  }
3653  case 153:
3654 
3655  {
3656  yyval.nodeval = yyvsp[-1].nodeval;
3657  ;
3658  break;
3659  }
3660  case 154:
3661 
3662  {
3663  yyval.nodeval = TrackedPtr<Node>::make(
3664  lexer.parsed_node_tokens_,
3665  new QuerySpec(
3666  yyvsp[-5].boolval,
3667  reinterpret_cast<std::list<SelectEntry*>*>((yyvsp[-4].listval)->release()),
3668  reinterpret_cast<std::list<TableRef*>*>((yyvsp[-3].listval)->release()),
3669  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3670  reinterpret_cast<std::list<Expr*>*>((yyvsp[-1].listval)->release()),
3671  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3672  ;
3673  break;
3674  }
3675  case 155:
3676 
3677  {
3678  yyval.listval = yyvsp[0].listval;
3679  ;
3680  break;
3681  }
3682  case 156:
3683 
3684  {
3685  yyval.listval = TrackedListPtr<Node>::makeEmpty(); /* nullptr means SELECT * */
3686  ;
3687  break;
3688  }
3689  case 157:
3690 
3691  {
3692  yyval.listval = yyvsp[0].listval;
3693  ;
3694  break;
3695  }
3696  case 158:
3697 
3698  {
3699  yyval.listval =
3700  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
3701  ;
3702  break;
3703  }
3704  case 159:
3705 
3706  {
3707  yyval.listval = yyvsp[-2].listval;
3708  yyval.listval->push_back(yyvsp[0].nodeval);
3709  ;
3710  break;
3711  }
3712  case 160:
3713 
3714  {
3715  yyval.nodeval = TrackedPtr<Node>::make(
3716  lexer.parsed_node_tokens_, new TableRef((yyvsp[0].stringval)->release()));
3717  ;
3718  break;
3719  }
3720  case 161:
3721 
3722  {
3723  yyval.nodeval =
3724  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
3725  new TableRef((yyvsp[-1].stringval)->release(),
3726  (yyvsp[0].stringval)->release()));
3727  ;
3728  break;
3729  }
3730  case 162:
3731 
3732  {
3733  yyval.nodeval = yyvsp[0].nodeval;
3734  ;
3735  break;
3736  }
3737  case 163:
3738 
3739  {
3741  ;
3742  break;
3743  }
3744  case 164:
3745 
3746  {
3747  yyval.listval = yyvsp[0].listval;
3748  ;
3749  break;
3750  }
3751  case 165:
3752 
3753  {
3754  yyval.listval =
3755  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
3756  ;
3757  break;
3758  }
3759  case 166:
3760 
3761  {
3762  yyval.listval = yyvsp[-2].listval;
3763  yyval.listval->push_back(yyvsp[0].nodeval);
3764  ;
3765  break;
3766  }
3767  case 167:
3768 
3769  {
3770  yyval.nodeval = TrackedPtr<Node>::makeEmpty();
3771  ;
3772  break;
3773  }
3774  case 168:
3775 
3776  {
3777  yyval.nodeval = yyvsp[0].nodeval;
3778  ;
3779  break;
3780  }
3781  case 169:
3782 
3783  {
3784  yyval.nodeval = TrackedPtr<Node>::make(
3785  lexer.parsed_node_tokens_,
3786  new OperExpr(kOR,
3787  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3788  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3789  ;
3790  break;
3791  }
3792  case 170:
3793 
3794  {
3795  yyval.nodeval = TrackedPtr<Node>::make(
3796  lexer.parsed_node_tokens_,
3797  new OperExpr(kAND,
3798  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3799  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3800  ;
3801  break;
3802  }
3803  case 171:
3804 
3805  {
3806  yyval.nodeval = TrackedPtr<Node>::make(
3807  lexer.parsed_node_tokens_,
3808  new OperExpr(
3809  kNOT, dynamic_cast<Expr*>((yyvsp[0].nodeval)->release()), nullptr));
3810  ;
3811  break;
3812  }
3813  case 172:
3814 
3815  {
3816  yyval.nodeval = yyvsp[-1].nodeval;
3817  ;
3818  break;
3819  }
3820  case 173:
3821 
3822  {
3823  yyval.nodeval = yyvsp[0].nodeval;
3824  ;
3825  break;
3826  }
3827  case 174:
3828 
3829  {
3830  yyval.nodeval = yyvsp[0].nodeval;
3831  ;
3832  break;
3833  }
3834  case 175:
3835 
3836  {
3837  yyval.nodeval = yyvsp[0].nodeval;
3838  ;
3839  break;
3840  }
3841  case 176:
3842 
3843  {
3844  yyval.nodeval = yyvsp[0].nodeval;
3845  ;
3846  break;
3847  }
3848  case 177:
3849 
3850  {
3851  yyval.nodeval = yyvsp[0].nodeval;
3852  ;
3853  break;
3854  }
3855  case 178:
3856 
3857  {
3858  yyval.nodeval = yyvsp[0].nodeval;
3859  ;
3860  break;
3861  }
3862  case 179:
3863 
3864  {
3865  yyval.nodeval = yyvsp[0].nodeval;
3866  ;
3867  break;
3868  }
3869  case 180:
3870 
3871  {
3872  yyval.nodeval = yyvsp[0].nodeval;
3873  ;
3874  break;
3875  }
3876  case 181:
3877 
3878  {
3879  yyval.nodeval = yyvsp[0].nodeval;
3880  ;
3881  break;
3882  }
3883  case 182:
3884 
3885  {
3886  yyval.nodeval = TrackedPtr<Node>::make(
3887  lexer.parsed_node_tokens_,
3888  new OperExpr(yyvsp[-1].opval,
3889  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3890  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3891  ;
3892  break;
3893  }
3894  case 183:
3895 
3896  {
3897  yyval.nodeval = TrackedPtr<Node>::make(
3898  lexer.parsed_node_tokens_,
3899  new OperExpr(yyvsp[-1].opval,
3900  kONE,
3901  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3902  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3903  /* subquery can only return a single result */
3904  ;
3905  break;
3906  }
3907  case 184:
3908 
3909  {
3910  yyval.nodeval = TrackedPtr<Node>::make(
3911  lexer.parsed_node_tokens_,
3912  new BetweenExpr(true,
3913  dynamic_cast<Expr*>((yyvsp[-5].nodeval)->release()),
3914  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3915  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3916  ;
3917  break;
3918  }
3919  case 185:
3920 
3921  {
3922  yyval.nodeval = TrackedPtr<Node>::make(
3923  lexer.parsed_node_tokens_,
3924  new BetweenExpr(false,
3925  dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
3926  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
3927  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3928  ;
3929  break;
3930  }
3931  case 186:
3932 
3933  {
3934  yyval.nodeval = TrackedPtr<Node>::make(
3935  lexer.parsed_node_tokens_,
3936  new LikeExpr(true,
3937  false,
3938  dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
3939  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3940  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3941  ;
3942  break;
3943  }
3944  case 187:
3945 
3946  {
3947  yyval.nodeval = TrackedPtr<Node>::make(
3948  lexer.parsed_node_tokens_,
3949  new LikeExpr(false,
3950  false,
3951  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
3952  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3953  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3954  ;
3955  break;
3956  }
3957  case 188:
3958 
3959  {
3960  yyval.nodeval = TrackedPtr<Node>::make(
3961  lexer.parsed_node_tokens_,
3962  new LikeExpr(true,
3963  true,
3964  dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
3965  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3966  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3967  ;
3968  break;
3969  }
3970  case 189:
3971 
3972  {
3973  yyval.nodeval = TrackedPtr<Node>::make(
3974  lexer.parsed_node_tokens_,
3975  new LikeExpr(false,
3976  true,
3977  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
3978  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
3979  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
3980  ;
3981  break;
3982  }
3983  case 190:
3984 
3985  {
3986  yyval.nodeval = TrackedPtr<Node>::makeEmpty();
3987  ;
3988  break;
3989  }
3990  case 191:
3991 
3992  {
3993  std::string escape_tok = *(yyvsp[-1].stringval)->get();
3994  std::transform(escape_tok.begin(), escape_tok.end(), escape_tok.begin(), ::tolower);
3995  if (escape_tok != "escape") {
3996  throw std::runtime_error("Syntax error: wrong escape specifier");
3997  }
3998  delete (yyvsp[-1].stringval)->release();
3999  yyval.nodeval = yyvsp[0].nodeval;
4000  ;
4001  break;
4002  }
4003  case 192:
4004 
4005  {
4006  yyval.nodeval = TrackedPtr<Node>::make(
4007  lexer.parsed_node_tokens_,
4008  new IsNullExpr(true, dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release())));
4009  ;
4010  break;
4011  }
4012  case 193:
4013 
4014  {
4015  yyval.nodeval = TrackedPtr<Node>::make(
4016  lexer.parsed_node_tokens_,
4017  new IsNullExpr(false, dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release())));
4018  ;
4019  break;
4020  }
4021  case 194:
4022 
4023  {
4024  yyval.nodeval = TrackedPtr<Node>::make(
4025  lexer.parsed_node_tokens_,
4026  new InSubquery(true,
4027  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4028  dynamic_cast<SubqueryExpr*>((yyvsp[0].nodeval)->release())));
4029  ;
4030  break;
4031  }
4032  case 195:
4033 
4034  {
4035  yyval.nodeval = TrackedPtr<Node>::make(
4036  lexer.parsed_node_tokens_,
4037  new InSubquery(false,
4038  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4039  dynamic_cast<SubqueryExpr*>((yyvsp[0].nodeval)->release())));
4040  ;
4041  break;
4042  }
4043  case 196:
4044 
4045  {
4046  yyval.nodeval = TrackedPtr<Node>::make(
4047  lexer.parsed_node_tokens_,
4048  new InValues(
4049  true,
4050  dynamic_cast<Expr*>((yyvsp[-5].nodeval)->release()),
4051  reinterpret_cast<std::list<Expr*>*>((yyvsp[-1].listval)->release())));
4052  ;
4053  break;
4054  }
4055  case 197:
4056 
4057  {
4058  yyval.nodeval = TrackedPtr<Node>::make(
4059  lexer.parsed_node_tokens_,
4060  new InValues(
4061  false,
4062  dynamic_cast<Expr*>((yyvsp[-4].nodeval)->release()),
4063  reinterpret_cast<std::list<Expr*>*>((yyvsp[-1].listval)->release())));
4064  ;
4065  break;
4066  }
4067  case 198:
4068 
4069  {
4070  yyval.listval =
4071  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
4072  ;
4073  break;
4074  }
4075  case 199:
4076 
4077  {
4078  yyval.listval = yyvsp[-2].listval;
4079  yyval.listval->push_back(yyvsp[0].nodeval);
4080  ;
4081  break;
4082  }
4083  case 200:
4084 
4085  {
4086  yyval.nodeval = TrackedPtr<Node>::make(
4087  lexer.parsed_node_tokens_,
4088  new OperExpr(yyvsp[-2].opval,
4089  yyvsp[-1].qualval,
4090  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4091  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4092  ;
4093  break;
4094  }
4095  case 201:
4096 
4097  {
4098  yyval.nodeval = TrackedPtr<Node>::make(
4099  lexer.parsed_node_tokens_,
4100  new OperExpr(yyvsp[-2].opval,
4101  yyvsp[-1].qualval,
4102  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4103  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4104  ;
4105  break;
4106  }
4107  case 202:
4108 
4109  {
4110  yyval.opval = yyvsp[0].opval;
4111  ;
4112  break;
4113  }
4114  case 203:
4115 
4116  {
4117  yyval.opval = yyvsp[0].opval;
4118  ;
4119  break;
4120  }
4121  case 207:
4122 
4123  {
4124  yyval.nodeval = TrackedPtr<Node>::make(
4125  lexer.parsed_node_tokens_,
4126  new ExistsExpr(dynamic_cast<QuerySpec*>((yyvsp[0].nodeval)->release())));
4127  ;
4128  break;
4129  }
4130  case 208:
4131 
4132  {
4133  yyval.nodeval = TrackedPtr<Node>::make(
4134  lexer.parsed_node_tokens_,
4135  new SubqueryExpr(dynamic_cast<QuerySpec*>((yyvsp[-1].nodeval)->release())));
4136  ;
4137  break;
4138  }
4139  case 209:
4140 
4141  {
4143  lexer.parsed_node_list_tokens_,
4144  1,
4145  new ExprPair(dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4146  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4147  ;
4148  break;
4149  }
4150  case 210:
4151 
4152  {
4153  yyval.listval = yyvsp[-4].listval;
4154  yyval.listval->push_back(
4155  new ExprPair(dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4156  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4157  ;
4158  break;
4159  }
4160  case 211:
4161 
4162  {
4163  yyval.nodeval = yyvsp[0].nodeval;
4164  ;
4165  break;
4166  }
4167  case 212:
4168 
4169  {
4170  yyval.nodeval = TrackedPtr<Node>::makeEmpty();
4171  ;
4172  break;
4173  }
4174  case 213:
4175 
4176  {
4177  yyval.nodeval = TrackedPtr<Node>::make(
4178  lexer.parsed_node_tokens_,
4179  new CaseExpr(
4180  reinterpret_cast<std::list<ExprPair*>*>((yyvsp[-2].listval)->release()),
4181  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4182  ;
4183  break;
4184  }
4185  case 214:
4186 
4187  {
4188  std::list<ExprPair*>* when_then_list = new std::list<ExprPair*>(
4189  1,
4190  new ExprPair(dynamic_cast<Expr*>((yyvsp[-5].nodeval)->release()),
4191  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release())));
4192  yyval.nodeval = TrackedPtr<Node>::make(
4193  lexer.parsed_node_tokens_,
4194  new CaseExpr(when_then_list,
4195  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4196  ;
4197  break;
4198  }
4199  case 215:
4200 
4201  {
4202  std::list<ExprPair*>* when_then_list = new std::list<ExprPair*>(
4203  1,
4204  new ExprPair(dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4205  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4206  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
4207  new CaseExpr(when_then_list, nullptr));
4208  ;
4209  break;
4210  }
4211  case 216:
4212 
4213  {
4214  yyval.nodeval = TrackedPtr<Node>::make(
4215  lexer.parsed_node_tokens_,
4216  new CharLengthExpr(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()), true));
4217  ;
4218  break;
4219  }
4220  case 217:
4221 
4222  {
4223  yyval.nodeval = TrackedPtr<Node>::make(
4224  lexer.parsed_node_tokens_,
4225  new CharLengthExpr(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()), false));
4226  ;
4227  break;
4228  }
4229  case 218:
4230 
4231  {
4232  yyval.nodeval = TrackedPtr<Node>::make(
4233  lexer.parsed_node_tokens_,
4234  new OperExpr(kARRAY_AT,
4235  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4236  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4237  ;
4238  break;
4239  }
4240  case 219:
4241 
4242  {
4243  yyval.nodeval = TrackedPtr<Node>::make(
4244  lexer.parsed_node_tokens_,
4245  new OperExpr(kPLUS,
4246  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4247  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4248  ;
4249  break;
4250  }
4251  case 220:
4252 
4253  {
4254  yyval.nodeval = TrackedPtr<Node>::make(
4255  lexer.parsed_node_tokens_,
4256  new OperExpr(kMINUS,
4257  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4258  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4259  ;
4260  break;
4261  }
4262  case 221:
4263 
4264  {
4265  yyval.nodeval = TrackedPtr<Node>::make(
4266  lexer.parsed_node_tokens_,
4267  new OperExpr(kMULTIPLY,
4268  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4269  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4270  ;
4271  break;
4272  }
4273  case 222:
4274 
4275  {
4276  yyval.nodeval = TrackedPtr<Node>::make(
4277  lexer.parsed_node_tokens_,
4278  new OperExpr(kDIVIDE,
4279  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4280  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4281  ;
4282  break;
4283  }
4284  case 223:
4285 
4286  {
4287  yyval.nodeval = TrackedPtr<Node>::make(
4288  lexer.parsed_node_tokens_,
4289  new OperExpr(kMODULO,
4290  dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4291  dynamic_cast<Expr*>((yyvsp[0].nodeval)->release())));
4292  ;
4293  break;
4294  }
4295  case 224:
4296 
4297  {
4298  yyval.nodeval = TrackedPtr<Node>::make(
4299  lexer.parsed_node_tokens_,
4300  new OperExpr(kMODULO,
4301  dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4302  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4303  ;
4304  break;
4305  }
4306  case 225:
4307 
4308  {
4309  yyval.nodeval = yyvsp[0].nodeval;
4310  ;
4311  break;
4312  }
4313  case 226:
4314 
4315  {
4316  yyval.nodeval = TrackedPtr<Node>::make(
4317  lexer.parsed_node_tokens_,
4318  new OperExpr(
4319  kUMINUS, dynamic_cast<Expr*>((yyvsp[0].nodeval)->release()), nullptr));
4320  ;
4321  break;
4322  }
4323  case 227:
4324 
4325  {
4326  yyval.nodeval = yyvsp[0].nodeval;
4327  ;
4328  break;
4329  }
4330  case 228:
4331 
4332  {
4333  yyval.nodeval = yyvsp[0].nodeval;
4334  ;
4335  break;
4336  }
4337  case 229:
4338 
4339  {
4340  yyval.nodeval = yyvsp[0].nodeval;
4341  ;
4342  break;
4343  }
4344  case 230:
4345 
4346  {
4347  yyval.nodeval = yyvsp[-1].nodeval;
4348  ;
4349  break;
4350  }
4351  case 231:
4352 
4353  {
4354  yyval.nodeval = TrackedPtr<Node>::make(
4355  lexer.parsed_node_tokens_,
4356  new CastExpr(dynamic_cast<Expr*>((yyvsp[-3].nodeval)->release()),
4357  dynamic_cast<SQLType*>((yyvsp[-1].nodeval)->release())));
4358  ;
4359  break;
4360  }
4361  case 232:
4362 
4363  {
4364  yyval.nodeval = yyvsp[0].nodeval;
4365  ;
4366  break;
4367  }
4368  case 233:
4369 
4370  {
4371  yyval.nodeval = yyvsp[0].nodeval;
4372  ;
4373  break;
4374  }
4375  case 234:
4376 
4377  {
4378  yyval.nodeval = yyvsp[0].nodeval;
4379  ;
4380  break;
4381  }
4382  case 235:
4383 
4384  {
4385  throw std::runtime_error("Empty select entry");
4386  ;
4387  break;
4388  }
4389  case 236:
4390 
4391  {
4392  yyval.nodeval = TrackedPtr<Node>::make(
4393  lexer.parsed_node_tokens_,
4394  new SelectEntry(dynamic_cast<Expr*>((yyvsp[0].nodeval)->release()), nullptr));
4395  ;
4396  break;
4397  }
4398  case 237:
4399 
4400  {
4401  yyval.nodeval = TrackedPtr<Node>::make(
4402  lexer.parsed_node_tokens_,
4403  new SelectEntry(dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release()),
4404  (yyvsp[0].stringval)->release()));
4405  ;
4406  break;
4407  }
4408  case 238:
4409 
4410  {
4411  yyval.nodeval = TrackedPtr<Node>::make(
4412  lexer.parsed_node_tokens_,
4413  new SelectEntry(dynamic_cast<Expr*>((yyvsp[-2].nodeval)->release()),
4414  (yyvsp[0].stringval)->release()));
4415  ;
4416  break;
4417  }
4418  case 239:
4419 
4420  {
4421  throw std::runtime_error("Empty select entry list");
4422  ;
4423  break;
4424  }
4425  case 240:
4426 
4427  {
4428  yyval.listval =
4429  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
4430  ;
4431  break;
4432  }
4433  case 241:
4434 
4435  {
4436  yyval.listval = yyvsp[-2].listval;
4437  yyval.listval->push_back(yyvsp[0].nodeval);
4438  ;
4439  break;
4440  }
4441  case 242:
4442 
4443  {
4444  yyval.nodeval = yyvsp[0].nodeval;
4445  ;
4446  break;
4447  }
4448  case 243:
4449 
4450  {
4451  yyval.nodeval =
4452  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new UserLiteral());
4453  ;
4454  break;
4455  }
4456  case 244:
4457 
4458  {
4459  yyval.nodeval = TrackedPtr<Node>::make(
4460  lexer.parsed_node_tokens_, new FunctionRef((yyvsp[-3].stringval)->release()));
4461  ;
4462  break;
4463  }
4464  case 245:
4465 
4466  {
4467  yyval.nodeval = TrackedPtr<Node>::make(
4468  lexer.parsed_node_tokens_,
4469  new FunctionRef((yyvsp[-4].stringval)->release(),
4470  true,
4471  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4472  ;
4473  break;
4474  }
4475  case 246:
4476 
4477  {
4478  yyval.nodeval = TrackedPtr<Node>::make(
4479  lexer.parsed_node_tokens_,
4480  new FunctionRef((yyvsp[-4].stringval)->release(),
4481  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4482  ;
4483  break;
4484  }
4485  case 247:
4486 
4487  {
4488  yyval.nodeval = TrackedPtr<Node>::make(
4489  lexer.parsed_node_tokens_,
4490  new FunctionRef((yyvsp[-3].stringval)->release(),
4491  dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release())));
4492  ;
4493  break;
4494  }
4495  case 248:
4496 
4497  {
4498  yyval.nodeval = TrackedPtr<Node>::make(
4499  lexer.parsed_node_tokens_, new StringLiteral((yyvsp[0].stringval)->release()));
4500  ;
4501  break;
4502  }
4503  case 249:
4504 
4505  {
4506  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
4507  new IntLiteral(yyvsp[0].intval));
4508  ;
4509  break;
4510  }
4511  case 250:
4512 
4513  {
4514  yyval.nodeval =
4515  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new TimestampLiteral());
4516  ;
4517  break;
4518  }
4519  case 251:
4520 
4521  {
4522  delete dynamic_cast<Expr*>((yyvsp[-1].nodeval)->release());
4523  yyval.nodeval =
4524  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new TimestampLiteral());
4525  ;
4526  break;
4527  }
4528  case 252:
4529 
4530  {
4531  yyval.nodeval = TrackedPtr<Node>::make(
4532  lexer.parsed_node_tokens_, new FixedPtLiteral((yyvsp[0].stringval)->release()));
4533  ;
4534  break;
4535  }
4536  case 253:
4537 
4538  {
4539  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
4540  new FloatLiteral(yyvsp[0].floatval));
4541  ;
4542  break;
4543  }
4544  case 254:
4545 
4546  {
4547  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
4548  new DoubleLiteral(yyvsp[0].doubleval));
4549  ;
4550  break;
4551  }
4552  case 255:
4553 
4554  {
4555  yyval.nodeval = TrackedPtr<Node>::make(
4556  lexer.parsed_node_tokens_,
4557  new CastExpr(new StringLiteral((yyvsp[0].stringval)->release()),
4558  dynamic_cast<SQLType*>((yyvsp[-1].nodeval)->release())));
4559  ;
4560  break;
4561  }
4562  case 256:
4563 
4564  {
4565  yyval.nodeval = TrackedPtr<Node>::make(
4566  lexer.parsed_node_tokens_,
4567  new ArrayLiteral(
4568  reinterpret_cast<std::list<Expr*>*>((yyvsp[-1].listval)->release())));
4569  ;
4570  break;
4571  }
4572  case 257:
4573 
4574  {
4575  yyval.nodeval = TrackedPtr<Node>::make(
4576  lexer.parsed_node_tokens_,
4577  new ArrayLiteral(
4578  reinterpret_cast<std::list<Expr*>*>((yyvsp[-1].listval)->release())));
4579  ;
4580  break;
4581  }
4582  case 258:
4583 
4584  {
4585  yyval.nodeval =
4586  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new NullLiteral());
4587  ;
4588  break;
4589  }
4590  case 259:
4591 
4592  {
4593  yyval.listval =
4594  TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 1, yyvsp[0].nodeval);
4595  ;
4596  break;
4597  }
4598  case 260:
4599 
4600  {
4601  yyval.listval = yyvsp[-2].listval;
4602  yyval.listval->push_back(yyvsp[0].nodeval);
4603  ;
4604  break;
4605  }
4606  case 261:
4607 
4608  {
4609  yyval.listval = TrackedListPtr<Node>::make(lexer.parsed_node_list_tokens_, 0);
4610  ;
4611  break;
4612  }
4613  case 263:
4614 
4615  {
4616  const auto uc_col_name =
4617  boost::to_upper_copy<std::string>(*(yyvsp[0].stringval)->get());
4618  if (reserved_keywords.find(uc_col_name) != reserved_keywords.end()) {
4619  errors_.push_back("Cannot use a reserved keyword as table name: " +
4620  *(yyvsp[0].stringval)->get());
4621  }
4622  yyval.stringval = yyvsp[0].stringval;
4623  ;
4624  break;
4625  }
4626  case 264:
4627 
4628  {
4629  yyval.stringval = yyvsp[0].stringval;
4630  ;
4631  break;
4632  }
4633  case 265:
4634 
4635  {
4636  yyval.nodeval = TrackedPtr<Node>::makeEmpty();
4637  ;
4638  break;
4639  }
4640  case 271:
4641 
4642  {
4644  lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
4645  ;
4646  break;
4647  }
4648  case 272:
4649 
4650  {
4651  yyval.slistval = yyvsp[-2].slistval;
4652  yyval.slistval->push_back(yyvsp[0].stringval);
4653  ;
4654  break;
4655  }
4656  case 275:
4657 
4658  {
4660  lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
4661  ;
4662  break;
4663  }
4664  case 276:
4665 
4666  {
4667  yyval.slistval = yyvsp[-2].slistval;
4668  yyval.slistval->push_back(yyvsp[0].stringval);
4669  ;
4670  break;
4671  }
4672  case 279:
4673 
4674  {
4676  lexer.parsed_str_list_tokens_, 1, yyvsp[0].stringval);
4677  ;
4678  break;
4679  }
4680  case 280:
4681 
4682  {
4683  yyval.slistval = yyvsp[-2].slistval;
4684  yyval.slistval->push_back(yyvsp[0].stringval);
4685  ;
4686  break;
4687  }
4688  case 281:
4689 
4690  {
4691  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "ALL");
4692  ;
4693  break;
4694  }
4695  case 282:
4696 
4697  {
4698  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "ALL");
4699  ;
4700  break;
4701  }
4702  case 283:
4703 
4704  {
4705  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "CREATE");
4706  ;
4707  break;
4708  }
4709  case 284:
4710 
4711  {
4712  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "SELECT");
4713  ;
4714  break;
4715  }
4716  case 285:
4717 
4718  {
4719  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "INSERT");
4720  ;
4721  break;
4722  }
4723  case 286:
4724 
4725  {
4726  yyval.stringval =
4727  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "TRUNCATE");
4728  ;
4729  break;
4730  }
4731  case 287:
4732 
4733  {
4734  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "UPDATE");
4735  ;
4736  break;
4737  }
4738  case 288:
4739 
4740  {
4741  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DELETE");
4742  ;
4743  break;
4744  }
4745  case 289:
4746 
4747  {
4748  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "ALTER");
4749  ;
4750  break;
4751  }
4752  case 290:
4753 
4754  {
4755  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DROP");
4756  ;
4757  break;
4758  }
4759  case 291:
4760 
4761  {
4762  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "VIEW");
4763  ;
4764  break;
4765  }
4766  case 292:
4767 
4768  {
4769  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "EDIT");
4770  ;
4771  break;
4772  }
4773  case 293:
4774 
4775  {
4776  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "ACCESS");
4777  ;
4778  break;
4779  }
4780  case 294:
4781 
4782  {
4783  yyval.stringval =
4784  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "ALTER SERVER");
4785  ;
4786  break;
4787  }
4788  case 295:
4789 
4790  {
4791  yyval.stringval =
4792  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "CREATE SERVER");
4793  ;
4794  break;
4795  }
4796  case 296:
4797 
4798  {
4799  yyval.stringval =
4800  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "CREATE TABLE");
4801  ;
4802  break;
4803  }
4804  case 297:
4805 
4806  {
4807  yyval.stringval =
4808  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "CREATE VIEW");
4809  ;
4810  break;
4811  }
4812  case 298:
4813 
4814  {
4815  yyval.stringval =
4816  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "SELECT VIEW");
4817  ;
4818  break;
4819  }
4820  case 299:
4821 
4822  {
4823  yyval.stringval =
4824  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DROP VIEW");
4825  ;
4826  break;
4827  }
4828  case 300:
4829 
4830  {
4831  yyval.stringval =
4832  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DROP SERVER");
4833  ;
4834  break;
4835  }
4836  case 301:
4837 
4838  {
4839  yyval.stringval =
4840  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "CREATE DASHBOARD");
4841  ;
4842  break;
4843  }
4844  case 302:
4845 
4846  {
4847  yyval.stringval =
4848  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "EDIT DASHBOARD");
4849  ;
4850  break;
4851  }
4852  case 303:
4853 
4854  {
4855  yyval.stringval =
4856  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "VIEW DASHBOARD");
4857  ;
4858  break;
4859  }
4860  case 304:
4861 
4862  {
4863  yyval.stringval =
4864  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DELETE DASHBOARD");
4865  ;
4866  break;
4867  }
4868  case 305:
4869 
4870  {
4871  yyval.stringval =
4872  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "VIEW SQL EDITOR");
4873  ;
4874  break;
4875  }
4876  case 306:
4877 
4878  {
4879  yyval.stringval =
4880  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DATABASE");
4881  ;
4882  break;
4883  }
4884  case 307:
4885 
4886  {
4887  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "TABLE");
4888  ;
4889  break;
4890  }
4891  case 308:
4892 
4893  {
4894  yyval.stringval =
4895  TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "DASHBOARD");
4896  ;
4897  break;
4898  }
4899  case 309:
4900 
4901  {
4902  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "VIEW");
4903  ;
4904  break;
4905  }
4906  case 310:
4907 
4908  {
4909  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_, "SERVER");
4910  ;
4911  break;
4912  }
4913  case 312:
4914 
4915  {
4916  yyval.stringval = TrackedPtr<std::string>::make(lexer.parsed_str_tokens_,
4917  std::to_string(yyvsp[0].intval));
4918  ;
4919  break;
4920  }
4921  case 313:
4922 
4923  {
4924  yyval.nodeval = TrackedPtr<Node>::make(
4925  lexer.parsed_node_tokens_, new ColumnRef((yyvsp[0].stringval)->release()));
4926  ;
4927  break;
4928  }
4929  case 314:
4930 
4931  {
4932  yyval.nodeval =
4933  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
4934  new ColumnRef((yyvsp[-2].stringval)->release(),
4935  (yyvsp[0].stringval)->release()));
4936  ;
4937  break;
4938  }
4939  case 315:
4940 
4941  {
4942  yyval.nodeval = TrackedPtr<Node>::make(
4943  lexer.parsed_node_tokens_,
4944  new ColumnRef((yyvsp[-2].stringval)->release(), nullptr));
4945  ;
4946  break;
4947  }
4948  case 316:
4949 
4950  {
4951  if (yyvsp[0].intval < 0)
4952  throw std::runtime_error("No negative number in type definition.");
4953  yyval.intval = yyvsp[0].intval;
4954  ;
4955  break;
4956  }
4957  case 317:
4958 
4959  {
4960  yyval.nodeval =
4961  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kBIGINT));
4962  ;
4963  break;
4964  }
4965  case 318:
4966 
4967  {
4968  yyval.nodeval =
4969  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kTEXT));
4970  ;
4971  break;
4972  }
4973  case 319:
4974 
4975  {
4976  yyval.nodeval =
4977  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kBOOLEAN));
4978  ;
4979  break;
4980  }
4981  case 320:
4982 
4983  {
4984  yyval.nodeval =
4985  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kCHAR));
4986  ;
4987  break;
4988  }
4989  case 321:
4990 
4991  {
4992  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
4993  new SQLType(kCHAR, yyvsp[-1].intval));
4994  ;
4995  break;
4996  }
4997  case 322:
4998 
4999  {
5000  yyval.nodeval =
5001  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kNUMERIC));
5002  ;
5003  break;
5004  }
5005  case 323:
5006 
5007  {
5008  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5009  new SQLType(kNUMERIC, yyvsp[-1].intval));
5010  ;
5011  break;
5012  }
5013  case 324:
5014 
5015  {
5016  yyval.nodeval = TrackedPtr<Node>::make(
5017  lexer.parsed_node_tokens_,
5018  new SQLType(kNUMERIC, yyvsp[-3].intval, yyvsp[-1].intval, false));
5019  ;
5020  break;
5021  }
5022  case 325:
5023 
5024  {
5025  yyval.nodeval =
5026  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kDECIMAL));
5027  ;
5028  break;
5029  }
5030  case 326:
5031 
5032  {
5033  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5034  new SQLType(kDECIMAL, yyvsp[-1].intval));
5035  ;
5036  break;
5037  }
5038  case 327:
5039 
5040  {
5041  yyval.nodeval = TrackedPtr<Node>::make(
5042  lexer.parsed_node_tokens_,
5043  new SQLType(kDECIMAL, yyvsp[-3].intval, yyvsp[-1].intval, false));
5044  ;
5045  break;
5046  }
5047  case 328:
5048 
5049  {
5050  yyval.nodeval =
5051  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kINT));
5052  ;
5053  break;
5054  }
5055  case 329:
5056 
5057  {
5058  yyval.nodeval =
5059  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kTINYINT));
5060  ;
5061  break;
5062  }
5063  case 330:
5064 
5065  {
5066  yyval.nodeval =
5067  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kSMALLINT));
5068  ;
5069  break;
5070  }
5071  case 331:
5072 
5073  {
5074  yyval.nodeval =
5075  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kFLOAT));
5076  ;
5077  break;
5078  }
5079  case 332:
5080 
5081  {
5082  yyval.nodeval =
5083  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kFLOAT));
5084  ;
5085  break;
5086  }
5087  case 333:
5088 
5089  {
5090  yyval.nodeval =
5091  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kDOUBLE));
5092  ;
5093  break;
5094  }
5095  case 334:
5096 
5097  {
5098  yyval.nodeval =
5099  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kDOUBLE));
5100  ;
5101  break;
5102  }
5103  case 335:
5104 
5105  {
5106  yyval.nodeval =
5107  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kDATE));
5108  ;
5109  break;
5110  }
5111  case 336:
5112 
5113  {
5114  yyval.nodeval =
5115  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kTIME));
5116  ;
5117  break;
5118  }
5119  case 337:
5120 
5121  {
5122  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5123  new SQLType(kTIME, yyvsp[-1].intval));
5124  ;
5125  break;
5126  }
5127  case 338:
5128 
5129  {
5130  yyval.nodeval =
5131  TrackedPtr<Node>::make(lexer.parsed_node_tokens_, new SQLType(kTIMESTAMP));
5132  ;
5133  break;
5134  }
5135  case 339:
5136 
5137  {
5138  yyval.nodeval = TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5139  new SQLType(kTIMESTAMP, yyvsp[-1].intval));
5140  ;
5141  break;
5142  }
5143  case 340:
5144 
5145  {
5146  yyval.nodeval =
5147  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5148  new SQLType(static_cast<SQLTypes>(yyvsp[0].intval),
5149  static_cast<int>(kGEOMETRY),
5150  0,
5151  false));
5152  ;
5153  break;
5154  }
5155  case 341:
5156 
5157  {
5158  yyval.nodeval = yyvsp[0].nodeval;
5159  ;
5160  break;
5161  }
5162  case 342:
5163 
5164  {
5165  yyval.nodeval = yyvsp[-2].nodeval;
5166  if (dynamic_cast<SQLType*>((yyval.nodeval)->get())->get_is_array())
5167  throw std::runtime_error("array of array not supported.");
5168  dynamic_cast<SQLType*>((yyval.nodeval)->get())->set_is_array(true);
5169  ;
5170  break;
5171  }
5172  case 343:
5173 
5174  {
5175  yyval.nodeval = yyvsp[-3].nodeval;
5176  if (dynamic_cast<SQLType*>((yyval.nodeval)->get())->get_is_array())
5177  throw std::runtime_error("array of array not supported.");
5178  dynamic_cast<SQLType*>((yyval.nodeval)->get())->set_is_array(true);
5179  dynamic_cast<SQLType*>((yyval.nodeval)->get())->set_array_size(yyvsp[-1].intval);
5180  ;
5181  break;
5182  }
5183  case 344:
5184 
5185  {
5186  yyval.intval = kPOINT;
5187  ;
5188  break;
5189  }
5190  case 345:
5191 
5192  {
5193  yyval.intval = kLINESTRING;
5194  ;
5195  break;
5196  }
5197  case 346:
5198 
5199  {
5200  yyval.intval = kPOLYGON;
5201  ;
5202  break;
5203  }
5204  case 347:
5205 
5206  {
5207  yyval.intval = kMULTIPOLYGON;
5208  ;
5209  break;
5210  }
5211  case 348:
5212 
5213  {
5214  yyval.nodeval =
5215  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5216  new SQLType(static_cast<SQLTypes>(yyvsp[-1].intval),
5217  static_cast<int>(kGEOGRAPHY),
5218  4326,
5219  false));
5220  ;
5221  break;
5222  }
5223  case 349:
5224 
5225  {
5226  yyval.nodeval =
5227  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5228  new SQLType(static_cast<SQLTypes>(yyvsp[-3].intval),
5229  static_cast<int>(kGEOGRAPHY),
5230  yyvsp[-1].intval,
5231  false));
5232  ;
5233  break;
5234  }
5235  case 350:
5236 
5237  {
5238  yyval.nodeval =
5239  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5240  new SQLType(static_cast<SQLTypes>(yyvsp[-1].intval),
5241  static_cast<int>(kGEOMETRY),
5242  0,
5243  false));
5244  ;
5245  break;
5246  }
5247  case 351:
5248 
5249  {
5250  yyval.nodeval =
5251  TrackedPtr<Node>::make(lexer.parsed_node_tokens_,
5252  new SQLType(static_cast<SQLTypes>(yyvsp[-3].intval),
5253  static_cast<int>(kGEOMETRY),
5254  yyvsp[-1].intval,
5255  false));
5256  ;
5257  break;
5258  }
5259  case 352:
5260 
5261  {
5262  const auto uc_col_name =
5263  boost::to_upper_copy<std::string>(*(yyvsp[0].stringval)->get());
5264  if (reserved_keywords.find(uc_col_name) != reserved_keywords.end()) {
5265  errors_.push_back("Cannot use a reserved keyword as column name: " +
5266  *(yyvsp[0].stringval)->get());
5267  }
5268  yyval.stringval = yyvsp[0].stringval;
5269  ;
5270  break;
5271  }
5272  case 353:
5273 
5274  {
5275  yyval.stringval = yyvsp[0].stringval;
5276  ;
5277  break;
5278  }
5279  case 354:
5280 
5281  {
5282  yyval.stringval = yyvsp[0].stringval;
5283  ;
5284  break;
5285  }
5286  }
static std::set< std::string > reserved_keywords
YY_Parser_STYPE * yyvsp
Definition: sqltypes.h:48
Definition: sqldefs.h:38
Definition: sqldefs.h:41
std::string to_string(char const *&&v)
Definition: ParserNode.h:1691
YY_Parser_STYPE yyval
Definition: sqldefs.h:37
Definition: sqltypes.h:51
Definition: sqltypes.h:52
Definition: sqldefs.h:40
Definition: sqldefs.h:69
Definition: sqltypes.h:40
Definition: sqltypes.h:44
Definition: sqldefs.h:39

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

YYBEGINDECLARELABEL YYDECLARELABEL ( yyerrlab  )
YYGOTO ( yybackup  )
YYGOTO ( yydefault  )
YYGOTO ( yynewstate  )
YYGOTO ( yyerrlab  )
YYGOTO ( yyerrlab1  )
YYGOTO ( yyerrhandle  )
YYGOTO ( yyerrdefault  )
YYLABEL ( yyerrlab  )

Definition at line 5336 of file Parser_wnd_pregen.cpp.

References count, YY_Parser_ERROR, YY_Parser_NERRS, yycheck, YYFLAG, YYLAST, yypact, and yystate.

5340  {
5341  ++YY_Parser_NERRS;
5342 
5343 #ifdef YY_Parser_ERROR_VERBOSE
5344  yyn = yypact[yystate];
5345 
5346  if (yyn > YYFLAG && yyn < YYLAST) {
5347  int size = 0;
5348  char* msg;
5349  int x, count;
5350 
5351  count = 0;
5352  /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
5353  for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char*)); x++)
5354  if (yycheck[x + yyn] == x)
5355  size += strlen(yytname[x]) + 15, count++;
5356  msg = (char*)malloc(size + 15);
5357  if (msg != 0) {
5358  strcpy(msg, "parse error");
5359 
5360  if (count < 5) {
5361  count = 0;
5362  for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char*)); x++)
5363  if (yycheck[x + yyn] == x) {
5364  strcat(msg, count == 0 ? ", expecting `" : " or `");
5365  strcat(msg, yytname[x]);
5366  strcat(msg, "'");
5367  count++;
5368  }
5369  }
5370  YY_Parser_ERROR(msg);
5371  free(msg);
5372  } else
5373  YY_Parser_ERROR("parse error; also virtual memory exceeded");
5374  } else
5375 #endif /* YY_Parser_ERROR_VERBOSE */
5376  YY_Parser_ERROR("parse error");
5377  }
static const short yypact[]
int count
#define YYFLAG
#define YY_Parser_ERROR
#define YYLAST
static const short yycheck[]
YYBEGINGOTO yystate
#define YY_Parser_NERRS
YYLABEL ( yyerrlab1  )
YYLABEL ( yyerrdefault  )

Variable Documentation

else
Initial value:
{
int yychar1
#define YY_Parser_CHAR
#define YYTRANSLATE(x)

Definition at line 2291 of file Parser_wnd_pregen.cpp.

char* f = from

Definition at line 2080 of file Parser_wnd_pregen.cpp.

Referenced by QueryFragmentDescriptor::assignFragsToKernelDispatch(), QueryFragmentDescriptor::assignFragsToMultiDispatch(), atomicSumFltSkipVal(), ResultSetReductionJIT::codegen(), GpuReductionHelperJIT::codegen(), FixedWidthInt::codegenDecode(), FixedWidthUnsigned::codegenDecode(), DiffFixedWidthInt::codegenDecode(), FixedWidthReal::codegenDecode(), FixedWidthSmallDate::codegenDecode(), org.apache.calcite.sql2rel.SqlToRelConverter::collectInsertTargets(), com.mapd.calcite.parser.MapDParser::convertSqlToRelNode(), ArrowResultSetConverter::convertToArrow(), org.apache.calcite.sql2rel.SqlToRelConverter::convertWhere(), File_Namespace::create(), File_Namespace::FileMgr::createFile(), com.mapd.tests.DateTimeTest.DateAddUnit::DateAddUnit(), com.mapd.tests.DateTimeTest.DateExtractUnit::DateExtractUnit(), Catalog_Namespace::SysCatalog::execInTransaction(), Analyzer::Expr::find_expr(), Analyzer::UOper::find_expr(), Analyzer::BinOper::find_expr(), Analyzer::InValues::find_expr(), Analyzer::CharLengthExpr::find_expr(), Analyzer::KeyForStringExpr::find_expr(), Analyzer::SampleRatioExpr::find_expr(), Analyzer::LowerExpr::find_expr(), Analyzer::CardinalityExpr::find_expr(), Analyzer::LikeExpr::find_expr(), Analyzer::RegexpExpr::find_expr(), Analyzer::LikelihoodExpr::find_expr(), Analyzer::AggExpr::find_expr(), Analyzer::CaseExpr::find_expr(), Analyzer::ExtractExpr::find_expr(), Analyzer::DateaddExpr::find_expr(), Analyzer::DatediffExpr::find_expr(), Analyzer::DatetruncExpr::find_expr(), get_gpu_data_layout(), get_gpu_target_triple_string(), org.apache.calcite.sql2rel.SqlToRelConverter::getInitializerFactory(), com.mapd.calcite.parser.MapDParser::getPlanner(), FilterSelectivity::isFilterSelectiveEnough(), CodeGenerator::link_udf_module(), org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard::lookupExp(), com.mapd.tests.DateTimeTest::main(), AutomaticIRMetadataGuard::makeQueryEngineFilename(), File_Namespace::open(), File_Namespace::FileMgr::openExistingFile(), GenericKeyHandler::operator()(), OverlapsKeyHandler::operator()(), JSON::operator[](), ArrowForeignStorageBase::parseArrowTable(), Data_Namespace::ProcMeminfoParser::ProcMeminfoParser(), Parser::QuerySpec::QuerySpec(), File_Namespace::FileBuffer::readMetadata(), reg_hex_horiz_pixel_bin_packed(), reg_hex_horiz_pixel_bin_x(), reg_hex_horiz_pixel_bin_y(), reg_hex_vert_pixel_bin_packed(), reg_hex_vert_pixel_bin_x(), reg_hex_vert_pixel_bin_y(), ArrowForeignStorageBase::setNullValues(), anonymous_namespace{NativeCodegen.cpp}::show_defined(), threadpool::FuturesThreadPoolBase< T >::spawn(), com.mapd.tests.DateTimeTest::testAdd(), com.mapd.tests.DateTimeTest::testDateAdd(), com.mapd.tests.DateTimeTest::testDateExtract(), com.mapd.tests.DateTimeTest::testDateTrunc(), com.mapd.tests.DateTimeTest::testDiff(), com.mapd.tests.DateTimeTest::testSub(), org.apache.calcite.sql2rel.SqlToRelConverter::toRel(), anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_body(), anonymous_namespace{ResultSetReductionCodegen.cpp}::translate_for(), translate_function(), anonymous_namespace{ExpressionRewrite.cpp}::ConstantFoldingVisitor::visitBinOper(), and File_Namespace::FileBuffer::writeMetadata().

int i = count

Definition at line 2082 of file Parser_wnd_pregen.cpp.

Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), anonymous_namespace{GroupByAndAggregate.cpp}::add_transient_string_literals_for_expression(), import_export::TypedImportBuffer::add_values(), anonymous_namespace{RelAlgDagBuilder.cpp}::add_window_function_pre_project(), com.omnisci.jdbc.OmniSciPreparedStatement::addBatch(), Fragmenter_Namespace::InsertOrderFragmenter::addColumns(), anonymous_namespace{RelAlgDagBuilder.cpp}::RANodeIterator::advance(), advance_target_ptr_col_wise(), advance_target_ptr_row_wise(), QueryMemoryInitializer::allocateCountDistinctGpuMem(), Catalog_Namespace::Catalog::alterTableMetadata(), Parser::ColumnRef::analyze(), Parser::SelectStmt::analyze(), Parser::InsertStmt::analyze(), Parser::QuerySpec::analyze_group_by(), anonymous_namespace{RelAlgOptimizer.cpp}::any_dead_col_in(), com.omnisci.jdbc.OmniSciEscapeFunctions::appendCall(), foreign_storage::ParquetArrayEncoder::appendData(), foreign_storage::ParquetStringNoneEncoder::appendData(), DateDaysEncoder< T, V >::appendData(), FixedLengthEncoder< T, V >::appendData(), NoneEncoder< T >::appendData(), foreign_storage::ParquetInPlaceEncoder::appendData(), StringNoneEncoder::appendData(), FixedLengthArrayNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), foreign_storage::ParquetGeospatialEncoder::appendData(), foreign_storage::TypedParquetInPlaceEncoder< int64_t, int32_t >::appendData(), foreign_storage::ParquetFixedLengthArrayEncoder::appendNullFixedLengthArray(), StringDictionary::appendToStorageBulk(), anonymous_namespace{WindowContext.cpp}::apply_permutation_to_partition(), BaselineJoinHashTable::approximateTupleCount(), OverlapsJoinHashTable::approximateTupleCount(), area_ring(), anonymous_namespace{ExtensionFunctionsArray.hpp}::array_append_impl(), ArrowResultSet::ArrowResultSet(), SpeculativeTopNMap::asRows(), anonymous_namespace{ResultSetSortImpl.cu}::baseline_sort_fp(), anonymous_namespace{ResultSetSortImpl.cu}::baseline_sort_int(), com.omnisci.jdbc.OmniSciPrepareTest::batchTest(), bind_function(), anonymous_namespace{RelAlgDagBuilder.cpp}::bind_inputs(), anonymous_namespace{RelAlgDagBuilder.cpp}::bind_project_to_input(), anonymous_namespace{RelAlgDagBuilder.cpp}::bind_table_func_to_input(), bitmap_set_size(), bitmap_set_union(), ResultSetLogicalValuesBuilder::build(), anonymous_namespace{ResultSetIteration.cpp}::build_array_target_value(), anonymous_namespace{RelAlgExecutionDescriptor.cpp}::build_dag(), build_du_web(), anonymous_namespace{RelAlgExecutor.cpp}::build_logical_expression(), anonymous_namespace{RelAlgExecutor.cpp}::build_render_targets(), anonymous_namespace{ResultSetIteration.cpp}::build_string_array_target_value(), QueryFragmentDescriptor::buildFragmentPerKernelForTable(), StringDictionary::buildSortedCache(), Catalog_Namespace::SysCatalog::buildUserRoleMap(), calculateFragmentsOffsets(), Catalog_Namespace::Catalog::calculateSHA1(), anonymous_namespace{ExtensionsIR.cpp}::call_requires_custom_type_handling(), CartesianProductIterator< T >::CartesianProductIterator(), Analyzer::Constant::cast_number(), centroid_add_linestring(), centroid_add_ring(), anonymous_namespace{QueryMemoryInitializer.cpp}::check_total_bitmap_memory(), RelLogicalUnion::checkForMatchingMetaInfoTypes(), anonymous_namespace{RelAlgDagBuilder.cpp}::coalesce_nodes(), TargetExprCodegen::codegen(), GroupByAndAggregate::codegen(), CodeGenerator::codegenArrayExpr(), CodeGenerator::codegenColVar(), CodeGenerator::codegenFunctionOper(), CodeGenerator::codegenFunctionOperCastArgs(), CodeGenerator::codegenFunctionOperNullArg(), CodeGenerator::codegenGeoBinOper(), CodeGenerator::codegenGeoUOper(), BaselineJoinHashTable::codegenKey(), CodeGenerator::codegenOuterJoinNullPlaceholder(), GpuSharedMemCodeBuilder::codegenReduction(), Analyzer::ArrayExpr::collect_column_var(), Analyzer::ArrayExpr::collect_rte_idx(), org.apache.calcite.rel.rules.OuterJoinOptViaNullRejectionRule::collectFilterCondition(), org.apache.calcite.sql2rel.SqlToRelConverter::collectInsertTargets(), org.apache.calcite.rel.rules.OuterJoinOptViaNullRejectionRule::collectProjectNode(), ColSlotContext::ColSlotContext(), anonymous_namespace{ColumnFetcher.cpp}::columnarize_result(), ColumnarResults::ColumnarResults(), anonymous_namespace{QueryMemoryInitializer.cpp}::compact_projection_buffer_for_cpu_columnar(), compare_to_key(), ScalarCodeGenerator::compile(), Geospatial::compress_coords(), compress_reference_path(), WindowFunctionContext::compute(), compute_bounds_of_coords(), compute_bucket_sizes_on_cpu(), com.omnisci.jdbc.OmniSciConnection.Connection_properties::Connection_properties(), anonymous_namespace{ArrowResultSetConverter.cpp}::convert_column(), convert_decimal_value_to_scale(), ArrowForeignStorageBase::convertArrowDictionary(), org.apache.calcite.sql2rel.SqlToRelConverter::convertColumnList(), org.apache.calcite.sql2rel.SqlToRelConverter::convertIdentifier(), org.apache.calcite.sql2rel.SqlToRelConverter::convertMultisets(), org.apache.calcite.sql2rel.SqlToRelConverter::convertOrder(), DBHandler::convertRows(), org.apache.calcite.sql2rel.SqlToRelConverter::convertSelectImpl(), org.apache.calcite.sql2rel.SqlToRelConverter::convertSelectList(), ArrowResultSetConverter::convertToArrow(), copy_group_by_buffers_from_gpu(), copy_projection_buffer_from_gpu_columnar(), ResultSet::copyColumnIntoBuffer(), anonymous_namespace{OverlapsJoinHashTable.cpp}::correct_uninitialized_bucket_sizes_to_thresholds(), count_zeros(), anonymous_namespace{RelAlgDagBuilder.cpp}::create_compound(), create_dev_group_by_buffers(), anonymous_namespace{ResultSetReductionJIT.cpp}::create_llvm_function(), com.omnisci.jdbc.OmniSciStatementTest::create_times(), com.omnisci.jdbc.OmniSciStatementTest::create_types(), Catalog_Namespace::Catalog::createDashboardSystemRoles(), ArrowForeignStorageBase::createDecimalColumn(), ArrowForeignStorageBase::createDictionaryEncodedColumn(), org.apache.calcite.sql2rel.SqlToRelConverter::createInsertBlackboard(), CodeGenerator::createInValuesBitmap(), com.mapd.utility.SQLImporter::createMapDTable(), Catalog_Namespace::Catalog::createShardedTable(), org.apache.calcite.sql2rel.SqlToRelConverter::createSource(), RelAlgExecutor::createTableFunctionWorkUnit(), Catalog_Namespace::SysCatalog::createUserRoles(), anonymous_namespace{RelAlgExecutor.cpp}::decide_approx_count_distinct_implementation(), Analyzer::anonymous_namespace{Analyzer.cpp}::decimal_to_int_frac(), foreign_storage::ParquetInPlaceEncoder::decodeNullsAndEncodeData(), Geospatial::decompress_geo_coords_geoint32(), Analyzer::FunctionOper::deep_copy(), Analyzer::FunctionOperWithCustomTypeHandling::deep_copy(), com.mapd.calcite.parser.MapDParser::desugar(), DBHandler::detect_column_types(), import_export::Detector::detect_column_types(), anonymous_namespace{RelAlgDagBuilder.cpp}::disambiguate_case(), anonymous_namespace{RelAlgDagBuilder.cpp}::disambiguate_operator(), details::RelAlgDispatcher::dispatchAggregate(), details::RelAlgDispatcher::dispatchTableFunction(), distance_point_linestring(), distance_ring_linestring(), distance_ring_ring(), org.apache.calcite.sql2rel.SqlToRelConverter::distinctify(), import_export::Loader::distributeToShardsExistingColumns(), anonymous_namespace{ResultSetSortImpl.cu}::do_radix_sort(), com.mapd.bench.Benchmark::doWork(), Catalog_Namespace::Catalog::dropTable(), eliminate_dead_columns(), foreign_storage::ParquetStringEncoder< V >::encodeAndCopyContiguous(), foreign_storage::TypedParquetInPlaceEncoder< int64_t, int32_t >::encodeAndCopyContiguous(), com.omnisci.jdbc.OmniSciStatementTest::escape_function1(), com.omnisci.jdbc.OmniSciStatementTest::escape_function2(), com.omnisci.jdbc.OmniSciStatementTest::escape_function3(), Parser::DropColumnStmt::execute(), Parser::GrantPrivilegesStmt::execute(), Parser::RevokePrivilegesStmt::execute(), com.omnisci.jdbc.OmniSciPreparedStatement::executeBatch(), RelAlgExecutor::executeLogicalValues(), Executor::executePlanWithoutGroupBy(), com.mapd.utility.SQLImporter::executeQuery(), RelAlgExecutor::executeRelAlgQueryNoRetry(), RelAlgExecutor::executeRelAlgSeq(), RelAlgExecutor::executeRelAlgSubSeq(), Executor::executeWorkUnitPerFragment(), exp_to_scale(), com.mapd.calcite.parser.MapDParser::expand(), import_export::anonymous_namespace{Importer.cpp}::explode_collections_step1(), import_export::QueryExporterCSV::exportResults(), import_export::QueryExporterGDAL::exportResults(), expr_list_match(), anonymous_namespace{ExtensionsIR.cpp}::ext_func_call_requires_nullcheck(), anonymous_namespace{ResultSetIteration.cpp}::GeoQueryOutputFetchHandler::fetch(), Executor::fetchUnionChunks(), fill_empty_device_key(), anonymous_namespace{ResultSetReduction.cpp}::fill_empty_key_32(), anonymous_namespace{ResultSetReduction.cpp}::fill_empty_key_64(), anonymous_namespace{Execute.cpp}::fill_entries_for_empty_input(), import_export::fill_missing_columns(), fill_one_to_many_baseline_hash_table(), fill_one_to_many_hash_table_impl(), fill_one_to_many_hash_table_sharded_impl(), anonymous_namespace{ResultSetReduction.cpp}::fill_slots(), ResultSetStorage::fillOneEntryColWise(), ResultSetStorage::fillOneEntryRowWise(), WindowFunctionContext::fillPartitionEnd(), WindowFunctionContext::fillPartitionStart(), import_export::delimited_parser::find_beginning(), find_hoistable_conditions(), find_push_down_filters(), com.omnisci.jdbc.OmniSciPrepareTest::formBatch(), anonymous_namespace{JoinLoopTest.cpp}::generate_descriptors(), generate_random_string(), TableFunctionCompilationContext::generateEntryPoint(), TableFunctionCompilationContext::generateGpuKernel(), StubGenerator::generateStub(), Geospatial::GeoLineString::GeoLineString(), Geospatial::GeoMultiPolygon::GeoMultiPolygon(), Geospatial::GeoPolygon::GeoPolygon(), anonymous_namespace{RelAlgExecutor.cpp}::get_bitwise_equals_conjunction(), get_col_byte_widths(), anonymous_namespace{QueryMemoryInitializer.cpp}::get_consistent_frag_size(), get_harmonic_mean_denominator(), import_export::Detector::get_headers(), get_heap_key_slot_index(), import_export::Importer::get_import_buffers(), anonymous_namespace{RelAlgTranslator.cpp}::get_in_values_expr(), get_inner_query_info(), anonymous_namespace{RelAlgExecutor.cpp}::get_inputs_meta(), anonymous_namespace{FromTableReordering.cpp}::get_join_qual_cost(), anonymous_namespace{RelAlgExecutor.cpp}::get_left_deep_join_input_sizes(), anonymous_namespace{RelAlgOptimizer.cpp}::get_live_ins(), get_matching_baseline_hash_slot_at(), get_matching_group_value(), get_matching_group_value_columnar(), anonymous_namespace{ResultSetReduction.cpp}::get_matching_group_value_columnar_reduction(), get_matching_group_value_columnar_slot(), get_matching_group_value_perfect_hash(), anonymous_namespace{ResultSetReduction.cpp}::get_matching_group_value_reduction(), get_max_with_row_offset(), Fragmenter_Namespace::get_null_padding(), anonymous_namespace{RelAlgExecutor.cpp}::get_order_entries(), import_export::delimited_parser::get_row(), anonymous_namespace{RelAlgExecutor.cpp}::get_shard_for_key(), get_table_id_to_frag_offsets(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs(), Fragmenter_Namespace::get_var_len_null_array_indexes(), anonymous_namespace{RelAlgOptimizer.cpp}::get_visible_projects(), Analyzer::FunctionOper::getArg(), com.omnisci.jdbc.OmniSciResultSet::getArray(), ArrowResultSetConverter::getArrowBatch(), QueryMemoryDescriptor::getBufferColSlotCount(), RelSort::getCollation(), Geospatial::GeoLineString::getColumns(), StringDictionary::getCompare(), org.apache.calcite.sql2rel.SqlToRelConverter::getCorrelationUse(), Analyzer::ArrayExpr::getElement(), shared::getExpOfTwo(), RelScan::getFieldName(), RelProject::getFieldName(), RelAggregate::getFieldName(), RelCompound::getFieldName(), UdfCompiler::getFileExt(), TableOptimizer::getFragmentIndexes(), SharedKernelContext::getFragOffsets(), Catalog_Namespace::SysCatalog::getGranteesOfSharedDashboards(), RelAlgTranslator::getInIntegerSetExpr(), Executor::getInnerTabIdToJoinCond(), getLeafColumnRange(), com.omnisci.jdbc.OmniSciPreparedStatement::getMetaData(), StringDictionary::getOrAddBulkArray(), StringDictionary::getOrAddBulkRemote(), CgenState::getOrAddLiteral(), Analyzer::FunctionOper::getOwnArg(), QueryMemoryDescriptor::getPaddedColWidthForRange(), Catalog_Namespace::Catalog::getPhysicalTablesDescriptors(), com.omnisci.jdbc.OmniSciPreparedStatement::getQuery(), com.omnisci.jdbc.OmniSciArray::getResultSet(), QueryExecutionContext::getRowSet(), StorageIOFacility::getRsBufferNoPadding(), RelCompound::getScalarSource(), Catalog_Namespace::Catalog::getShardColumnMetadataForTable(), ResultSet::getStorageIndex(), getSyntheticInputTableInfo(), Catalog_Namespace::Catalog::getTableEpoch(), RelCompound::getTargetExpr(), Fragmenter_Namespace::InsertOrderFragmenter::getVacuumOffsets(), omnisci::glob(), anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::hasAllSrcReady(), RelSort::hasEquivCollationOf(), anonymous_namespace{StringDictionary.cpp}::hash_string(), CodeGenerator::hashJoinLhsTuple(), Geospatial::anonymous_namespace{Types.cpp}::hex_string_to_binary_vector(), hoist_filter_cond_to_cross_join(), import_export::import_thread_delimited(), import_export::Importer::importDelimited(), import_export::Importer::Importer(), import_export::Importer::importGDAL(), StringDictionary::increaseHashTableCapacity(), StringDictionary::increaseHashTableCapacityFromStorageAndMemory(), anonymous_namespace{WindowContext.cpp}::index_to_cume_dist(), anonymous_namespace{WindowContext.cpp}::index_to_dense_rank(), anonymous_namespace{WindowContext.cpp}::index_to_ntile(), anonymous_namespace{WindowContext.cpp}::index_to_partition_end(), anonymous_namespace{WindowContext.cpp}::index_to_percent_rank(), anonymous_namespace{WindowContext.cpp}::index_to_rank(), anonymous_namespace{WindowContext.cpp}::index_to_row_number(), logger::init(), init_agg_val_vec(), init_baseline_hash_join_buff(), init_columnar_buffer(), init_columnar_group_by_buffer_gpu_impl(), init_group_by_buffer_gpu(), init_hash_join_buff(), init_render_buffer(), anonymous_namespace{QueryMemoryInitializer.cpp}::initColumnarBuffer(), QueryMemoryInitializer::initColumnarGroups(), result_set::initialize_target_values_for_storage(), ResultSetStorage::initializeColWise(), ResultSetStorage::initializeRowWise(), ResultSet::initPermutationBuffer(), import_export::anonymous_namespace{QueryExporterGDAL.cpp}::insert_array_column(), insert_sorted(), Fragmenter_Namespace::InsertOrderFragmenter::insertDataImpl(), anonymous_namespace{RelAlgOptimizer.cpp}::is_identical_copy(), is_trivial_loop_join(), anonymous_namespace{ExtensionFunctionsBinding.cpp}::is_valid_identifier(), CudaMgr_Namespace::CudaMgr::isArchMaxwellOrLaterForAll(), CudaMgr_Namespace::CudaMgr::isArchVoltaOrGreaterForAll(), RelProject::isIdentity(), RelProject::isRenaming(), com.mapd.parser.server.ExtensionFunctionSignatureParser::join(), JoinColumnTupleIterator::JoinColumnTupleIterator(), TableFunctionExecutionContext::launchCpuCode(), QueryExecutionContext::launchCpuCode(), TableFunctionExecutionContext::launchGpuCode(), QueryExecutionContext::launchGpuCode(), length_linestring(), linestring_intersects_line(), linestring_intersects_linestring(), org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard::lookupExp(), anonymous_namespace{CompareIR.cpp}::lower_multicol_compare(), main(), anonymous_namespace{ResultSetReduction.cpp}::make_key(), ArrowForeignStorageBase::makeFragment(), ResultSet::makeGeoTargetValue(), anonymous_namespace{RelAlgOptimizer.cpp}::mark_live_columns(), ColumnarResults::materializeAllColumnsThroughIteration(), ColumnarResults::materializeAllLazyColumns(), ResultSet::ResultSetComparator< BUFFER_ITERATOR_TYPE >::materializeApproxMedianColumn(), ResultSet::ResultSetComparator< BUFFER_ITERATOR_TYPE >::materializeCountDistinctColumn(), max_distance_point_linestring(), quantile::detail::Centroids< RealType, IndexType >::mean(), migrations::MigrationMgr::migrateDateInDaysMetadata(), Catalog_Namespace::SysCatalog::migrateDBAccessPrivileges(), Catalog_Namespace::SysCatalog::migratePrivileges(), msg_consume(), multifrag_query(), multifrag_query_hoisted_literals(), anonymous_namespace{RelAlgDagBuilder.cpp}::n_outputs(), normalize_column_pairs(), JoinColumnTupleIterator::operator bool(), double_sort::Iterator< T0, T1 >::operator+(), JoinColumnTupleIterator::operator++(), double_sort::Iterator< T0, T1 >::operator+=(), double_sort::Iterator< T0, T1 >::operator-(), boost::log::operator<<(), operator<<(), logger::operator<<(), quantile::detail::operator<<(), OverlapsHashTableCacheKey::operator==(), QueryMemoryDescriptor::operator==(), Analyzer::FunctionOper::operator==(), Analyzer::FunctionOperWithCustomTypeHandling::operator==(), Analyzer::ArrayExpr::operator==(), VectorView< RealType >::operator[](), ResultSet::parallelRowCount(), ResultSet::parallelTop(), foreign_storage::csv_file_buffer_parser::parse_buffer(), foreign_storage::parse_file_regions(), parse_numeric(), import_export::delimited_parser::parse_string_array(), Archive::parse_url(), ArrowForeignStorageBase::parseArrowTable(), ParserWrapper::ParserWrapper(), RebalanceCb::part_list_print(), partial_bitmap_union(), com.omnisci.jdbc.OmniSciPrepareTest::partialBatchTest(), foreign_storage::partition_for_threads(), polygon_contains_linestring(), polygon_contains_point(), StringDictionary::populate_string_array_ids(), foreign_storage::CsvDataWrapper::populateChunkMetadata(), foreign_storage::CsvDataWrapper::populateChunks(), Parser::InsertIntoTableAsSelectStmt::populateData(), Executor::preloadFragOffsets(), anonymous_namespace{Types.cpp}::process_poly_ring(), DictionaryValueConverter< TARGET_TYPE >::processBuffer(), anonymous_namespace{RelAlgOptimizer.cpp}::propagate_input_renumbering(), anonymous_namespace{RelAlgOptimizer.cpp}::propagate_rex_input_renumber(), query_template_impl(), QueryDispatchQueue::QueryDispatchQueue(), QueryMemoryInitializer::QueryMemoryInitializer(), ra_exec_unit_desc_for_caching(), ArrowForeignStorageBase::read(), File_Namespace::FileBuffer::read(), read_stub_arg_double(), read_stub_arg_float(), read_stub_arg_int(), read_stub_arg_pvoid(), read_template_module(), import_export::Importer::readMetadataSampleGDAL(), anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::RebindRexInputsFromLeftDeepJoin(), Executor::redeclareFilterFunction(), anonymous_namespace{RelAlgOptimizer.cpp}::redirect_inputs_of(), ResultSetStorage::reduce(), reduce_estimator_results(), Executor::reduceMultiDeviceResultSets(), Executor::reduceResults(), org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard::register(), RelTableFunction::RelTableFunction(), anonymous_namespace{RelAlgDagBuilder.cpp}::remapTargetPointers(), AutomaticIRMetadataGuard::rememberOurInstructions(), Catalog_Namespace::Catalog::removeTableFromMap(), Catalog_Namespace::Catalog::renameColumn(), Catalog_Namespace::Catalog::renamePhysicalTable(), Catalog_Namespace::Catalog::renameTable(), anonymous_namespace{GpuSharedMemoryUtils.cpp}::replace_called_function_with(), UdfCompiler::replaceExtn(), com.mapd.calcite.parser.MapDParser::replaceIsTrue(), anonymous_namespace{RelAlgDagBuilder.cpp}::anonymous_namespace{RelAlgDagBuilder.cpp}::reproject_targets(), com.mapd.utility.SQLImporter::resetBinaryColumn(), ArrowResultSet::resultSetArrowLoopback(), anonymous_namespace{RelAlgExecutor.cpp}::reverse_logical_distribution(), ResultSetStorage::rewriteAggregateBufferOffsets(), org.apache.calcite.sql2rel.SqlToRelConverter::rewriteAggregateWithGroupId(), QueryRewriter::rewriteConstrainedByInImpl(), com.mapd.calcite.parser.MapDParser::rewriteUpdateAsSelect(), anonymous_namespace{RelAlgExecutor.cpp}::rex_to_conjunctive_form(), row_adder(), row_addsub(), row_copier(), anonymous_namespace{QueryTemplateGenerator.cpp}::row_process(), RowSetMemoryOwner::RowSetMemoryOwner(), Worker::run(), com.mapd.logrunner.LogRunner.myThread::run(), com.mapd.tests.CatalogConcurrencyTest::run_test(), com.mapd.tests.EagainConcurrencyTest::run_test(), com.mapd.tests.SelectCopyFromDeleteConcurrencyTest::run_test(), ReductionInterpreterImpl::runFor(), Calcite::runServer(), com.mapd.tests.ForeignTableRefreshConcurrencyTest::runTest(), com.mapd.tests.ImportAlterValidateSelectConcurrencyTest::runTest(), com.mapd.tests.DistributedConcurrencyTest::runTest(), com.mapd.tests.SelectUpdateDeleteDifferentTables::runTest(), com.mapd.tests.AlterDropTruncateValidateConcurrencyTest::runTest(), com.mapd.tests.CtasItasSelectUpdelConcurrencyTest::runTest(), com.mapd.tests.UpdateDeleteInsertConcurrencyTest::runTest(), com.mapd.tests.CatalogConcurrencyTest::runTest(), com.mapd.tests.EagainConcurrencyTest::runTest(), com.mapd.tests.SelectCopyFromDeleteConcurrencyTest::runTest(), sameTypeInfo(), anonymous_namespace{RelAlgDagBuilder.cpp}::separate_window_function_expressions(), foreign_storage::csv_file_buffer_parser::set_array_flags_and_geo_columns_count(), set_matching_group_value_perfect_hash_columnar(), set_valid_pos(), set_valid_pos_flag(), ColumnsForDevice::setBucketInfo(), Catalog_Namespace::Catalog::setTableEpoch(), Catalog_Namespace::Catalog::setTableFileMgrParams(), com.mapd.utility.SQLImporter::setupBinaryColumn(), Fragmenter_Namespace::shuffleByIndexesImpl(), sift_down(), sift_up(), simplify_sort(), sink_projected_boolean_expr_to_join(), Executor::skipFragmentPair(), File_Namespace::FileMgr::sortAndCopyFilePagesForCompaction(), Fragmenter_Namespace::SortedOrderFragmenter::sortData(), SpeculativeTopNMap::SpeculativeTopNMap(), split(), ST_Contains_Point_LineString(), ST_XMax(), ST_XMin(), ST_YMax(), ST_YMin(), start_calcite_server_as_daemon(), RaExecutionSequence::stepsToNextBroadcast(), stream_insert(), string_ilike_simple(), string_like_simple(), import_export::StringToArray(), strip(), anonymous_namespace{RelAlgOptimizer.cpp}::sweep_dead_columns(), synthesize_metadata(), anonymous_namespace{RelAlgExecutor.cpp}::target_exprs_for_union(), ThriftSerializers::target_meta_infos_to_thrift(), Parser::LikeExpr::test_is_simple_expr(), com.mapd.tests.ForeignTableRefreshConcurrencyTest::testConcurrency(), com.mapd.parser.server.test.TestMapDServer::testThreadedCall(), com.mapd.parser.server.test.TestServer::testThreadedCall(), com.mapd.tests.CalciteViewsConcurrencyTest::testViewsResolutionConcurrency(), org.apache.calcite.rel.externalize.MapDRelJson::toRex(), HashTable::toString(), ColSlotContext::toString(), com.mapd.parser.extension.ddl.SqlKeyConstraint::toString(), toString(), anonymous_namespace{HashJoin.cpp}::toStringFlat(), anonymous_namespace{RelAlgTranslator.cpp}::translate_collation(), anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources(), anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources_for_update(), anonymous_namespace{RelAlgExecutor.cpp}::translate_targets(), RelAlgTranslator::translateCase(), RelAlgTranslator::translateFunction(), RelAlgTranslator::translateFunctionArgs(), RelAlgTranslator::translateGeoColumn(), org.apache.calcite.sql2rel.SqlToRelConverter::translateIn(), RelAlgTranslator::translateOper(), RelAlgTranslator::translateWindowFunction(), tree_string(), import_export::trim_space(), Catalog_Namespace::Catalog::truncateTable(), anonymous_namespace{RelAlgOptimizer.cpp}::try_insert_coalesceable_proj(), Geospatial::unpack_geo_vector(), Geospatial::unpack_geo_vector< int32_t >(), FixedLengthArrayNoneEncoder::update_elem_stats(), ArrayNoneEncoder::update_elem_stats(), Catalog_Namespace::SysCatalog::updateBlankPasswordsToRandom(), Fragmenter_Namespace::InsertOrderFragmenter::updateColumns(), Catalog_Namespace::Catalog::updateDeletedColumnIndicator(), Catalog_Namespace::Catalog::updateDictionaryNames(), Catalog_Namespace::Catalog::updateDictionarySchema(), Catalog_Namespace::Catalog::updateFrontendViewSchema(), Catalog_Namespace::Catalog::updateLinkSchema(), Catalog_Namespace::Catalog::updateLogicalToPhysicalTableMap(), foreign_storage::ParquetStringEncoder< V >::updateMetadataStats(), Catalog_Namespace::Catalog::updatePageSize(), Catalog_Namespace::SysCatalog::updatePasswordsToHashes(), DateDaysEncoder< T, V >::updateStats(), FixedLengthEncoder< T, V >::updateStats(), NoneEncoder< T >::updateStats(), FixedLengthEncoder< T, V >::updateStatsEncoded(), NoneEncoder< T >::updateStatsEncoded(), Catalog_Namespace::SysCatalog::updateSupportUserDeactivation(), Catalog_Namespace::Catalog::updateTableDescriptorSchema(), Catalog_Namespace::SysCatalog::updateUserSchema(), Archive::url_part(), Fragmenter_Namespace::InsertOrderFragmenter::vacuum_varlen_rows(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_column_mapping_and_row_group_metadata(), foreign_storage::anonymous_namespace{LazyParquetChunkLoader.cpp}::validate_equal_schema(), com.mapd.utility.SQLImporter::verifyColumnSignaturesMatch(), RelAlgVisitor< std::unordered_set< int > >::visit(), RelRexDagVisitor::visit(), DeepCopyVisitor::visitArrayOper(), anonymous_namespace{ExpressionRewrite.cpp}::ArrayElementStringLiteralEncodingVisitor::visitArrayOper(), ScalarExprVisitor< std::unordered_set< InputColDescriptor > >::visitArrayOper(), RexVisitor< std::unordered_set< const RexInput * > >::visitCase(), RexDeepCopyVisitor::visitCase(), anonymous_namespace{RelAlgDagBuilder.cpp}::WindowFunctionDetectionVisitor::visitCase(), anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::visitCase(), anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitCompound(), ScalarExprToSql::visitFunctionOper(), DeepCopyVisitor::visitFunctionOper(), ScalarExprVisitor< std::unordered_set< InputColDescriptor > >::visitFunctionOper(), anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor::visitFunctionOper(), DeepCopyVisitor::visitFunctionOperWithCustomTypeHandling(), anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::visitInput(), org.apache.calcite.sql2rel.SqlToRelConverter.RexAccessShuttle::visitInputRef(), anonymous_namespace{RelAlgOptimizer.cpp}::RexRebindInputsVisitor::visitNode(), anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RexPhysicalInputsVisitor::visitOperator(), RexVisitor< std::unordered_set< const RexInput * > >::visitOperator(), RexDeepCopyVisitor::visitOperator(), anonymous_namespace{RelAlgDagBuilder.cpp}::WindowFunctionDetectionVisitor::visitOperator(), anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::visitOperator(), anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitProject(), RelProject::visitScalarExprs(), ScalarExprToSql::visitWindowFunction(), RexDeepCopyVisitor::visitWindowFunctionOperator(), Worker::Worker(), Buffer_Namespace::Buffer::write(), StorageIOFacility::yieldDeleteCallback(), and StorageIOFacility::yieldUpdateCallback().

* t = to

Definition at line 2081 of file Parser_wnd_pregen.cpp.

Referenced by Parser::QuerySpec::analyze_group_by(), Parser::IntLiteral::analyzeValue(), com.omnisci.jdbc.OmniSciColumnTypeTest.Answer::Answer(), any_bits_set(), anonymous_namespace{OverlapsJoinHashTable.cpp}::BucketSizeTuner::bucketThresholdsBelowMinThreshold(), DBHandler::detect_column_types(), RowToColumnLoader::do_load(), com.mapd.bench.BenchmarkCloud::doWork(), import_export::Detector::find_best_sqltypes(), ThreadController_NS::SimpleThreadController< FutureReturnType >::finish(), Calcite::get_db_objects(), table_functions::TableFunction::getArgs(), Geospatial::GeoTypesFactory::getNullGeoColumns(), com.mapd.calcite.parser.MapDParser::getPlanner(), PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu(), TableFunctionExecutionContext::launchCpuCode(), main(), com.mapd.common.SockTransportProperties::openServerTransportEncrypted(), operator~(), RowToColumnLoader::RowToColumnLoader(), com.mapd.tests.ForeignStorageConcurrencyTest::runTest(), com.mapd.tests.ForeignTableRefreshConcurrencyTest::runTest(), com.mapd.tests.ImportAlterValidateSelectConcurrencyTest::runTest(), com.mapd.tests.DistributedConcurrencyTest::runTest(), com.mapd.tests.SelectUpdateDeleteDifferentTables::runTest(), com.mapd.tests.AlterDropTruncateValidateConcurrencyTest::runTest(), com.mapd.tests.CtasItasSelectUpdelConcurrencyTest::runTest(), com.mapd.tests.UpdateDeleteInsertConcurrencyTest::runTest(), com.mapd.tests.CatalogConcurrencyTest::runTest(), com.mapd.tests.EagainConcurrencyTest::runTest(), com.mapd.tests.SelectCopyFromDeleteConcurrencyTest::runTest(), Catalog_Namespace::SessionInfo::set_executor_device_type(), Analyzer::Query::set_stmt_type(), SQLTypeInfo::set_type(), com.mapd.utility.SQLImporter::setColValue(), query_state::QueryState::setQuerySubmittedTime(), com.mapd.tests.CalciteViewsConcurrencyTest::testViewsResolutionConcurrency(), time_wrap(), ExtensionFunctionsWhitelist::toString(), ExtensionFunctionsWhitelist::toStringSQL(), RelAlgTranslator::translateFunction(), anonymous_namespace{OverlapsJoinHashTable.cpp}::BucketSizeTuner::tuneLargerOneStep(), anonymous_namespace{OverlapsJoinHashTable.cpp}::BucketSizeTuner::tuneSmallerOneStep(), Fragmenter_Namespace::wait_cleanup_threads(), StorageIOFacility::yieldDeleteCallback(), and StorageIOFacility::yieldUpdateCallback().

YY_Parser_CHAR = YYEMPTY

Definition at line 2152 of file Parser_wnd_pregen.cpp.

YY_Parser_STYPE YY_Parser_LVAL

Definition at line 2019 of file Parser_wnd_pregen.cpp.

YY_Parser_NERRS = 0

Definition at line 2021 of file Parser_wnd_pregen.cpp.

int YY_Parser_PARSE_PARAM_DEF
Initial value:
{
int yystate
YYBEGINGOTO yystate

Definition at line 2102 of file Parser_wnd_pregen.cpp.

YYACCEPT

Definition at line 2329 of file Parser_wnd_pregen.cpp.

int yychar1 = 0

Definition at line 2108 of file Parser_wnd_pregen.cpp.

const short yycheck[]
static

Definition at line 1786 of file Parser_wnd_pregen.cpp.

Referenced by YYLABEL().

const short yydefact[]
static

Definition at line 1537 of file Parser_wnd_pregen.cpp.

const short yydefgoto[]
static
Initial value:
= {
19, 20, 21, 22, 23, 24, 25, 26, 366, 367, 126, 71, 27, 28, 29, 30,
133, 31, 32, 33, 34, 359, 474, 35, 36, 243, 244, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 379, 380, 381, 586, 587, 382, 391, 230, 49,
278, 114, 348, 349, 469, 561, 50, 51, 52, 104, 341, 342, 53, 256, 238, 355,
54, 55, 56, 57, 204, 315, 428, 429, 257, 539, 647, 607, 205, 206, 207, 208,
209, 547, 210, 211, 548, 212, 332, 453, 213, 300, 292, 408, 214, 215, 216, 217,
218, 219, 220, 221, 222, 312, 313, 430, 157, 265, 92, 266, 267, 268, 94, 95,
275, 390, 223, 412, 224, 225, 226, 383, 537}

Definition at line 1580 of file Parser_wnd_pregen.cpp.

yyerrstatus = 0

Definition at line 2107 of file Parser_wnd_pregen.cpp.

yylen = yyr2[yyn]

Definition at line 2141 of file Parser_wnd_pregen.cpp.

yyn = yypact[yystate]

Definition at line 2104 of file Parser_wnd_pregen.cpp.

Referenced by if().

const short yypact[]
static

Definition at line 1590 of file Parser_wnd_pregen.cpp.

Referenced by YYLABEL().

const short yypgoto[]
static
Initial value:
= {
-32768, 726, -32768, -32768, -32768, -32768, -32768, -32768, -224, 263,
259, -32768, -32768, -32768, -32768, -32768, 281, -32768, -32768, -32768,
-32768, 510, -32768, -32768, -32768, -32768, 383, -32768, -32768, -32768,
-32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -32768, -152,
257, -347, 166, -32768, -32768, -489, -156, -32768, -32768, -32768,
-32768, 284, 408, 291, -32768, -32768, -32768, -32768, -32768, 293,
-32768, -232, -32768, -32768, -32768, 739, -89, -294, -32768, -32768,
-32768, 225, -32768, -32768, -32768, -32768, -164, -32768, -32768, -32768,
-32768, -332, -32768, -32768, -306, -32768, -32768, -32768, -32768, -215,
-32768, -32768, -32768, -32768, -32768, -147, 432, -32768, -301, -32768,
-193, -32768, 483, -3, -32768, -51, 751, 49, -157, 387,
762, 624, 618, 498, -161, -274, -369, 480, -32768, -210,
-32768}

Definition at line 1661 of file Parser_wnd_pregen.cpp.

const short yyr1[]
static
Initial value:
= {
0, 167, 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 170,
171, 172, 173, 174, 174, 175, 175, 176, 177, 177, 178, 178, 179, 180, 180, 181, 182,
183, 183, 184, 185, 186, 187, 188, 188, 189, 189, 190, 190, 191, 192, 192, 193, 194,
194, 195, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 206, 207, 207,
208, 208, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211,
211, 211, 211, 211, 212, 212, 213, 213, 214, 215, 215, 216, 216, 217, 217, 218, 218,
219, 219, 219, 220, 220, 220, 168, 221, 221, 221, 221, 222, 223, 223, 224, 224, 224,
225, 225, 226, 227, 228, 228, 229, 229, 229, 230, 230, 230, 231, 232, 232, 232, 233,
233, 234, 235, 235, 236, 237, 237, 238, 238, 239, 240, 240, 241, 241, 242, 242, 243,
243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 246, 246, 247,
247, 247, 247, 248, 248, 249, 249, 250, 250, 250, 250, 251, 251, 252, 252, 253, 253,
254, 254, 254, 255, 256, 257, 257, 258, 258, 259, 259, 259, 260, 260, 261, 262, 262,
262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 263, 263, 263,
263, 264, 264, 264, 265, 265, 266, 266, 266, 266, 267, 267, 267, 267, 267, 267, 267,
267, 267, 267, 267, 268, 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 272, 273,
273, 274, 274, 275, 275, 276, 276, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
279, 279, 279, 279, 279, 280, 280, 281, 281, 281, 282, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 284, 284, 284, 284, -1, -1, 285, 285, 286, 286, 287}

Definition at line 1499 of file Parser_wnd_pregen.cpp.

const short yyr2[]
static
Initial value:
= {
0, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 4, 7, 4, 6, 6, 3, 6, 6, 1, 3, 3, 3, 0, 1, 0, 8, 9, 9, 9, 4, 2, 0, 4, 3, 6,
8, 0, 1, 1, 3, 6, 7, 4, 1, 3, 3, 5, 7, 1, 1, 6, 6, 3, 3, 7, 7, 4, 4, 4, 3, 1, 3, 1,
1, 3, 4, 2, 5, 0, 2, 3, 4, 2, 2, 2, 4, 2, 5, 4, 5, 7, 10, 5, 10, 4, 1, 3, 4, 0, 4, 0,
3, 0, 3, 1, 3, 3, 3, 0, 1, 1, 0, 2, 2, 1, 1, 1, 1, 1, 4, 8, 5, 0, 1, 1, 1, 3, 3, 5,
0, 1, 2, 2, 0, 2, 3, 0, 4, 1, 3, 4, 1, 3, 7, 1, 1, 2, 1, 3, 1, 2, 2, 0, 3, 1, 3, 0,
2, 3, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 6, 5, 5, 4, 5, 4, 0, 2, 4, 3, 4, 3,
6, 5, 1, 3, 4, 4, 1, 1, 1, 1, 1, 2, 3, 4, 5, 2, 0, 4, 8, 6, 4, 4, 4, 3, 3, 3, 3, 3,
6, 2, 2, 1, 1, 1, 3, 6, 1, 1, 1, 0, 1, 2, 3, 0, 1, 3, 1, 1, 4, 5, 5, 4, 1, 1, 3, 4,
1, 1, 1, 2, 3, 4, 1, 1, 3, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1,
1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 4, 1, 4, 6, 1, 4, 6, 1, 1, 1, 1, 1, 2, 1, 1,
1, 4, 1, 4, 1, 1, 3, 4, 1, 1, 1, 1, 4, 6, 4, 6, 1, 1, 1}

Definition at line 1522 of file Parser_wnd_pregen.cpp.

short* yyss = yyssa

Definition at line 2113 of file Parser_wnd_pregen.cpp.

Referenced by if().

short yyssa[YYINITDEPTH]

Definition at line 2110 of file Parser_wnd_pregen.cpp.

* yyssp = yyss - 1

Definition at line 2105 of file Parser_wnd_pregen.cpp.

int yystacksize = YYINITDEPTH

Definition at line 2126 of file Parser_wnd_pregen.cpp.

else yystate = 0

Definition at line 2149 of file Parser_wnd_pregen.cpp.

Referenced by YYLABEL().

const short yytable[]
static

Definition at line 1678 of file Parser_wnd_pregen.cpp.

const short 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, 21, 2, 2, 159, 160, 19, 17, 161, 18, 166, 20, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 158, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 162, 2, 163, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 164, 2, 165, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157}

Definition at line 1048 of file Parser_wnd_pregen.cpp.

yyval = yyvsp[1 - yylen]

Definition at line 2137 of file Parser_wnd_pregen.cpp.

Definition at line 2114 of file Parser_wnd_pregen.cpp.

Referenced by if().

Definition at line 2111 of file Parser_wnd_pregen.cpp.

* yyvsp = yyvs

Definition at line 2106 of file Parser_wnd_pregen.cpp.