kexi

sqlparser.h
1#ifndef _SQLPARSER_H_
2#define _SQLPARSER_H_
3#include "field.h"
4#include "parser.h"
5#include "sqltypes.h"
6
7bool parseData(KexiDB::Parser *p, const char *data);
8/* A Bison parser, made by GNU Bison 2.2. */
9
10/* Skeleton interface for Bison's Yacc-like parsers in C
11
12 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
13 Free Software Foundation, Inc.
14
15 This program is free software; you can redistribute it and/or modify
16 it under the terms of the GNU General Public License as published by
17 the Free Software Foundation; either version 2, or (at your option)
18 any later version.
19
20 This program is distributed in the hope that it will be useful,
21 but WITHOUT ANY WARRANTY; without even the implied warranty of
22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 GNU General Public License for more details.
24
25 You should have received a copy of the GNU General Public License
26 along with this program; if not, write to the Free Software
27 Foundation, Inc., 51 Franklin Street, Fifth Floor,
28 Boston, MA 02110-1301, USA. */
29
30/* As a special exception, you may create a larger work that contains
31 part or all of the Bison parser skeleton and distribute that work
32 under terms of your choice, so long as that work isn't itself a
33 parser generator using the skeleton or a modified version thereof
34 as a parser skeleton. Alternatively, if you modify or redistribute
35 the parser skeleton itself, you may (at your option) remove this
36 special exception, which will cause the skeleton and the resulting
37 Bison output files to be licensed under the GNU General Public
38 License without this special exception.
39
40 This special exception was added by the Free Software Foundation in
41 version 2.2 of Bison. */
42
43/* Tokens. */
44#ifndef YYTOKENTYPE
45# define YYTOKENTYPE
46 /* Put the tokens into the symbol table, so that GDB and other debuggers
47 know about them. */
48 enum yytokentype {
49 UMINUS = 258,
50 SQL_TYPE = 259,
51 SQL_ABS = 260,
52 ACOS = 261,
53 AMPERSAND = 262,
54 SQL_ABSOLUTE = 263,
55 ADA = 264,
56 ADD = 265,
57 ADD_DAYS = 266,
58 ADD_HOURS = 267,
59 ADD_MINUTES = 268,
60 ADD_MONTHS = 269,
61 ADD_SECONDS = 270,
62 ADD_YEARS = 271,
63 ALL = 272,
64 ALLOCATE = 273,
65 ALTER = 274,
66 AND = 275,
67 ANY = 276,
68 ARE = 277,
69 AS = 278,
70 ASIN = 279,
71 ASC = 280,
72 ASCII = 281,
73 ASSERTION = 282,
74 ATAN = 283,
75 ATAN2 = 284,
76 AUTHORIZATION = 285,
77 AUTO_INCREMENT = 286,
78 AVG = 287,
79 BEFORE = 288,
80 SQL_BEGIN = 289,
81 BETWEEN = 290,
82 BIGINT = 291,
83 BINARY = 292,
84 BIT = 293,
85 BIT_LENGTH = 294,
86 BITWISE_SHIFT_LEFT = 295,
87 BITWISE_SHIFT_RIGHT = 296,
88 BREAK = 297,
89 BY = 298,
90 CASCADE = 299,
91 CASCADED = 300,
92 CASE = 301,
93 CAST = 302,
94 CATALOG = 303,
95 CEILING = 304,
96 CENTER = 305,
97 SQL_CHAR = 306,
98 CHAR_LENGTH = 307,
99 CHARACTER_STRING_LITERAL = 308,
100 CHECK = 309,
101 CLOSE = 310,
102 COALESCE = 311,
103 COBOL = 312,
104 COLLATE = 313,
105 COLLATION = 314,
106 COLUMN = 315,
107 COMMIT = 316,
108 COMPUTE = 317,
109 CONCAT = 318,
110 CONCATENATION = 319,
111 CONNECT = 320,
112 CONNECTION = 321,
113 CONSTRAINT = 322,
114 CONSTRAINTS = 323,
115 CONTINUE = 324,
116 CONVERT = 325,
117 CORRESPONDING = 326,
118 COS = 327,
119 COT = 328,
120 COUNT = 329,
121 CREATE = 330,
122 CURDATE = 331,
123 CURRENT = 332,
124 CURRENT_DATE = 333,
125 CURRENT_TIME = 334,
126 CURRENT_TIMESTAMP = 335,
127 CURTIME = 336,
128 CURSOR = 337,
129 DATABASE = 338,
130 SQL_DATE = 339,
131 DATE_FORMAT = 340,
132 DATE_REMAINDER = 341,
133 DATE_VALUE = 342,
134 DAY = 343,
135 DAYOFMONTH = 344,
136 DAYOFWEEK = 345,
137 DAYOFYEAR = 346,
138 DAYS_BETWEEN = 347,
139 DEALLOCATE = 348,
140 DEC = 349,
141 DECLARE = 350,
142 DEFAULT = 351,
143 DEFERRABLE = 352,
144 DEFERRED = 353,
145 SQL_DELETE = 354,
146 DESC = 355,
147 DESCRIBE = 356,
148 DESCRIPTOR = 357,
149 DIAGNOSTICS = 358,
150 DICTIONARY = 359,
151 DIRECTORY = 360,
152 DISCONNECT = 361,
153 DISPLACEMENT = 362,
154 DISTINCT = 363,
155 DOMAIN_TOKEN = 364,
156 SQL_DOUBLE = 365,
157 DOUBLE_QUOTED_STRING = 366,
158 DROP = 367,
159 ELSE = 368,
160 END = 369,
161 END_EXEC = 370,
162 EQUAL = 371,
163 ESCAPE = 372,
164 EXCEPT = 373,
165 SQL_EXCEPTION = 374,
166 EXEC = 375,
167 EXECUTE = 376,
168 EXISTS = 377,
169 EXP = 378,
170 EXPONENT = 379,
171 EXTERNAL = 380,
172 EXTRACT = 381,
173 SQL_FALSE = 382,
174 FETCH = 383,
175 FIRST = 384,
176 SQL_FLOAT = 385,
177 FLOOR = 386,
178 FN = 387,
179 FOR = 388,
180 FOREIGN = 389,
181 FORTRAN = 390,
182 FOUND = 391,
183 FOUR_DIGITS = 392,
184 FROM = 393,
185 FULL = 394,
186 GET = 395,
187 GLOBAL = 396,
188 GO = 397,
189 GOTO = 398,
190 GRANT = 399,
191 GREATER_OR_EQUAL = 400,
192 HAVING = 401,
193 HOUR = 402,
194 HOURS_BETWEEN = 403,
195 IDENTITY = 404,
196 IFNULL = 405,
197 SQL_IGNORE = 406,
198 IMMEDIATE = 407,
199 SQL_IN = 408,
200 INCLUDE = 409,
201 INDEX = 410,
202 INDICATOR = 411,
203 INITIALLY = 412,
204 INNER = 413,
205 INPUT = 414,
206 INSENSITIVE = 415,
207 INSERT = 416,
208 INTEGER = 417,
209 INTERSECT = 418,
210 INTERVAL = 419,
211 INTO = 420,
212 IS = 421,
213 ISOLATION = 422,
214 JOIN = 423,
215 JUSTIFY = 424,
216 KEY = 425,
217 LANGUAGE = 426,
218 LAST = 427,
219 LCASE = 428,
220 LEFT = 429,
221 LENGTH = 430,
222 LESS_OR_EQUAL = 431,
223 LEVEL = 432,
224 LIKE = 433,
225 LINE_WIDTH = 434,
226 LOCAL = 435,
227 LOCATE = 436,
228 LOG = 437,
229 SQL_LONG = 438,
230 LOWER = 439,
231 LTRIM = 440,
232 LTRIP = 441,
233 MATCH = 442,
234 SQL_MAX = 443,
235 MICROSOFT = 444,
236 SQL_MIN = 445,
237 MINUS = 446,
238 MINUTE = 447,
239 MINUTES_BETWEEN = 448,
240 MOD = 449,
241 MODIFY = 450,
242 MODULE = 451,
243 MONTH = 452,
244 MONTHS_BETWEEN = 453,
245 MUMPS = 454,
246 NAMES = 455,
247 NATIONAL = 456,
248 NCHAR = 457,
249 NEXT = 458,
250 NODUP = 459,
251 NONE = 460,
252 NOT = 461,
253 NOT_EQUAL = 462,
254 NOT_EQUAL2 = 463,
255 NOW = 464,
256 SQL_NULL = 465,
257 SQL_IS = 466,
258 SQL_IS_NULL = 467,
259 SQL_IS_NOT_NULL = 468,
260 NULLIF = 469,
261 NUMERIC = 470,
262 OCTET_LENGTH = 471,
263 ODBC = 472,
264 OF = 473,
265 SQL_OFF = 474,
266 SQL_ON = 475,
267 ONLY = 476,
268 OPEN = 477,
269 OPTION = 478,
270 OR = 479,
271 ORDER = 480,
272 OUTER = 481,
273 OUTPUT = 482,
274 OVERLAPS = 483,
275 PAGE = 484,
276 PARTIAL = 485,
277 SQL_PASCAL = 486,
278 PERSISTENT = 487,
279 CQL_PI = 488,
280 PLI = 489,
281 POSITION = 490,
282 PRECISION = 491,
283 PREPARE = 492,
284 PRESERVE = 493,
285 PRIMARY = 494,
286 PRIOR = 495,
287 PRIVILEGES = 496,
288 PROCEDURE = 497,
289 PRODUCT = 498,
290 PUBLIC = 499,
291 QUARTER = 500,
292 QUIT = 501,
293 RAND = 502,
294 READ_ONLY = 503,
295 REAL = 504,
296 REFERENCES = 505,
297 REPEAT = 506,
298 REPLACE = 507,
299 RESTRICT = 508,
300 REVOKE = 509,
301 RIGHT = 510,
302 ROLLBACK = 511,
303 ROWS = 512,
304 RPAD = 513,
305 RTRIM = 514,
306 SCHEMA = 515,
307 SCREEN_WIDTH = 516,
308 SCROLL = 517,
309 SECOND = 518,
310 SECONDS_BETWEEN = 519,
311 SELECT = 520,
312 SEQUENCE = 521,
313 SETOPT = 522,
314 SET = 523,
315 SHOWOPT = 524,
316 SIGN = 525,
317 SIMILAR_TO = 526,
318 NOT_SIMILAR_TO = 527,
319 INTEGER_CONST = 528,
320 REAL_CONST = 529,
321 DATE_CONST = 530,
322 DATETIME_CONST = 531,
323 TIME_CONST = 532,
324 SIN = 533,
325 SQL_SIZE = 534,
326 SMALLINT = 535,
327 SOME = 536,
328 SPACE = 537,
329 SQL = 538,
330 SQL_TRUE = 539,
331 SQLCA = 540,
332 SQLCODE = 541,
333 SQLERROR = 542,
334 SQLSTATE = 543,
335 SQLWARNING = 544,
336 SQRT = 545,
337 STDEV = 546,
338 SUBSTRING = 547,
339 SUM = 548,
340 SYSDATE = 549,
341 SYSDATE_FORMAT = 550,
342 SYSTEM = 551,
343 TABLE = 552,
344 TAN = 553,
345 TEMPORARY = 554,
346 THEN = 555,
347 THREE_DIGITS = 556,
348 TIME = 557,
349 TIMESTAMP = 558,
350 TIMEZONE_HOUR = 559,
351 TIMEZONE_MINUTE = 560,
352 TINYINT = 561,
353 TO = 562,
354 TO_CHAR = 563,
355 TO_DATE = 564,
356 TRANSACTION = 565,
357 TRANSLATE = 566,
358 TRANSLATION = 567,
359 TRUNCATE = 568,
360 GENERAL_TITLE = 569,
361 TWO_DIGITS = 570,
362 UCASE = 571,
363 UNION = 572,
364 UNIQUE = 573,
365 SQL_UNKNOWN = 574,
366 UPDATE = 575,
367 UPPER = 576,
368 USAGE = 577,
369 USER = 578,
370 IDENTIFIER = 579,
371 IDENTIFIER_DOT_ASTERISK = 580,
372 QUERY_PARAMETER = 581,
373 USING = 582,
374 VALUE = 583,
375 VALUES = 584,
376 VARBINARY = 585,
377 VARCHAR = 586,
378 VARYING = 587,
379 VENDOR = 588,
380 VIEW = 589,
381 WEEK = 590,
382 WHEN = 591,
383 WHENEVER = 592,
384 WHERE = 593,
385 WHERE_CURRENT_OF = 594,
386 WITH = 595,
387 WORD_WRAPPED = 596,
388 WORK = 597,
389 WRAPPED = 598,
390 XOR = 599,
391 YEAR = 600,
392 YEARS_BETWEEN = 601,
393 SCAN_ERROR = 602,
394 __LAST_TOKEN = 603,
395 ILIKE = 604
396 };
397#endif
398/* Tokens. */
399#define UMINUS 258
400#define SQL_TYPE 259
401#define SQL_ABS 260
402#define ACOS 261
403#define AMPERSAND 262
404#define SQL_ABSOLUTE 263
405#define ADA 264
406#define ADD 265
407#define ADD_DAYS 266
408#define ADD_HOURS 267
409#define ADD_MINUTES 268
410#define ADD_MONTHS 269
411#define ADD_SECONDS 270
412#define ADD_YEARS 271
413#define ALL 272
414#define ALLOCATE 273
415#define ALTER 274
416#define AND 275
417#define ANY 276
418#define ARE 277
419#define AS 278
420#define ASIN 279
421#define ASC 280
422#define ASCII 281
423#define ASSERTION 282
424#define ATAN 283
425#define ATAN2 284
426#define AUTHORIZATION 285
427#define AUTO_INCREMENT 286
428#define AVG 287
429#define BEFORE 288
430#define SQL_BEGIN 289
431#define BETWEEN 290
432#define BIGINT 291
433#define BINARY 292
434#define BIT 293
435#define BIT_LENGTH 294
436#define BITWISE_SHIFT_LEFT 295
437#define BITWISE_SHIFT_RIGHT 296
438#define BREAK 297
439#define BY 298
440#define CASCADE 299
441#define CASCADED 300
442#define CASE 301
443#define CAST 302
444#define CATALOG 303
445#define CEILING 304
446#define CENTER 305
447#define SQL_CHAR 306
448#define CHAR_LENGTH 307
449#define CHARACTER_STRING_LITERAL 308
450#define CHECK 309
451#define CLOSE 310
452#define COALESCE 311
453#define COBOL 312
454#define COLLATE 313
455#define COLLATION 314
456#define COLUMN 315
457#define COMMIT 316
458#define COMPUTE 317
459#define CONCAT 318
460#define CONCATENATION 319
461#define CONNECT 320
462#define CONNECTION 321
463#define CONSTRAINT 322
464#define CONSTRAINTS 323
465#define CONTINUE 324
466#define CONVERT 325
467#define CORRESPONDING 326
468#define COS 327
469#define COT 328
470#define COUNT 329
471#define CREATE 330
472#define CURDATE 331
473#define CURRENT 332
474#define CURRENT_DATE 333
475#define CURRENT_TIME 334
476#define CURRENT_TIMESTAMP 335
477#define CURTIME 336
478#define CURSOR 337
479#define DATABASE 338
480#define SQL_DATE 339
481#define DATE_FORMAT 340
482#define DATE_REMAINDER 341
483#define DATE_VALUE 342
484#define DAY 343
485#define DAYOFMONTH 344
486#define DAYOFWEEK 345
487#define DAYOFYEAR 346
488#define DAYS_BETWEEN 347
489#define DEALLOCATE 348
490#define DEC 349
491#define DECLARE 350
492#define DEFAULT 351
493#define DEFERRABLE 352
494#define DEFERRED 353
495#define SQL_DELETE 354
496#define DESC 355
497#define DESCRIBE 356
498#define DESCRIPTOR 357
499#define DIAGNOSTICS 358
500#define DICTIONARY 359
501#define DIRECTORY 360
502#define DISCONNECT 361
503#define DISPLACEMENT 362
504#define DISTINCT 363
505#define DOMAIN_TOKEN 364
506#define SQL_DOUBLE 365
507#define DOUBLE_QUOTED_STRING 366
508#define DROP 367
509#define ELSE 368
510#define END 369
511#define END_EXEC 370
512#define EQUAL 371
513#define ESCAPE 372
514#define EXCEPT 373
515#define SQL_EXCEPTION 374
516#define EXEC 375
517#define EXECUTE 376
518#define EXISTS 377
519#define EXP 378
520#define EXPONENT 379
521#define EXTERNAL 380
522#define EXTRACT 381
523#define SQL_FALSE 382
524#define FETCH 383
525#define FIRST 384
526#define SQL_FLOAT 385
527#define FLOOR 386
528#define FN 387
529#define FOR 388
530#define FOREIGN 389
531#define FORTRAN 390
532#define FOUND 391
533#define FOUR_DIGITS 392
534#define FROM 393
535#define FULL 394
536#define GET 395
537#define GLOBAL 396
538#define GO 397
539#define GOTO 398
540#define GRANT 399
541#define GREATER_OR_EQUAL 400
542#define HAVING 401
543#define HOUR 402
544#define HOURS_BETWEEN 403
545#define IDENTITY 404
546#define IFNULL 405
547#define SQL_IGNORE 406
548#define IMMEDIATE 407
549#define SQL_IN 408
550#define INCLUDE 409
551#define INDEX 410
552#define INDICATOR 411
553#define INITIALLY 412
554#define INNER 413
555#define INPUT 414
556#define INSENSITIVE 415
557#define INSERT 416
558#define INTEGER 417
559#define INTERSECT 418
560#define INTERVAL 419
561#define INTO 420
562#define IS 421
563#define ISOLATION 422
564#define JOIN 423
565#define JUSTIFY 424
566#define KEY 425
567#define LANGUAGE 426
568#define LAST 427
569#define LCASE 428
570#define LEFT 429
571#define LENGTH 430
572#define LESS_OR_EQUAL 431
573#define LEVEL 432
574#define LIKE 433
575#define LINE_WIDTH 434
576#define LOCAL 435
577#define LOCATE 436
578#define LOG 437
579#define SQL_LONG 438
580#define LOWER 439
581#define LTRIM 440
582#define LTRIP 441
583#define MATCH 442
584#define SQL_MAX 443
585#define MICROSOFT 444
586#define SQL_MIN 445
587#define MINUS 446
588#define MINUTE 447
589#define MINUTES_BETWEEN 448
590#define MOD 449
591#define MODIFY 450
592#define MODULE 451
593#define MONTH 452
594#define MONTHS_BETWEEN 453
595#define MUMPS 454
596#define NAMES 455
597#define NATIONAL 456
598#define NCHAR 457
599#define NEXT 458
600#define NODUP 459
601#define NONE 460
602#define NOT 461
603#define NOT_EQUAL 462
604#define NOT_EQUAL2 463
605#define NOW 464
606#define SQL_NULL 465
607#define SQL_IS 466
608#define SQL_IS_NULL 467
609#define SQL_IS_NOT_NULL 468
610#define NULLIF 469
611#define NUMERIC 470
612#define OCTET_LENGTH 471
613#define ODBC 472
614#define OF 473
615#define SQL_OFF 474
616#define SQL_ON 475
617#define ONLY 476
618#define OPEN 477
619#define OPTION 478
620#define OR 479
621#define ORDER 480
622#define OUTER 481
623#define OUTPUT 482
624#define OVERLAPS 483
625#define PAGE 484
626#define PARTIAL 485
627#define SQL_PASCAL 486
628#define PERSISTENT 487
629#define CQL_PI 488
630#define PLI 489
631#define POSITION 490
632#define PRECISION 491
633#define PREPARE 492
634#define PRESERVE 493
635#define PRIMARY 494
636#define PRIOR 495
637#define PRIVILEGES 496
638#define PROCEDURE 497
639#define PRODUCT 498
640#define PUBLIC 499
641#define QUARTER 500
642#define QUIT 501
643#define RAND 502
644#define READ_ONLY 503
645#define REAL 504
646#define REFERENCES 505
647#define REPEAT 506
648#define REPLACE 507
649#define RESTRICT 508
650#define REVOKE 509
651#define RIGHT 510
652#define ROLLBACK 511
653#define ROWS 512
654#define RPAD 513
655#define RTRIM 514
656#define SCHEMA 515
657#define SCREEN_WIDTH 516
658#define SCROLL 517
659#define SECOND 518
660#define SECONDS_BETWEEN 519
661#define SELECT 520
662#define SEQUENCE 521
663#define SETOPT 522
664#define SET 523
665#define SHOWOPT 524
666#define SIGN 525
667#define SIMILAR_TO 526
668#define NOT_SIMILAR_TO 527
669#define INTEGER_CONST 528
670#define REAL_CONST 529
671#define DATE_CONST 530
672#define DATETIME_CONST 531
673#define TIME_CONST 532
674#define SIN 533
675#define SQL_SIZE 534
676#define SMALLINT 535
677#define SOME 536
678#define SPACE 537
679#define SQL 538
680#define SQL_TRUE 539
681#define SQLCA 540
682#define SQLCODE 541
683#define SQLERROR 542
684#define SQLSTATE 543
685#define SQLWARNING 544
686#define SQRT 545
687#define STDEV 546
688#define SUBSTRING 547
689#define SUM 548
690#define SYSDATE 549
691#define SYSDATE_FORMAT 550
692#define SYSTEM 551
693#define TABLE 552
694#define TAN 553
695#define TEMPORARY 554
696#define THEN 555
697#define THREE_DIGITS 556
698#define TIME 557
699#define TIMESTAMP 558
700#define TIMEZONE_HOUR 559
701#define TIMEZONE_MINUTE 560
702#define TINYINT 561
703#define TO 562
704#define TO_CHAR 563
705#define TO_DATE 564
706#define TRANSACTION 565
707#define TRANSLATE 566
708#define TRANSLATION 567
709#define TRUNCATE 568
710#define GENERAL_TITLE 569
711#define TWO_DIGITS 570
712#define UCASE 571
713#define UNION 572
714#define UNIQUE 573
715#define SQL_UNKNOWN 574
716#define UPDATE 575
717#define UPPER 576
718#define USAGE 577
719#define USER 578
720#define IDENTIFIER 579
721#define IDENTIFIER_DOT_ASTERISK 580
722#define QUERY_PARAMETER 581
723#define USING 582
724#define VALUE 583
725#define VALUES 584
726#define VARBINARY 585
727#define VARCHAR 586
728#define VARYING 587
729#define VENDOR 588
730#define VIEW 589
731#define WEEK 590
732#define WHEN 591
733#define WHENEVER 592
734#define WHERE 593
735#define WHERE_CURRENT_OF 594
736#define WITH 595
737#define WORD_WRAPPED 596
738#define WORK 597
739#define WRAPPED 598
740#define XOR 599
741#define YEAR 600
742#define YEARS_BETWEEN 601
743#define SCAN_ERROR 602
744#define __LAST_TOKEN 603
745#define ILIKE 604
746
747
748
749
750#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
751typedef union YYSTYPE
752#line 511 "sqlparser.y"
753{
754 TQString* stringValue;
755 TQ_LLONG integerValue;
756 bool booleanValue;
757 struct realType realValue;
758 KexiDB::Field::Type colType;
759 KexiDB::Field *field;
760 KexiDB::BaseExpr *expr;
761 KexiDB::NArgExpr *exprList;
762 KexiDB::ConstExpr *constExpr;
763 KexiDB::QuerySchema *querySchema;
764 SelectOptionsInternal *selectOptions;
765 OrderByColumnInternal::List *orderByColumns;
766 TQVariant *variantValue;
767}
768/* Line 1528 of yacc.c. */
769#line 763 "sqlparser.tab.h"
770 YYSTYPE;
771# define yystype YYSTYPE /* obsolescent; will be withdrawn */
772# define YYSTYPE_IS_DECLARED 1
773# define YYSTYPE_IS_TRIVIAL 1
774#endif
775
776extern YYSTYPE yylval;
777
778#endif
Parser for SQL statements.
Definition parser.h:113