Changeset View
Changeset View
Standalone View
Standalone View
src/parser/generated/sqlparser.cpp
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | |||||
57 | 57 | | |||
58 | /* Pull parsers. */ | 58 | /* Pull parsers. */ | ||
59 | #define YYPULL 1 | 59 | #define YYPULL 1 | ||
60 | 60 | | |||
61 | 61 | | |||
62 | 62 | | |||
63 | 63 | | |||
64 | /* Copy the first part of user declarations. */ | 64 | /* Copy the first part of user declarations. */ | ||
65 | #line 421 "KDbSqlParser.y" /* yacc.c:339 */ | 65 | #line 435 "KDbSqlParser.y" /* yacc.c:339 */ | ||
66 | 66 | | |||
67 | #include <stdio.h> | 67 | #include <stdio.h> | ||
68 | #include <string.h> | 68 | #include <string.h> | ||
69 | #include <string> | 69 | #include <string> | ||
70 | #include <iostream> | 70 | #include <iostream> | ||
71 | #include <limits.h> | 71 | #include <limits.h> | ||
72 | //! @todo OK? | 72 | //! @todo OK? | ||
73 | #ifdef Q_OS_WIN | 73 | #ifdef Q_OS_WIN | ||
Show All 14 Lines | |||||
88 | # include <malloc.h> | 88 | # include <malloc.h> | ||
89 | #endif | 89 | #endif | ||
90 | 90 | | |||
91 | #include <QObject> | 91 | #include <QObject> | ||
92 | #include <QVariant> | 92 | #include <QVariant> | ||
93 | #include <QPoint> | 93 | #include <QPoint> | ||
94 | 94 | | |||
95 | #include "KDbConnection.h" | 95 | #include "KDbConnection.h" | ||
96 | #include "KDbDateTime.h" | ||||
96 | #include "KDbExpression.h" | 97 | #include "KDbExpression.h" | ||
97 | #include "KDbField.h" | 98 | #include "KDbField.h" | ||
98 | #include "KDbOrderByColumn.h" | 99 | #include "KDbOrderByColumn.h" | ||
99 | #include "KDbParser.h" | 100 | #include "KDbParser.h" | ||
100 | #include "KDbParser_p.h" | 101 | #include "KDbParser_p.h" | ||
101 | #include "KDbQuerySchema.h" | 102 | #include "KDbQuerySchema.h" | ||
102 | #include "KDbQuerySchema_p.h" | 103 | #include "KDbQuerySchema_p.h" | ||
103 | #include "KDbSqlTypes.h" | 104 | #include "KDbSqlTypes.h" | ||
Show All 22 Lines | 124 | #define YYMAXDEPTH 255 | |||
126 | { | 127 | { | ||
127 | int yywrap() | 128 | int yywrap() | ||
128 | { | 129 | { | ||
129 | return 1; | 130 | return 1; | ||
130 | } | 131 | } | ||
131 | } | 132 | } | ||
132 | 133 | | |||
133 | 134 | | |||
134 | #line 135 "sqlparser.cpp" /* yacc.c:339 */ | 135 | #line 136 "sqlparser.cpp" /* yacc.c:339 */ | ||
135 | 136 | | |||
136 | # ifndef YY_NULLPTR | 137 | # ifndef YY_NULLPTR | ||
137 | # if defined __cplusplus && 201103L <= __cplusplus | 138 | # if defined __cplusplus && 201103L <= __cplusplus | ||
138 | # define YY_NULLPTR nullptr | 139 | # define YY_NULLPTR nullptr | ||
139 | # else | 140 | # else | ||
140 | # define YY_NULLPTR 0 | 141 | # define YY_NULLPTR 0 | ||
141 | # endif | 142 | # endif | ||
142 | # endif | 143 | # endif | ||
▲ Show 20 Lines • Show All 80 Lines • ▼ Show 20 Line(s) | 169 | { | |||
223 | NOT_LIKE = 312, | 224 | NOT_LIKE = 312, | ||
224 | NOT = 313, | 225 | NOT = 313, | ||
225 | NOT_EQUAL = 314, | 226 | NOT_EQUAL = 314, | ||
226 | NOT_EQUAL2 = 315, | 227 | NOT_EQUAL2 = 315, | ||
227 | OR = 316, | 228 | OR = 316, | ||
228 | SIMILAR_TO = 317, | 229 | SIMILAR_TO = 317, | ||
229 | NOT_SIMILAR_TO = 318, | 230 | NOT_SIMILAR_TO = 318, | ||
230 | XOR = 319, | 231 | XOR = 319, | ||
231 | UMINUS = 320 | 232 | UMINUS = 320, | ||
233 | TABS_OR_SPACES = 321, | ||||
234 | DATE_TIME_INTEGER = 322, | ||||
235 | TIME_AM = 323, | ||||
236 | TIME_PM = 324 | ||||
232 | }; | 237 | }; | ||
233 | #endif | 238 | #endif | ||
234 | 239 | | |||
235 | /* Value type. */ | 240 | /* Value type. */ | ||
236 | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | 241 | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | ||
237 | 242 | | |||
238 | union YYSTYPE | 243 | union YYSTYPE | ||
239 | { | 244 | { | ||
240 | #line 490 "KDbSqlParser.y" /* yacc.c:355 */ | 245 | #line 505 "KDbSqlParser.y" /* yacc.c:355 */ | ||
241 | 246 | | |||
242 | QString* stringValue; | 247 | QString* stringValue; | ||
243 | QByteArray* binaryValue; | 248 | QByteArray* binaryValue; | ||
244 | qint64 integerValue; | 249 | qint64 integerValue; | ||
245 | bool booleanValue; | 250 | bool booleanValue; | ||
251 | KDbDate* dateValue; | ||||
252 | KDbYear* yearValue; | ||||
253 | KDbTime* timeValue; | ||||
254 | KDbTime::Period timePeriodValue; | ||||
255 | KDbDateTime* dateTimeValue; | ||||
246 | KDbOrderByColumn::SortOrder sortOrderValue; | 256 | KDbOrderByColumn::SortOrder sortOrderValue; | ||
247 | KDbField::Type colType; | 257 | KDbField::Type colType; | ||
248 | KDbField *field; | 258 | KDbField *field; | ||
249 | KDbExpression *expr; | 259 | KDbExpression *expr; | ||
250 | KDbNArgExpression *exprList; | 260 | KDbNArgExpression *exprList; | ||
251 | KDbConstExpression *constExpression; | 261 | KDbConstExpression *constExpression; | ||
252 | KDbQuerySchema *querySchema; | 262 | KDbQuerySchema *querySchema; | ||
253 | SelectOptionsInternal *selectOptions; | 263 | SelectOptionsInternal *selectOptions; | ||
254 | QList<OrderByColumnInternal> *orderByColumns; | 264 | QList<OrderByColumnInternal> *orderByColumns; | ||
255 | QVariant *variantValue; | 265 | QVariant *variantValue; | ||
256 | 266 | | |||
257 | #line 258 "sqlparser.cpp" /* yacc.c:355 */ | 267 | #line 268 "sqlparser.cpp" /* yacc.c:355 */ | ||
258 | }; | 268 | }; | ||
259 | 269 | | |||
260 | typedef union YYSTYPE YYSTYPE; | 270 | typedef union YYSTYPE YYSTYPE; | ||
261 | # define YYSTYPE_IS_TRIVIAL 1 | 271 | # define YYSTYPE_IS_TRIVIAL 1 | ||
262 | # define YYSTYPE_IS_DECLARED 1 | 272 | # define YYSTYPE_IS_DECLARED 1 | ||
263 | #endif | 273 | #endif | ||
264 | 274 | | |||
265 | 275 | | |||
266 | extern YYSTYPE yylval; | 276 | extern YYSTYPE yylval; | ||
267 | 277 | | |||
268 | int yyparse (void); | 278 | int yyparse (void); | ||
269 | 279 | | |||
270 | #endif /* !YY_YY_KDBSQLPARSER_TAB_H_INCLUDED */ | 280 | #endif /* !YY_YY_KDBSQLPARSER_TAB_H_INCLUDED */ | ||
271 | 281 | | |||
272 | /* Copy the second part of user declarations. */ | 282 | /* Copy the second part of user declarations. */ | ||
273 | 283 | | |||
274 | #line 275 "sqlparser.cpp" /* yacc.c:358 */ | 284 | #line 285 "sqlparser.cpp" /* yacc.c:358 */ | ||
275 | 285 | | |||
276 | #ifdef short | 286 | #ifdef short | ||
277 | # undef short | 287 | # undef short | ||
278 | #endif | 288 | #endif | ||
279 | 289 | | |||
280 | #ifdef YYTYPE_UINT8 | 290 | #ifdef YYTYPE_UINT8 | ||
281 | typedef YYTYPE_UINT8 yytype_uint8; | 291 | typedef YYTYPE_UINT8 yytype_uint8; | ||
282 | #else | 292 | #else | ||
▲ Show 20 Lines • Show All 225 Lines • ▼ Show 20 Line(s) | 511 | # define YYCOPY(Dst, Src, Count) \ | |||
508 | while (0) | 518 | while (0) | ||
509 | # endif | 519 | # endif | ||
510 | # endif | 520 | # endif | ||
511 | #endif /* !YYCOPY_NEEDED */ | 521 | #endif /* !YYCOPY_NEEDED */ | ||
512 | 522 | | |||
513 | /* YYFINAL -- State number of the termination state. */ | 523 | /* YYFINAL -- State number of the termination state. */ | ||
514 | #define YYFINAL 7 | 524 | #define YYFINAL 7 | ||
515 | /* YYLAST -- Last index in YYTABLE. */ | 525 | /* YYLAST -- Last index in YYTABLE. */ | ||
516 | #define YYLAST 221 | 526 | #define YYLAST 231 | ||
517 | 527 | | |||
518 | /* YYNTOKENS -- Number of terminals. */ | 528 | /* YYNTOKENS -- Number of terminals. */ | ||
519 | #define YYNTOKENS 82 | 529 | #define YYNTOKENS 88 | ||
520 | /* YYNNTS -- Number of nonterminals. */ | 530 | /* YYNNTS -- Number of nonterminals. */ | ||
521 | #define YYNNTS 30 | 531 | #define YYNNTS 38 | ||
522 | /* YYNRULES -- Number of rules. */ | 532 | /* YYNRULES -- Number of rules. */ | ||
523 | #define YYNRULES 101 | 533 | #define YYNRULES 119 | ||
524 | /* YYNSTATES -- Number of states. */ | 534 | /* YYNSTATES -- Number of states. */ | ||
525 | #define YYNSTATES 162 | 535 | #define YYNSTATES 201 | ||
526 | 536 | | |||
527 | /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned | 537 | /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned | ||
528 | by yylex, with out-of-bounds checking. */ | 538 | by yylex, with out-of-bounds checking. */ | ||
529 | #define YYUNDEFTOK 2 | 539 | #define YYUNDEFTOK 2 | ||
530 | #define YYMAXUTOK 320 | 540 | #define YYMAXUTOK 324 | ||
531 | 541 | | |||
532 | #define YYTRANSLATE(YYX) \ | 542 | #define YYTRANSLATE(YYX) \ | ||
533 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | 543 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | ||
534 | 544 | | |||
535 | /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | 545 | /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | ||
536 | as returned by yylex, without out-of-bounds checking. */ | 546 | as returned by yylex, without out-of-bounds checking. */ | ||
537 | static const yytype_uint8 yytranslate[] = | 547 | static const yytype_uint8 yytranslate[] = | ||
538 | { | 548 | { | ||
539 | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 549 | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
540 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 550 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
541 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 551 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
542 | 2, 2, 2, 2, 2, 2, 2, 78, 74, 2, | 552 | 2, 2, 2, 2, 2, 84, 2, 82, 78, 2, | ||
543 | 80, 81, 77, 72, 67, 73, 68, 76, 2, 2, | 553 | 86, 87, 81, 76, 71, 77, 72, 80, 2, 2, | ||
544 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 66, | 554 | 2, 2, 2, 2, 2, 2, 2, 2, 85, 70, | ||
545 | 70, 71, 69, 2, 2, 2, 2, 2, 2, 2, | 555 | 74, 75, 73, 2, 2, 2, 2, 2, 2, 2, | ||
546 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 556 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
547 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 557 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
548 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 558 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
549 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 559 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
550 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 560 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
551 | 2, 2, 2, 2, 75, 2, 79, 2, 2, 2, | 561 | 2, 2, 2, 2, 79, 2, 83, 2, 2, 2, | ||
552 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 562 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
553 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 563 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
554 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 564 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
555 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 565 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
556 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 566 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
557 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 567 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
558 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 568 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
559 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 569 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
560 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 570 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
561 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 571 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
562 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 572 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
563 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | 573 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
564 | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | 574 | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | ||
565 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | 575 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | ||
566 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | 576 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | ||
567 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | 577 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | ||
568 | 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | 578 | 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | ||
569 | 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | 579 | 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | ||
570 | 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | 580 | 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | ||
571 | 65 | 581 | 65, 66, 67, 68, 69 | ||
572 | }; | 582 | }; | ||
573 | 583 | | |||
574 | #if YYDEBUG | 584 | #if YYDEBUG | ||
575 | /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | 585 | /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | ||
576 | static const yytype_uint16 yyrline[] = | 586 | static const yytype_uint16 yyrline[] = | ||
577 | { | 587 | { | ||
578 | 0, 545, 545, 555, 559, 560, 575, 674, 680, 687, | 588 | 0, 564, 564, 574, 578, 579, 594, 693, 699, 706, | ||
579 | 692, 698, 704, 710, 719, 727, 734, 740, 748, 759, | 589 | 711, 717, 723, 729, 738, 746, 753, 759, 767, 778, | ||
580 | 768, 777, 787, 795, 807, 813, 820, 827, 831, 838, | 590 | 787, 796, 806, 814, 826, 832, 839, 846, 850, 857, | ||
581 | 843, 850, 856, 863, 868, 874, 880, 886, 892, 899, | 591 | 862, 869, 875, 882, 887, 893, 899, 905, 911, 918, | ||
582 | 904, 910, 916, 922, 928, 934, 940, 946, 956, 967, | 592 | 923, 929, 935, 941, 947, 953, 959, 965, 975, 986, | ||
583 | 972, 977, 983, 988, 994, 1001, 1006, 1012, 1018, 1024, | 593 | 991, 996, 1002, 1007, 1013, 1020, 1025, 1031, 1037, 1043, | ||
584 | 1030, 1037, 1042, 1048, 1054, 1061, 1067, 1072, 1077, 1082, | 594 | 1049, 1056, 1061, 1067, 1073, 1080, 1086, 1091, 1096, 1101, | ||
585 | 1087, 1095, 1101, 1109, 1116, 1123, 1127, 1131, 1137, 1154, | 595 | 1106, 1114, 1120, 1128, 1135, 1142, 1146, 1150, 1156, 1173, | ||
586 | 1161, 1166, 1175, 1179, 1186, 1192, 1201, 1246, 1252, 1261, | 596 | 1179, 1185, 1191, 1198, 1202, 1210, 1218, 1229, 1235, 1241, | ||
587 | 1289, 1299, 1314, 1321, 1331, 1340, 1345, 1355, 1368, 1414, | 597 | 1250, 1258, 1266, 1278, 1282, 1289, 1293, 1297, 1304, 1314, | ||
588 | 1423, 1432 | 598 | 1323, 1327, 1334, 1340, 1349, 1394, 1400, 1409, 1437, 1447, | ||
599 | 1462, 1469, 1479, 1488, 1493, 1503, 1516, 1562, 1571, 1580 | ||||
589 | }; | 600 | }; | ||
590 | #endif | 601 | #endif | ||
591 | 602 | | |||
592 | #if YYDEBUG || YYERROR_VERBOSE || 0 | 603 | #if YYDEBUG || YYERROR_VERBOSE || 0 | ||
593 | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | 604 | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | ||
594 | First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | 605 | First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | ||
595 | static const char *const yytname[] = | 606 | static const char *const yytname[] = | ||
596 | { | 607 | { | ||
597 | "$end", "error", "$undefined", "SQL_TYPE", "AS", "AS_EMPTY", "ASC", | 608 | "$end", "error", "$undefined", "SQL_TYPE", "AS", "AS_EMPTY", "ASC", | ||
598 | "AUTO_INCREMENT", "BIT", "BITWISE_SHIFT_LEFT", "BITWISE_SHIFT_RIGHT", | 609 | "AUTO_INCREMENT", "BIT", "BITWISE_SHIFT_LEFT", "BITWISE_SHIFT_RIGHT", | ||
599 | "BY", "CHARACTER_STRING_LITERAL", "CONCATENATION", "CREATE", "DESC", | 610 | "BY", "CHARACTER_STRING_LITERAL", "CONCATENATION", "CREATE", "DESC", | ||
600 | "DISTINCT", "DOUBLE_QUOTED_STRING", "FROM", "JOIN", "KEY", "LEFT", | 611 | "DISTINCT", "DOUBLE_QUOTED_STRING", "FROM", "JOIN", "KEY", "LEFT", | ||
601 | "LESS_OR_EQUAL", "GREATER_OR_EQUAL", "SQL_NULL", "SQL_IS", "SQL_IS_NULL", | 612 | "LESS_OR_EQUAL", "GREATER_OR_EQUAL", "SQL_NULL", "SQL_IS", "SQL_IS_NULL", | ||
602 | "SQL_IS_NOT_NULL", "ORDER", "PRIMARY", "SELECT", "INTEGER_CONST", | 613 | "SQL_IS_NOT_NULL", "ORDER", "PRIMARY", "SELECT", "INTEGER_CONST", | ||
603 | "REAL_CONST", "RIGHT", "SQL_ON", "DATE_CONST", "DATETIME_CONST", | 614 | "REAL_CONST", "RIGHT", "SQL_ON", "DATE_CONST", "DATETIME_CONST", | ||
604 | "TIME_CONST", "TABLE", "IDENTIFIER", "IDENTIFIER_DOT_ASTERISK", | 615 | "TIME_CONST", "TABLE", "IDENTIFIER", "IDENTIFIER_DOT_ASTERISK", | ||
605 | "QUERY_PARAMETER", "VARCHAR", "WHERE", "SQL", "SQL_TRUE", "SQL_FALSE", | 616 | "QUERY_PARAMETER", "VARCHAR", "WHERE", "SQL", "SQL_TRUE", "SQL_FALSE", | ||
606 | "UNION", "SCAN_ERROR", "AND", "BETWEEN", "NOT_BETWEEN", "EXCEPT", | 617 | "UNION", "SCAN_ERROR", "AND", "BETWEEN", "NOT_BETWEEN", "EXCEPT", | ||
607 | "SQL_IN", "INTERSECT", "LIKE", "ILIKE", "NOT_LIKE", "NOT", "NOT_EQUAL", | 618 | "SQL_IN", "INTERSECT", "LIKE", "ILIKE", "NOT_LIKE", "NOT", "NOT_EQUAL", | ||
608 | "NOT_EQUAL2", "OR", "SIMILAR_TO", "NOT_SIMILAR_TO", "XOR", "UMINUS", | 619 | "NOT_EQUAL2", "OR", "SIMILAR_TO", "NOT_SIMILAR_TO", "XOR", "UMINUS", | ||
609 | "';'", "','", "'.'", "'>'", "'<'", "'='", "'+'", "'-'", "'&'", "'|'", | 620 | "TABS_OR_SPACES", "DATE_TIME_INTEGER", "TIME_AM", "TIME_PM", "';'", | ||
610 | "'/'", "'*'", "'%'", "'~'", "'('", "')'", "$accept", "TopLevelStatement", | 621 | "','", "'.'", "'>'", "'<'", "'='", "'+'", "'-'", "'&'", "'|'", "'/'", | ||
611 | "StatementList", "Statement", "SelectStatement", "Select", | 622 | "'*'", "'%'", "'~'", "'#'", "':'", "'('", "')'", "$accept", | ||
612 | "SelectOptions", "WhereClause", "OrderByClause", "OrderByColumnId", | 623 | "TopLevelStatement", "StatementList", "Statement", "SelectStatement", | ||
613 | "OrderByOption", "aExpr", "aExpr2", "aExpr3", "aExpr4", "aExpr5", | 624 | "Select", "SelectOptions", "WhereClause", "OrderByClause", | ||
614 | "aExpr6", "aExpr7", "aExpr8", "aExpr9", "aExpr10", "aExprList", | 625 | "OrderByColumnId", "OrderByOption", "aExpr", "aExpr2", "aExpr3", | ||
615 | "aExprList2", "Tables", "FlatTableList", "FlatTable", "ColViews", | 626 | "aExpr4", "aExpr5", "aExpr6", "aExpr7", "aExpr8", "aExpr9", "DateConst", | ||
616 | "ColItem", "ColExpression", "ColWildCard", YY_NULLPTR | 627 | "DateValue", "YearConst", "TimeConst", "TimeValue", "TimeMs", | ||
628 | "TimePeriod", "DateTimeConst", "aExpr10", "aExprList", "aExprList2", | ||||
629 | "Tables", "FlatTableList", "FlatTable", "ColViews", "ColItem", | ||||
630 | "ColExpression", "ColWildCard", YY_NULLPTR | ||||
617 | }; | 631 | }; | ||
618 | #endif | 632 | #endif | ||
619 | 633 | | |||
620 | # ifdef YYPRINT | 634 | # ifdef YYPRINT | ||
621 | /* YYTOKNUM[NUM] -- (External) token number corresponding to the | 635 | /* YYTOKNUM[NUM] -- (External) token number corresponding to the | ||
622 | (internal) symbol number NUM (which must be that of a token). */ | 636 | (internal) symbol number NUM (which must be that of a token). */ | ||
623 | static const yytype_uint16 yytoknum[] = | 637 | static const yytype_uint16 yytoknum[] = | ||
624 | { | 638 | { | ||
625 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | 639 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | ||
626 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | 640 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | ||
627 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | 641 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | ||
628 | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | 642 | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | ||
629 | 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, | 643 | 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, | ||
630 | 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, | 644 | 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, | ||
631 | 315, 316, 317, 318, 319, 320, 59, 44, 46, 62, | 645 | 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, | ||
632 | 60, 61, 43, 45, 38, 124, 47, 42, 37, 126, | 646 | 59, 44, 46, 62, 60, 61, 43, 45, 38, 124, | ||
633 | 40, 41 | 647 | 47, 42, 37, 126, 35, 58, 40, 41 | ||
634 | }; | 648 | }; | ||
635 | # endif | 649 | # endif | ||
636 | 650 | | |||
637 | #define YYPACT_NINF -127 | 651 | #define YYPACT_NINF -143 | ||
638 | 652 | | |||
639 | #define yypact_value_is_default(Yystate) \ | 653 | #define yypact_value_is_default(Yystate) \ | ||
640 | (!!((Yystate) == (-127))) | 654 | (!!((Yystate) == (-143))) | ||
641 | 655 | | |||
642 | #define YYTABLE_NINF -1 | 656 | #define YYTABLE_NINF -1 | ||
643 | 657 | | |||
644 | #define yytable_value_is_error(Yytable_value) \ | 658 | #define yytable_value_is_error(Yytable_value) \ | ||
645 | 0 | 659 | 0 | ||
646 | 660 | | |||
647 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | 661 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | ||
648 | STATE-NUM. */ | 662 | STATE-NUM. */ | ||
649 | static const yytype_int16 yypact[] = | 663 | static const yytype_int16 yypact[] = | ||
650 | { | 664 | { | ||
651 | -15, -127, 39, -127, -21, -127, 12, -127, -15, -127, | 665 | 1, -143, 52, -143, -8, -143, 22, -143, 1, -143, | ||
652 | -11, 29, -127, -127, -127, -45, -127, -127, -127, 125, | 666 | -27, 25, -143, -143, -143, -60, -143, -143, -143, 126, | ||
653 | 125, 125, -127, 125, 125, -127, -127, -23, -5, 158, | 667 | 126, 126, -143, 126, 44, 126, -143, -143, -16, 13, | ||
654 | -127, 52, 58, 23, -127, -12, 9, -127, 10, -127, | 668 | 163, -143, 86, 0, 64, -143, -143, -143, -143, -11, | ||
655 | -127, 82, 15, 8, -127, -27, 1, -127, -13, -127, | 669 | 29, -143, 10, -143, -143, 102, 11, -5, -143, -23, | ||
656 | -127, -127, -127, -4, 125, 125, 125, 125, 125, 125, | 670 | -2, -143, -21, -143, -143, -143, -143, -61, 4, 26, | ||
657 | 125, 125, -127, -127, 125, 125, 125, 125, 125, 125, | 671 | -43, 24, 20, 35, 126, 126, 126, 126, 126, 126, | ||
658 | 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, | 672 | 126, 126, -143, -143, 126, 126, 126, 126, 126, 126, | ||
659 | 125, 125, 125, 75, 125, -127, 60, 71, -127, -12, | 673 | 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, | ||
660 | 51, -127, 16, 54, -127, 29, -127, -127, -127, 55, | 674 | 126, 126, 126, 96, 126, -143, 84, 78, -143, -11, | ||
661 | 53, 57, -127, -127, -127, -127, -127, -127, -127, -127, | 675 | 74, -143, 38, 98, -143, 25, -143, -143, -143, 71, | ||
662 | -127, 86, 87, -127, -127, -127, -127, -127, -127, -127, | 676 | 48, 110, 89, 99, -143, -143, 101, -143, 103, -143, | ||
663 | -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, | 677 | -143, -143, -143, -143, -143, -143, -143, -143, -143, 114, | ||
664 | 17, -127, 127, -127, -127, -127, -127, -127, -127, 125, | 678 | 120, -143, -143, -143, -143, -143, -143, -143, -143, -143, | ||
665 | -127, 125, 125, -127, 73, 96, 5, 17, -127, -127, | 679 | -143, -143, -143, -143, -143, -143, -143, -143, 58, -143, | ||
666 | -127, 103, -127, -127, -127, 17, 78, -127, -127, -127, | 680 | 172, -143, -143, -143, -143, -143, -143, 126, -143, 111, | ||
667 | 17, -127 | 681 | -12, 112, 115, 121, 126, 126, -143, 128, 144, 12, | ||
682 | 58, -143, 63, 134, 137, -48, -143, 138, -143, -143, | ||||
683 | 167, -143, -143, -143, 58, 136, -143, -143, -143, -143, | ||||
684 | 139, -143, -143, -143, -143, -143, -143, 58, -48, -143, | ||||
685 | -143 | ||||
668 | }; | 686 | }; | ||
669 | 687 | | |||
670 | /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | 688 | /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | ||
671 | Performed when YYTABLE does not specify something else to do. Zero | 689 | Performed when YYTABLE does not specify something else to do. Zero | ||
672 | means the default is an error. */ | 690 | means the default is an error. */ | ||
673 | static const yytype_uint8 yydefact[] = | 691 | static const yytype_uint8 yydefact[] = | ||
674 | { | 692 | { | ||
675 | 0, 14, 0, 2, 4, 6, 7, 1, 5, 77, | 693 | 0, 14, 0, 2, 4, 6, 7, 1, 5, 77, | ||
676 | 0, 0, 74, 78, 79, 70, 71, 75, 76, 0, | 694 | 0, 0, 74, 78, 79, 70, 71, 75, 76, 0, | ||
677 | 0, 0, 100, 0, 0, 98, 29, 33, 39, 49, | 695 | 0, 0, 118, 0, 0, 0, 116, 29, 33, 39, | ||
678 | 52, 55, 61, 65, 80, 10, 8, 93, 94, 95, | 696 | 49, 52, 55, 61, 65, 80, 81, 82, 83, 10, | ||
679 | 3, 0, 89, 86, 88, 0, 0, 72, 70, 69, | 697 | 8, 111, 112, 113, 3, 0, 107, 104, 106, 0, | ||
680 | 67, 66, 68, 0, 0, 0, 0, 0, 0, 0, | 698 | 0, 72, 70, 69, 67, 66, 68, 87, 0, 0, | ||
699 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||||
681 | 0, 0, 50, 51, 0, 0, 0, 0, 0, 0, | 700 | 0, 0, 50, 51, 0, 0, 0, 0, 0, 0, | ||
682 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 701 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
683 | 0, 0, 0, 0, 0, 12, 15, 0, 11, 9, | 702 | 0, 0, 0, 0, 0, 12, 15, 0, 11, 9, | ||
684 | 0, 97, 0, 0, 90, 0, 73, 101, 83, 85, | 703 | 0, 115, 0, 0, 108, 0, 73, 119, 101, 103, | ||
685 | 0, 0, 81, 30, 31, 32, 37, 35, 34, 36, | 704 | 0, 0, 0, 0, 88, 89, 0, 84, 0, 90, | ||
686 | 38, 0, 0, 44, 42, 43, 40, 41, 45, 46, | 705 | 99, 30, 31, 32, 37, 35, 34, 36, 38, 0, | ||
687 | 53, 54, 57, 56, 58, 59, 60, 62, 63, 64, | 706 | 0, 44, 42, 43, 40, 41, 45, 46, 53, 54, | ||
688 | 0, 19, 0, 92, 13, 96, 99, 91, 87, 0, | 707 | 57, 56, 58, 59, 60, 62, 63, 64, 0, 19, | ||
689 | 82, 0, 0, 26, 24, 16, 20, 0, 84, 47, | 708 | 0, 110, 13, 114, 117, 109, 105, 0, 100, 0, | ||
690 | 48, 0, 18, 27, 28, 0, 21, 17, 25, 22, | 709 | 94, 0, 0, 0, 0, 0, 26, 24, 16, 20, | ||
691 | 0, 23 | 710 | 0, 102, 0, 0, 0, 97, 98, 0, 47, 48, | ||
711 | 0, 18, 27, 28, 0, 21, 17, 87, 86, 93, | ||||
712 | 94, 95, 96, 91, 85, 25, 22, 0, 97, 23, | ||||
713 | 92 | ||||
692 | }; | 714 | }; | ||
693 | 715 | | |||
694 | /* YYPGOTO[NTERM-NUM]. */ | 716 | /* YYPGOTO[NTERM-NUM]. */ | ||
695 | static const yytype_int16 yypgoto[] = | 717 | static const yytype_int16 yypgoto[] = | ||
696 | { | 718 | { | ||
697 | -127, -127, 138, -127, -127, -127, -26, 2, -126, -127, | 719 | -143, -143, 200, -143, -143, -143, -29, 47, -142, -143, | ||
698 | -127, -24, 64, 115, -63, -127, 31, 102, 44, 88, | 720 | -143, -25, 87, 106, -73, -143, 32, 107, 90, 108, | ||
699 | -127, -127, 13, 117, -127, 63, -127, 72, 119, -127 | 721 | -143, -143, 45, -143, 105, 34, 21, -143, -143, -143, | ||
722 | 70, 188, -143, 124, -143, 133, 186, -143 | ||||
700 | }; | 723 | }; | ||
701 | 724 | | |||
702 | /* YYDEFGOTO[NTERM-NUM]. */ | 725 | /* YYDEFGOTO[NTERM-NUM]. */ | ||
703 | static const yytype_int16 yydefgoto[] = | 726 | static const yytype_int16 yydefgoto[] = | ||
704 | { | 727 | { | ||
705 | -1, 2, 3, 4, 5, 6, 85, 86, 145, 146, | 728 | -1, 2, 3, 4, 5, 6, 95, 96, 168, 169, | ||
706 | 156, 25, 26, 27, 28, 29, 30, 31, 32, 33, | 729 | 185, 26, 27, 28, 29, 30, 31, 32, 33, 34, | ||
707 | 34, 47, 100, 35, 43, 44, 36, 37, 38, 39 | 730 | 35, 60, 61, 36, 62, 175, 193, 37, 38, 51, | ||
731 | 110, 39, 47, 48, 40, 41, 42, 43 | ||||
708 | }; | 732 | }; | ||
709 | 733 | | |||
710 | /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | 734 | /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | ||
711 | positive, shift that token. If negative, reduce the rule whose | 735 | positive, shift that token. If negative, reduce the rule whose | ||
712 | number is the opposite. If YYTABLE_NINF, syntax error. */ | 736 | number is the opposite. If YYTABLE_NINF, syntax error. */ | ||
713 | static const yytype_uint8 yytable[] = | 737 | static const yytype_uint8 yytable[] = | ||
714 | { | 738 | { | ||
715 | 53, 111, 112, 113, 114, 115, 116, 117, 118, 119, | 739 | 63, 129, 130, 131, 132, 133, 134, 135, 136, 137, | ||
716 | 88, 153, 96, 9, 90, 1, 83, 57, 58, 93, | 740 | 9, 98, 49, 85, 100, 103, 106, 93, 182, 112, | ||
717 | 154, 157, 99, 45, 9, 12, 54, 11, 10, 159, | 741 | 191, 192, 12, 116, 113, 109, 50, 183, 186, 13, | ||
718 | 11, 84, 13, 14, 161, 46, 12, 83, 55, 7, | 742 | 14, 1, 94, 64, 9, 67, 68, 52, 10, 16, | ||
719 | 48, 56, 16, 13, 14, 8, 17, 18, 143, 91, | 743 | 11, 117, 196, 17, 18, 65, 12, 11, 66, 101, | ||
720 | 97, 15, 84, 16, 94, 101, 144, 17, 18, 19, | 744 | 104, 111, 7, 13, 14, 199, 19, 93, 107, 45, | ||
721 | 131, 73, 74, 134, 59, 60, 61, 46, 42, 41, | 745 | 173, 15, 8, 16, 46, 50, 105, 17, 18, 149, | ||
722 | 19, 75, 155, 20, 21, 95, 87, 102, 149, 150, | 746 | 152, 114, 94, 174, 20, 21, 86, 87, 88, 89, | ||
723 | 23, 24, 98, 9, 20, 21, 130, 10, 132, 22, | 747 | 19, 23, 24, 184, 25, 108, 69, 70, 71, 166, | ||
724 | 135, 23, 24, 137, 9, 12, 96, 136, 10, 80, | 748 | 9, 178, 179, 115, 10, 83, 84, 167, 20, 21, | ||
725 | 81, 82, 13, 14, 120, 121, 12, 49, 50, 51, | 749 | 97, 118, 12, 22, 119, 23, 24, 148, 25, 13, | ||
726 | 15, 52, 16, 13, 14, 99, 17, 18, 103, 104, | 750 | 14, 57, 150, 153, 9, 138, 139, 15, 10, 16, | ||
727 | 105, 48, 139, 16, 127, 128, 129, 17, 18, 19, | 751 | 58, 59, 120, 17, 18, 154, 12, 53, 54, 55, | ||
728 | 76, 77, 78, 79, 140, 141, 142, 9, 147, 84, | 752 | 187, 56, 109, 13, 14, 158, 19, 155, 9, 58, | ||
729 | 19, 151, 158, 20, 21, 160, 40, 152, 22, 12, | 753 | 59, 52, 157, 16, 90, 91, 92, 17, 18, 106, | ||
730 | 23, 24, 148, 89, 20, 21, 13, 14, 138, 133, | 754 | 12, 121, 122, 123, 20, 21, 159, 13, 14, 22, | ||
731 | 92, 23, 24, 0, 48, 0, 16, 0, 0, 0, | 755 | 19, 23, 24, 164, 25, 52, 160, 16, 161, 165, | ||
732 | 17, 18, 106, 107, 108, 109, 110, 122, 123, 124, | 756 | 163, 17, 18, 124, 125, 126, 127, 128, 20, 21, | ||
733 | 125, 126, 0, 19, 62, 63, 0, 0, 0, 0, | 757 | 145, 146, 147, 170, 19, 23, 24, 94, 25, 72, | ||
734 | 0, 0, 0, 0, 0, 0, 0, 20, 21, 0, | 758 | 73, 172, 140, 141, 142, 143, 144, 113, 177, 176, | ||
735 | 0, 0, 0, 0, 23, 24, 0, 0, 64, 65, | 759 | 180, 189, 20, 21, 190, 194, 195, 197, 44, 23, | ||
736 | 0, 66, 0, 67, 0, 68, 0, 69, 70, 0, | 760 | 24, 173, 25, 74, 75, 181, 76, 188, 77, 200, | ||
737 | 71, 72 | 761 | 78, 162, 79, 80, 198, 81, 82, 171, 99, 156, | ||
762 | 151, 102 | ||||
738 | }; | 763 | }; | ||
739 | 764 | | |||
740 | static const yytype_int16 yycheck[] = | 765 | static const yytype_uint8 yycheck[] = | ||
741 | { | 766 | { | ||
742 | 24, 64, 65, 66, 67, 68, 69, 70, 71, 72, | 767 | 25, 74, 75, 76, 77, 78, 79, 80, 81, 82, | ||
743 | 36, 6, 39, 12, 4, 30, 28, 22, 23, 4, | 768 | 12, 40, 72, 13, 4, 4, 39, 28, 6, 80, | ||
744 | 15, 147, 46, 68, 12, 24, 49, 18, 16, 155, | 769 | 68, 69, 24, 66, 85, 50, 86, 15, 170, 31, | ||
745 | 18, 43, 31, 32, 160, 80, 24, 28, 61, 0, | 770 | 32, 30, 43, 49, 12, 22, 23, 39, 16, 41, | ||
746 | 39, 64, 41, 31, 32, 66, 45, 46, 31, 39, | 771 | 18, 84, 184, 45, 46, 61, 24, 18, 64, 39, | ||
747 | 77, 39, 43, 41, 39, 68, 39, 45, 46, 58, | 772 | 39, 72, 0, 31, 32, 197, 58, 28, 81, 86, | ||
748 | 84, 9, 10, 89, 69, 70, 71, 80, 39, 80, | 773 | 72, 39, 70, 41, 39, 86, 71, 45, 46, 94, | ||
749 | 58, 13, 67, 72, 73, 67, 67, 81, 141, 142, | 774 | 99, 67, 43, 85, 76, 77, 76, 77, 78, 79, | ||
750 | 79, 80, 81, 12, 72, 73, 11, 16, 28, 77, | 775 | 58, 83, 84, 71, 86, 87, 73, 74, 75, 31, | ||
751 | 39, 79, 80, 39, 12, 24, 39, 81, 16, 76, | 776 | 12, 164, 165, 67, 16, 9, 10, 39, 76, 77, | ||
752 | 77, 78, 31, 32, 73, 74, 24, 19, 20, 21, | 777 | 71, 77, 24, 81, 84, 83, 84, 11, 86, 31, | ||
753 | 39, 23, 41, 31, 32, 139, 45, 46, 54, 55, | 778 | 32, 67, 28, 39, 12, 83, 84, 39, 16, 41, | ||
754 | 56, 39, 67, 41, 80, 81, 82, 45, 46, 58, | 779 | 76, 77, 87, 45, 46, 87, 24, 19, 20, 21, | ||
755 | 72, 73, 74, 75, 81, 49, 49, 12, 11, 43, | 780 | 67, 23, 157, 31, 32, 87, 58, 39, 12, 76, | ||
756 | 58, 68, 39, 72, 73, 67, 8, 145, 77, 24, | 781 | 77, 39, 71, 41, 80, 81, 82, 45, 46, 39, | ||
757 | 79, 80, 139, 36, 72, 73, 31, 32, 95, 87, | 782 | 24, 64, 65, 66, 76, 77, 67, 31, 32, 81, | ||
758 | 41, 79, 80, -1, 39, -1, 41, -1, -1, -1, | 783 | 58, 83, 84, 49, 86, 39, 67, 41, 67, 49, | ||
759 | 45, 46, 57, 58, 59, 60, 61, 75, 76, 77, | 784 | 67, 45, 46, 67, 68, 69, 70, 71, 76, 77, | ||
760 | 78, 79, -1, 58, 26, 27, -1, -1, -1, -1, | 785 | 90, 91, 92, 11, 58, 83, 84, 43, 86, 26, | ||
761 | -1, -1, -1, -1, -1, -1, -1, 72, 73, -1, | 786 | 27, 80, 85, 86, 87, 88, 89, 85, 77, 84, | ||
762 | -1, -1, -1, -1, 79, 80, -1, -1, 50, 51, | 787 | 72, 67, 76, 77, 67, 67, 39, 71, 8, 83, | ||
763 | -1, 53, -1, 55, -1, 57, -1, 59, 60, -1, | 788 | 84, 72, 86, 50, 51, 168, 53, 172, 55, 198, | ||
764 | 62, 63 | 789 | 57, 116, 59, 60, 190, 62, 63, 157, 40, 105, | ||
790 | 97, 45 | ||||
765 | }; | 791 | }; | ||
766 | 792 | | |||
767 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | 793 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | ||
768 | symbol of state STATE-NUM. */ | 794 | symbol of state STATE-NUM. */ | ||
769 | static const yytype_uint8 yystos[] = | 795 | static const yytype_uint8 yystos[] = | ||
770 | { | 796 | { | ||
771 | 0, 30, 83, 84, 85, 86, 87, 0, 66, 12, | 797 | 0, 30, 89, 90, 91, 92, 93, 0, 70, 12, | ||
772 | 16, 18, 24, 31, 32, 39, 41, 45, 46, 58, | 798 | 16, 18, 24, 31, 32, 39, 41, 45, 46, 58, | ||
773 | 72, 73, 77, 79, 80, 93, 94, 95, 96, 97, | 799 | 76, 77, 81, 83, 84, 86, 99, 100, 101, 102, | ||
774 | 98, 99, 100, 101, 102, 105, 108, 109, 110, 111, | 800 | 103, 104, 105, 106, 107, 108, 111, 115, 116, 119, | ||
775 | 84, 80, 39, 106, 107, 68, 80, 103, 39, 101, | 801 | 122, 123, 124, 125, 90, 86, 39, 120, 121, 72, | ||
776 | 101, 101, 101, 93, 49, 61, 64, 22, 23, 69, | 802 | 86, 117, 39, 107, 107, 107, 107, 67, 76, 77, | ||
777 | 70, 71, 26, 27, 50, 51, 53, 55, 57, 59, | 803 | 109, 110, 112, 99, 49, 61, 64, 22, 23, 73, | ||
778 | 60, 62, 63, 9, 10, 13, 72, 73, 74, 75, | 804 | 74, 75, 26, 27, 50, 51, 53, 55, 57, 59, | ||
779 | 76, 77, 78, 28, 43, 88, 89, 67, 88, 105, | 805 | 60, 62, 63, 9, 10, 13, 76, 77, 78, 79, | ||
780 | 4, 39, 110, 4, 39, 67, 39, 77, 81, 93, | 806 | 80, 81, 82, 28, 43, 94, 95, 71, 94, 119, | ||
781 | 104, 68, 81, 94, 94, 94, 95, 95, 95, 95, | 807 | 4, 39, 124, 4, 39, 71, 39, 81, 87, 99, | ||
782 | 95, 96, 96, 96, 96, 96, 96, 96, 96, 96, | 808 | 118, 72, 80, 85, 67, 67, 66, 84, 77, 84, | ||
783 | 98, 98, 99, 99, 99, 99, 99, 100, 100, 100, | 809 | 87, 100, 100, 100, 101, 101, 101, 101, 101, 102, | ||
784 | 11, 93, 28, 109, 88, 39, 81, 39, 107, 67, | 810 | 102, 102, 102, 102, 102, 102, 102, 102, 104, 104, | ||
785 | 81, 49, 49, 31, 39, 90, 91, 11, 104, 96, | 811 | 105, 105, 105, 105, 105, 106, 106, 106, 11, 99, | ||
786 | 96, 68, 89, 6, 15, 67, 92, 90, 39, 90, | 812 | 28, 123, 94, 39, 87, 39, 121, 71, 87, 67, | ||
787 | 67, 90 | 813 | 67, 67, 112, 67, 49, 49, 31, 39, 96, 97, | ||
814 | 11, 118, 80, 72, 85, 113, 84, 77, 102, 102, | ||||
815 | 72, 95, 6, 15, 71, 98, 96, 67, 110, 67, | ||||
816 | 67, 68, 69, 114, 67, 39, 96, 71, 113, 96, | ||||
817 | 114 | ||||
788 | }; | 818 | }; | ||
789 | 819 | | |||
790 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | 820 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | ||
791 | static const yytype_uint8 yyr1[] = | 821 | static const yytype_uint8 yyr1[] = | ||
792 | { | 822 | { | ||
793 | 0, 82, 83, 84, 84, 84, 85, 86, 86, 86, | 823 | 0, 88, 89, 90, 90, 90, 91, 92, 92, 92, | ||
794 | 86, 86, 86, 86, 87, 88, 88, 88, 88, 89, | 824 | 92, 92, 92, 92, 93, 94, 94, 94, 94, 95, | ||
795 | 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, | 825 | 96, 96, 96, 96, 97, 97, 97, 98, 98, 99, | ||
796 | 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, | 826 | 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, | ||
797 | 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, | 827 | 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, | ||
798 | 97, 97, 97, 98, 98, 98, 99, 99, 99, 99, | 828 | 103, 103, 103, 104, 104, 104, 105, 105, 105, 105, | ||
799 | 99, 99, 100, 100, 100, 100, 101, 101, 101, 101, | 829 | 105, 105, 106, 106, 106, 106, 107, 107, 107, 107, | ||
800 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | 830 | 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, | ||
801 | 101, 102, 103, 103, 104, 104, 105, 106, 106, 107, | 831 | 107, 107, 107, 107, 108, 109, 109, 110, 110, 110, | ||
802 | 107, 107, 108, 108, 109, 109, 109, 109, 110, 110, | 832 | 111, 112, 112, 113, 113, 114, 114, 114, 115, 116, | ||
803 | 111, 111 | 833 | 117, 117, 118, 118, 119, 120, 120, 121, 121, 121, | ||
834 | 122, 122, 123, 123, 123, 123, 124, 124, 125, 125 | ||||
804 | }; | 835 | }; | ||
805 | 836 | | |||
806 | /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ | 837 | /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ | ||
807 | static const yytype_uint8 yyr2[] = | 838 | static const yytype_uint8 yyr2[] = | ||
808 | { | 839 | { | ||
809 | 0, 2, 1, 3, 1, 2, 1, 1, 2, 3, | 840 | 0, 2, 1, 3, 1, 2, 1, 1, 2, 3, | ||
810 | 2, 3, 3, 4, 1, 1, 3, 4, 4, 2, | 841 | 2, 3, 3, 4, 1, 1, 3, 4, 4, 2, | ||
811 | 1, 2, 3, 4, 1, 3, 1, 1, 1, 1, | 842 | 1, 2, 3, 4, 1, 3, 1, 1, 1, 1, | ||
812 | 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, | 843 | 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, | ||
813 | 3, 3, 3, 3, 3, 3, 3, 5, 5, 1, | 844 | 3, 3, 3, 3, 3, 3, 3, 5, 5, 1, | ||
814 | 2, 2, 1, 3, 3, 1, 3, 3, 3, 3, | 845 | 2, 2, 1, 3, 3, 1, 3, 3, 3, 3, | ||
815 | 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, | 846 | 3, 1, 3, 3, 3, 1, 2, 2, 2, 2, | ||
816 | 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, | 847 | 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, | ||
817 | 1, 3, 3, 2, 3, 1, 2, 3, 1, 1, | 848 | 1, 1, 1, 1, 3, 5, 5, 1, 2, 2, | ||
818 | 2, 3, 3, 1, 1, 1, 3, 2, 1, 4, | 849 | 3, 5, 7, 2, 0, 1, 1, 0, 5, 3, | ||
819 | 1, 3 | 850 | 3, 2, 3, 1, 2, 3, 1, 1, 2, 3, | ||
851 | 3, 1, 1, 1, 3, 2, 1, 4, 1, 3 | ||||
820 | }; | 852 | }; | ||
821 | 853 | | |||
822 | 854 | | |||
823 | #define yyerrok (yyerrstatus = 0) | 855 | #define yyerrok (yyerrstatus = 0) | ||
824 | #define yyclearin (yychar = YYEMPTY) | 856 | #define yyclearin (yychar = YYEMPTY) | ||
825 | #define YYEMPTY (-2) | 857 | #define YYEMPTY (-2) | ||
826 | #define YYEOF 0 | 858 | #define YYEOF 0 | ||
827 | 859 | | |||
▲ Show 20 Lines • Show All 660 Lines • ▼ Show 20 Line(s) | 1513 | /* If YYLEN is nonzero, implement the default value of the action: | |||
1488 | GCC warning that YYVAL may be used uninitialized. */ | 1520 | GCC warning that YYVAL may be used uninitialized. */ | ||
1489 | yyval = yyvsp[1-yylen]; | 1521 | yyval = yyvsp[1-yylen]; | ||
1490 | 1522 | | |||
1491 | 1523 | | |||
1492 | YY_REDUCE_PRINT (yyn); | 1524 | YY_REDUCE_PRINT (yyn); | ||
1493 | switch (yyn) | 1525 | switch (yyn) | ||
1494 | { | 1526 | { | ||
1495 | case 2: | 1527 | case 2: | ||
1496 | #line 546 "KDbSqlParser.y" /* yacc.c:1646 */ | 1528 | #line 565 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1497 | { | 1529 | { | ||
1498 | //todo: multiple statements | 1530 | //todo: multiple statements | ||
1499 | //todo: not only "select" statements | 1531 | //todo: not only "select" statements | ||
1500 | KDbParserPrivate::get(globalParser)->setStatementType(KDbParser::Select); | 1532 | KDbParserPrivate::get(globalParser)->setStatementType(KDbParser::Select); | ||
1501 | KDbParserPrivate::get(globalParser)->setQuerySchema((yyvsp[0].querySchema)); | 1533 | KDbParserPrivate::get(globalParser)->setQuerySchema((yyvsp[0].querySchema)); | ||
1502 | } | 1534 | } | ||
1503 | #line 1504 "sqlparser.cpp" /* yacc.c:1646 */ | 1535 | #line 1536 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1504 | break; | 1536 | break; | ||
1505 | 1537 | | |||
1506 | case 3: | 1538 | case 3: | ||
1507 | #line 556 "KDbSqlParser.y" /* yacc.c:1646 */ | 1539 | #line 575 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1508 | { | 1540 | { | ||
1509 | //todo: multiple statements | 1541 | //todo: multiple statements | ||
1510 | } | 1542 | } | ||
1511 | #line 1512 "sqlparser.cpp" /* yacc.c:1646 */ | 1543 | #line 1544 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1512 | break; | 1544 | break; | ||
1513 | 1545 | | |||
1514 | case 5: | 1546 | case 5: | ||
1515 | #line 561 "KDbSqlParser.y" /* yacc.c:1646 */ | 1547 | #line 580 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1516 | { | 1548 | { | ||
1517 | (yyval.querySchema) = (yyvsp[-1].querySchema); | 1549 | (yyval.querySchema) = (yyvsp[-1].querySchema); | ||
1518 | } | 1550 | } | ||
1519 | #line 1520 "sqlparser.cpp" /* yacc.c:1646 */ | 1551 | #line 1552 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1520 | break; | 1552 | break; | ||
1521 | 1553 | | |||
1522 | case 6: | 1554 | case 6: | ||
1523 | #line 576 "KDbSqlParser.y" /* yacc.c:1646 */ | 1555 | #line 595 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1524 | { | 1556 | { | ||
1525 | (yyval.querySchema) = (yyvsp[0].querySchema); | 1557 | (yyval.querySchema) = (yyvsp[0].querySchema); | ||
1526 | } | 1558 | } | ||
1527 | #line 1528 "sqlparser.cpp" /* yacc.c:1646 */ | 1559 | #line 1560 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1528 | break; | 1560 | break; | ||
1529 | 1561 | | |||
1530 | case 7: | 1562 | case 7: | ||
1531 | #line 675 "KDbSqlParser.y" /* yacc.c:1646 */ | 1563 | #line 694 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1532 | { | 1564 | { | ||
1533 | sqlParserDebug() << "Select"; | 1565 | sqlParserDebug() << "Select"; | ||
1534 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[0].querySchema), nullptr ))) | 1566 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[0].querySchema), nullptr ))) | ||
1535 | YYABORT; | 1567 | YYABORT; | ||
1536 | } | 1568 | } | ||
1537 | #line 1538 "sqlparser.cpp" /* yacc.c:1646 */ | 1569 | #line 1570 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1538 | break; | 1570 | break; | ||
1539 | 1571 | | |||
1540 | case 8: | 1572 | case 8: | ||
1541 | #line 681 "KDbSqlParser.y" /* yacc.c:1646 */ | 1573 | #line 700 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1542 | { | 1574 | { | ||
1543 | sqlParserDebug() << "Select ColViews=" << *(yyvsp[0].exprList); | 1575 | sqlParserDebug() << "Select ColViews=" << *(yyvsp[0].exprList); | ||
1544 | 1576 | | |||
1545 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-1].querySchema), (yyvsp[0].exprList) ))) | 1577 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-1].querySchema), (yyvsp[0].exprList) ))) | ||
1546 | YYABORT; | 1578 | YYABORT; | ||
1547 | } | 1579 | } | ||
1548 | #line 1549 "sqlparser.cpp" /* yacc.c:1646 */ | 1580 | #line 1581 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1549 | break; | 1581 | break; | ||
1550 | 1582 | | |||
1551 | case 9: | 1583 | case 9: | ||
1552 | #line 688 "KDbSqlParser.y" /* yacc.c:1646 */ | 1584 | #line 707 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1553 | { | 1585 | { | ||
1554 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-2].querySchema), (yyvsp[-1].exprList), (yyvsp[0].exprList) ))) | 1586 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-2].querySchema), (yyvsp[-1].exprList), (yyvsp[0].exprList) ))) | ||
1555 | YYABORT; | 1587 | YYABORT; | ||
1556 | } | 1588 | } | ||
1557 | #line 1558 "sqlparser.cpp" /* yacc.c:1646 */ | 1589 | #line 1590 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1558 | break; | 1590 | break; | ||
1559 | 1591 | | |||
1560 | case 10: | 1592 | case 10: | ||
1561 | #line 693 "KDbSqlParser.y" /* yacc.c:1646 */ | 1593 | #line 712 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1562 | { | 1594 | { | ||
1563 | sqlParserDebug() << "Select ColViews Tables"; | 1595 | sqlParserDebug() << "Select ColViews Tables"; | ||
1564 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-1].querySchema), nullptr, (yyvsp[0].exprList) ))) | 1596 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-1].querySchema), nullptr, (yyvsp[0].exprList) ))) | ||
1565 | YYABORT; | 1597 | YYABORT; | ||
1566 | } | 1598 | } | ||
1567 | #line 1568 "sqlparser.cpp" /* yacc.c:1646 */ | 1599 | #line 1600 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1568 | break; | 1600 | break; | ||
1569 | 1601 | | |||
1570 | case 11: | 1602 | case 11: | ||
1571 | #line 699 "KDbSqlParser.y" /* yacc.c:1646 */ | 1603 | #line 718 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1572 | { | 1604 | { | ||
1573 | sqlParserDebug() << "Select ColViews Conditions"; | 1605 | sqlParserDebug() << "Select ColViews Conditions"; | ||
1574 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-2].querySchema), (yyvsp[-1].exprList), nullptr, (yyvsp[0].selectOptions) ))) | 1606 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-2].querySchema), (yyvsp[-1].exprList), nullptr, (yyvsp[0].selectOptions) ))) | ||
1575 | YYABORT; | 1607 | YYABORT; | ||
1576 | } | 1608 | } | ||
1577 | #line 1578 "sqlparser.cpp" /* yacc.c:1646 */ | 1609 | #line 1610 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1578 | break; | 1610 | break; | ||
1579 | 1611 | | |||
1580 | case 12: | 1612 | case 12: | ||
1581 | #line 705 "KDbSqlParser.y" /* yacc.c:1646 */ | 1613 | #line 724 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1582 | { | 1614 | { | ||
1583 | sqlParserDebug() << "Select Tables SelectOptions"; | 1615 | sqlParserDebug() << "Select Tables SelectOptions"; | ||
1584 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-2].querySchema), nullptr, (yyvsp[-1].exprList), (yyvsp[0].selectOptions) ))) | 1616 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-2].querySchema), nullptr, (yyvsp[-1].exprList), (yyvsp[0].selectOptions) ))) | ||
1585 | YYABORT; | 1617 | YYABORT; | ||
1586 | } | 1618 | } | ||
1587 | #line 1588 "sqlparser.cpp" /* yacc.c:1646 */ | 1619 | #line 1620 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1588 | break; | 1620 | break; | ||
1589 | 1621 | | |||
1590 | case 13: | 1622 | case 13: | ||
1591 | #line 711 "KDbSqlParser.y" /* yacc.c:1646 */ | 1623 | #line 730 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1592 | { | 1624 | { | ||
1593 | sqlParserDebug() << "Select ColViews Tables SelectOptions"; | 1625 | sqlParserDebug() << "Select ColViews Tables SelectOptions"; | ||
1594 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-3].querySchema), (yyvsp[-2].exprList), (yyvsp[-1].exprList), (yyvsp[0].selectOptions) ))) | 1626 | if (!((yyval.querySchema) = buildSelectQuery( (yyvsp[-3].querySchema), (yyvsp[-2].exprList), (yyvsp[-1].exprList), (yyvsp[0].selectOptions) ))) | ||
1595 | YYABORT; | 1627 | YYABORT; | ||
1596 | } | 1628 | } | ||
1597 | #line 1598 "sqlparser.cpp" /* yacc.c:1646 */ | 1629 | #line 1630 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1598 | break; | 1630 | break; | ||
1599 | 1631 | | |||
1600 | case 14: | 1632 | case 14: | ||
1601 | #line 720 "KDbSqlParser.y" /* yacc.c:1646 */ | 1633 | #line 739 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1602 | { | 1634 | { | ||
1603 | sqlParserDebug() << "SELECT"; | 1635 | sqlParserDebug() << "SELECT"; | ||
1604 | (yyval.querySchema) = KDbParserPrivate::get(globalParser)->createQuery(); | 1636 | (yyval.querySchema) = KDbParserPrivate::get(globalParser)->createQuery(); | ||
1605 | } | 1637 | } | ||
1606 | #line 1607 "sqlparser.cpp" /* yacc.c:1646 */ | 1638 | #line 1639 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1607 | break; | 1639 | break; | ||
1608 | 1640 | | |||
1609 | case 15: | 1641 | case 15: | ||
1610 | #line 728 "KDbSqlParser.y" /* yacc.c:1646 */ | 1642 | #line 747 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1611 | { | 1643 | { | ||
1612 | sqlParserDebug() << "WhereClause"; | 1644 | sqlParserDebug() << "WhereClause"; | ||
1613 | (yyval.selectOptions) = new SelectOptionsInternal; | 1645 | (yyval.selectOptions) = new SelectOptionsInternal; | ||
1614 | (yyval.selectOptions)->whereExpr = *(yyvsp[0].expr); | 1646 | (yyval.selectOptions)->whereExpr = *(yyvsp[0].expr); | ||
1615 | delete (yyvsp[0].expr); | 1647 | delete (yyvsp[0].expr); | ||
1616 | } | 1648 | } | ||
1617 | #line 1618 "sqlparser.cpp" /* yacc.c:1646 */ | 1649 | #line 1650 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1618 | break; | 1650 | break; | ||
1619 | 1651 | | |||
1620 | case 16: | 1652 | case 16: | ||
1621 | #line 735 "KDbSqlParser.y" /* yacc.c:1646 */ | 1653 | #line 754 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1622 | { | 1654 | { | ||
1623 | sqlParserDebug() << "OrderByClause"; | 1655 | sqlParserDebug() << "OrderByClause"; | ||
1624 | (yyval.selectOptions) = new SelectOptionsInternal; | 1656 | (yyval.selectOptions) = new SelectOptionsInternal; | ||
1625 | (yyval.selectOptions)->orderByColumns = (yyvsp[0].orderByColumns); | 1657 | (yyval.selectOptions)->orderByColumns = (yyvsp[0].orderByColumns); | ||
1626 | } | 1658 | } | ||
1627 | #line 1628 "sqlparser.cpp" /* yacc.c:1646 */ | 1659 | #line 1660 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1628 | break; | 1660 | break; | ||
1629 | 1661 | | |||
1630 | case 17: | 1662 | case 17: | ||
1631 | #line 741 "KDbSqlParser.y" /* yacc.c:1646 */ | 1663 | #line 760 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1632 | { | 1664 | { | ||
1633 | sqlParserDebug() << "WhereClause ORDER BY OrderByClause"; | 1665 | sqlParserDebug() << "WhereClause ORDER BY OrderByClause"; | ||
1634 | (yyval.selectOptions) = new SelectOptionsInternal; | 1666 | (yyval.selectOptions) = new SelectOptionsInternal; | ||
1635 | (yyval.selectOptions)->whereExpr = *(yyvsp[-3].expr); | 1667 | (yyval.selectOptions)->whereExpr = *(yyvsp[-3].expr); | ||
1636 | delete (yyvsp[-3].expr); | 1668 | delete (yyvsp[-3].expr); | ||
1637 | (yyval.selectOptions)->orderByColumns = (yyvsp[0].orderByColumns); | 1669 | (yyval.selectOptions)->orderByColumns = (yyvsp[0].orderByColumns); | ||
1638 | } | 1670 | } | ||
1639 | #line 1640 "sqlparser.cpp" /* yacc.c:1646 */ | 1671 | #line 1672 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1640 | break; | 1672 | break; | ||
1641 | 1673 | | |||
1642 | case 18: | 1674 | case 18: | ||
1643 | #line 749 "KDbSqlParser.y" /* yacc.c:1646 */ | 1675 | #line 768 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1644 | { | 1676 | { | ||
1645 | sqlParserDebug() << "OrderByClause WhereClause"; | 1677 | sqlParserDebug() << "OrderByClause WhereClause"; | ||
1646 | (yyval.selectOptions) = new SelectOptionsInternal; | 1678 | (yyval.selectOptions) = new SelectOptionsInternal; | ||
1647 | (yyval.selectOptions)->whereExpr = *(yyvsp[0].expr); | 1679 | (yyval.selectOptions)->whereExpr = *(yyvsp[0].expr); | ||
1648 | delete (yyvsp[0].expr); | 1680 | delete (yyvsp[0].expr); | ||
1649 | (yyval.selectOptions)->orderByColumns = (yyvsp[-1].orderByColumns); | 1681 | (yyval.selectOptions)->orderByColumns = (yyvsp[-1].orderByColumns); | ||
1650 | } | 1682 | } | ||
1651 | #line 1652 "sqlparser.cpp" /* yacc.c:1646 */ | 1683 | #line 1684 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1652 | break; | 1684 | break; | ||
1653 | 1685 | | |||
1654 | case 19: | 1686 | case 19: | ||
1655 | #line 760 "KDbSqlParser.y" /* yacc.c:1646 */ | 1687 | #line 779 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1656 | { | 1688 | { | ||
1657 | (yyval.expr) = (yyvsp[0].expr); | 1689 | (yyval.expr) = (yyvsp[0].expr); | ||
1658 | } | 1690 | } | ||
1659 | #line 1660 "sqlparser.cpp" /* yacc.c:1646 */ | 1691 | #line 1692 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1660 | break; | 1692 | break; | ||
1661 | 1693 | | |||
1662 | case 20: | 1694 | case 20: | ||
1663 | #line 769 "KDbSqlParser.y" /* yacc.c:1646 */ | 1695 | #line 788 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1664 | { | 1696 | { | ||
1665 | sqlParserDebug() << "ORDER BY IDENTIFIER"; | 1697 | sqlParserDebug() << "ORDER BY IDENTIFIER"; | ||
1666 | (yyval.orderByColumns) = new QList<OrderByColumnInternal>; | 1698 | (yyval.orderByColumns) = new QList<OrderByColumnInternal>; | ||
1667 | OrderByColumnInternal orderByColumn; | 1699 | OrderByColumnInternal orderByColumn; | ||
1668 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[0].variantValue) ); | 1700 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[0].variantValue) ); | ||
1669 | (yyval.orderByColumns)->append( orderByColumn ); | 1701 | (yyval.orderByColumns)->append( orderByColumn ); | ||
1670 | delete (yyvsp[0].variantValue); | 1702 | delete (yyvsp[0].variantValue); | ||
1671 | } | 1703 | } | ||
1672 | #line 1673 "sqlparser.cpp" /* yacc.c:1646 */ | 1704 | #line 1705 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1673 | break; | 1705 | break; | ||
1674 | 1706 | | |||
1675 | case 21: | 1707 | case 21: | ||
1676 | #line 778 "KDbSqlParser.y" /* yacc.c:1646 */ | 1708 | #line 797 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1677 | { | 1709 | { | ||
1678 | sqlParserDebug() << "ORDER BY IDENTIFIER OrderByOption"; | 1710 | sqlParserDebug() << "ORDER BY IDENTIFIER OrderByOption"; | ||
1679 | (yyval.orderByColumns) = new QList<OrderByColumnInternal>; | 1711 | (yyval.orderByColumns) = new QList<OrderByColumnInternal>; | ||
1680 | OrderByColumnInternal orderByColumn; | 1712 | OrderByColumnInternal orderByColumn; | ||
1681 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[-1].variantValue) ); | 1713 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[-1].variantValue) ); | ||
1682 | orderByColumn.order = (yyvsp[0].sortOrderValue); | 1714 | orderByColumn.order = (yyvsp[0].sortOrderValue); | ||
1683 | (yyval.orderByColumns)->append( orderByColumn ); | 1715 | (yyval.orderByColumns)->append( orderByColumn ); | ||
1684 | delete (yyvsp[-1].variantValue); | 1716 | delete (yyvsp[-1].variantValue); | ||
1685 | } | 1717 | } | ||
1686 | #line 1687 "sqlparser.cpp" /* yacc.c:1646 */ | 1718 | #line 1719 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1687 | break; | 1719 | break; | ||
1688 | 1720 | | |||
1689 | case 22: | 1721 | case 22: | ||
1690 | #line 788 "KDbSqlParser.y" /* yacc.c:1646 */ | 1722 | #line 807 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1691 | { | 1723 | { | ||
1692 | (yyval.orderByColumns) = (yyvsp[0].orderByColumns); | 1724 | (yyval.orderByColumns) = (yyvsp[0].orderByColumns); | ||
1693 | OrderByColumnInternal orderByColumn; | 1725 | OrderByColumnInternal orderByColumn; | ||
1694 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[-2].variantValue) ); | 1726 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[-2].variantValue) ); | ||
1695 | (yyval.orderByColumns)->append( orderByColumn ); | 1727 | (yyval.orderByColumns)->append( orderByColumn ); | ||
1696 | delete (yyvsp[-2].variantValue); | 1728 | delete (yyvsp[-2].variantValue); | ||
1697 | } | 1729 | } | ||
1698 | #line 1699 "sqlparser.cpp" /* yacc.c:1646 */ | 1730 | #line 1731 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1699 | break; | 1731 | break; | ||
1700 | 1732 | | |||
1701 | case 23: | 1733 | case 23: | ||
1702 | #line 796 "KDbSqlParser.y" /* yacc.c:1646 */ | 1734 | #line 815 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1703 | { | 1735 | { | ||
1704 | (yyval.orderByColumns) = (yyvsp[0].orderByColumns); | 1736 | (yyval.orderByColumns) = (yyvsp[0].orderByColumns); | ||
1705 | OrderByColumnInternal orderByColumn; | 1737 | OrderByColumnInternal orderByColumn; | ||
1706 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[-3].variantValue) ); | 1738 | orderByColumn.setColumnByNameOrNumber( *(yyvsp[-3].variantValue) ); | ||
1707 | orderByColumn.order = (yyvsp[-2].sortOrderValue); | 1739 | orderByColumn.order = (yyvsp[-2].sortOrderValue); | ||
1708 | (yyval.orderByColumns)->append( orderByColumn ); | 1740 | (yyval.orderByColumns)->append( orderByColumn ); | ||
1709 | delete (yyvsp[-3].variantValue); | 1741 | delete (yyvsp[-3].variantValue); | ||
1710 | } | 1742 | } | ||
1711 | #line 1712 "sqlparser.cpp" /* yacc.c:1646 */ | 1743 | #line 1744 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1712 | break; | 1744 | break; | ||
1713 | 1745 | | |||
1714 | case 24: | 1746 | case 24: | ||
1715 | #line 808 "KDbSqlParser.y" /* yacc.c:1646 */ | 1747 | #line 827 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1716 | { | 1748 | { | ||
1717 | (yyval.variantValue) = new QVariant( *(yyvsp[0].stringValue) ); | 1749 | (yyval.variantValue) = new QVariant( *(yyvsp[0].stringValue) ); | ||
1718 | sqlParserDebug() << "OrderByColumnId: " << *(yyval.variantValue); | 1750 | sqlParserDebug() << "OrderByColumnId: " << *(yyval.variantValue); | ||
1719 | delete (yyvsp[0].stringValue); | 1751 | delete (yyvsp[0].stringValue); | ||
1720 | } | 1752 | } | ||
1721 | #line 1722 "sqlparser.cpp" /* yacc.c:1646 */ | 1753 | #line 1754 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1722 | break; | 1754 | break; | ||
1723 | 1755 | | |||
1724 | case 25: | 1756 | case 25: | ||
1725 | #line 814 "KDbSqlParser.y" /* yacc.c:1646 */ | 1757 | #line 833 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1726 | { | 1758 | { | ||
1727 | (yyval.variantValue) = new QVariant( *(yyvsp[-2].stringValue) + QLatin1Char('.') + *(yyvsp[0].stringValue) ); | 1759 | (yyval.variantValue) = new QVariant( *(yyvsp[-2].stringValue) + QLatin1Char('.') + *(yyvsp[0].stringValue) ); | ||
1728 | sqlParserDebug() << "OrderByColumnId: " << *(yyval.variantValue); | 1760 | sqlParserDebug() << "OrderByColumnId: " << *(yyval.variantValue); | ||
1729 | delete (yyvsp[-2].stringValue); | 1761 | delete (yyvsp[-2].stringValue); | ||
1730 | delete (yyvsp[0].stringValue); | 1762 | delete (yyvsp[0].stringValue); | ||
1731 | } | 1763 | } | ||
1732 | #line 1733 "sqlparser.cpp" /* yacc.c:1646 */ | 1764 | #line 1765 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1733 | break; | 1765 | break; | ||
1734 | 1766 | | |||
1735 | case 26: | 1767 | case 26: | ||
1736 | #line 821 "KDbSqlParser.y" /* yacc.c:1646 */ | 1768 | #line 840 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1737 | { | 1769 | { | ||
1738 | (yyval.variantValue) = new QVariant((yyvsp[0].integerValue)); | 1770 | (yyval.variantValue) = new QVariant((yyvsp[0].integerValue)); | ||
1739 | sqlParserDebug() << "OrderByColumnId: " << *(yyval.variantValue); | 1771 | sqlParserDebug() << "OrderByColumnId: " << *(yyval.variantValue); | ||
1740 | } | 1772 | } | ||
1741 | #line 1742 "sqlparser.cpp" /* yacc.c:1646 */ | 1773 | #line 1774 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1742 | break; | 1774 | break; | ||
1743 | 1775 | | |||
1744 | case 27: | 1776 | case 27: | ||
1745 | #line 828 "KDbSqlParser.y" /* yacc.c:1646 */ | 1777 | #line 847 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1746 | { | 1778 | { | ||
1747 | (yyval.sortOrderValue) = KDbOrderByColumn::SortOrder::Ascending; | 1779 | (yyval.sortOrderValue) = KDbOrderByColumn::SortOrder::Ascending; | ||
1748 | } | 1780 | } | ||
1749 | #line 1750 "sqlparser.cpp" /* yacc.c:1646 */ | 1781 | #line 1782 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1750 | break; | 1782 | break; | ||
1751 | 1783 | | |||
1752 | case 28: | 1784 | case 28: | ||
1753 | #line 832 "KDbSqlParser.y" /* yacc.c:1646 */ | 1785 | #line 851 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1754 | { | 1786 | { | ||
1755 | (yyval.sortOrderValue) = KDbOrderByColumn::SortOrder::Descending; | 1787 | (yyval.sortOrderValue) = KDbOrderByColumn::SortOrder::Descending; | ||
1756 | } | 1788 | } | ||
1757 | #line 1758 "sqlparser.cpp" /* yacc.c:1646 */ | 1789 | #line 1790 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1758 | break; | 1790 | break; | ||
1759 | 1791 | | |||
1760 | case 30: | 1792 | case 30: | ||
1761 | #line 844 "KDbSqlParser.y" /* yacc.c:1646 */ | 1793 | #line 863 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1762 | { | 1794 | { | ||
1763 | // sqlParserDebug() << "AND " << $3.debugString(); | 1795 | // sqlParserDebug() << "AND " << $3.debugString(); | ||
1764 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::AND, *(yyvsp[0].expr)); | 1796 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::AND, *(yyvsp[0].expr)); | ||
1765 | delete (yyvsp[-2].expr); | 1797 | delete (yyvsp[-2].expr); | ||
1766 | delete (yyvsp[0].expr); | 1798 | delete (yyvsp[0].expr); | ||
1767 | } | 1799 | } | ||
1768 | #line 1769 "sqlparser.cpp" /* yacc.c:1646 */ | 1800 | #line 1801 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1769 | break; | 1801 | break; | ||
1770 | 1802 | | |||
1771 | case 31: | 1803 | case 31: | ||
1772 | #line 851 "KDbSqlParser.y" /* yacc.c:1646 */ | 1804 | #line 870 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1773 | { | 1805 | { | ||
1774 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::OR, *(yyvsp[0].expr)); | 1806 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::OR, *(yyvsp[0].expr)); | ||
1775 | delete (yyvsp[-2].expr); | 1807 | delete (yyvsp[-2].expr); | ||
1776 | delete (yyvsp[0].expr); | 1808 | delete (yyvsp[0].expr); | ||
1777 | } | 1809 | } | ||
1778 | #line 1779 "sqlparser.cpp" /* yacc.c:1646 */ | 1810 | #line 1811 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1779 | break; | 1811 | break; | ||
1780 | 1812 | | |||
1781 | case 32: | 1813 | case 32: | ||
1782 | #line 857 "KDbSqlParser.y" /* yacc.c:1646 */ | 1814 | #line 876 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1783 | { | 1815 | { | ||
1784 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::XOR, *(yyvsp[0].expr)); | 1816 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::XOR, *(yyvsp[0].expr)); | ||
1785 | delete (yyvsp[-2].expr); | 1817 | delete (yyvsp[-2].expr); | ||
1786 | delete (yyvsp[0].expr); | 1818 | delete (yyvsp[0].expr); | ||
1787 | } | 1819 | } | ||
1788 | #line 1789 "sqlparser.cpp" /* yacc.c:1646 */ | 1820 | #line 1821 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1789 | break; | 1821 | break; | ||
1790 | 1822 | | |||
1791 | case 34: | 1823 | case 34: | ||
1792 | #line 869 "KDbSqlParser.y" /* yacc.c:1646 */ | 1824 | #line 888 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1793 | { | 1825 | { | ||
1794 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '>', *(yyvsp[0].expr)); | 1826 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '>', *(yyvsp[0].expr)); | ||
1795 | delete (yyvsp[-2].expr); | 1827 | delete (yyvsp[-2].expr); | ||
1796 | delete (yyvsp[0].expr); | 1828 | delete (yyvsp[0].expr); | ||
1797 | } | 1829 | } | ||
1798 | #line 1799 "sqlparser.cpp" /* yacc.c:1646 */ | 1830 | #line 1831 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1799 | break; | 1831 | break; | ||
1800 | 1832 | | |||
1801 | case 35: | 1833 | case 35: | ||
1802 | #line 875 "KDbSqlParser.y" /* yacc.c:1646 */ | 1834 | #line 894 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1803 | { | 1835 | { | ||
1804 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::GREATER_OR_EQUAL, *(yyvsp[0].expr)); | 1836 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::GREATER_OR_EQUAL, *(yyvsp[0].expr)); | ||
1805 | delete (yyvsp[-2].expr); | 1837 | delete (yyvsp[-2].expr); | ||
1806 | delete (yyvsp[0].expr); | 1838 | delete (yyvsp[0].expr); | ||
1807 | } | 1839 | } | ||
1808 | #line 1809 "sqlparser.cpp" /* yacc.c:1646 */ | 1840 | #line 1841 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1809 | break; | 1841 | break; | ||
1810 | 1842 | | |||
1811 | case 36: | 1843 | case 36: | ||
1812 | #line 881 "KDbSqlParser.y" /* yacc.c:1646 */ | 1844 | #line 900 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1813 | { | 1845 | { | ||
1814 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '<', *(yyvsp[0].expr)); | 1846 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '<', *(yyvsp[0].expr)); | ||
1815 | delete (yyvsp[-2].expr); | 1847 | delete (yyvsp[-2].expr); | ||
1816 | delete (yyvsp[0].expr); | 1848 | delete (yyvsp[0].expr); | ||
1817 | } | 1849 | } | ||
1818 | #line 1819 "sqlparser.cpp" /* yacc.c:1646 */ | 1850 | #line 1851 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1819 | break; | 1851 | break; | ||
1820 | 1852 | | |||
1821 | case 37: | 1853 | case 37: | ||
1822 | #line 887 "KDbSqlParser.y" /* yacc.c:1646 */ | 1854 | #line 906 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1823 | { | 1855 | { | ||
1824 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::LESS_OR_EQUAL, *(yyvsp[0].expr)); | 1856 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::LESS_OR_EQUAL, *(yyvsp[0].expr)); | ||
1825 | delete (yyvsp[-2].expr); | 1857 | delete (yyvsp[-2].expr); | ||
1826 | delete (yyvsp[0].expr); | 1858 | delete (yyvsp[0].expr); | ||
1827 | } | 1859 | } | ||
1828 | #line 1829 "sqlparser.cpp" /* yacc.c:1646 */ | 1860 | #line 1861 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1829 | break; | 1861 | break; | ||
1830 | 1862 | | |||
1831 | case 38: | 1863 | case 38: | ||
1832 | #line 893 "KDbSqlParser.y" /* yacc.c:1646 */ | 1864 | #line 912 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1833 | { | 1865 | { | ||
1834 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '=', *(yyvsp[0].expr)); | 1866 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '=', *(yyvsp[0].expr)); | ||
1835 | delete (yyvsp[-2].expr); | 1867 | delete (yyvsp[-2].expr); | ||
1836 | delete (yyvsp[0].expr); | 1868 | delete (yyvsp[0].expr); | ||
1837 | } | 1869 | } | ||
1838 | #line 1839 "sqlparser.cpp" /* yacc.c:1646 */ | 1870 | #line 1871 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1839 | break; | 1871 | break; | ||
1840 | 1872 | | |||
1841 | case 40: | 1873 | case 40: | ||
1842 | #line 905 "KDbSqlParser.y" /* yacc.c:1646 */ | 1874 | #line 924 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1843 | { | 1875 | { | ||
1844 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_EQUAL, *(yyvsp[0].expr)); | 1876 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_EQUAL, *(yyvsp[0].expr)); | ||
1845 | delete (yyvsp[-2].expr); | 1877 | delete (yyvsp[-2].expr); | ||
1846 | delete (yyvsp[0].expr); | 1878 | delete (yyvsp[0].expr); | ||
1847 | } | 1879 | } | ||
1848 | #line 1849 "sqlparser.cpp" /* yacc.c:1646 */ | 1880 | #line 1881 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1849 | break; | 1881 | break; | ||
1850 | 1882 | | |||
1851 | case 41: | 1883 | case 41: | ||
1852 | #line 911 "KDbSqlParser.y" /* yacc.c:1646 */ | 1884 | #line 930 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1853 | { | 1885 | { | ||
1854 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_EQUAL2, *(yyvsp[0].expr)); | 1886 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_EQUAL2, *(yyvsp[0].expr)); | ||
1855 | delete (yyvsp[-2].expr); | 1887 | delete (yyvsp[-2].expr); | ||
1856 | delete (yyvsp[0].expr); | 1888 | delete (yyvsp[0].expr); | ||
1857 | } | 1889 | } | ||
1858 | #line 1859 "sqlparser.cpp" /* yacc.c:1646 */ | 1890 | #line 1891 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1859 | break; | 1891 | break; | ||
1860 | 1892 | | |||
1861 | case 42: | 1893 | case 42: | ||
1862 | #line 917 "KDbSqlParser.y" /* yacc.c:1646 */ | 1894 | #line 936 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1863 | { | 1895 | { | ||
1864 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::LIKE, *(yyvsp[0].expr)); | 1896 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::LIKE, *(yyvsp[0].expr)); | ||
1865 | delete (yyvsp[-2].expr); | 1897 | delete (yyvsp[-2].expr); | ||
1866 | delete (yyvsp[0].expr); | 1898 | delete (yyvsp[0].expr); | ||
1867 | } | 1899 | } | ||
1868 | #line 1869 "sqlparser.cpp" /* yacc.c:1646 */ | 1900 | #line 1901 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1869 | break; | 1901 | break; | ||
1870 | 1902 | | |||
1871 | case 43: | 1903 | case 43: | ||
1872 | #line 923 "KDbSqlParser.y" /* yacc.c:1646 */ | 1904 | #line 942 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1873 | { | 1905 | { | ||
1874 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_LIKE, *(yyvsp[0].expr)); | 1906 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_LIKE, *(yyvsp[0].expr)); | ||
1875 | delete (yyvsp[-2].expr); | 1907 | delete (yyvsp[-2].expr); | ||
1876 | delete (yyvsp[0].expr); | 1908 | delete (yyvsp[0].expr); | ||
1877 | } | 1909 | } | ||
1878 | #line 1879 "sqlparser.cpp" /* yacc.c:1646 */ | 1910 | #line 1911 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1879 | break; | 1911 | break; | ||
1880 | 1912 | | |||
1881 | case 44: | 1913 | case 44: | ||
1882 | #line 929 "KDbSqlParser.y" /* yacc.c:1646 */ | 1914 | #line 948 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1883 | { | 1915 | { | ||
1884 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::SQL_IN, *(yyvsp[0].expr)); | 1916 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::SQL_IN, *(yyvsp[0].expr)); | ||
1885 | delete (yyvsp[-2].expr); | 1917 | delete (yyvsp[-2].expr); | ||
1886 | delete (yyvsp[0].expr); | 1918 | delete (yyvsp[0].expr); | ||
1887 | } | 1919 | } | ||
1888 | #line 1889 "sqlparser.cpp" /* yacc.c:1646 */ | 1920 | #line 1921 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1889 | break; | 1921 | break; | ||
1890 | 1922 | | |||
1891 | case 45: | 1923 | case 45: | ||
1892 | #line 935 "KDbSqlParser.y" /* yacc.c:1646 */ | 1924 | #line 954 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1893 | { | 1925 | { | ||
1894 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::SIMILAR_TO, *(yyvsp[0].expr)); | 1926 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::SIMILAR_TO, *(yyvsp[0].expr)); | ||
1895 | delete (yyvsp[-2].expr); | 1927 | delete (yyvsp[-2].expr); | ||
1896 | delete (yyvsp[0].expr); | 1928 | delete (yyvsp[0].expr); | ||
1897 | } | 1929 | } | ||
1898 | #line 1899 "sqlparser.cpp" /* yacc.c:1646 */ | 1930 | #line 1931 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1899 | break; | 1931 | break; | ||
1900 | 1932 | | |||
1901 | case 46: | 1933 | case 46: | ||
1902 | #line 941 "KDbSqlParser.y" /* yacc.c:1646 */ | 1934 | #line 960 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1903 | { | 1935 | { | ||
1904 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_SIMILAR_TO, *(yyvsp[0].expr)); | 1936 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::NOT_SIMILAR_TO, *(yyvsp[0].expr)); | ||
1905 | delete (yyvsp[-2].expr); | 1937 | delete (yyvsp[-2].expr); | ||
1906 | delete (yyvsp[0].expr); | 1938 | delete (yyvsp[0].expr); | ||
1907 | } | 1939 | } | ||
1908 | #line 1909 "sqlparser.cpp" /* yacc.c:1646 */ | 1940 | #line 1941 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1909 | break; | 1941 | break; | ||
1910 | 1942 | | |||
1911 | case 47: | 1943 | case 47: | ||
1912 | #line 947 "KDbSqlParser.y" /* yacc.c:1646 */ | 1944 | #line 966 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1913 | { | 1945 | { | ||
1914 | (yyval.expr) = new KDbNArgExpression(KDb::RelationalExpression, KDbToken::BETWEEN_AND); | 1946 | (yyval.expr) = new KDbNArgExpression(KDb::RelationalExpression, KDbToken::BETWEEN_AND); | ||
1915 | (yyval.expr)->toNArg().append( *(yyvsp[-4].expr) ); | 1947 | (yyval.expr)->toNArg().append( *(yyvsp[-4].expr) ); | ||
1916 | (yyval.expr)->toNArg().append( *(yyvsp[-2].expr) ); | 1948 | (yyval.expr)->toNArg().append( *(yyvsp[-2].expr) ); | ||
1917 | (yyval.expr)->toNArg().append( *(yyvsp[0].expr) ); | 1949 | (yyval.expr)->toNArg().append( *(yyvsp[0].expr) ); | ||
1918 | delete (yyvsp[-4].expr); | 1950 | delete (yyvsp[-4].expr); | ||
1919 | delete (yyvsp[-2].expr); | 1951 | delete (yyvsp[-2].expr); | ||
1920 | delete (yyvsp[0].expr); | 1952 | delete (yyvsp[0].expr); | ||
1921 | } | 1953 | } | ||
1922 | #line 1923 "sqlparser.cpp" /* yacc.c:1646 */ | 1954 | #line 1955 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1923 | break; | 1955 | break; | ||
1924 | 1956 | | |||
1925 | case 48: | 1957 | case 48: | ||
1926 | #line 957 "KDbSqlParser.y" /* yacc.c:1646 */ | 1958 | #line 976 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1927 | { | 1959 | { | ||
1928 | (yyval.expr) = new KDbNArgExpression(KDb::RelationalExpression, KDbToken::NOT_BETWEEN_AND); | 1960 | (yyval.expr) = new KDbNArgExpression(KDb::RelationalExpression, KDbToken::NOT_BETWEEN_AND); | ||
1929 | (yyval.expr)->toNArg().append( *(yyvsp[-4].expr) ); | 1961 | (yyval.expr)->toNArg().append( *(yyvsp[-4].expr) ); | ||
1930 | (yyval.expr)->toNArg().append( *(yyvsp[-2].expr) ); | 1962 | (yyval.expr)->toNArg().append( *(yyvsp[-2].expr) ); | ||
1931 | (yyval.expr)->toNArg().append( *(yyvsp[0].expr) ); | 1963 | (yyval.expr)->toNArg().append( *(yyvsp[0].expr) ); | ||
1932 | delete (yyvsp[-4].expr); | 1964 | delete (yyvsp[-4].expr); | ||
1933 | delete (yyvsp[-2].expr); | 1965 | delete (yyvsp[-2].expr); | ||
1934 | delete (yyvsp[0].expr); | 1966 | delete (yyvsp[0].expr); | ||
1935 | } | 1967 | } | ||
1936 | #line 1937 "sqlparser.cpp" /* yacc.c:1646 */ | 1968 | #line 1969 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1937 | break; | 1969 | break; | ||
1938 | 1970 | | |||
1939 | case 50: | 1971 | case 50: | ||
1940 | #line 973 "KDbSqlParser.y" /* yacc.c:1646 */ | 1972 | #line 992 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1941 | { | 1973 | { | ||
1942 | (yyval.expr) = new KDbUnaryExpression( KDbToken::SQL_IS_NULL, *(yyvsp[-1].expr) ); | 1974 | (yyval.expr) = new KDbUnaryExpression( KDbToken::SQL_IS_NULL, *(yyvsp[-1].expr) ); | ||
1943 | delete (yyvsp[-1].expr); | 1975 | delete (yyvsp[-1].expr); | ||
1944 | } | 1976 | } | ||
1945 | #line 1946 "sqlparser.cpp" /* yacc.c:1646 */ | 1977 | #line 1978 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1946 | break; | 1978 | break; | ||
1947 | 1979 | | |||
1948 | case 51: | 1980 | case 51: | ||
1949 | #line 978 "KDbSqlParser.y" /* yacc.c:1646 */ | 1981 | #line 997 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1950 | { | 1982 | { | ||
1951 | (yyval.expr) = new KDbUnaryExpression( KDbToken::SQL_IS_NOT_NULL, *(yyvsp[-1].expr) ); | 1983 | (yyval.expr) = new KDbUnaryExpression( KDbToken::SQL_IS_NOT_NULL, *(yyvsp[-1].expr) ); | ||
1952 | delete (yyvsp[-1].expr); | 1984 | delete (yyvsp[-1].expr); | ||
1953 | } | 1985 | } | ||
1954 | #line 1955 "sqlparser.cpp" /* yacc.c:1646 */ | 1986 | #line 1987 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1955 | break; | 1987 | break; | ||
1956 | 1988 | | |||
1957 | case 53: | 1989 | case 53: | ||
1958 | #line 989 "KDbSqlParser.y" /* yacc.c:1646 */ | 1990 | #line 1008 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1959 | { | 1991 | { | ||
1960 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::BITWISE_SHIFT_LEFT, *(yyvsp[0].expr)); | 1992 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::BITWISE_SHIFT_LEFT, *(yyvsp[0].expr)); | ||
1961 | delete (yyvsp[-2].expr); | 1993 | delete (yyvsp[-2].expr); | ||
1962 | delete (yyvsp[0].expr); | 1994 | delete (yyvsp[0].expr); | ||
1963 | } | 1995 | } | ||
1964 | #line 1965 "sqlparser.cpp" /* yacc.c:1646 */ | 1996 | #line 1997 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1965 | break; | 1997 | break; | ||
1966 | 1998 | | |||
1967 | case 54: | 1999 | case 54: | ||
1968 | #line 995 "KDbSqlParser.y" /* yacc.c:1646 */ | 2000 | #line 1014 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1969 | { | 2001 | { | ||
1970 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::BITWISE_SHIFT_RIGHT, *(yyvsp[0].expr)); | 2002 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::BITWISE_SHIFT_RIGHT, *(yyvsp[0].expr)); | ||
1971 | delete (yyvsp[-2].expr); | 2003 | delete (yyvsp[-2].expr); | ||
1972 | delete (yyvsp[0].expr); | 2004 | delete (yyvsp[0].expr); | ||
1973 | } | 2005 | } | ||
1974 | #line 1975 "sqlparser.cpp" /* yacc.c:1646 */ | 2006 | #line 2007 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1975 | break; | 2007 | break; | ||
1976 | 2008 | | |||
1977 | case 56: | 2009 | case 56: | ||
1978 | #line 1007 "KDbSqlParser.y" /* yacc.c:1646 */ | 2010 | #line 1026 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1979 | { | 2011 | { | ||
1980 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '+', *(yyvsp[0].expr)); | 2012 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '+', *(yyvsp[0].expr)); | ||
1981 | delete (yyvsp[-2].expr); | 2013 | delete (yyvsp[-2].expr); | ||
1982 | delete (yyvsp[0].expr); | 2014 | delete (yyvsp[0].expr); | ||
1983 | } | 2015 | } | ||
1984 | #line 1985 "sqlparser.cpp" /* yacc.c:1646 */ | 2016 | #line 2017 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1985 | break; | 2017 | break; | ||
1986 | 2018 | | |||
1987 | case 57: | 2019 | case 57: | ||
1988 | #line 1013 "KDbSqlParser.y" /* yacc.c:1646 */ | 2020 | #line 1032 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1989 | { | 2021 | { | ||
1990 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::CONCATENATION, *(yyvsp[0].expr)); | 2022 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), KDbToken::CONCATENATION, *(yyvsp[0].expr)); | ||
1991 | delete (yyvsp[-2].expr); | 2023 | delete (yyvsp[-2].expr); | ||
1992 | delete (yyvsp[0].expr); | 2024 | delete (yyvsp[0].expr); | ||
1993 | } | 2025 | } | ||
1994 | #line 1995 "sqlparser.cpp" /* yacc.c:1646 */ | 2026 | #line 2027 "sqlparser.cpp" /* yacc.c:1646 */ | ||
1995 | break; | 2027 | break; | ||
1996 | 2028 | | |||
1997 | case 58: | 2029 | case 58: | ||
1998 | #line 1019 "KDbSqlParser.y" /* yacc.c:1646 */ | 2030 | #line 1038 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
1999 | { | 2031 | { | ||
2000 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '-', *(yyvsp[0].expr)); | 2032 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '-', *(yyvsp[0].expr)); | ||
2001 | delete (yyvsp[-2].expr); | 2033 | delete (yyvsp[-2].expr); | ||
2002 | delete (yyvsp[0].expr); | 2034 | delete (yyvsp[0].expr); | ||
2003 | } | 2035 | } | ||
2004 | #line 2005 "sqlparser.cpp" /* yacc.c:1646 */ | 2036 | #line 2037 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2005 | break; | 2037 | break; | ||
2006 | 2038 | | |||
2007 | case 59: | 2039 | case 59: | ||
2008 | #line 1025 "KDbSqlParser.y" /* yacc.c:1646 */ | 2040 | #line 1044 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2009 | { | 2041 | { | ||
2010 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '&', *(yyvsp[0].expr)); | 2042 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '&', *(yyvsp[0].expr)); | ||
2011 | delete (yyvsp[-2].expr); | 2043 | delete (yyvsp[-2].expr); | ||
2012 | delete (yyvsp[0].expr); | 2044 | delete (yyvsp[0].expr); | ||
2013 | } | 2045 | } | ||
2014 | #line 2015 "sqlparser.cpp" /* yacc.c:1646 */ | 2046 | #line 2047 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2015 | break; | 2047 | break; | ||
2016 | 2048 | | |||
2017 | case 60: | 2049 | case 60: | ||
2018 | #line 1031 "KDbSqlParser.y" /* yacc.c:1646 */ | 2050 | #line 1050 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2019 | { | 2051 | { | ||
2020 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '|', *(yyvsp[0].expr)); | 2052 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '|', *(yyvsp[0].expr)); | ||
2021 | delete (yyvsp[-2].expr); | 2053 | delete (yyvsp[-2].expr); | ||
2022 | delete (yyvsp[0].expr); | 2054 | delete (yyvsp[0].expr); | ||
2023 | } | 2055 | } | ||
2024 | #line 2025 "sqlparser.cpp" /* yacc.c:1646 */ | 2056 | #line 2057 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2025 | break; | 2057 | break; | ||
2026 | 2058 | | |||
2027 | case 62: | 2059 | case 62: | ||
2028 | #line 1043 "KDbSqlParser.y" /* yacc.c:1646 */ | 2060 | #line 1062 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2029 | { | 2061 | { | ||
2030 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '/', *(yyvsp[0].expr)); | 2062 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '/', *(yyvsp[0].expr)); | ||
2031 | delete (yyvsp[-2].expr); | 2063 | delete (yyvsp[-2].expr); | ||
2032 | delete (yyvsp[0].expr); | 2064 | delete (yyvsp[0].expr); | ||
2033 | } | 2065 | } | ||
2034 | #line 2035 "sqlparser.cpp" /* yacc.c:1646 */ | 2066 | #line 2067 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2035 | break; | 2067 | break; | ||
2036 | 2068 | | |||
2037 | case 63: | 2069 | case 63: | ||
2038 | #line 1049 "KDbSqlParser.y" /* yacc.c:1646 */ | 2070 | #line 1068 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2039 | { | 2071 | { | ||
2040 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '*', *(yyvsp[0].expr)); | 2072 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '*', *(yyvsp[0].expr)); | ||
2041 | delete (yyvsp[-2].expr); | 2073 | delete (yyvsp[-2].expr); | ||
2042 | delete (yyvsp[0].expr); | 2074 | delete (yyvsp[0].expr); | ||
2043 | } | 2075 | } | ||
2044 | #line 2045 "sqlparser.cpp" /* yacc.c:1646 */ | 2076 | #line 2077 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2045 | break; | 2077 | break; | ||
2046 | 2078 | | |||
2047 | case 64: | 2079 | case 64: | ||
2048 | #line 1055 "KDbSqlParser.y" /* yacc.c:1646 */ | 2080 | #line 1074 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2049 | { | 2081 | { | ||
2050 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '%', *(yyvsp[0].expr)); | 2082 | (yyval.expr) = new KDbBinaryExpression(*(yyvsp[-2].expr), '%', *(yyvsp[0].expr)); | ||
2051 | delete (yyvsp[-2].expr); | 2083 | delete (yyvsp[-2].expr); | ||
2052 | delete (yyvsp[0].expr); | 2084 | delete (yyvsp[0].expr); | ||
2053 | } | 2085 | } | ||
2054 | #line 2055 "sqlparser.cpp" /* yacc.c:1646 */ | 2086 | #line 2087 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2055 | break; | 2087 | break; | ||
2056 | 2088 | | |||
2057 | case 66: | 2089 | case 66: | ||
2058 | #line 1068 "KDbSqlParser.y" /* yacc.c:1646 */ | 2090 | #line 1087 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2059 | { | 2091 | { | ||
2060 | (yyval.expr) = new KDbUnaryExpression( '-', *(yyvsp[0].expr) ); | 2092 | (yyval.expr) = new KDbUnaryExpression( '-', *(yyvsp[0].expr) ); | ||
2061 | delete (yyvsp[0].expr); | 2093 | delete (yyvsp[0].expr); | ||
2062 | } | 2094 | } | ||
2063 | #line 2064 "sqlparser.cpp" /* yacc.c:1646 */ | 2095 | #line 2096 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2064 | break; | 2096 | break; | ||
2065 | 2097 | | |||
2066 | case 67: | 2098 | case 67: | ||
2067 | #line 1073 "KDbSqlParser.y" /* yacc.c:1646 */ | 2099 | #line 1092 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2068 | { | 2100 | { | ||
2069 | (yyval.expr) = new KDbUnaryExpression( '+', *(yyvsp[0].expr) ); | 2101 | (yyval.expr) = new KDbUnaryExpression( '+', *(yyvsp[0].expr) ); | ||
2070 | delete (yyvsp[0].expr); | 2102 | delete (yyvsp[0].expr); | ||
2071 | } | 2103 | } | ||
2072 | #line 2073 "sqlparser.cpp" /* yacc.c:1646 */ | 2104 | #line 2105 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2073 | break; | 2105 | break; | ||
2074 | 2106 | | |||
2075 | case 68: | 2107 | case 68: | ||
2076 | #line 1078 "KDbSqlParser.y" /* yacc.c:1646 */ | 2108 | #line 1097 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2077 | { | 2109 | { | ||
2078 | (yyval.expr) = new KDbUnaryExpression( '~', *(yyvsp[0].expr) ); | 2110 | (yyval.expr) = new KDbUnaryExpression( '~', *(yyvsp[0].expr) ); | ||
2079 | delete (yyvsp[0].expr); | 2111 | delete (yyvsp[0].expr); | ||
2080 | } | 2112 | } | ||
2081 | #line 2082 "sqlparser.cpp" /* yacc.c:1646 */ | 2113 | #line 2114 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2082 | break; | 2114 | break; | ||
2083 | 2115 | | |||
2084 | case 69: | 2116 | case 69: | ||
2085 | #line 1083 "KDbSqlParser.y" /* yacc.c:1646 */ | 2117 | #line 1102 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2086 | { | 2118 | { | ||
2087 | (yyval.expr) = new KDbUnaryExpression( KDbToken::NOT, *(yyvsp[0].expr) ); | 2119 | (yyval.expr) = new KDbUnaryExpression( KDbToken::NOT, *(yyvsp[0].expr) ); | ||
2088 | delete (yyvsp[0].expr); | 2120 | delete (yyvsp[0].expr); | ||
2089 | } | 2121 | } | ||
2090 | #line 2091 "sqlparser.cpp" /* yacc.c:1646 */ | 2122 | #line 2123 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2091 | break; | 2123 | break; | ||
2092 | 2124 | | |||
2093 | case 70: | 2125 | case 70: | ||
2094 | #line 1088 "KDbSqlParser.y" /* yacc.c:1646 */ | 2126 | #line 1107 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2095 | { | 2127 | { | ||
2096 | (yyval.expr) = new KDbVariableExpression( *(yyvsp[0].stringValue) ); | 2128 | (yyval.expr) = new KDbVariableExpression( *(yyvsp[0].stringValue) ); | ||
2097 | 2129 | | |||
2098 | //! @todo simplify this later if that's 'only one field name' expression | 2130 | //! @todo simplify this later if that's 'only one field name' expression | ||
2099 | sqlParserDebug() << " + identifier: " << *(yyvsp[0].stringValue); | 2131 | sqlParserDebug() << " + identifier: " << *(yyvsp[0].stringValue); | ||
2100 | delete (yyvsp[0].stringValue); | 2132 | delete (yyvsp[0].stringValue); | ||
2101 | } | 2133 | } | ||
2102 | #line 2103 "sqlparser.cpp" /* yacc.c:1646 */ | 2134 | #line 2135 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2103 | break; | 2135 | break; | ||
2104 | 2136 | | |||
2105 | case 71: | 2137 | case 71: | ||
2106 | #line 1096 "KDbSqlParser.y" /* yacc.c:1646 */ | 2138 | #line 1115 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2107 | { | 2139 | { | ||
2108 | (yyval.expr) = new KDbQueryParameterExpression( *(yyvsp[0].stringValue) ); | 2140 | (yyval.expr) = new KDbQueryParameterExpression( *(yyvsp[0].stringValue) ); | ||
2109 | sqlParserDebug() << " + query parameter:" << *(yyval.expr); | 2141 | sqlParserDebug() << " + query parameter:" << *(yyval.expr); | ||
2110 | delete (yyvsp[0].stringValue); | 2142 | delete (yyvsp[0].stringValue); | ||
2111 | } | 2143 | } | ||
2112 | #line 2113 "sqlparser.cpp" /* yacc.c:1646 */ | 2144 | #line 2145 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2113 | break; | 2145 | break; | ||
2114 | 2146 | | |||
2115 | case 72: | 2147 | case 72: | ||
2116 | #line 1102 "KDbSqlParser.y" /* yacc.c:1646 */ | 2148 | #line 1121 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2117 | { | 2149 | { | ||
2118 | sqlParserDebug() << " + function:" << *(yyvsp[-1].stringValue) << "(" << *(yyvsp[0].exprList) << ")"; | 2150 | sqlParserDebug() << " + function:" << *(yyvsp[-1].stringValue) << "(" << *(yyvsp[0].exprList) << ")"; | ||
2119 | (yyval.expr) = new KDbFunctionExpression(*(yyvsp[-1].stringValue), *(yyvsp[0].exprList)); | 2151 | (yyval.expr) = new KDbFunctionExpression(*(yyvsp[-1].stringValue), *(yyvsp[0].exprList)); | ||
2120 | delete (yyvsp[-1].stringValue); | 2152 | delete (yyvsp[-1].stringValue); | ||
2121 | delete (yyvsp[0].exprList); | 2153 | delete (yyvsp[0].exprList); | ||
2122 | } | 2154 | } | ||
2123 | #line 2124 "sqlparser.cpp" /* yacc.c:1646 */ | 2155 | #line 2156 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2124 | break; | 2156 | break; | ||
2125 | 2157 | | |||
2126 | case 73: | 2158 | case 73: | ||
2127 | #line 1110 "KDbSqlParser.y" /* yacc.c:1646 */ | 2159 | #line 1129 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2128 | { | 2160 | { | ||
2129 | (yyval.expr) = new KDbVariableExpression( *(yyvsp[-2].stringValue) + QLatin1Char('.') + *(yyvsp[0].stringValue) ); | 2161 | (yyval.expr) = new KDbVariableExpression( *(yyvsp[-2].stringValue) + QLatin1Char('.') + *(yyvsp[0].stringValue) ); | ||
2130 | sqlParserDebug() << " + identifier.identifier:" << *(yyvsp[-2].stringValue) << "." << *(yyvsp[0].stringValue); | 2162 | sqlParserDebug() << " + identifier.identifier:" << *(yyvsp[-2].stringValue) << "." << *(yyvsp[0].stringValue); | ||
2131 | delete (yyvsp[-2].stringValue); | 2163 | delete (yyvsp[-2].stringValue); | ||
2132 | delete (yyvsp[0].stringValue); | 2164 | delete (yyvsp[0].stringValue); | ||
2133 | } | 2165 | } | ||
2134 | #line 2135 "sqlparser.cpp" /* yacc.c:1646 */ | 2166 | #line 2167 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2135 | break; | 2167 | break; | ||
2136 | 2168 | | |||
2137 | case 74: | 2169 | case 74: | ||
2138 | #line 1117 "KDbSqlParser.y" /* yacc.c:1646 */ | 2170 | #line 1136 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2139 | { | 2171 | { | ||
2140 | (yyval.expr) = new KDbConstExpression( KDbToken::SQL_NULL, QVariant() ); | 2172 | (yyval.expr) = new KDbConstExpression( KDbToken::SQL_NULL, QVariant() ); | ||
2141 | sqlParserDebug() << " + NULL"; | 2173 | sqlParserDebug() << " + NULL"; | ||
2142 | // $$ = new KDbField(); | 2174 | // $$ = new KDbField(); | ||
2143 | //$$->setName(QString::null); | 2175 | //$$->setName(QString::null); | ||
2144 | } | 2176 | } | ||
2145 | #line 2146 "sqlparser.cpp" /* yacc.c:1646 */ | 2177 | #line 2178 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2146 | break; | 2178 | break; | ||
2147 | 2179 | | |||
2148 | case 75: | 2180 | case 75: | ||
2149 | #line 1124 "KDbSqlParser.y" /* yacc.c:1646 */ | 2181 | #line 1143 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2150 | { | 2182 | { | ||
2151 | (yyval.expr) = new KDbConstExpression( KDbToken::SQL_TRUE, true ); | 2183 | (yyval.expr) = new KDbConstExpression( KDbToken::SQL_TRUE, true ); | ||
2152 | } | 2184 | } | ||
2153 | #line 2154 "sqlparser.cpp" /* yacc.c:1646 */ | 2185 | #line 2186 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2154 | break; | 2186 | break; | ||
2155 | 2187 | | |||
2156 | case 76: | 2188 | case 76: | ||
2157 | #line 1128 "KDbSqlParser.y" /* yacc.c:1646 */ | 2189 | #line 1147 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2158 | { | 2190 | { | ||
2159 | (yyval.expr) = new KDbConstExpression( KDbToken::SQL_FALSE, false ); | 2191 | (yyval.expr) = new KDbConstExpression( KDbToken::SQL_FALSE, false ); | ||
2160 | } | 2192 | } | ||
2161 | #line 2162 "sqlparser.cpp" /* yacc.c:1646 */ | 2193 | #line 2194 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2162 | break; | 2194 | break; | ||
2163 | 2195 | | |||
2164 | case 77: | 2196 | case 77: | ||
2165 | #line 1132 "KDbSqlParser.y" /* yacc.c:1646 */ | 2197 | #line 1151 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2166 | { | 2198 | { | ||
2167 | (yyval.expr) = new KDbConstExpression( KDbToken::CHARACTER_STRING_LITERAL, *(yyvsp[0].stringValue) ); | 2199 | (yyval.expr) = new KDbConstExpression( KDbToken::CHARACTER_STRING_LITERAL, *(yyvsp[0].stringValue) ); | ||
2168 | sqlParserDebug() << " + constant " << (yyvsp[0].stringValue); | 2200 | sqlParserDebug() << " + constant " << (yyvsp[0].stringValue); | ||
2169 | delete (yyvsp[0].stringValue); | 2201 | delete (yyvsp[0].stringValue); | ||
2170 | } | 2202 | } | ||
2171 | #line 2172 "sqlparser.cpp" /* yacc.c:1646 */ | 2203 | #line 2204 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2172 | break; | 2204 | break; | ||
2173 | 2205 | | |||
2174 | case 78: | 2206 | case 78: | ||
2175 | #line 1138 "KDbSqlParser.y" /* yacc.c:1646 */ | 2207 | #line 1157 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2176 | { | 2208 | { | ||
2177 | QVariant val; | 2209 | QVariant val; | ||
2178 | if ((yyvsp[0].integerValue) <= INT_MAX && (yyvsp[0].integerValue) >= INT_MIN) | 2210 | if ((yyvsp[0].integerValue) <= INT_MAX && (yyvsp[0].integerValue) >= INT_MIN) | ||
2179 | val = (int)(yyvsp[0].integerValue); | 2211 | val = (int)(yyvsp[0].integerValue); | ||
2180 | else if ((yyvsp[0].integerValue) <= UINT_MAX && (yyvsp[0].integerValue) >= 0) | 2212 | else if ((yyvsp[0].integerValue) <= UINT_MAX && (yyvsp[0].integerValue) >= 0) | ||
2181 | val = (uint)(yyvsp[0].integerValue); | 2213 | val = (uint)(yyvsp[0].integerValue); | ||
2182 | else if ((yyvsp[0].integerValue) <= LLONG_MAX && (yyvsp[0].integerValue) >= LLONG_MIN) | 2214 | else if ((yyvsp[0].integerValue) <= LLONG_MAX && (yyvsp[0].integerValue) >= LLONG_MIN) | ||
2183 | val = (qint64)(yyvsp[0].integerValue); | 2215 | val = (qint64)(yyvsp[0].integerValue); | ||
2184 | 2216 | | |||
2185 | // if ($1 < ULLONG_MAX) | 2217 | // if ($1 < ULLONG_MAX) | ||
2186 | // val = (quint64)$1; | 2218 | // val = (quint64)$1; | ||
2187 | //! @todo ok? | 2219 | //! @todo ok? | ||
2188 | 2220 | | |||
2189 | (yyval.expr) = new KDbConstExpression( KDbToken::INTEGER_CONST, val ); | 2221 | (yyval.expr) = new KDbConstExpression( KDbToken::INTEGER_CONST, val ); | ||
2190 | sqlParserDebug() << " + int constant: " << val.toString(); | 2222 | sqlParserDebug() << " + int constant: " << val.toString(); | ||
2191 | } | 2223 | } | ||
2192 | #line 2193 "sqlparser.cpp" /* yacc.c:1646 */ | 2224 | #line 2225 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2193 | break; | 2225 | break; | ||
2194 | 2226 | | |||
2195 | case 79: | 2227 | case 79: | ||
2196 | #line 1155 "KDbSqlParser.y" /* yacc.c:1646 */ | 2228 | #line 1174 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2197 | { | 2229 | { | ||
2198 | (yyval.expr) = new KDbConstExpression( KDbToken::REAL_CONST, *(yyvsp[0].binaryValue) ); | 2230 | (yyval.expr) = new KDbConstExpression( KDbToken::REAL_CONST, *(yyvsp[0].binaryValue) ); | ||
2199 | sqlParserDebug() << " + real constant: " << *(yyvsp[0].binaryValue); | 2231 | sqlParserDebug() << " + real constant: " << *(yyvsp[0].binaryValue); | ||
2200 | delete (yyvsp[0].binaryValue); | 2232 | delete (yyvsp[0].binaryValue); | ||
2201 | } | 2233 | } | ||
2202 | #line 2203 "sqlparser.cpp" /* yacc.c:1646 */ | 2234 | #line 2235 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2235 | break; | ||||
2236 | | ||||
2237 | case 80: | ||||
2238 | #line 1180 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2239 | { | ||||
2240 | (yyval.expr) = new KDbConstExpression(KDbToken::DATE_CONST, QVariant::fromValue(*(yyvsp[0].dateValue))); | ||||
2241 | sqlParserDebug() << " + date constant:" << *(yyvsp[0].dateValue); | ||||
2242 | delete (yyvsp[0].dateValue); | ||||
2243 | } | ||||
2244 | #line 2245 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2203 | break; | 2245 | break; | ||
2204 | 2246 | | |||
2205 | case 81: | 2247 | case 81: | ||
2206 | #line 1167 "KDbSqlParser.y" /* yacc.c:1646 */ | 2248 | #line 1186 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2249 | { | ||||
2250 | (yyval.expr) = new KDbConstExpression(KDbToken::TIME_CONST, QVariant::fromValue(*(yyvsp[0].timeValue))); | ||||
2251 | sqlParserDebug() << " + time constant:" << *(yyvsp[0].timeValue); | ||||
2252 | delete (yyvsp[0].timeValue); | ||||
2253 | } | ||||
2254 | #line 2255 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2255 | break; | ||||
2256 | | ||||
2257 | case 82: | ||||
2258 | #line 1192 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2259 | { | ||||
2260 | (yyval.expr) = new KDbConstExpression(KDbToken::DATETIME_CONST, QVariant::fromValue(*(yyvsp[0].dateTimeValue))); | ||||
2261 | sqlParserDebug() << " + datetime constant:" << *(yyvsp[0].dateTimeValue); | ||||
2262 | delete (yyvsp[0].dateTimeValue); | ||||
2263 | } | ||||
2264 | #line 2265 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2265 | break; | ||||
2266 | | ||||
2267 | case 84: | ||||
2268 | #line 1203 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2269 | { | ||||
2270 | (yyval.dateValue) = (yyvsp[-1].dateValue); | ||||
2271 | sqlParserDebug() << "DateConst:" << *(yyval.dateValue); | ||||
2272 | } | ||||
2273 | #line 2274 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2274 | break; | ||||
2275 | | ||||
2276 | case 85: | ||||
2277 | #line 1211 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2278 | { | ||||
2279 | (yyval.dateValue) = new KDbDate(*(yyvsp[-4].yearValue), *(yyvsp[-2].binaryValue), *(yyvsp[0].binaryValue)); | ||||
2280 | sqlParserDebug() << "DateValue:" << *(yyval.dateValue); | ||||
2281 | delete (yyvsp[-4].yearValue); | ||||
2282 | delete (yyvsp[-2].binaryValue); | ||||
2283 | delete (yyvsp[0].binaryValue); | ||||
2284 | } | ||||
2285 | #line 2286 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2286 | break; | ||||
2287 | | ||||
2288 | case 86: | ||||
2289 | #line 1219 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2290 | { | ||||
2291 | (yyval.dateValue) = new KDbDate(*(yyvsp[0].yearValue), *(yyvsp[-4].binaryValue), *(yyvsp[-2].binaryValue)); | ||||
2292 | sqlParserDebug() << "DateValue:" << *(yyval.dateValue); | ||||
2293 | delete (yyvsp[-4].binaryValue); | ||||
2294 | delete (yyvsp[-2].binaryValue); | ||||
2295 | delete (yyvsp[0].yearValue); | ||||
2296 | } | ||||
2297 | #line 2298 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2298 | break; | ||||
2299 | | ||||
2300 | case 87: | ||||
2301 | #line 1230 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2302 | { | ||||
2303 | (yyval.yearValue) = new KDbYear(KDbYear::Sign::None, *(yyvsp[0].binaryValue)); | ||||
2304 | sqlParserDebug() << "YearConst:" << *(yyval.yearValue); | ||||
2305 | delete (yyvsp[0].binaryValue); | ||||
2306 | } | ||||
2307 | #line 2308 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2308 | break; | ||||
2309 | | ||||
2310 | case 88: | ||||
2311 | #line 1236 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2312 | { | ||||
2313 | (yyval.yearValue) = new KDbYear(KDbYear::Sign::Plus, *(yyvsp[0].binaryValue)); | ||||
2314 | sqlParserDebug() << "YearConst:" << *(yyval.yearValue); | ||||
2315 | delete (yyvsp[0].binaryValue); | ||||
2316 | } | ||||
2317 | #line 2318 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2318 | break; | ||||
2319 | | ||||
2320 | case 89: | ||||
2321 | #line 1242 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2322 | { | ||||
2323 | (yyval.yearValue) = new KDbYear(KDbYear::Sign::Minus, *(yyvsp[0].binaryValue)); | ||||
2324 | sqlParserDebug() << "YearConst:" << *(yyval.yearValue); | ||||
2325 | delete (yyvsp[0].binaryValue); | ||||
2326 | } | ||||
2327 | #line 2328 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2328 | break; | ||||
2329 | | ||||
2330 | case 90: | ||||
2331 | #line 1251 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2332 | { | ||||
2333 | (yyval.timeValue) = (yyvsp[-1].timeValue); | ||||
2334 | sqlParserDebug() << "TimeConst:" << *(yyval.timeValue); | ||||
2335 | } | ||||
2336 | #line 2337 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2337 | break; | ||||
2338 | | ||||
2339 | case 91: | ||||
2340 | #line 1259 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2341 | { | ||||
2342 | (yyval.timeValue) = new KDbTime(*(yyvsp[-4].binaryValue), *(yyvsp[-2].binaryValue), {}, *(yyvsp[-1].binaryValue), (yyvsp[0].timePeriodValue)); | ||||
2343 | sqlParserDebug() << "TimeValue:" << *(yyval.timeValue); | ||||
2344 | delete (yyvsp[-4].binaryValue); | ||||
2345 | delete (yyvsp[-2].binaryValue); | ||||
2346 | delete (yyvsp[-1].binaryValue); | ||||
2347 | } | ||||
2348 | #line 2349 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2349 | break; | ||||
2350 | | ||||
2351 | case 92: | ||||
2352 | #line 1267 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2353 | { | ||||
2354 | (yyval.timeValue) = new KDbTime(*(yyvsp[-6].binaryValue), *(yyvsp[-4].binaryValue), *(yyvsp[-2].binaryValue), *(yyvsp[-1].binaryValue), (yyvsp[0].timePeriodValue)); | ||||
2355 | sqlParserDebug() << "TimeValue:" << *(yyval.timeValue); | ||||
2356 | delete (yyvsp[-6].binaryValue); | ||||
2357 | delete (yyvsp[-4].binaryValue); | ||||
2358 | delete (yyvsp[-2].binaryValue); | ||||
2359 | delete (yyvsp[-1].binaryValue); | ||||
2360 | } | ||||
2361 | #line 2362 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2362 | break; | ||||
2363 | | ||||
2364 | case 93: | ||||
2365 | #line 1279 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2366 | { | ||||
2367 | (yyval.binaryValue) = (yyvsp[0].binaryValue); | ||||
2368 | } | ||||
2369 | #line 2370 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2370 | break; | ||||
2371 | | ||||
2372 | case 94: | ||||
2373 | #line 1283 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2374 | { | ||||
2375 | (yyval.binaryValue) = new QByteArray; | ||||
2376 | } | ||||
2377 | #line 2378 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2378 | break; | ||||
2379 | | ||||
2380 | case 95: | ||||
2381 | #line 1290 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2382 | { | ||||
2383 | (yyval.timePeriodValue) = KDbTime::Period::Am; | ||||
2384 | } | ||||
2385 | #line 2386 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2386 | break; | ||||
2387 | | ||||
2388 | case 96: | ||||
2389 | #line 1294 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2390 | { | ||||
2391 | (yyval.timePeriodValue) = KDbTime::Period::Pm; | ||||
2392 | } | ||||
2393 | #line 2394 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2394 | break; | ||||
2395 | | ||||
2396 | case 97: | ||||
2397 | #line 1298 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2398 | { | ||||
2399 | (yyval.timePeriodValue) = KDbTime::Period::None; | ||||
2400 | } | ||||
2401 | #line 2402 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2402 | break; | ||||
2403 | | ||||
2404 | case 98: | ||||
2405 | #line 1305 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2406 | { | ||||
2407 | (yyval.dateTimeValue) = new KDbDateTime(*(yyvsp[-3].dateValue), *(yyvsp[-1].timeValue)); | ||||
2408 | sqlParserDebug() << "DateTimeConst:" << *(yyval.dateTimeValue); | ||||
2409 | delete (yyvsp[-3].dateValue); | ||||
2410 | delete (yyvsp[-1].timeValue); | ||||
2411 | } | ||||
2412 | #line 2413 "sqlparser.cpp" /* yacc.c:1646 */ | ||||
2413 | break; | ||||
2414 | | ||||
2415 | case 99: | ||||
2416 | #line 1315 "KDbSqlParser.y" /* yacc.c:1646 */ | ||||
2207 | { | 2417 | { | ||
2208 | sqlParserDebug() << "(expr)"; | 2418 | sqlParserDebug() << "(expr)"; | ||
2209 | (yyval.expr) = new KDbUnaryExpression('(', *(yyvsp[-1].expr)); | 2419 | (yyval.expr) = new KDbUnaryExpression('(', *(yyvsp[-1].expr)); | ||
2210 | delete (yyvsp[-1].expr); | 2420 | delete (yyvsp[-1].expr); | ||
2211 | } | 2421 | } | ||
2212 | #line 2213 "sqlparser.cpp" /* yacc.c:1646 */ | 2422 | #line 2423 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2213 | break; | 2423 | break; | ||
2214 | 2424 | | |||
2215 | case 82: | 2425 | case 100: | ||
2216 | #line 1176 "KDbSqlParser.y" /* yacc.c:1646 */ | 2426 | #line 1324 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2217 | { | 2427 | { | ||
2218 | (yyval.exprList) = (yyvsp[-1].exprList); | 2428 | (yyval.exprList) = (yyvsp[-1].exprList); | ||
2219 | } | 2429 | } | ||
2220 | #line 2221 "sqlparser.cpp" /* yacc.c:1646 */ | 2430 | #line 2431 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2221 | break; | 2431 | break; | ||
2222 | 2432 | | |||
2223 | case 83: | 2433 | case 101: | ||
2224 | #line 1180 "KDbSqlParser.y" /* yacc.c:1646 */ | 2434 | #line 1328 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2225 | { | 2435 | { | ||
2226 | (yyval.exprList) = new KDbNArgExpression(KDb::ArgumentListExpression, ','); | 2436 | (yyval.exprList) = new KDbNArgExpression(KDb::ArgumentListExpression, ','); | ||
2227 | } | 2437 | } | ||
2228 | #line 2229 "sqlparser.cpp" /* yacc.c:1646 */ | 2438 | #line 2439 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2229 | break; | 2439 | break; | ||
2230 | 2440 | | |||
2231 | case 84: | 2441 | case 102: | ||
2232 | #line 1187 "KDbSqlParser.y" /* yacc.c:1646 */ | 2442 | #line 1335 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2233 | { | 2443 | { | ||
2234 | (yyval.exprList) = (yyvsp[0].exprList); | 2444 | (yyval.exprList) = (yyvsp[0].exprList); | ||
2235 | (yyval.exprList)->prepend( *(yyvsp[-2].expr) ); | 2445 | (yyval.exprList)->prepend( *(yyvsp[-2].expr) ); | ||
2236 | delete (yyvsp[-2].expr); | 2446 | delete (yyvsp[-2].expr); | ||
2237 | } | 2447 | } | ||
2238 | #line 2239 "sqlparser.cpp" /* yacc.c:1646 */ | 2448 | #line 2449 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2239 | break; | 2449 | break; | ||
2240 | 2450 | | |||
2241 | case 85: | 2451 | case 103: | ||
2242 | #line 1193 "KDbSqlParser.y" /* yacc.c:1646 */ | 2452 | #line 1341 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2243 | { | 2453 | { | ||
2244 | (yyval.exprList) = new KDbNArgExpression(KDb::ArgumentListExpression, ','); | 2454 | (yyval.exprList) = new KDbNArgExpression(KDb::ArgumentListExpression, ','); | ||
2245 | (yyval.exprList)->append( *(yyvsp[0].expr) ); | 2455 | (yyval.exprList)->append( *(yyvsp[0].expr) ); | ||
2246 | delete (yyvsp[0].expr); | 2456 | delete (yyvsp[0].expr); | ||
2247 | } | 2457 | } | ||
2248 | #line 2249 "sqlparser.cpp" /* yacc.c:1646 */ | 2458 | #line 2459 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2249 | break; | 2459 | break; | ||
2250 | 2460 | | |||
2251 | case 86: | 2461 | case 104: | ||
2252 | #line 1202 "KDbSqlParser.y" /* yacc.c:1646 */ | 2462 | #line 1350 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2253 | { | 2463 | { | ||
2254 | (yyval.exprList) = (yyvsp[0].exprList); | 2464 | (yyval.exprList) = (yyvsp[0].exprList); | ||
2255 | } | 2465 | } | ||
2256 | #line 2257 "sqlparser.cpp" /* yacc.c:1646 */ | 2466 | #line 2467 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2257 | break; | 2467 | break; | ||
2258 | 2468 | | |||
2259 | case 87: | 2469 | case 105: | ||
2260 | #line 1247 "KDbSqlParser.y" /* yacc.c:1646 */ | 2470 | #line 1395 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2261 | { | 2471 | { | ||
2262 | (yyval.exprList) = (yyvsp[-2].exprList); | 2472 | (yyval.exprList) = (yyvsp[-2].exprList); | ||
2263 | (yyval.exprList)->append(*(yyvsp[0].expr)); | 2473 | (yyval.exprList)->append(*(yyvsp[0].expr)); | ||
2264 | delete (yyvsp[0].expr); | 2474 | delete (yyvsp[0].expr); | ||
2265 | } | 2475 | } | ||
2266 | #line 2267 "sqlparser.cpp" /* yacc.c:1646 */ | 2476 | #line 2477 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2267 | break; | 2477 | break; | ||
2268 | 2478 | | |||
2269 | case 88: | 2479 | case 106: | ||
2270 | #line 1253 "KDbSqlParser.y" /* yacc.c:1646 */ | 2480 | #line 1401 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2271 | { | 2481 | { | ||
2272 | (yyval.exprList) = new KDbNArgExpression(KDb::TableListExpression, KDbToken::IDENTIFIER); //ok? | 2482 | (yyval.exprList) = new KDbNArgExpression(KDb::TableListExpression, KDbToken::IDENTIFIER); //ok? | ||
2273 | (yyval.exprList)->append(*(yyvsp[0].expr)); | 2483 | (yyval.exprList)->append(*(yyvsp[0].expr)); | ||
2274 | delete (yyvsp[0].expr); | 2484 | delete (yyvsp[0].expr); | ||
2275 | } | 2485 | } | ||
2276 | #line 2277 "sqlparser.cpp" /* yacc.c:1646 */ | 2486 | #line 2487 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2277 | break; | 2487 | break; | ||
2278 | 2488 | | |||
2279 | case 89: | 2489 | case 107: | ||
2280 | #line 1262 "KDbSqlParser.y" /* yacc.c:1646 */ | 2490 | #line 1410 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2281 | { | 2491 | { | ||
2282 | sqlParserDebug() << "FROM: '" << *(yyvsp[0].stringValue) << "'"; | 2492 | sqlParserDebug() << "FROM: '" << *(yyvsp[0].stringValue) << "'"; | ||
2283 | (yyval.expr) = new KDbVariableExpression(*(yyvsp[0].stringValue)); | 2493 | (yyval.expr) = new KDbVariableExpression(*(yyvsp[0].stringValue)); | ||
2284 | 2494 | | |||
2285 | //! @todo this isn't ok for more tables: | 2495 | //! @todo this isn't ok for more tables: | ||
2286 | /* | 2496 | /* | ||
2287 | KDbField::ListIterator it = globalParser->query()->fieldsIterator(); | 2497 | KDbField::ListIterator it = globalParser->query()->fieldsIterator(); | ||
2288 | for(KDbField *item; (item = it.current()); ++it) | 2498 | for(KDbField *item; (item = it.current()); ++it) | ||
Show All 11 Lines | 2509 | { | |||
2300 | KDbParserError err(KDbParser::tr("Field List Error"), KDbParser::tr("Unknown column '%1' in table '%2'",item->name(),schema->name()), ctoken, current); | 2510 | KDbParserError err(KDbParser::tr("Field List Error"), KDbParser::tr("Unknown column '%1' in table '%2'",item->name(),schema->name()), ctoken, current); | ||
2301 | globalParser->setError(err); | 2511 | globalParser->setError(err); | ||
2302 | yyerror("fieldlisterror"); | 2512 | yyerror("fieldlisterror"); | ||
2303 | } | 2513 | } | ||
2304 | } | 2514 | } | ||
2305 | }*/ | 2515 | }*/ | ||
2306 | delete (yyvsp[0].stringValue); | 2516 | delete (yyvsp[0].stringValue); | ||
2307 | } | 2517 | } | ||
2308 | #line 2309 "sqlparser.cpp" /* yacc.c:1646 */ | 2518 | #line 2519 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2309 | break; | 2519 | break; | ||
2310 | 2520 | | |||
2311 | case 90: | 2521 | case 108: | ||
2312 | #line 1290 "KDbSqlParser.y" /* yacc.c:1646 */ | 2522 | #line 1438 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2313 | { | 2523 | { | ||
2314 | //table + alias | 2524 | //table + alias | ||
2315 | (yyval.expr) = new KDbBinaryExpression( | 2525 | (yyval.expr) = new KDbBinaryExpression( | ||
2316 | KDbVariableExpression(*(yyvsp[-1].stringValue)), KDbToken::AS_EMPTY, | 2526 | KDbVariableExpression(*(yyvsp[-1].stringValue)), KDbToken::AS_EMPTY, | ||
2317 | KDbVariableExpression(*(yyvsp[0].stringValue)) | 2527 | KDbVariableExpression(*(yyvsp[0].stringValue)) | ||
2318 | ); | 2528 | ); | ||
2319 | delete (yyvsp[-1].stringValue); | 2529 | delete (yyvsp[-1].stringValue); | ||
2320 | delete (yyvsp[0].stringValue); | 2530 | delete (yyvsp[0].stringValue); | ||
2321 | } | 2531 | } | ||
2322 | #line 2323 "sqlparser.cpp" /* yacc.c:1646 */ | 2532 | #line 2533 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2323 | break; | 2533 | break; | ||
2324 | 2534 | | |||
2325 | case 91: | 2535 | case 109: | ||
2326 | #line 1300 "KDbSqlParser.y" /* yacc.c:1646 */ | 2536 | #line 1448 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2327 | { | 2537 | { | ||
2328 | //table + alias | 2538 | //table + alias | ||
2329 | (yyval.expr) = new KDbBinaryExpression( | 2539 | (yyval.expr) = new KDbBinaryExpression( | ||
2330 | KDbVariableExpression(*(yyvsp[-2].stringValue)), KDbToken::AS, | 2540 | KDbVariableExpression(*(yyvsp[-2].stringValue)), KDbToken::AS, | ||
2331 | KDbVariableExpression(*(yyvsp[0].stringValue)) | 2541 | KDbVariableExpression(*(yyvsp[0].stringValue)) | ||
2332 | ); | 2542 | ); | ||
2333 | delete (yyvsp[-2].stringValue); | 2543 | delete (yyvsp[-2].stringValue); | ||
2334 | delete (yyvsp[0].stringValue); | 2544 | delete (yyvsp[0].stringValue); | ||
2335 | } | 2545 | } | ||
2336 | #line 2337 "sqlparser.cpp" /* yacc.c:1646 */ | 2546 | #line 2547 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2337 | break; | 2547 | break; | ||
2338 | 2548 | | |||
2339 | case 92: | 2549 | case 110: | ||
2340 | #line 1315 "KDbSqlParser.y" /* yacc.c:1646 */ | 2550 | #line 1463 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2341 | { | 2551 | { | ||
2342 | (yyval.exprList) = (yyvsp[-2].exprList); | 2552 | (yyval.exprList) = (yyvsp[-2].exprList); | ||
2343 | (yyval.exprList)->append(*(yyvsp[0].expr)); | 2553 | (yyval.exprList)->append(*(yyvsp[0].expr)); | ||
2344 | delete (yyvsp[0].expr); | 2554 | delete (yyvsp[0].expr); | ||
2345 | sqlParserDebug() << "ColViews: ColViews , ColItem"; | 2555 | sqlParserDebug() << "ColViews: ColViews , ColItem"; | ||
2346 | } | 2556 | } | ||
2347 | #line 2348 "sqlparser.cpp" /* yacc.c:1646 */ | 2557 | #line 2558 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2348 | break; | 2558 | break; | ||
2349 | 2559 | | |||
2350 | case 93: | 2560 | case 111: | ||
2351 | #line 1322 "KDbSqlParser.y" /* yacc.c:1646 */ | 2561 | #line 1470 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2352 | { | 2562 | { | ||
2353 | (yyval.exprList) = new KDbNArgExpression(KDb::FieldListExpression, KDbToken()); | 2563 | (yyval.exprList) = new KDbNArgExpression(KDb::FieldListExpression, KDbToken()); | ||
2354 | (yyval.exprList)->append(*(yyvsp[0].expr)); | 2564 | (yyval.exprList)->append(*(yyvsp[0].expr)); | ||
2355 | delete (yyvsp[0].expr); | 2565 | delete (yyvsp[0].expr); | ||
2356 | sqlParserDebug() << "ColViews: ColItem"; | 2566 | sqlParserDebug() << "ColViews: ColItem"; | ||
2357 | } | 2567 | } | ||
2358 | #line 2359 "sqlparser.cpp" /* yacc.c:1646 */ | 2568 | #line 2569 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2359 | break; | 2569 | break; | ||
2360 | 2570 | | |||
2361 | case 94: | 2571 | case 112: | ||
2362 | #line 1332 "KDbSqlParser.y" /* yacc.c:1646 */ | 2572 | #line 1480 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2363 | { | 2573 | { | ||
2364 | // $$ = new KDbField(); | 2574 | // $$ = new KDbField(); | ||
2365 | // dummy->addField($$); | 2575 | // dummy->addField($$); | ||
2366 | // $$->setExpression( $1 ); | 2576 | // $$->setExpression( $1 ); | ||
2367 | // globalParser->query()->addField($$); | 2577 | // globalParser->query()->addField($$); | ||
2368 | (yyval.expr) = (yyvsp[0].expr); | 2578 | (yyval.expr) = (yyvsp[0].expr); | ||
2369 | sqlParserDebug() << " added column expr:" << *(yyvsp[0].expr); | 2579 | sqlParserDebug() << " added column expr:" << *(yyvsp[0].expr); | ||
2370 | } | 2580 | } | ||
2371 | #line 2372 "sqlparser.cpp" /* yacc.c:1646 */ | 2581 | #line 2582 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2372 | break; | 2582 | break; | ||
2373 | 2583 | | |||
2374 | case 95: | 2584 | case 113: | ||
2375 | #line 1341 "KDbSqlParser.y" /* yacc.c:1646 */ | 2585 | #line 1489 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2376 | { | 2586 | { | ||
2377 | (yyval.expr) = (yyvsp[0].expr); | 2587 | (yyval.expr) = (yyvsp[0].expr); | ||
2378 | sqlParserDebug() << " added column wildcard:" << *(yyvsp[0].expr); | 2588 | sqlParserDebug() << " added column wildcard:" << *(yyvsp[0].expr); | ||
2379 | } | 2589 | } | ||
2380 | #line 2381 "sqlparser.cpp" /* yacc.c:1646 */ | 2590 | #line 2591 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2381 | break; | 2591 | break; | ||
2382 | 2592 | | |||
2383 | case 96: | 2593 | case 114: | ||
2384 | #line 1346 "KDbSqlParser.y" /* yacc.c:1646 */ | 2594 | #line 1494 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2385 | { | 2595 | { | ||
2386 | (yyval.expr) = new KDbBinaryExpression( | 2596 | (yyval.expr) = new KDbBinaryExpression( | ||
2387 | *(yyvsp[-2].expr), KDbToken::AS, | 2597 | *(yyvsp[-2].expr), KDbToken::AS, | ||
2388 | KDbVariableExpression(*(yyvsp[0].stringValue)) | 2598 | KDbVariableExpression(*(yyvsp[0].stringValue)) | ||
2389 | ); | 2599 | ); | ||
2390 | sqlParserDebug() << " added column expr:" << *(yyval.expr); | 2600 | sqlParserDebug() << " added column expr:" << *(yyval.expr); | ||
2391 | delete (yyvsp[-2].expr); | 2601 | delete (yyvsp[-2].expr); | ||
2392 | delete (yyvsp[0].stringValue); | 2602 | delete (yyvsp[0].stringValue); | ||
2393 | } | 2603 | } | ||
2394 | #line 2395 "sqlparser.cpp" /* yacc.c:1646 */ | 2604 | #line 2605 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2395 | break; | 2605 | break; | ||
2396 | 2606 | | |||
2397 | case 97: | 2607 | case 115: | ||
2398 | #line 1356 "KDbSqlParser.y" /* yacc.c:1646 */ | 2608 | #line 1504 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2399 | { | 2609 | { | ||
2400 | (yyval.expr) = new KDbBinaryExpression( | 2610 | (yyval.expr) = new KDbBinaryExpression( | ||
2401 | *(yyvsp[-1].expr), KDbToken::AS_EMPTY, | 2611 | *(yyvsp[-1].expr), KDbToken::AS_EMPTY, | ||
2402 | KDbVariableExpression(*(yyvsp[0].stringValue)) | 2612 | KDbVariableExpression(*(yyvsp[0].stringValue)) | ||
2403 | ); | 2613 | ); | ||
2404 | sqlParserDebug() << " added column expr:" << *(yyval.expr); | 2614 | sqlParserDebug() << " added column expr:" << *(yyval.expr); | ||
2405 | delete (yyvsp[-1].expr); | 2615 | delete (yyvsp[-1].expr); | ||
2406 | delete (yyvsp[0].stringValue); | 2616 | delete (yyvsp[0].stringValue); | ||
2407 | } | 2617 | } | ||
2408 | #line 2409 "sqlparser.cpp" /* yacc.c:1646 */ | 2618 | #line 2619 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2409 | break; | 2619 | break; | ||
2410 | 2620 | | |||
2411 | case 98: | 2621 | case 116: | ||
2412 | #line 1369 "KDbSqlParser.y" /* yacc.c:1646 */ | 2622 | #line 1517 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2413 | { | 2623 | { | ||
2414 | (yyval.expr) = (yyvsp[0].expr); | 2624 | (yyval.expr) = (yyvsp[0].expr); | ||
2415 | } | 2625 | } | ||
2416 | #line 2417 "sqlparser.cpp" /* yacc.c:1646 */ | 2626 | #line 2627 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2417 | break; | 2627 | break; | ||
2418 | 2628 | | |||
2419 | case 99: | 2629 | case 117: | ||
2420 | #line 1415 "KDbSqlParser.y" /* yacc.c:1646 */ | 2630 | #line 1563 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2421 | { | 2631 | { | ||
2422 | (yyval.expr) = (yyvsp[-1].expr); | 2632 | (yyval.expr) = (yyvsp[-1].expr); | ||
2423 | //! @todo DISTINCT '(' ColExpression ')' | 2633 | //! @todo DISTINCT '(' ColExpression ')' | ||
2424 | // $$->setName("DISTINCT(" + $3->name() + ")"); | 2634 | // $$->setName("DISTINCT(" + $3->name() + ")"); | ||
2425 | } | 2635 | } | ||
2426 | #line 2427 "sqlparser.cpp" /* yacc.c:1646 */ | 2636 | #line 2637 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2427 | break; | 2637 | break; | ||
2428 | 2638 | | |||
2429 | case 100: | 2639 | case 118: | ||
2430 | #line 1424 "KDbSqlParser.y" /* yacc.c:1646 */ | 2640 | #line 1572 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2431 | { | 2641 | { | ||
2432 | (yyval.expr) = new KDbVariableExpression(QLatin1String("*")); | 2642 | (yyval.expr) = new KDbVariableExpression(QLatin1String("*")); | ||
2433 | sqlParserDebug() << "all columns"; | 2643 | sqlParserDebug() << "all columns"; | ||
2434 | 2644 | | |||
2435 | // KDbQueryAsterisk *ast = new KDbQueryAsterisk(globalParser->query(), dummy); | 2645 | // KDbQueryAsterisk *ast = new KDbQueryAsterisk(globalParser->query(), dummy); | ||
2436 | // globalParser->query()->addAsterisk(ast); | 2646 | // globalParser->query()->addAsterisk(ast); | ||
2437 | // requiresTable = true; | 2647 | // requiresTable = true; | ||
2438 | } | 2648 | } | ||
2439 | #line 2440 "sqlparser.cpp" /* yacc.c:1646 */ | 2649 | #line 2650 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2440 | break; | 2650 | break; | ||
2441 | 2651 | | |||
2442 | case 101: | 2652 | case 119: | ||
2443 | #line 1433 "KDbSqlParser.y" /* yacc.c:1646 */ | 2653 | #line 1581 "KDbSqlParser.y" /* yacc.c:1646 */ | ||
2444 | { | 2654 | { | ||
2445 | QString s( *(yyvsp[-2].stringValue) ); | 2655 | QString s( *(yyvsp[-2].stringValue) ); | ||
2446 | s += QLatin1String(".*"); | 2656 | s += QLatin1String(".*"); | ||
2447 | (yyval.expr) = new KDbVariableExpression(s); | 2657 | (yyval.expr) = new KDbVariableExpression(s); | ||
2448 | sqlParserDebug() << " + all columns from " << s; | 2658 | sqlParserDebug() << " + all columns from " << s; | ||
2449 | delete (yyvsp[-2].stringValue); | 2659 | delete (yyvsp[-2].stringValue); | ||
2450 | } | 2660 | } | ||
2451 | #line 2452 "sqlparser.cpp" /* yacc.c:1646 */ | 2661 | #line 2662 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2452 | break; | 2662 | break; | ||
2453 | 2663 | | |||
2454 | 2664 | | |||
2455 | #line 2456 "sqlparser.cpp" /* yacc.c:1646 */ | 2665 | #line 2666 "sqlparser.cpp" /* yacc.c:1646 */ | ||
2456 | default: break; | 2666 | default: break; | ||
2457 | } | 2667 | } | ||
2458 | /* User semantic actions sometimes alter yychar, and that requires | 2668 | /* User semantic actions sometimes alter yychar, and that requires | ||
2459 | that yytoken be updated with the new translation. We take the | 2669 | that yytoken be updated with the new translation. We take the | ||
2460 | approach of translating immediately before every use of yytoken. | 2670 | approach of translating immediately before every use of yytoken. | ||
2461 | One alternative is translating here after every semantic action, | 2671 | One alternative is translating here after every semantic action, | ||
2462 | but that translation would be missed if the semantic action invokes | 2672 | but that translation would be missed if the semantic action invokes | ||
2463 | YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | 2673 | YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | ||
▲ Show 20 Lines • Show All 211 Lines • ▼ Show 20 Line(s) | 2884 | if (yyss != yyssa) | |||
2675 | YYSTACK_FREE (yyss); | 2885 | YYSTACK_FREE (yyss); | ||
2676 | #endif | 2886 | #endif | ||
2677 | #if YYERROR_VERBOSE | 2887 | #if YYERROR_VERBOSE | ||
2678 | if (yymsg != yymsgbuf) | 2888 | if (yymsg != yymsgbuf) | ||
2679 | YYSTACK_FREE (yymsg); | 2889 | YYSTACK_FREE (yymsg); | ||
2680 | #endif | 2890 | #endif | ||
2681 | return yyresult; | 2891 | return yyresult; | ||
2682 | } | 2892 | } | ||
2683 | #line 1448 "KDbSqlParser.y" /* yacc.c:1906 */ | 2893 | #line 1596 "KDbSqlParser.y" /* yacc.c:1906 */ | ||
2684 | 2894 | | |||
2685 | 2895 | | |||
2686 | KDB_TESTING_EXPORT const char* g_tokenName(unsigned int offset) { | 2896 | KDB_TESTING_EXPORT const char* g_tokenName(unsigned int offset) { | ||
2687 | const int t = YYTRANSLATE(offset); | 2897 | const int t = YYTRANSLATE(offset); | ||
2688 | if (t >= YYTRANSLATE(::SQL_TYPE)) { | 2898 | if (t >= YYTRANSLATE(::SQL_TYPE)) { | ||
2689 | return yytname[t]; | 2899 | return yytname[t]; | ||
2690 | } | 2900 | } | ||
2691 | return nullptr; | 2901 | return nullptr; | ||
2692 | } | 2902 | } | ||
2693 | 2903 | | |||
2694 | //static | 2904 | //static | ||
2695 | const int KDbToken::maxCharTokenValue = 253; | 2905 | const int KDbToken::maxCharTokenValue = 253; | ||
2696 | 2906 | | |||
2697 | //static | 2907 | //static | ||
2698 | const int KDbToken::maxTokenValue = YYMAXUTOK; | 2908 | const int KDbToken::maxTokenValue = YYMAXUTOK; |