50#define YYBISON_VERSION "2.2"
53#define YYSKELETON_NAME "yacc.c"
106 BITWISE_SHIFT_LEFT = 295,
107 BITWISE_SHIFT_RIGHT = 296,
119 CHARACTER_STRING_LITERAL = 308,
146 CURRENT_TIMESTAMP = 335,
152 DATE_REMAINDER = 341,
177 DOUBLE_QUOTED_STRING = 366,
211 GREATER_OR_EQUAL = 400,
259 MINUTES_BETWEEN = 448,
264 MONTHS_BETWEEN = 453,
279 SQL_IS_NOT_NULL = 468,
330 SECONDS_BETWEEN = 519,
338 NOT_SIMILAR_TO = 527,
342 DATETIME_CONST = 531,
361 SYSDATE_FORMAT = 550,
371 TIMEZONE_MINUTE = 560,
391 IDENTIFIER_DOT_ASTERISK = 580,
392 QUERY_PARAMETER = 581,
405 WHERE_CURRENT_OF = 594,
424#define SQL_ABSOLUTE 263
429#define ADD_MINUTES 268
430#define ADD_MONTHS 269
431#define ADD_SECONDS 270
446#define AUTHORIZATION 285
447#define AUTO_INCREMENT 286
455#define BIT_LENGTH 294
456#define BITWISE_SHIFT_LEFT 295
457#define BITWISE_SHIFT_RIGHT 296
468#define CHAR_LENGTH 307
469#define CHARACTER_STRING_LITERAL 308
480#define CONCATENATION 319
482#define CONNECTION 321
483#define CONSTRAINT 322
484#define CONSTRAINTS 323
487#define CORRESPONDING 326
494#define CURRENT_DATE 333
495#define CURRENT_TIME 334
496#define CURRENT_TIMESTAMP 335
501#define DATE_FORMAT 340
502#define DATE_REMAINDER 341
503#define DATE_VALUE 342
505#define DAYOFMONTH 344
508#define DAYS_BETWEEN 347
509#define DEALLOCATE 348
513#define DEFERRABLE 352
515#define SQL_DELETE 354
518#define DESCRIPTOR 357
519#define DIAGNOSTICS 358
520#define DICTIONARY 359
522#define DISCONNECT 361
523#define DISPLACEMENT 362
525#define DOMAIN_TOKEN 364
526#define SQL_DOUBLE 365
527#define DOUBLE_QUOTED_STRING 366
535#define SQL_EXCEPTION 374
553#define FOUR_DIGITS 392
561#define GREATER_OR_EQUAL 400
564#define HOURS_BETWEEN 403
567#define SQL_IGNORE 406
576#define INSENSITIVE 415
592#define LESS_OR_EQUAL 431
595#define LINE_WIDTH 434
609#define MINUTES_BETWEEN 448
614#define MONTHS_BETWEEN 453
624#define NOT_EQUAL2 463
628#define SQL_IS_NULL 467
629#define SQL_IS_NOT_NULL 468
632#define OCTET_LENGTH 471
647#define SQL_PASCAL 486
648#define PERSISTENT 487
657#define PRIVILEGES 496
666#define REFERENCES 505
677#define SCREEN_WIDTH 516
680#define SECONDS_BETWEEN 519
687#define SIMILAR_TO 526
688#define NOT_SIMILAR_TO 527
689#define INTEGER_CONST 528
690#define REAL_CONST 529
691#define DATE_CONST 530
692#define DATETIME_CONST 531
693#define TIME_CONST 532
705#define SQLWARNING 544
711#define SYSDATE_FORMAT 550
717#define THREE_DIGITS 556
720#define TIMEZONE_HOUR 559
721#define TIMEZONE_MINUTE 560
726#define TRANSACTION 565
728#define TRANSLATION 567
730#define GENERAL_TITLE 569
731#define TWO_DIGITS 570
735#define SQL_UNKNOWN 574
740#define IDENTIFIER 579
741#define IDENTIFIER_DOT_ASTERISK 580
742#define QUERY_PARAMETER 581
755#define WHERE_CURRENT_OF 594
757#define WORD_WRAPPED 596
762#define YEARS_BETWEEN 601
763#define SCAN_ERROR 602
764#define __LAST_TOKEN 603
771#line 438 "sqlparser.y"
788# define LLONG_MAX 0x7fffffffffffffffLL
791# define LLONG_MIN 0x8000000000000000LL
794# define ULLONG_MAX 0xffffffffffffffffLL
803#include <tdelocale.h>
804#include <tqptrlist.h>
805#include <tqcstring.h>
806#include <tqvariant.h>
808#include <connection.h>
809#include <queryschema.h>
811#include <tableschema.h>
823#define YYSTACK_USE_ALLOCA 1
824#define YYMAXDEPTH 255
837 TQString parserUserName;
839 KexiDBField::ColumnType coltype;
851#ifdef YYERROR_VERBOSE
852# undef YYERROR_VERBOSE
853# define YYERROR_VERBOSE 1
855# define YYERROR_VERBOSE 0
860# define YYTOKEN_TABLE 0
863#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
865#line 511 "sqlparser.y"
867 TQString* stringValue;
868 TQ_LLONG integerValue;
870 struct realType realValue;
872 KexiDB::Field *field;
873 KexiDB::BaseExpr *expr;
874 KexiDB::NArgExpr *exprList;
875 KexiDB::ConstExpr *constExpr;
876 KexiDB::QuerySchema *querySchema;
877 SelectOptionsInternal *selectOptions;
878 OrderByColumnInternal::List *orderByColumns;
879 TQVariant *variantValue;
882#line 883 "sqlparser.tab.c"
884# define yystype YYSTYPE
885# define YYSTYPE_IS_DECLARED 1
886# define YYSTYPE_IS_TRIVIAL 1
895#line 896 "sqlparser.tab.c"
902typedef YYTYPE_UINT8 yytype_uint8;
904typedef unsigned char yytype_uint8;
908typedef YYTYPE_INT8 yytype_int8;
909#elif (defined __STDC__ || defined __C99__FUNC__ \
910 || defined __cplusplus || defined _MSC_VER)
911typedef signed char yytype_int8;
913typedef short int yytype_int8;
917typedef YYTYPE_UINT16 yytype_uint16;
919typedef unsigned short int yytype_uint16;
923typedef YYTYPE_INT16 yytype_int16;
925typedef short int yytype_int16;
930# define YYSIZE_T __SIZE_TYPE__
932# define YYSIZE_T size_t
933# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
934 || defined __cplusplus || defined _MSC_VER)
936# define YYSIZE_T size_t
938# define YYSIZE_T unsigned int
942#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
948# define YY_(msgid) dgettext ("bison-runtime", msgid)
952# define YY_(msgid) msgid
957#if ! defined lint || defined __GNUC__
958# define YYUSE(e) ((void) (e))
967#if (defined __STDC__ || defined __C99__FUNC__ \
968 || defined __cplusplus || defined _MSC_VER)
981#if ! defined yyoverflow || YYERROR_VERBOSE
985# ifdef YYSTACK_USE_ALLOCA
986# if YYSTACK_USE_ALLOCA
988# define YYSTACK_ALLOC __builtin_alloca
989# elif defined __BUILTIN_VA_ARG_INCR
992# define YYSTACK_ALLOC __alloca
993# elif defined _MSC_VER
995# define alloca _alloca
997# define YYSTACK_ALLOC alloca
998# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
999 || defined __cplusplus || defined _MSC_VER)
1009# ifdef YYSTACK_ALLOC
1011# define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1012# ifndef YYSTACK_ALLOC_MAXIMUM
1017# define YYSTACK_ALLOC_MAXIMUM 4032
1020# define YYSTACK_ALLOC YYMALLOC
1021# define YYSTACK_FREE YYFREE
1022# ifndef YYSTACK_ALLOC_MAXIMUM
1023# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1025# if (defined __cplusplus && ! defined _STDLIB_H \
1026 && ! ((defined YYMALLOC || defined malloc) \
1027 && (defined YYFREE || defined free)))
1034# define YYMALLOC malloc
1035# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1036 || defined __cplusplus || defined _MSC_VER)
1037void *malloc (YYSIZE_T);
1042# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1043 || defined __cplusplus || defined _MSC_VER)
1051#if (! defined yyoverflow \
1052 && (! defined __cplusplus \
1053 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1063# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1067# define YYSTACK_BYTES(N) \
1068 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1069 + YYSTACK_GAP_MAXIMUM)
1074# if defined __GNUC__ && 1 < __GNUC__
1075# define YYCOPY(To, From, Count) \
1076 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1078# define YYCOPY(To, From, Count) \
1082 for (yyi = 0; yyi < (Count); yyi++) \
1083 (To)[yyi] = (From)[yyi]; \
1094# define YYSTACK_RELOCATE(Stack) \
1097 YYSIZE_T yynewbytes; \
1098 YYCOPY (&yyptr->Stack, Stack, yysize); \
1099 Stack = &yyptr->Stack; \
1100 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1101 yyptr += yynewbytes / sizeof (*yyptr); \
1113#define YYNTOKENS 373
1119#define YYNSTATES 176
1123#define YYMAXUTOK 604
1125#define YYTRANSLATE(YYX) \
1126 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1129static const yytype_uint16 yytranslate[] =
1131 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1132 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1133 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1134 2, 2, 2, 2, 2, 2, 357, 352, 370, 361,
1135 358, 359, 351, 350, 355, 349, 356, 362, 2, 2,
1136 2, 2, 2, 2, 2, 2, 2, 2, 2, 354,
1137 364, 363, 365, 360, 353, 2, 2, 2, 2, 2,
1138 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1139 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1140 2, 368, 2, 369, 367, 2, 2, 2, 2, 2,
1141 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1143 2, 2, 2, 2, 371, 2, 372, 2, 2, 2,
1144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1147 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1156 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1157 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1158 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1159 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1160 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1161 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1162 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1163 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1164 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1165 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1166 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1167 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1168 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1169 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1170 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1171 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1172 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1173 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1174 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1175 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1176 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1177 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1178 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1179 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1180 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1181 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1182 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1183 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1184 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1185 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1186 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1187 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1188 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1189 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1190 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1191 345, 346, 347, 348, 366
1197static const yytype_uint16 yyprhs[] =
1199 0, 0, 3, 5, 9, 11, 14, 16, 18, 19,
1200 27, 31, 33, 36, 40, 43, 45, 48, 51, 53,
1201 55, 60, 65, 66, 69, 73, 76, 80, 85, 87,
1202 89, 93, 98, 103, 106, 108, 111, 115, 120, 122,
1203 126, 128, 130, 132, 134, 138, 142, 146, 148, 152,
1204 156, 160, 164, 168, 170, 174, 178, 182, 186, 190,
1205 194, 196, 199, 202, 204, 208, 212, 214, 218, 222,
1206 226, 230, 232, 236, 240, 244, 246, 249, 252, 255,
1207 258, 260, 262, 265, 269, 271, 273, 275, 277, 279,
1208 283, 287, 291, 295, 298, 302, 304, 306, 309, 313,
1209 317, 319, 321, 323, 327, 330, 332, 337, 339
1213static const yytype_int16 yyrhs[] =
1215 374, 0, -1, 375, -1, 376, 354, 375, -1, 376,
1216 -1, 376, 354, -1, 377, -1, 384, -1, -1, 75,
1217 297, 324, 378, 358, 379, 359, -1, 379, 355, 380,
1218 -1, 380, -1, 324, 383, -1, 324, 383, 381, -1,
1219 381, 382, -1, 382, -1, 239, 170, -1, 206, 210,
1220 -1, 31, -1, 4, -1, 4, 358, 273, 359, -1,
1221 331, 358, 273, 359, -1, -1, 385, 406, -1, 385,
1222 406, 403, -1, 385, 403, -1, 385, 406, 386, -1,
1223 385, 406, 403, 386, -1, 265, -1, 387, -1, 225,
1224 43, 388, -1, 387, 225, 43, 388, -1, 225, 43,
1225 388, 387, -1, 338, 391, -1, 389, -1, 389, 390,
1226 -1, 389, 355, 388, -1, 389, 390, 355, 388, -1,
1227 324, -1, 324, 356, 324, -1, 273, -1, 25, -1,
1228 100, -1, 392, -1, 393, 20, 392, -1, 393, 224,
1229 392, -1, 393, 344, 392, -1, 393, -1, 394, 365,
1230 393, -1, 394, 145, 393, -1, 394, 364, 393, -1,
1231 394, 176, 393, -1, 394, 363, 393, -1, 394, -1,
1232 395, 207, 394, -1, 395, 208, 394, -1, 395, 178,
1233 394, -1, 395, 153, 394, -1, 395, 271, 394, -1,
1234 395, 272, 394, -1, 395, -1, 395, 212, -1, 395,
1235 213, -1, 396, -1, 397, 40, 396, -1, 397, 41,
1236 396, -1, 397, -1, 398, 350, 397, -1, 398, 349,
1237 397, -1, 398, 370, 397, -1, 398, 371, 397, -1,
1238 398, -1, 399, 362, 398, -1, 399, 351, 398, -1,
1239 399, 352, 398, -1, 399, -1, 349, 399, -1, 350,
1240 399, -1, 372, 399, -1, 206, 399, -1, 324, -1,
1241 326, -1, 324, 401, -1, 324, 356, 324, -1, 210,
1242 -1, 53, -1, 273, -1, 274, -1, 400, -1, 358,
1243 391, 359, -1, 358, 402, 359, -1, 391, 355, 402,
1244 -1, 391, 355, 391, -1, 138, 404, -1, 404, 355,
1245 405, -1, 405, -1, 324, -1, 324, 324, -1, 324,
1246 23, 324, -1, 406, 355, 407, -1, 407, -1, 408,
1247 -1, 409, -1, 408, 23, 324, -1, 408, 324, -1,
1248 391, -1, 108, 358, 408, 359, -1, 351, -1, 324,
1253static const yytype_uint16 yyrline[] =
1255 0, 580, 580, 590, 594, 595, 605, 609, 617, 616,
1256 626, 626, 632, 640, 656, 656, 662, 667, 672, 680,
1257 685, 692, 699, 707, 714, 719, 725, 731, 740, 750,
1258 756, 762, 769, 779, 788, 797, 807, 815, 827, 833,
1259 840, 847, 851, 858, 863, 868, 872, 877, 882, 886,
1260 890, 894, 898, 903, 908, 913, 917, 921, 925, 929,
1261 934, 939, 943, 948, 953, 957, 962, 967, 972, 976,
1262 980, 985, 990, 994, 998, 1003, 1009, 1013, 1017, 1021,
1263 1025, 1033, 1039, 1046, 1053, 1060, 1066, 1083, 1089, 1094,
1264 1102, 1112, 1117, 1126, 1171, 1176, 1184, 1212, 1223, 1239,
1265 1245, 1254, 1263, 1268, 1277, 1289, 1333, 1342, 1351
1269#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1272static const char * const yytname[] =
1274 "$end", "error", "$undefined", "UMINUS", "SQL_TYPE", "SQL_ABS", "ACOS",
1275 "AMPERSAND", "SQL_ABSOLUTE", "ADA", "ADD", "ADD_DAYS", "ADD_HOURS",
1276 "ADD_MINUTES", "ADD_MONTHS", "ADD_SECONDS", "ADD_YEARS", "ALL",
1277 "ALLOCATE", "ALTER", "AND", "ANY", "ARE", "AS", "ASIN", "ASC", "ASCII",
1278 "ASSERTION", "ATAN", "ATAN2", "AUTHORIZATION", "AUTO_INCREMENT", "AVG",
1279 "BEFORE", "SQL_BEGIN", "BETWEEN", "BIGINT", "BINARY", "BIT",
1280 "BIT_LENGTH", "BITWISE_SHIFT_LEFT", "BITWISE_SHIFT_RIGHT", "BREAK", "BY",
1281 "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG", "CEILING", "CENTER",
1282 "SQL_CHAR", "CHAR_LENGTH", "CHARACTER_STRING_LITERAL", "CHECK", "CLOSE",
1283 "COALESCE", "COBOL", "COLLATE", "COLLATION", "COLUMN", "COMMIT",
1284 "COMPUTE", "CONCAT", "CONCATENATION", "CONNECT", "CONNECTION",
1285 "CONSTRAINT", "CONSTRAINTS", "CONTINUE", "CONVERT", "CORRESPONDING",
1286 "COS", "COT", "COUNT", "CREATE", "CURDATE", "CURRENT", "CURRENT_DATE",
1287 "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURTIME", "CURSOR", "DATABASE",
1288 "SQL_DATE", "DATE_FORMAT", "DATE_REMAINDER", "DATE_VALUE", "DAY",
1289 "DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR", "DAYS_BETWEEN", "DEALLOCATE",
1290 "DEC", "DECLARE", "DEFAULT", "DEFERRABLE", "DEFERRED", "SQL_DELETE",
1291 "DESC", "DESCRIBE", "DESCRIPTOR", "DIAGNOSTICS", "DICTIONARY",
1292 "DIRECTORY", "DISCONNECT", "DISPLACEMENT", "DISTINCT", "DOMAIN_TOKEN",
1293 "SQL_DOUBLE", "DOUBLE_QUOTED_STRING", "DROP", "ELSE", "END", "END_EXEC",
1294 "EQUAL", "ESCAPE", "EXCEPT", "SQL_EXCEPTION", "EXEC", "EXECUTE",
1295 "EXISTS", "EXP", "EXPONENT", "EXTERNAL", "EXTRACT", "SQL_FALSE", "FETCH",
1296 "FIRST", "SQL_FLOAT", "FLOOR", "FN", "FOR", "FOREIGN", "FORTRAN",
1297 "FOUND", "FOUR_DIGITS", "FROM", "FULL", "GET", "GLOBAL", "GO", "GOTO",
1298 "GRANT", "GREATER_OR_EQUAL", "HAVING", "HOUR", "HOURS_BETWEEN",
1299 "IDENTITY", "IFNULL", "SQL_IGNORE", "IMMEDIATE", "SQL_IN", "INCLUDE",
1300 "INDEX", "INDICATOR", "INITIALLY", "INNER", "INPUT", "INSENSITIVE",
1301 "INSERT", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "IS", "ISOLATION",
1302 "JOIN", "JUSTIFY", "KEY", "LANGUAGE", "LAST", "LCASE", "LEFT", "LENGTH",
1303 "LESS_OR_EQUAL", "LEVEL", "LIKE", "LINE_WIDTH", "LOCAL", "LOCATE", "LOG",
1304 "SQL_LONG", "LOWER", "LTRIM", "LTRIP", "MATCH", "SQL_MAX", "MICROSOFT",
1305 "SQL_MIN", "MINUS", "MINUTE", "MINUTES_BETWEEN", "MOD", "MODIFY",
1306 "MODULE", "MONTH", "MONTHS_BETWEEN", "MUMPS", "NAMES", "NATIONAL",
1307 "NCHAR", "NEXT", "NODUP", "NONE", "NOT", "NOT_EQUAL", "NOT_EQUAL2",
1308 "NOW", "SQL_NULL", "SQL_IS", "SQL_IS_NULL", "SQL_IS_NOT_NULL", "NULLIF",
1309 "NUMERIC", "OCTET_LENGTH", "ODBC", "OF", "SQL_OFF", "SQL_ON", "ONLY",
1310 "OPEN", "OPTION", "OR", "ORDER", "OUTER", "OUTPUT", "OVERLAPS", "PAGE",
1311 "PARTIAL", "SQL_PASCAL", "PERSISTENT", "CQL_PI", "PLI", "POSITION",
1312 "PRECISION", "PREPARE", "PRESERVE", "PRIMARY", "PRIOR", "PRIVILEGES",
1313 "PROCEDURE", "PRODUCT", "PUBLIC", "QUARTER", "QUIT", "RAND", "READ_ONLY",
1314 "REAL", "REFERENCES", "REPEAT", "REPLACE", "RESTRICT", "REVOKE", "RIGHT",
1315 "ROLLBACK", "ROWS", "RPAD", "RTRIM", "SCHEMA", "SCREEN_WIDTH", "SCROLL",
1316 "SECOND", "SECONDS_BETWEEN", "SELECT", "SEQUENCE", "SETOPT", "SET",
1317 "SHOWOPT", "SIGN", "SIMILAR_TO", "NOT_SIMILAR_TO", "INTEGER_CONST",
1318 "REAL_CONST", "DATE_CONST", "DATETIME_CONST", "TIME_CONST", "SIN",
1319 "SQL_SIZE", "SMALLINT", "SOME", "SPACE", "SQL", "SQL_TRUE", "SQLCA",
1320 "SQLCODE", "SQLERROR", "SQLSTATE", "SQLWARNING", "SQRT", "STDEV",
1321 "SUBSTRING", "SUM", "SYSDATE", "SYSDATE_FORMAT", "SYSTEM", "TABLE",
1322 "TAN", "TEMPORARY", "THEN", "THREE_DIGITS", "TIME", "TIMESTAMP",
1323 "TIMEZONE_HOUR", "TIMEZONE_MINUTE", "TINYINT", "TO", "TO_CHAR",
1324 "TO_DATE", "TRANSACTION", "TRANSLATE", "TRANSLATION", "TRUNCATE",
1325 "GENERAL_TITLE", "TWO_DIGITS", "UCASE", "UNION", "UNIQUE", "SQL_UNKNOWN",
1326 "UPDATE", "UPPER", "USAGE", "USER", "IDENTIFIER",
1327 "IDENTIFIER_DOT_ASTERISK", "QUERY_PARAMETER", "USING", "VALUE", "VALUES",
1328 "VARBINARY", "VARCHAR", "VARYING", "VENDOR", "VIEW", "WEEK", "WHEN",
1329 "WHENEVER", "WHERE", "WHERE_CURRENT_OF", "WITH", "WORD_WRAPPED", "WORK",
1330 "WRAPPED", "XOR", "YEAR", "YEARS_BETWEEN", "SCAN_ERROR", "__LAST_TOKEN",
1331 "'-'", "'+'", "'*'", "'%'", "'@'", "';'", "','", "'.'", "'$'", "'('",
1332 "')'", "'?'", "'''", "'/'", "'='", "'<'", "'>'", "ILIKE", "'^'", "'['",
1333 "']'", "'&'", "'|'", "'~'", "$accept", "TopLevelStatement",
1334 "StatementList", "Statement", "CreateTableStatement", "@1", "ColDefs",
1335 "ColDef", "ColKeys", "ColKey", "ColType", "SelectStatement", "Select",
1336 "SelectOptions", "WhereClause", "OrderByClause", "OrderByColumnId",
1337 "OrderByOption", "aExpr", "aExpr2", "aExpr3", "aExpr4", "aExpr5",
1338 "aExpr6", "aExpr7", "aExpr8", "aExpr9", "aExpr10", "aExprList",
1339 "aExprList2", "Tables", "FlatTableList", "FlatTable", "ColViews",
1340 "ColItem", "ColExpression", "ColWildCard", 0
1347static const yytype_uint16 yytoknum[] =
1349 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1350 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1351 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1352 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1353 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1354 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1355 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1356 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1357 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1358 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1359 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1360 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1361 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1362 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1363 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1364 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1365 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1366 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1367 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1368 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1369 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1370 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1371 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1372 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1373 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1374 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
1375 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
1376 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1377 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1378 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1379 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1380 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
1381 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
1382 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
1383 595, 596, 597, 598, 599, 600, 601, 602, 603, 45,
1384 43, 42, 37, 64, 59, 44, 46, 36, 40, 41,
1385 63, 39, 47, 61, 60, 62, 604, 94, 91, 93,
1391static const yytype_uint16 yyr1[] =
1393 0, 373, 374, 375, 375, 375, 376, 376, 378, 377,
1394 379, 379, 380, 380, 381, 381, 382, 382, 382, 383,
1395 383, 383, 383, 384, 384, 384, 384, 384, 385, 386,
1396 386, 386, 386, 387, 388, 388, 388, 388, 389, 389,
1397 389, 390, 390, 391, 392, 392, 392, 392, 393, 393,
1398 393, 393, 393, 393, 394, 394, 394, 394, 394, 394,
1399 394, 395, 395, 395, 396, 396, 396, 397, 397, 397,
1400 397, 397, 398, 398, 398, 398, 399, 399, 399, 399,
1401 399, 399, 399, 399, 399, 399, 399, 399, 399, 400,
1402 401, 402, 402, 403, 404, 404, 405, 405, 405, 406,
1403 406, 407, 407, 407, 407, 408, 408, 409, 409
1407static const yytype_uint8 yyr2[] =
1409 0, 2, 1, 3, 1, 2, 1, 1, 0, 7,
1410 3, 1, 2, 3, 2, 1, 2, 2, 1, 1,
1411 4, 4, 0, 2, 3, 2, 3, 4, 1, 1,
1412 3, 4, 4, 2, 1, 2, 3, 4, 1, 3,
1413 1, 1, 1, 1, 3, 3, 3, 1, 3, 3,
1414 3, 3, 3, 1, 3, 3, 3, 3, 3, 3,
1415 1, 2, 2, 1, 3, 3, 1, 3, 3, 3,
1416 3, 1, 3, 3, 3, 1, 2, 2, 2, 2,
1417 1, 1, 2, 3, 1, 1, 1, 1, 1, 3,
1418 3, 3, 3, 2, 3, 1, 1, 2, 3, 3,
1419 1, 1, 1, 3, 2, 1, 4, 1, 3
1425static const yytype_uint8 yydefact[] =
1427 0, 0, 28, 0, 2, 4, 6, 7, 0, 0,
1428 1, 5, 85, 0, 0, 0, 84, 86, 87, 80,
1429 81, 0, 0, 107, 0, 0, 105, 43, 47, 53,
1430 60, 63, 66, 71, 75, 88, 25, 23, 100, 101,
1431 102, 8, 3, 0, 96, 93, 95, 80, 79, 0,
1432 0, 82, 76, 77, 0, 78, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 61, 62,
1434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435 0, 0, 0, 0, 26, 29, 24, 0, 104, 0,
1436 0, 0, 97, 0, 0, 83, 108, 0, 0, 89,
1437 44, 45, 46, 49, 51, 52, 50, 48, 57, 56,
1438 54, 55, 58, 59, 64, 65, 68, 67, 69, 70,
1439 73, 74, 72, 0, 33, 99, 0, 27, 103, 0,
1440 106, 98, 94, 0, 90, 40, 38, 30, 34, 0,
1441 22, 0, 11, 92, 91, 0, 32, 41, 42, 0,
1442 35, 31, 19, 0, 12, 0, 9, 39, 36, 0,
1443 0, 0, 18, 0, 0, 13, 15, 10, 37, 0,
1444 0, 17, 16, 14, 20, 21
1448static const yytype_int16 yydefgoto[] =
1450 -1, 3, 4, 5, 6, 89, 141, 142, 165, 166,
1451 154, 7, 8, 84, 85, 137, 138, 150, 26, 27,
1452 28, 29, 30, 31, 32, 33, 34, 35, 51, 98,
1453 36, 45, 46, 37, 38, 39, 40
1458#define YYPACT_NINF -336
1459static const yytype_int16 yypact[] =
1461 -67, -271, -336, 39, -336, -311, -336, -336, -50, -265,
1462 -336, -67, -336, -298, -262, -37, -336, -336, -336, -335,
1463 -336, -37, -37, -336, -37, -37, -336, -336, -18, -135,
1464 -142, -336, -7, -325, -332, -336, -336, -133, -336, -19,
1465 -336, -336, -336, -40, -9, -291, -336, -318, -336, -309,
1466 -37, -336, -336, -336, -292, -336, -37, -37, -37, -37,
1467 -37, -37, -37, -37, -37, -37, -37, -37, -336, -336,
1468 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
1469 -37, 26, -37, -47, -336, -153, -216, -251, -336, -284,
1470 -273, -237, -336, -262, -231, -336, -336, -260, -263, -336,
1471 -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
1472 -336, -336, -336, -336, -336, -336, -336, -336, -336, -336,
1473 -336, -336, -336, -261, -336, -336, 51, -336, -336, -227,
1474 -336, -336, -336, -37, -336, -336, -258, -239, -25, -261,
1475 -3, -324, -336, -260, -336, -224, -336, -336, -336, -261,
1476 -254, -336, -256, -255, -24, -227, -336, -336, -336, -261,
1477 -169, -168, -336, -104, -63, -24, -336, -336, -336, -250,
1478 -249, -336, -336, -336, -336, -336
1482static const yytype_int16 yypgoto[] =
1484 -336, -336, 97, -336, -336, -336, -336, -44, -336, -53,
1485 -336, -336, -336, 27, -23, -122, -336, -336, -6, -1,
1486 18, -17, -336, -21, 8, 11, 7, -336, -336, -16,
1487 78, -336, 23, -336, 35, 76, -336
1494#define YYTABLE_NINF -1
1495static const yytype_uint8 yytable[] =
1497 147, 152, 56, 12, 87, 14, 12, 162, 1, 81,
1498 59, 64, 135, 12, 91, 95, 12, 151, 54, 78,
1499 79, 49, 48, 50, 74, 75, 9, 158, 52, 53,
1500 80, 155, 55, 72, 73, 156, 65, 168, 94, 10,
1501 50, 60, 96, 11, 97, 76, 77, 108, 109, 110,
1502 111, 114, 115, 112, 113, 100, 101, 102, 13, 41,
1503 43, 13, 44, 136, 93, 66, 67, 99, 13, 123,
1504 68, 69, 126, 128, 129, 148, 124, 103, 104, 105,
1505 106, 107, 116, 117, 118, 119, 130, 131, 14, 120,
1506 121, 122, 81, 95, 139, 133, 134, 140, 145, 82,
1507 157, 159, 160, 161, 169, 170, 171, 172, 42, 174,
1508 175, 167, 173, 127, 146, 86, 132, 144, 125, 90,
1509 0, 0, 82, 0, 0, 0, 0, 143, 0, 70,
1510 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 0, 0, 0, 15, 0, 0, 15,
1513 16, 0, 0, 16, 0, 0, 15, 0, 0, 15,
1514 16, 0, 0, 16, 0, 0, 0, 0, 0, 0,
1515 0, 0, 163, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
1517 0, 0, 0, 0, 0, 82, 57, 0, 0, 0,
1518 0, 0, 0, 0, 0, 164, 0, 0, 0, 0,
1519 0, 0, 83, 17, 18, 0, 17, 18, 61, 62,
1520 63, 0, 0, 17, 18, 0, 17, 18, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 0, 0, 0, 19, 0, 20, 19, 0, 20,
1525 0, 0, 0, 0, 47, 0, 20, 47, 0, 20,
1526 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
1527 22, 23, 21, 22, 23, 88, 0, 0, 24, 21,
1528 22, 24, 21, 22, 0, 92, 0, 0, 24, 0,
1529 0, 24, 25, 0, 0, 25, 58, 0, 153, 0,
1530 149, 0, 25, 0, 0, 25
1533static const yytype_int16 yycheck[] =
1535 25, 4, 20, 53, 23, 138, 53, 31, 75, 225,
1536 145, 153, 273, 53, 23, 324, 53, 139, 24, 351,
1537 352, 356, 15, 358, 349, 350, 297, 149, 21, 22,
1538 362, 355, 25, 40, 41, 359, 178, 159, 356, 0,
1539 358, 176, 351, 354, 50, 370, 371, 64, 65, 66,
1540 67, 72, 73, 70, 71, 56, 57, 58, 108, 324,
1541 358, 108, 324, 324, 355, 207, 208, 359, 108, 43,
1542 212, 213, 225, 324, 358, 100, 82, 59, 60, 61,
1543 62, 63, 74, 75, 76, 77, 359, 324, 138, 78,
1544 79, 80, 225, 324, 43, 355, 359, 324, 356, 338,
1545 324, 355, 358, 358, 273, 273, 210, 170, 11, 359,
1546 359, 155, 165, 86, 137, 37, 93, 133, 83, 43,
1547 -1, -1, 338, -1, -1, -1, -1, 133, -1, 271,
1548 272, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1550 -1, -1, -1, -1, -1, -1, 206, -1, -1, 206,
1551 210, -1, -1, 210, -1, -1, 206, -1, -1, 206,
1552 210, -1, -1, 210, -1, -1, -1, -1, -1, -1,
1553 -1, -1, 206, -1, -1, -1, -1, -1, -1, -1,
1554 -1, -1, -1, -1, -1, -1, -1, -1, 265, -1,
1555 -1, -1, -1, -1, -1, 338, 224, -1, -1, -1,
1556 -1, -1, -1, -1, -1, 239, -1, -1, -1, -1,
1557 -1, -1, 355, 273, 274, -1, 273, 274, 363, 364,
1558 365, -1, -1, 273, 274, -1, 273, 274, -1, -1,
1559 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1561 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1562 -1, -1, -1, -1, 324, -1, 326, 324, -1, 326,
1563 -1, -1, -1, -1, 324, -1, 326, 324, -1, 326,
1564 -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
1565 350, 351, 349, 350, 351, 324, -1, -1, 358, 349,
1566 350, 358, 349, 350, -1, 324, -1, -1, 358, -1,
1567 -1, 358, 372, -1, -1, 372, 344, -1, 331, -1,
1568 355, -1, 372, -1, -1, 372
1573static const yytype_uint16 yystos[] =
1575 0, 75, 265, 374, 375, 376, 377, 384, 385, 297,
1576 0, 354, 53, 108, 138, 206, 210, 273, 274, 324,
1577 326, 349, 350, 351, 358, 372, 391, 392, 393, 394,
1578 395, 396, 397, 398, 399, 400, 403, 406, 407, 408,
1579 409, 324, 375, 358, 324, 404, 405, 324, 399, 356,
1580 358, 401, 399, 399, 391, 399, 20, 224, 344, 145,
1581 176, 363, 364, 365, 153, 178, 207, 208, 212, 213,
1582 271, 272, 40, 41, 349, 350, 370, 371, 351, 352,
1583 362, 225, 338, 355, 386, 387, 403, 23, 324, 378,
1584 408, 23, 324, 355, 356, 324, 351, 391, 402, 359,
1585 392, 392, 392, 393, 393, 393, 393, 393, 394, 394,
1586 394, 394, 394, 394, 396, 396, 397, 397, 397, 397,
1587 398, 398, 398, 43, 391, 407, 225, 386, 324, 358,
1588 359, 324, 405, 355, 359, 273, 324, 388, 389, 43,
1589 324, 379, 380, 391, 402, 356, 387, 25, 100, 355,
1590 390, 388, 4, 331, 383, 355, 359, 324, 388, 355,
1591 358, 358, 31, 206, 239, 381, 382, 380, 388, 273,
1592 273, 210, 170, 382, 359, 359
1595#define yyerrok (yyerrstatus = 0)
1596#define yyclearin (yychar = YYEMPTY)
1600#define YYACCEPT goto yyacceptlab
1601#define YYABORT goto yyabortlab
1602#define YYERROR goto yyerrorlab
1609#define YYFAIL goto yyerrlab
1611#define YYRECOVERING() (!!yyerrstatus)
1613#define YYBACKUP(Token, Value) \
1615 if (yychar == YYEMPTY && yylen == 1) \
1619 yytoken = YYTRANSLATE (yychar); \
1625 yyerror (YY_("syntax error: cannot back up")); \
1632#define YYERRCODE 256
1639#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1640#ifndef YYLLOC_DEFAULT
1641# define YYLLOC_DEFAULT(Current, Rhs, N) \
1645 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1646 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1647 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1648 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1652 (Current).first_line = (Current).last_line = \
1653 YYRHSLOC (Rhs, 0).last_line; \
1654 (Current).first_column = (Current).last_column = \
1655 YYRHSLOC (Rhs, 0).last_column; \
1665#ifndef YY_LOCATION_PRINT
1666# ifdef YYLTYPE_IS_TRIVIAL
1667# define YY_LOCATION_PRINT(File, Loc) \
1668 fprintf (File, "%d.%d-%d.%d", \
1669 (Loc).first_line, (Loc).first_column, \
1670 (Loc).last_line, (Loc).last_column)
1672# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1680# define YYLEX yylex (YYLEX_PARAM)
1682# define YYLEX yylex ()
1690# define YYFPRINTF fprintf
1693# define YYDPRINTF(Args) \
1699# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1703 YYFPRINTF (stderr, "%s ", Title); \
1704 yy_symbol_print (stderr, \
1706 YYFPRINTF (stderr, "\n"); \
1716#if (defined __STDC__ || defined __C99__FUNC__ \
1717 || defined __cplusplus || defined _MSC_VER)
1719yy_symbol_value_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep)
1722yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1725 const YYSTYPE * const yyvaluep;
1731 if (yytype < YYNTOKENS)
1732 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1748#if (defined __STDC__ || defined __C99__FUNC__ \
1749 || defined __cplusplus || defined _MSC_VER)
1751yy_symbol_print (FILE *yyoutput, int yytype, const YYSTYPE * const yyvaluep)
1754yy_symbol_print (yyoutput, yytype, yyvaluep)
1757 const YYSTYPE * const yyvaluep;
1760 if (yytype < YYNTOKENS)
1761 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1763 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1765 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1766 YYFPRINTF (yyoutput, ")");
1774#if (defined __STDC__ || defined __C99__FUNC__ \
1775 || defined __cplusplus || defined _MSC_VER)
1777yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1780yy_stack_print (bottom, top)
1781 yytype_int16 *bottom;
1785 YYFPRINTF (stderr, "Stack now");
1786 for (; bottom <= top; ++bottom)
1787 YYFPRINTF (stderr, " %d", *bottom);
1788 YYFPRINTF (stderr, "\n");
1791# define YY_STACK_PRINT(Bottom, Top) \
1794 yy_stack_print ((Bottom), (Top)); \
1802#if (defined __STDC__ || defined __C99__FUNC__ \
1803 || defined __cplusplus || defined _MSC_VER)
1805yy_reduce_print (YYSTYPE *yyvsp,
1809yy_reduce_print (yyvsp, yyrule
1816 int yynrhs = yyr2[yyrule];
1818 unsigned long int yylno = yyrline[yyrule];
1819 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1822 for (yyi = 0; yyi < yynrhs; yyi++)
1824 fprintf (stderr, " $%d = ", yyi + 1);
1825 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1826 &(yyvsp[(yyi + 1) - (yynrhs)])
1828 fprintf (stderr, "\n");
1832# define YY_REDUCE_PRINT(Rule) \
1835 yy_reduce_print (yyvsp, Rule); \
1842# define YYDPRINTF(Args)
1843# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1844# define YY_STACK_PRINT(Bottom, Top)
1845# define YY_REDUCE_PRINT(Rule)
1851# define YYINITDEPTH 200
1862# define YYMAXDEPTH 10000
1870# if defined __GLIBC__ && defined _STRING_H
1871# define yystrlen strlen
1874#if (defined __STDC__ || defined __C99__FUNC__ \
1875 || defined __cplusplus || defined _MSC_VER)
1877yystrlen ( const char *yystr)
1885 for (yylen = 0; yystr[yylen]; yylen++)
1893# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1894# define yystpcpy stpcpy
1898#if (defined __STDC__ || defined __C99__FUNC__ \
1899 || defined __cplusplus || defined _MSC_VER)
1901yystpcpy ( char *yydest, const char *yysrc)
1904yystpcpy (yydest, yysrc)
1910 const char *yys = yysrc;
1912 while ((*yyd++ = *yys++) != '\0')
1929yytnamerr ( char *yyres, const char *yystr)
1934 char const *yyp = yystr;
1941 goto do_not_strip_quotes;
1945 goto do_not_strip_quotes;
1958 do_not_strip_quotes: ;
1962 return yystrlen (yystr);
1964 return yystpcpy (yyres, yystr) - yyres;
1976yysyntax_error ( char *yyresult, int yystate, int yychar)
1978 int yyn = yypact[yystate];
1980 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1984 int yytype = YYTRANSLATE (yychar);
1985 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1986 YYSIZE_T yysize = yysize0;
1988 int yysize_overflow = 0;
1989 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1990 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1996 YY_( "syntax error, unexpected %s");
1997 YY_( "syntax error, unexpected %s, expecting %s");
1998 YY_( "syntax error, unexpected %s, expecting %s or %s");
1999 YY_( "syntax error, unexpected %s, expecting %s or %s or %s");
2000 YY_( "syntax error, unexpected %s, expecting %s or %s or %s or %s");
2004 static char const yyunexpected[] = "syntax error, unexpected %s";
2005 static char const yyexpecting[] = ", expecting %s";
2006 static char const yyor[] = " or %s";
2007 char yyformat[ sizeof yyunexpected
2008 + sizeof yyexpecting - 1
2009 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2010 * ( sizeof yyor - 1))];
2011 char const *yyprefix = yyexpecting;
2015 int yyxbegin = yyn < 0 ? -yyn : 0;
2018 int yychecklim = YYLAST - yyn + 1;
2019 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2022 yyarg[0] = yytname[yytype];
2023 yyfmt = yystpcpy (yyformat, yyunexpected);
2025 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2026 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2028 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2032 yyformat[ sizeof yyunexpected - 1] = '\0';
2035 yyarg[yycount++] = yytname[yyx];
2036 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2037 yysize_overflow |= (yysize1 < yysize);
2039 yyfmt = yystpcpy (yyfmt, yyprefix);
2043 yyf = YY_(yyformat);
2044 yysize1 = yysize + yystrlen (yyf);
2045 yysize_overflow |= (yysize1 < yysize);
2048 if (yysize_overflow)
2049 return YYSIZE_MAXIMUM;
2056 char *yyp = yyresult;
2058 while ((*yyp = *yyf) != '\0')
2060 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2062 yyp += yytnamerr (yyp, yyarg[yyi++]);
2083#if (defined __STDC__ || defined __C99__FUNC__ \
2084 || defined __cplusplus || defined _MSC_VER)
2086yydestruct ( const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2089yydestruct (yymsg, yytype, yyvaluep)
2099 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2113#if defined __STDC__ || defined __cplusplus
2114int yyparse ( void *YYPARSE_PARAM);
2119#if defined __STDC__ || defined __cplusplus
2144#if (defined __STDC__ || defined __C99__FUNC__ \
2145 || defined __cplusplus || defined _MSC_VER)
2147yyparse ( void *YYPARSE_PARAM)
2150yyparse (YYPARSE_PARAM)
2151 void *YYPARSE_PARAM;
2154#if (defined __STDC__ || defined __C99__FUNC__ \
2155 || defined __cplusplus || defined _MSC_VER)
2176 char *yymsg = yymsgbuf;
2177 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2189 yytype_int16 yyssa[YYINITDEPTH];
2190 yytype_int16 *yyss = yyssa;
2191 yytype_int16 *yyssp;
2194 YYSTYPE yyvsa[YYINITDEPTH];
2195 YYSTYPE *yyvs = yyvsa;
2200#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2202 YYSIZE_T yystacksize = YYINITDEPTH;
2213 YYDPRINTF ((stderr, "Starting parse\n"));
2241 if (yyss + yystacksize - 1 <= yyssp)
2244 YYSIZE_T yysize = yyssp - yyss + 1;
2251 YYSTYPE *yyvs1 = yyvs;
2252 yytype_int16 *yyss1 = yyss;
2259 yyoverflow (YY_( "memory exhausted"),
2260 &yyss1, yysize * sizeof (*yyssp),
2261 &yyvs1, yysize * sizeof (*yyvsp),
2269# ifndef YYSTACK_RELOCATE
2270 goto yyexhaustedlab;
2273 if (YYMAXDEPTH <= yystacksize)
2274 goto yyexhaustedlab;
2276 if (YYMAXDEPTH < yystacksize)
2277 yystacksize = YYMAXDEPTH;
2280 yytype_int16 *yyss1 = yyss;
2281 union yyalloc *yyptr =
2282 ( union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2284 goto yyexhaustedlab;
2285 YYSTACK_RELOCATE (yyss);
2286 YYSTACK_RELOCATE (yyvs);
2288# undef YYSTACK_RELOCATE
2290 YYSTACK_FREE (yyss1);
2295 yyssp = yyss + yysize - 1;
2296 yyvsp = yyvs + yysize - 1;
2299 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2300 ( unsigned long int) yystacksize));
2302 if (yyss + yystacksize - 1 <= yyssp)
2306 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2319 yyn = yypact[yystate];
2320 if (yyn == YYPACT_NINF)
2326 if (yychar == YYEMPTY)
2328 YYDPRINTF ((stderr, "Reading a token: "));
2332 if (yychar <= YYEOF)
2334 yychar = yytoken = YYEOF;
2335 YYDPRINTF ((stderr, "Now at end of input.\n"));
2339 yytoken = YYTRANSLATE (yychar);
2340 YY_SYMBOL_PRINT ( "Next token is", yytoken, &yylval, &yylloc);
2346 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2351 if (yyn == 0 || yyn == YYTABLE_NINF)
2366 YY_SYMBOL_PRINT ( "Shifting", yytoken, &yylval, &yylloc);
2369 if (yychar != YYEOF)
2382 yyn = yydefact[yystate];
2403 yyval = yyvsp[1-yylen];
2406 YY_REDUCE_PRINT (yyn);
2410#line 581 "sqlparser.y"
2415 parser->setQuerySchema((yyvsp[(1) - (1)].querySchema));
2420#line 591 "sqlparser.y"
2427#line 596 "sqlparser.y"
2429 (yyval.querySchema) = (yyvsp[(1) - (2)].querySchema);
2434#line 606 "sqlparser.y"
2441#line 610 "sqlparser.y"
2443 (yyval.querySchema) = (yyvsp[(1) - (1)].querySchema);
2448#line 617 "sqlparser.y"
2451 parser->createTable((yyvsp[(3) - (3)].stringValue)->latin1());
2452 delete (yyvsp[(3) - (3)].stringValue);
2457#line 627 "sqlparser.y"
2463#line 633 "sqlparser.y"
2465 KexiDBDbg << "adding field " << *(yyvsp[(1) - (2)].stringValue) << endl;
2466 field->setName((yyvsp[(1) - (2)].stringValue)->latin1());
2467 parser->table()->addField(field);
2469 delete (yyvsp[(1) - (2)].stringValue);
2474#line 641 "sqlparser.y"
2476 KexiDBDbg << "adding field " << *(yyvsp[(1) - (3)].stringValue) << endl;
2477 field->setName(*(yyvsp[(1) - (3)].stringValue));
2478 delete (yyvsp[(1) - (3)].stringValue);
2479 parser->table()->addField(field);
2490#line 657 "sqlparser.y"
2496#line 663 "sqlparser.y"
2498 field->setPrimaryKey( true);
2499 KexiDBDbg << "primary" << endl;
2504#line 668 "sqlparser.y"
2506 field->setNotNull( true);
2507 KexiDBDbg << "not_null" << endl;
2512#line 673 "sqlparser.y"
2514 field->setAutoIncrement( true);
2515 KexiDBDbg << "ainc" << endl;
2520#line 681 "sqlparser.y"
2522 field = new Field();
2523 field->setType((yyvsp[(1) - (1)].colType));
2528#line 686 "sqlparser.y"
2530 KexiDBDbg << "sql + length" << endl;
2531 field = new Field();
2532 field->setPrecision((yyvsp[(3) - (4)].integerValue));
2533 field->setType((yyvsp[(1) - (4)].colType));
2538#line 693 "sqlparser.y"
2540 field = new Field();
2541 field->setPrecision((yyvsp[(3) - (4)].integerValue));
2547#line 699 "sqlparser.y"
2550 field = new Field();
2556#line 708 "sqlparser.y"
2558 KexiDBDbg << "Select ColViews=" << (yyvsp[(2) - (2)].exprList)->debugString() << endl;
2560 if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[(1) - (2)].querySchema), (yyvsp[(2) - (2)].exprList) )))
2566#line 715 "sqlparser.y"
2568 if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[(1) - (3)].querySchema), (yyvsp[(2) - (3)].exprList), (yyvsp[(3) - (3)].exprList) )))
2574#line 720 "sqlparser.y"
2576 KexiDBDbg << "Select ColViews Tables" << endl;
2577 if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[(1) - (2)].querySchema), 0, (yyvsp[(2) - (2)].exprList) )))
2583#line 726 "sqlparser.y"
2585 KexiDBDbg << "Select ColViews Conditions" << endl;
2586 if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[(1) - (3)].querySchema), (yyvsp[(2) - (3)].exprList), 0, (yyvsp[(3) - (3)].selectOptions) )))
2592#line 732 "sqlparser.y"
2594 KexiDBDbg << "Select ColViews Tables SelectOptions" << endl;
2595 if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[(1) - (4)].querySchema), (yyvsp[(2) - (4)].exprList), (yyvsp[(3) - (4)].exprList), (yyvsp[(4) - (4)].selectOptions) )))
2601#line 741 "sqlparser.y"
2603 KexiDBDbg << "SELECT" << endl;
2611#line 751 "sqlparser.y"
2613 KexiDBDbg << "WhereClause" << endl;
2614 (yyval.selectOptions) = new SelectOptionsInternal;
2615 (yyval.selectOptions)->whereExpr = (yyvsp[(1) - (1)].expr);
2620#line 757 "sqlparser.y"
2622 KexiDBDbg << "OrderByClause" << endl;
2623 (yyval.selectOptions) = new SelectOptionsInternal;
2624 (yyval.selectOptions)->orderByColumns = (yyvsp[(3) - (3)].orderByColumns);
2629#line 763 "sqlparser.y"
2631 KexiDBDbg << "WhereClause ORDER BY OrderByClause" << endl;
2632 (yyval.selectOptions) = new SelectOptionsInternal;
2633 (yyval.selectOptions)->whereExpr = (yyvsp[(1) - (4)].expr);
2634 (yyval.selectOptions)->orderByColumns = (yyvsp[(4) - (4)].orderByColumns);
2639#line 770 "sqlparser.y"
2641 KexiDBDbg << "OrderByClause WhereClause" << endl;
2642 (yyval.selectOptions) = new SelectOptionsInternal;
2643 (yyval.selectOptions)->whereExpr = (yyvsp[(4) - (4)].expr);
2644 (yyval.selectOptions)->orderByColumns = (yyvsp[(3) - (4)].orderByColumns);
2649#line 780 "sqlparser.y"
2651 (yyval.expr) = (yyvsp[(2) - (2)].expr);
2656#line 789 "sqlparser.y"
2658 KexiDBDbg << "ORDER BY IDENTIFIER" << endl;
2659 (yyval.orderByColumns) = new OrderByColumnInternal::List;
2660 OrderByColumnInternal orderByColumn;
2661 orderByColumn.setColumnByNameOrNumber( *(yyvsp[(1) - (1)].variantValue) );
2662 (yyval.orderByColumns)->append( orderByColumn );
2663 delete (yyvsp[(1) - (1)].variantValue);
2668#line 798 "sqlparser.y"
2670 KexiDBDbg << "ORDER BY IDENTIFIER OrderByOption" << endl;
2671 (yyval.orderByColumns) = new OrderByColumnInternal::List;
2672 OrderByColumnInternal orderByColumn;
2673 orderByColumn.setColumnByNameOrNumber( *(yyvsp[(1) - (2)].variantValue) );
2674 orderByColumn.ascending = (yyvsp[(2) - (2)].booleanValue);
2675 (yyval.orderByColumns)->append( orderByColumn );
2676 delete (yyvsp[(1) - (2)].variantValue);
2681#line 808 "sqlparser.y"
2683 (yyval.orderByColumns) = (yyvsp[(3) - (3)].orderByColumns);
2684 OrderByColumnInternal orderByColumn;
2685 orderByColumn.setColumnByNameOrNumber( *(yyvsp[(1) - (3)].variantValue) );
2686 (yyval.orderByColumns)->append( orderByColumn );
2687 delete (yyvsp[(1) - (3)].variantValue);
2692#line 816 "sqlparser.y"
2694 (yyval.orderByColumns) = (yyvsp[(4) - (4)].orderByColumns);
2695 OrderByColumnInternal orderByColumn;
2696 orderByColumn.setColumnByNameOrNumber( *(yyvsp[(1) - (4)].variantValue) );
2697 orderByColumn.ascending = (yyvsp[(2) - (4)].booleanValue);
2698 (yyval.orderByColumns)->append( orderByColumn );
2699 delete (yyvsp[(1) - (4)].variantValue);
2704#line 828 "sqlparser.y"
2706 (yyval.variantValue) = new TQVariant( *(yyvsp[(1) - (1)].stringValue) );
2707 KexiDBDbg << "OrderByColumnId: " << *(yyval.variantValue) << endl;
2708 delete (yyvsp[(1) - (1)].stringValue);
2713#line 834 "sqlparser.y"
2715 (yyval.variantValue) = new TQVariant( *(yyvsp[(1) - (3)].stringValue) + "." + *(yyvsp[(3) - (3)].stringValue) );
2716 KexiDBDbg << "OrderByColumnId: " << *(yyval.variantValue) << endl;
2717 delete (yyvsp[(1) - (3)].stringValue);
2718 delete (yyvsp[(3) - (3)].stringValue);
2723#line 841 "sqlparser.y"
2725 (yyval.variantValue) = new TQVariant((yyvsp[(1) - (1)].integerValue));
2726 KexiDBDbg << "OrderByColumnId: " << *(yyval.variantValue) << endl;
2731#line 848 "sqlparser.y"
2733 (yyval.booleanValue) = true;
2738#line 852 "sqlparser.y"
2740 (yyval.booleanValue) = false;
2745#line 864 "sqlparser.y"
2748 (yyval.expr) = new BinaryExpr( KexiDBExpr_Logical, (yyvsp[(1) - (3)].expr), AND, (yyvsp[(3) - (3)].expr) );
2753#line 869 "sqlparser.y"
2755 (yyval.expr) = new BinaryExpr( KexiDBExpr_Logical, (yyvsp[(1) - (3)].expr), OR, (yyvsp[(3) - (3)].expr) );
2760#line 873 "sqlparser.y"
2762 (yyval.expr) = new BinaryExpr( KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), XOR, (yyvsp[(3) - (3)].expr) );
2767#line 883 "sqlparser.y"
2769 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), '>', (yyvsp[(3) - (3)].expr));
2774#line 887 "sqlparser.y"
2776 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), GREATER_OR_EQUAL, (yyvsp[(3) - (3)].expr));
2781#line 891 "sqlparser.y"
2783 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), '<', (yyvsp[(3) - (3)].expr));
2788#line 895 "sqlparser.y"
2790 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), LESS_OR_EQUAL, (yyvsp[(3) - (3)].expr));
2795#line 899 "sqlparser.y"
2797 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), '=', (yyvsp[(3) - (3)].expr));
2802#line 909 "sqlparser.y"
2804 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), NOT_EQUAL, (yyvsp[(3) - (3)].expr));
2809#line 914 "sqlparser.y"
2811 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), NOT_EQUAL2, (yyvsp[(3) - (3)].expr));
2816#line 918 "sqlparser.y"
2818 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), LIKE, (yyvsp[(3) - (3)].expr));
2823#line 922 "sqlparser.y"
2825 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), SQL_IN, (yyvsp[(3) - (3)].expr));
2830#line 926 "sqlparser.y"
2832 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), SIMILAR_TO, (yyvsp[(3) - (3)].expr));
2837#line 930 "sqlparser.y"
2839 (yyval.expr) = new BinaryExpr(KexiDBExpr_Relational, (yyvsp[(1) - (3)].expr), NOT_SIMILAR_TO, (yyvsp[(3) - (3)].expr));
2844#line 940 "sqlparser.y"
2846 (yyval.expr) = new UnaryExpr( SQL_IS_NULL, (yyvsp[(1) - (2)].expr) );
2851#line 944 "sqlparser.y"
2853 (yyval.expr) = new UnaryExpr( SQL_IS_NOT_NULL, (yyvsp[(1) - (2)].expr) );
2858#line 954 "sqlparser.y"
2860 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), BITWISE_SHIFT_LEFT, (yyvsp[(3) - (3)].expr));
2865#line 958 "sqlparser.y"
2867 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), BITWISE_SHIFT_RIGHT, (yyvsp[(3) - (3)].expr));
2872#line 968 "sqlparser.y"
2874 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '+', (yyvsp[(3) - (3)].expr));
2875 (yyval.expr)-> debug();
2880#line 973 "sqlparser.y"
2882 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '-', (yyvsp[(3) - (3)].expr));
2887#line 977 "sqlparser.y"
2889 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '&', (yyvsp[(3) - (3)].expr));
2894#line 981 "sqlparser.y"
2896 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '|', (yyvsp[(3) - (3)].expr));
2901#line 991 "sqlparser.y"
2903 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '/', (yyvsp[(3) - (3)].expr));
2908#line 995 "sqlparser.y"
2910 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '*', (yyvsp[(3) - (3)].expr));
2915#line 999 "sqlparser.y"
2917 (yyval.expr) = new BinaryExpr(KexiDBExpr_Arithm, (yyvsp[(1) - (3)].expr), '%', (yyvsp[(3) - (3)].expr));
2922#line 1010 "sqlparser.y"
2924 (yyval.expr) = new UnaryExpr( '-', (yyvsp[(2) - (2)].expr) );
2929#line 1014 "sqlparser.y"
2931 (yyval.expr) = new UnaryExpr( '+', (yyvsp[(2) - (2)].expr) );
2936#line 1018 "sqlparser.y"
2938 (yyval.expr) = new UnaryExpr( '~', (yyvsp[(2) - (2)].expr) );
2943#line 1022 "sqlparser.y"
2945 (yyval.expr) = new UnaryExpr( NOT, (yyvsp[(2) - (2)].expr) );
2950#line 1026 "sqlparser.y"
2952 (yyval.expr) = new VariableExpr( *(yyvsp[(1) - (1)].stringValue) );
2955 KexiDBDbg << " + identifier: " << *(yyvsp[(1) - (1)].stringValue) << endl;
2956 delete (yyvsp[(1) - (1)].stringValue);
2961#line 1034 "sqlparser.y"
2964 KexiDBDbg << " + query parameter: " << (yyval.expr)->debugString() << endl;
2965 delete (yyvsp[(1) - (1)].stringValue);
2970#line 1040 "sqlparser.y"
2972 KexiDBDbg << " + function: " << *(yyvsp[(1) - (2)].stringValue) << "(" << (yyvsp[(2) - (2)].exprList)->debugString() << ")" << endl;
2973 (yyval.expr) = new FunctionExpr(*(yyvsp[(1) - (2)].stringValue), (yyvsp[(2) - (2)].exprList));
2974 delete (yyvsp[(1) - (2)].stringValue);
2979#line 1047 "sqlparser.y"
2981 (yyval.expr) = new VariableExpr( *(yyvsp[(1) - (3)].stringValue) + "." + *(yyvsp[(3) - (3)].stringValue) );
2982 KexiDBDbg << " + identifier.identifier: " << *(yyvsp[(1) - (3)].stringValue) << "." << *(yyvsp[(3) - (3)].stringValue) << endl;
2983 delete (yyvsp[(1) - (3)].stringValue);
2984 delete (yyvsp[(3) - (3)].stringValue);
2989#line 1054 "sqlparser.y"
2991 (yyval.expr) = new ConstExpr( SQL_NULL, TQVariant() );
2992 KexiDBDbg << " + NULL" << endl;
2999#line 1061 "sqlparser.y"
3001 (yyval.expr) = new ConstExpr( CHARACTER_STRING_LITERAL, *(yyvsp[(1) - (1)].stringValue) );
3002 KexiDBDbg << " + constant " << (yyvsp[(1) - (1)].stringValue) << endl;
3003 delete (yyvsp[(1) - (1)].stringValue);
3008#line 1067 "sqlparser.y"
3011 if ((yyvsp[(1) - (1)].integerValue) <= INT_MAX && (yyvsp[(1) - (1)].integerValue) >= INT_MIN)
3012 val = (int)(yyvsp[(1) - (1)].integerValue);
3013 else if ((yyvsp[(1) - (1)].integerValue) <= UINT_MAX && (yyvsp[(1) - (1)].integerValue) >= 0)
3014 val = (uint)(yyvsp[(1) - (1)].integerValue);
3015 else if ((yyvsp[(1) - (1)].integerValue) <= (TQ_LLONG)LLONG_MAX && (yyvsp[(1) - (1)].integerValue) >= (TQ_LLONG)LLONG_MIN)
3016 val = (TQ_LLONG)(yyvsp[(1) - (1)].integerValue);
3022 (yyval.expr) = new ConstExpr( INTEGER_CONST, val );
3023 KexiDBDbg << " + int constant: " << val.toString() << endl;
3028#line 1084 "sqlparser.y"
3030 (yyval.expr) = new ConstExpr( REAL_CONST, TQPoint( (yyvsp[(1) - (1)].realValue).integer, (yyvsp[(1) - (1)].realValue).fractional ) );
3031 KexiDBDbg << " + real constant: " << (yyvsp[(1) - (1)].realValue).integer << "." << (yyvsp[(1) - (1)].realValue).fractional << endl;
3036#line 1095 "sqlparser.y"
3038 KexiDBDbg << "(expr)" << endl;
3039 (yyval.expr) = new UnaryExpr( '(', (yyvsp[(2) - (3)].expr));
3044#line 1103 "sqlparser.y"
3049 (yyval.exprList) = (yyvsp[(2) - (3)].exprList);
3054#line 1113 "sqlparser.y"
3056 (yyval.exprList) = (yyvsp[(3) - (3)].exprList);
3057 (yyval.exprList)->prepend( (yyvsp[(1) - (3)].expr) );
3062#line 1118 "sqlparser.y"
3064 (yyval.exprList) = new NArgExpr(0, 0);
3065 (yyval.exprList)->add( (yyvsp[(1) - (3)].expr) );
3066 (yyval.exprList)->add( (yyvsp[(3) - (3)].expr) );
3071#line 1127 "sqlparser.y"
3073 (yyval.exprList) = (yyvsp[(2) - (2)].exprList);
3078#line 1172 "sqlparser.y"
3080 (yyval.exprList) = (yyvsp[(1) - (3)].exprList);
3081 (yyval.exprList)->add((yyvsp[(3) - (3)].expr));
3086#line 1177 "sqlparser.y"
3088 (yyval.exprList) = new NArgExpr(KexiDBExpr_TableList, IDENTIFIER);
3089 (yyval.exprList)->add((yyvsp[(1) - (1)].expr));
3094#line 1185 "sqlparser.y"
3096 KexiDBDbg << "FROM: '" << *(yyvsp[(1) - (1)].stringValue) << "'" << endl;
3097 (yyval.expr) = new VariableExpr(*(yyvsp[(1) - (1)].stringValue));
3120 delete (yyvsp[(1) - (1)].stringValue);
3125#line 1213 "sqlparser.y"
3129 KexiDBExpr_SpecialBinary,
3133 delete (yyvsp[(1) - (2)].stringValue);
3134 delete (yyvsp[(2) - (2)].stringValue);
3139#line 1224 "sqlparser.y"
3143 KexiDBExpr_SpecialBinary,
3147 delete (yyvsp[(1) - (3)].stringValue);
3148 delete (yyvsp[(3) - (3)].stringValue);
3153#line 1240 "sqlparser.y"
3155 (yyval.exprList) = (yyvsp[(1) - (3)].exprList);
3156 (yyval.exprList)->add( (yyvsp[(3) - (3)].expr) );
3157 KexiDBDbg << "ColViews: ColViews , ColItem" << endl;
3162#line 1246 "sqlparser.y"
3164 (yyval.exprList) = new NArgExpr(0,0);
3165 (yyval.exprList)->add( (yyvsp[(1) - (1)].expr) );
3166 KexiDBDbg << "ColViews: ColItem" << endl;
3171#line 1255 "sqlparser.y"
3177 (yyval.expr) = (yyvsp[(1) - (1)].expr);
3178 KexiDBDbg << " added column expr: '" << (yyvsp[(1) - (1)].expr)->debugString() << "'" << endl;
3183#line 1264 "sqlparser.y"
3185 (yyval.expr) = (yyvsp[(1) - (1)].expr);
3186 KexiDBDbg << " added column wildcard: '" << (yyvsp[(1) - (1)].expr)->debugString() << "'" << endl;
3191#line 1269 "sqlparser.y"
3194 KexiDBExpr_SpecialBinary, (yyvsp[(1) - (3)].expr), AS,
3197 KexiDBDbg << " added column expr: " << (yyval.expr)->debugString() << endl;
3198 delete (yyvsp[(3) - (3)].stringValue);
3203#line 1278 "sqlparser.y"
3206 KexiDBExpr_SpecialBinary, (yyvsp[(1) - (2)].expr), 0,
3209 KexiDBDbg << " added column expr: " << (yyval.expr)->debugString() << endl;
3210 delete (yyvsp[(2) - (2)].stringValue);
3215#line 1290 "sqlparser.y"
3217 (yyval.expr) = (yyvsp[(1) - (1)].expr);
3222#line 1334 "sqlparser.y"
3224 (yyval.expr) = (yyvsp[(3) - (4)].expr);
3231#line 1343 "sqlparser.y"
3234 KexiDBDbg << "all columns" << endl;
3243#line 1352 "sqlparser.y"
3245 TQString s( *(yyvsp[(1) - (3)].stringValue) );
3248 KexiDBDbg << " + all columns from " << s << endl;
3249 delete (yyvsp[(1) - (3)].stringValue);
3255#line 3256 "sqlparser.tab.c"
3258 YY_SYMBOL_PRINT ( "-> $$ =", yyr1[yyn], &yyval, &yyloc);
3262 YY_STACK_PRINT (yyss, yyssp);
3273 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3274 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3275 yystate = yytable[yystate];
3277 yystate = yydefgoto[yyn - YYNTOKENS];
3290#if ! YYERROR_VERBOSE
3291 yyerror (YY_( "syntax error"));
3294 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3295 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
3297 YYSIZE_T yyalloc = 2 * yysize;
3298 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
3299 yyalloc = YYSTACK_ALLOC_MAXIMUM;
3300 if (yymsg != yymsgbuf)
3301 YYSTACK_FREE (yymsg);
3302 yymsg = ( char *) YYSTACK_ALLOC (yyalloc);
3304 yymsg_alloc = yyalloc;
3308 yymsg_alloc = sizeof yymsgbuf;
3312 if (0 < yysize && yysize <= yymsg_alloc)
3314 (void) yysyntax_error (yymsg, yystate, yychar);
3319 yyerror (YY_( "syntax error"));
3321 goto yyexhaustedlab;
3329 if (yyerrstatus == 3)
3334 if (yychar <= YYEOF)
3337 if (yychar == YYEOF)
3342 yydestruct ( "Error: discarding",
3368 YY_STACK_PRINT (yyss, yyssp);
3381 yyn = yypact[yystate];
3382 if (yyn != YYPACT_NINF)
3385 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3398 yydestruct ( "Error: popping",
3399 yystos[yystate], yyvsp);
3402 YY_STACK_PRINT (yyss, yyssp);
3412 YY_SYMBOL_PRINT ( "Shifting", yystos[yyn], yyvsp, yylsp);
3437 yyerror (YY_( "memory exhausted"));
3443 if (yychar != YYEOF && yychar != YYEMPTY)
3444 yydestruct ( "Cleanup: discarding lookahead",
3449 YY_STACK_PRINT (yyss, yyssp);
3450 while (yyssp != yyss)
3452 yydestruct ( "Cleanup: popping",
3453 yystos[*yyssp], yyvsp);
3458 YYSTACK_FREE (yyss);
3461 if (yymsg != yymsgbuf)
3462 YYSTACK_FREE (yymsg);
3468#line 1367 "sqlparser.y"
3472const char * const tname( int offset) { return yytname[offset]; }
A base class N-argument operation.
@ OP_Select Alter an existing table.
@ OP_CreateTable Error while parsing.
KexiDB::QuerySchema provides information about database query.
An unary argument operation: + - NOT (or !) ~ "IS NULL" "IS NOT NULL".
Variables like fieldname or tablename.fieldname.
High-level database connectivity library with database backend drivers.
KEXI_DB_EXPORT void debug(const QuerySchemaParameterList &list) Shows debug information for list.
|