Kexi API Documentation (2.0 alpha)

sqlparser.cpp File Reference

#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
#include <assert.h>
#include <limits.h>
#include <qobject.h>
#include <kdebug.h>
#include <klocale.h>
#include <qptrlist.h>
#include <qcstring.h>
#include <qvariant.h>
#include <connection.h>
#include <queryschema.h>
#include <field.h>
#include <tableschema.h>
#include "parser.h"
#include "parser_p.h"
#include "sqltypes.h"

Go to the source code of this file.

Defines

#define YYBISON   1
#define YYBISON_VERSION   "2.2"
#define YYSKELETON_NAME   "yacc.c"
#define YYPURE   0
#define YYLSP_NEEDED   0
#define UMINUS   258
#define SQL_TYPE   259
#define SQL_ABS   260
#define ACOS   261
#define AMPERSAND   262
#define SQL_ABSOLUTE   263
#define ADA   264
#define ADD   265
#define ADD_DAYS   266
#define ADD_HOURS   267
#define ADD_MINUTES   268
#define ADD_MONTHS   269
#define ADD_SECONDS   270
#define ADD_YEARS   271
#define ALL   272
#define ALLOCATE   273
#define ALTER   274
#define AND   275
#define ANY   276
#define ARE   277
#define AS   278
#define ASIN   279
#define ASC   280
#define ASCII   281
#define ASSERTION   282
#define ATAN   283
#define ATAN2   284
#define AUTHORIZATION   285
#define AUTO_INCREMENT   286
#define AVG   287
#define BEFORE   288
#define SQL_BEGIN   289
#define BETWEEN   290
#define BIGINT   291
#define BINARY   292
#define BIT   293
#define BIT_LENGTH   294
#define BITWISE_SHIFT_LEFT   295
#define BITWISE_SHIFT_RIGHT   296
#define BREAK   297
#define BY   298
#define CASCADE   299
#define CASCADED   300
#define CASE   301
#define CAST   302
#define CATALOG   303
#define CEILING   304
#define CENTER   305
#define SQL_CHAR   306
#define CHAR_LENGTH   307
#define CHARACTER_STRING_LITERAL   308
#define CHECK   309
#define CLOSE   310
#define COALESCE   311
#define COBOL   312
#define COLLATE   313
#define COLLATION   314
#define COLUMN   315
#define COMMIT   316
#define COMPUTE   317
#define CONCAT   318
#define CONCATENATION   319
#define CONNECT   320
#define CONNECTION   321
#define CONSTRAINT   322
#define CONSTRAINTS   323
#define CONTINUE   324
#define CONVERT   325
#define CORRESPONDING   326
#define COS   327
#define COT   328
#define COUNT   329
#define CREATE   330
#define CURDATE   331
#define CURRENT   332
#define CURRENT_DATE   333
#define CURRENT_TIME   334
#define CURRENT_TIMESTAMP   335
#define CURTIME   336
#define CURSOR   337
#define DATABASE   338
#define SQL_DATE   339
#define DATE_FORMAT   340
#define DATE_REMAINDER   341
#define DATE_VALUE   342
#define DAY   343
#define DAYOFMONTH   344
#define DAYOFWEEK   345
#define DAYOFYEAR   346
#define DAYS_BETWEEN   347
#define DEALLOCATE   348
#define DEC   349
#define DECLARE   350
#define DEFAULT   351
#define DEFERRABLE   352
#define DEFERRED   353
#define SQL_DELETE   354
#define DESC   355
#define DESCRIBE   356
#define DESCRIPTOR   357
#define DIAGNOSTICS   358
#define DICTIONARY   359
#define DIRECTORY   360
#define DISCONNECT   361
#define DISPLACEMENT   362
#define DISTINCT   363
#define DOMAIN_TOKEN   364
#define SQL_DOUBLE   365
#define DOUBLE_QUOTED_STRING   366
#define DROP   367
#define ELSE   368
#define END   369
#define END_EXEC   370
#define EQUAL   371
#define ESCAPE   372
#define EXCEPT   373
#define SQL_EXCEPTION   374
#define EXEC   375
#define EXECUTE   376
#define EXISTS   377
#define EXP   378
#define EXPONENT   379
#define EXTERNAL   380
#define EXTRACT   381
#define SQL_FALSE   382
#define FETCH   383
#define FIRST   384
#define SQL_FLOAT   385
#define FLOOR   386
#define FN   387
#define FOR   388
#define FOREIGN   389
#define FORTRAN   390
#define FOUND   391
#define FOUR_DIGITS   392
#define FROM   393
#define FULL   394
#define GET   395
#define GLOBAL   396
#define GO   397
#define GOTO   398
#define GRANT   399
#define GREATER_OR_EQUAL   400
#define HAVING   401
#define HOUR   402
#define HOURS_BETWEEN   403
#define IDENTITY   404
#define IFNULL   405
#define SQL_IGNORE   406
#define IMMEDIATE   407
#define SQL_IN   408
#define INCLUDE   409
#define INDEX   410
#define INDICATOR   411
#define INITIALLY   412
#define INNER   413
#define INPUT   414
#define INSENSITIVE   415
#define INSERT   416
#define INTEGER   417
#define INTERSECT   418
#define INTERVAL   419
#define INTO   420
#define IS   421
#define ISOLATION   422
#define JOIN   423
#define JUSTIFY   424
#define KEY   425
#define LANGUAGE   426
#define LAST   427
#define LCASE   428
#define LEFT   429
#define LENGTH   430
#define LESS_OR_EQUAL   431
#define LEVEL   432
#define LIKE   433
#define LINE_WIDTH   434
#define LOCAL   435
#define LOCATE   436
#define LOG   437
#define SQL_LONG   438
#define LOWER   439
#define LTRIM   440
#define LTRIP   441
#define MATCH   442
#define SQL_MAX   443
#define MICROSOFT   444
#define SQL_MIN   445
#define MINUS   446
#define MINUTE   447
#define MINUTES_BETWEEN   448
#define MOD   449
#define MODIFY   450
#define MODULE   451
#define MONTH   452
#define MONTHS_BETWEEN   453
#define MUMPS   454
#define NAMES   455
#define NATIONAL   456
#define NCHAR   457
#define NEXT   458
#define NODUP   459
#define NONE   460
#define NOT   461
#define NOT_EQUAL   462
#define NOT_EQUAL2   463
#define NOW   464
#define SQL_NULL   465
#define SQL_IS   466
#define SQL_IS_NULL   467
#define SQL_IS_NOT_NULL   468
#define NULLIF   469
#define NUMERIC   470
#define OCTET_LENGTH   471
#define ODBC   472
#define OF   473
#define SQL_OFF   474
#define SQL_ON   475
#define ONLY   476
#define OPEN   477
#define OPTION   478
#define OR   479
#define ORDER   480
#define OUTER   481
#define OUTPUT   482
#define OVERLAPS   483
#define PAGE   484
#define PARTIAL   485
#define SQL_PASCAL   486
#define PERSISTENT   487
#define CQL_PI   488
#define PLI   489
#define POSITION   490
#define PRECISION   491
#define PREPARE   492
#define PRESERVE   493
#define PRIMARY   494
#define PRIOR   495
#define PRIVILEGES   496
#define PROCEDURE   497
#define PRODUCT   498
#define PUBLIC   499
#define QUARTER   500
#define QUIT   501
#define RAND   502
#define READ_ONLY   503
#define REAL   504
#define REFERENCES   505
#define REPEAT   506
#define REPLACE   507
#define RESTRICT   508
#define REVOKE   509
#define RIGHT   510
#define ROLLBACK   511
#define ROWS   512
#define RPAD   513
#define RTRIM   514
#define SCHEMA   515
#define SCREEN_WIDTH   516
#define SCROLL   517
#define SECOND   518
#define SECONDS_BETWEEN   519
#define SELECT   520
#define SEQUENCE   521
#define SETOPT   522
#define SET   523
#define SHOWOPT   524
#define SIGN   525
#define SIMILAR_TO   526
#define NOT_SIMILAR_TO   527
#define INTEGER_CONST   528
#define REAL_CONST   529
#define DATE_CONST   530
#define DATETIME_CONST   531
#define TIME_CONST   532
#define SIN   533
#define SQL_SIZE   534
#define SMALLINT   535
#define SOME   536
#define SPACE   537
#define SQL   538
#define SQL_TRUE   539
#define SQLCA   540
#define SQLCODE   541
#define SQLERROR   542
#define SQLSTATE   543
#define SQLWARNING   544
#define SQRT   545
#define STDEV   546
#define SUBSTRING   547
#define SUM   548
#define SYSDATE   549
#define SYSDATE_FORMAT   550
#define SYSTEM   551
#define TABLE   552
#define TAN   553
#define TEMPORARY   554
#define THEN   555
#define THREE_DIGITS   556
#define TIME   557
#define TIMESTAMP   558
#define TIMEZONE_HOUR   559
#define TIMEZONE_MINUTE   560
#define TINYINT   561
#define TO   562
#define TO_CHAR   563
#define TO_DATE   564
#define TRANSACTION   565
#define TRANSLATE   566
#define TRANSLATION   567
#define TRUNCATE   568
#define GENERAL_TITLE   569
#define TWO_DIGITS   570
#define UCASE   571
#define UNION   572
#define UNIQUE   573
#define SQL_UNKNOWN   574
#define UPDATE   575
#define UPPER   576
#define USAGE   577
#define USER   578
#define IDENTIFIER   579
#define IDENTIFIER_DOT_ASTERISK   580
#define QUERY_PARAMETER   581
#define USING   582
#define VALUE   583
#define VALUES   584
#define VARBINARY   585
#define VARCHAR   586
#define VARYING   587
#define VENDOR   588
#define VIEW   589
#define WEEK   590
#define WHEN   591
#define WHENEVER   592
#define WHERE   593
#define WHERE_CURRENT_OF   594
#define WITH   595
#define WORD_WRAPPED   596
#define WORK   597
#define WRAPPED   598
#define XOR   599
#define YEAR   600
#define YEARS_BETWEEN   601
#define SCAN_ERROR   602
#define __LAST_TOKEN   603
#define ILIKE   604
#define YYDEBUG   0
#define LLONG_MAX   0x7fffffffffffffffLL
#define LLONG_MIN   0x8000000000000000LL
#define YY_NO_UNPUT
#define YYSTACK_USE_ALLOCA   1
#define YYMAXDEPTH   255
#define YYERROR_VERBOSE   0
#define YYTOKEN_TABLE   0
#define yystype   YYSTYPE
#define YYSTYPE_IS_DECLARED   1
#define YYSTYPE_IS_TRIVIAL   1
#define YYSIZE_T   unsigned int
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
#define YY_(msgid)   msgid
#define YYUSE(e)   ((void) (e))
#define YYID(n)   (n)
#define YYSTACK_ALLOC   alloca
#define YYSTACK_FREE(Ptr)   do { /* empty */; } while (YYID (0))
#define YYSTACK_ALLOC_MAXIMUM   4032
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
#define YYSTACK_BYTES(N)
#define YYCOPY(To, From, Count)
#define YYSTACK_RELOCATE(Stack)
#define YYFINAL   10
#define YYLAST   335
#define YYNTOKENS   373
#define YYNNTS   37
#define YYNRULES   108
#define YYNSTATES   176
#define YYUNDEFTOK   2
#define YYMAXUTOK   604
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
#define YYPACT_NINF   -336
#define YYTABLE_NINF   -1
#define yyerrok   (yyerrstatus = 0)
#define yyclearin   (yychar = YYEMPTY)
#define YYEMPTY   (-2)
#define YYEOF   0
#define YYACCEPT   goto yyacceptlab
#define YYABORT   goto yyabortlab
#define YYERROR   goto yyerrorlab
#define YYFAIL   goto yyerrlab
#define YYRECOVERING()   (!!yyerrstatus)
#define YYBACKUP(Token, Value)
#define YYTERROR   1
#define YYERRCODE   256
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_LOCATION_PRINT(File, Loc)   ((void) 0)
#define YYLEX   yylex ()
#define YYDPRINTF(Args)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#define YY_STACK_PRINT(Bottom, Top)
#define YY_REDUCE_PRINT(Rule)
#define YYINITDEPTH   200
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

Typedefs

typedef YYSTYPE YYSTYPE
typedef unsigned char yytype_uint8
typedef short int yytype_int8
typedef unsigned short int yytype_uint16
typedef short int yytype_int16

Enumerations

enum  yytokentype {
  UMINUS = 258, SQL_TYPE = 259, SQL_ABS = 260, ACOS = 261,
  AMPERSAND = 262, SQL_ABSOLUTE = 263, ADA = 264, ADD = 265,
  ADD_DAYS = 266, ADD_HOURS = 267, ADD_MINUTES = 268, ADD_MONTHS = 269,
  ADD_SECONDS = 270, ADD_YEARS = 271, ALL = 272, ALLOCATE = 273,
  ALTER = 274, AND = 275, ANY = 276, ARE = 277,
  AS = 278, ASIN = 279, ASC = 280, ASCII = 281,
  ASSERTION = 282, ATAN = 283, ATAN2 = 284, AUTHORIZATION = 285,
  AUTO_INCREMENT = 286, AVG = 287, BEFORE = 288, SQL_BEGIN = 289,
  BETWEEN = 290, BIGINT = 291, BINARY = 292, BIT = 293,
  BIT_LENGTH = 294, BITWISE_SHIFT_LEFT = 295, BITWISE_SHIFT_RIGHT = 296, BREAK = 297,
  BY = 298, CASCADE = 299, CASCADED = 300, CASE = 301,
  CAST = 302, CATALOG = 303, CEILING = 304, CENTER = 305,
  SQL_CHAR = 306, CHAR_LENGTH = 307, CHARACTER_STRING_LITERAL = 308, CHECK = 309,
  CLOSE = 310, COALESCE = 311, COBOL = 312, COLLATE = 313,
  COLLATION = 314, COLUMN = 315, COMMIT = 316, COMPUTE = 317,
  CONCAT = 318, CONCATENATION = 319, CONNECT = 320, CONNECTION = 321,
  CONSTRAINT = 322, CONSTRAINTS = 323, CONTINUE = 324, CONVERT = 325,
  CORRESPONDING = 326, COS = 327, COT = 328, COUNT = 329,
  CREATE = 330, CURDATE = 331, CURRENT = 332, CURRENT_DATE = 333,
  CURRENT_TIME = 334, CURRENT_TIMESTAMP = 335, CURTIME = 336, CURSOR = 337,
  DATABASE = 338, SQL_DATE = 339, DATE_FORMAT = 340, DATE_REMAINDER = 341,
  DATE_VALUE = 342, DAY = 343, DAYOFMONTH = 344, DAYOFWEEK = 345,
  DAYOFYEAR = 346, DAYS_BETWEEN = 347, DEALLOCATE = 348, DEC = 349,
  DECLARE = 350, DEFAULT = 351, DEFERRABLE = 352, DEFERRED = 353,
  SQL_DELETE = 354, DESC = 355, DESCRIBE = 356, DESCRIPTOR = 357,
  DIAGNOSTICS = 358, DICTIONARY = 359, DIRECTORY = 360, DISCONNECT = 361,
  DISPLACEMENT = 362, DISTINCT = 363, DOMAIN_TOKEN = 364, SQL_DOUBLE = 365,
  DOUBLE_QUOTED_STRING = 366, DROP = 367, ELSE = 368, END = 369,
  END_EXEC = 370, EQUAL = 371, ESCAPE = 372, EXCEPT = 373,
  SQL_EXCEPTION = 374, EXEC = 375, EXECUTE = 376, EXISTS = 377,
  EXP = 378, EXPONENT = 379, EXTERNAL = 380, EXTRACT = 381,
  SQL_FALSE = 382, FETCH = 383, FIRST = 384, SQL_FLOAT = 385,
  FLOOR = 386, FN = 387, FOR = 388, FOREIGN = 389,
  FORTRAN = 390, FOUND = 391, FOUR_DIGITS = 392, FROM = 393,
  FULL = 394, GET = 395, GLOBAL = 396, GO = 397,
  GOTO = 398, GRANT = 399, GREATER_OR_EQUAL = 400, HAVING = 401,
  HOUR = 402, HOURS_BETWEEN = 403, IDENTITY = 404, IFNULL = 405,
  SQL_IGNORE = 406, IMMEDIATE = 407, SQL_IN = 408, INCLUDE = 409,
  INDEX = 410, INDICATOR = 411, INITIALLY = 412, INNER = 413,
  INPUT = 414, INSENSITIVE = 415, INSERT = 416, INTEGER = 417,
  INTERSECT = 418, INTERVAL = 419, INTO = 420, IS = 421,
  ISOLATION = 422, JOIN = 423, JUSTIFY = 424, KEY = 425,
  LANGUAGE = 426, LAST = 427, LCASE = 428, LEFT = 429,
  LENGTH = 430, LESS_OR_EQUAL = 431, LEVEL = 432, LIKE = 433,
  LINE_WIDTH = 434, LOCAL = 435, LOCATE = 436, LOG = 437,
  SQL_LONG = 438, LOWER = 439, LTRIM = 440, LTRIP = 441,
  MATCH = 442, SQL_MAX = 443, MICROSOFT = 444, SQL_MIN = 445,
  MINUS = 446, MINUTE = 447, MINUTES_BETWEEN = 448, MOD = 449,
  MODIFY = 450, MODULE = 451, MONTH = 452, MONTHS_BETWEEN = 453,
  MUMPS = 454, NAMES = 455, NATIONAL = 456, NCHAR = 457,
  NEXT = 458, NODUP = 459, NONE = 460, NOT = 461,
  NOT_EQUAL = 462, NOT_EQUAL2 = 463, NOW = 464, SQL_NULL = 465,
  SQL_IS = 466, SQL_IS_NULL = 467, SQL_IS_NOT_NULL = 468, NULLIF = 469,
  NUMERIC = 470, OCTET_LENGTH = 471, ODBC = 472, OF = 473,
  SQL_OFF = 474, SQL_ON = 475, ONLY = 476, OPEN = 477,
  OPTION = 478, OR = 479, ORDER = 480, OUTER = 481,
  OUTPUT = 482, OVERLAPS = 483, PAGE = 484, PARTIAL = 485,
  SQL_PASCAL = 486, PERSISTENT = 487, CQL_PI = 488, PLI = 489,
  POSITION = 490, PRECISION = 491, PREPARE = 492, PRESERVE = 493,
  PRIMARY = 494, PRIOR = 495, PRIVILEGES = 496, PROCEDURE = 497,
  PRODUCT = 498, PUBLIC = 499, QUARTER = 500, QUIT = 501,
  RAND = 502, READ_ONLY = 503, REAL = 504, REFERENCES = 505,
  REPEAT = 506, REPLACE = 507, RESTRICT = 508, REVOKE = 509,
  RIGHT = 510, ROLLBACK = 511, ROWS = 512, RPAD = 513,
  RTRIM = 514, SCHEMA = 515, SCREEN_WIDTH = 516, SCROLL = 517,
  SECOND = 518, SECONDS_BETWEEN = 519, SELECT = 520, SEQUENCE = 521,
  SETOPT = 522, SET = 523, SHOWOPT = 524, SIGN = 525,
  SIMILAR_TO = 526, NOT_SIMILAR_TO = 527, INTEGER_CONST = 528, REAL_CONST = 529,
  DATE_CONST = 530, DATETIME_CONST = 531, TIME_CONST = 532, SIN = 533,
  SQL_SIZE = 534, SMALLINT = 535, SOME = 536, SPACE = 537,
  SQL = 538, SQL_TRUE = 539, SQLCA = 540, SQLCODE = 541,
  SQLERROR = 542, SQLSTATE = 543, SQLWARNING = 544, SQRT = 545,
  STDEV = 546, SUBSTRING = 547, SUM = 548, SYSDATE = 549,
  SYSDATE_FORMAT = 550, SYSTEM = 551, TABLE = 552, TAN = 553,
  TEMPORARY = 554, THEN = 555, THREE_DIGITS = 556, TIME = 557,
  TIMESTAMP = 558, TIMEZONE_HOUR = 559, TIMEZONE_MINUTE = 560, TINYINT = 561,
  TO = 562, TO_CHAR = 563, TO_DATE = 564, TRANSACTION = 565,
  TRANSLATE = 566, TRANSLATION = 567, TRUNCATE = 568, GENERAL_TITLE = 569,
  TWO_DIGITS = 570, UCASE = 571, UNION = 572, UNIQUE = 573,
  SQL_UNKNOWN = 574, UPDATE = 575, UPPER = 576, USAGE = 577,
  USER = 578, IDENTIFIER = 579, IDENTIFIER_DOT_ASTERISK = 580, QUERY_PARAMETER = 581,
  USING = 582, VALUE = 583, VALUES = 584, VARBINARY = 585,
  VARCHAR = 586, VARYING = 587, VENDOR = 588, VIEW = 589,
  WEEK = 590, WHEN = 591, WHENEVER = 592, WHERE = 593,
  WHERE_CURRENT_OF = 594, WITH = 595, WORD_WRAPPED = 596, WORK = 597,
  WRAPPED = 598, XOR = 599, YEAR = 600, YEARS_BETWEEN = 601,
  SCAN_ERROR = 602, __LAST_TOKEN = 603, ILIKE = 604
}

Functions

int yylex ()
int yywrap ()
static void yydestruct (yymsg, yytype, yyvaluep) const char *yymsg
int yyparse ()
const char *const tname (int offset)

Variables

static const yytype_uint16 yytranslate []
static const yytype_uint16 yyr1 []
static const yytype_uint8 yyr2 []
static const yytype_uint8 yydefact []
static const yytype_int16 yydefgoto []
static const yytype_int16 yypact []
static const yytype_int16 yypgoto []
static const yytype_uint8 yytable []
static const yytype_int16 yycheck []
static const yytype_uint16 yystos []
int yytype
YYSTYPEyyvaluep
int yychar
YYSTYPE yylval
int yynerrs


Define Documentation

#define __LAST_TOKEN   603
 

Definition at line 764 of file sqlparser.cpp.

#define ACOS   261
 

Definition at line 422 of file sqlparser.cpp.

#define ADA   264
 

Definition at line 425 of file sqlparser.cpp.

#define ADD   265
 

Definition at line 426 of file sqlparser.cpp.

Referenced by KexiDB::emptyValueForType(), KexiDB::isBuiltinTableFieldProperty(), KexiDB::isExtendedTableFieldProperty(), and KexiDB::notEmptyValueForType().

#define ADD_DAYS   266
 

Definition at line 427 of file sqlparser.cpp.

#define ADD_HOURS   267
 

Definition at line 428 of file sqlparser.cpp.

#define ADD_MINUTES   268
 

Definition at line 429 of file sqlparser.cpp.

#define ADD_MONTHS   269
 

Definition at line 430 of file sqlparser.cpp.

#define ADD_SECONDS   270
 

Definition at line 431 of file sqlparser.cpp.

#define ADD_YEARS   271
 

Definition at line 432 of file sqlparser.cpp.

#define ALL   272
 

Definition at line 433 of file sqlparser.cpp.

#define ALLOCATE   273
 

Definition at line 434 of file