cmis_server 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +51 -0
  5. data/app/assets/javascripts/cmis_server/application.js +13 -0
  6. data/app/assets/stylesheets/cmis_server/application.css +15 -0
  7. data/app/controllers/cmis_server/application_controller.rb +19 -0
  8. data/app/controllers/cmis_server/atom_pub/base_controller.rb +23 -0
  9. data/app/controllers/cmis_server/atom_pub/bulk_controller.rb +302 -0
  10. data/app/controllers/cmis_server/atom_pub/content_controller.rb +178 -0
  11. data/app/controllers/cmis_server/atom_pub/entries_controller.rb +41 -0
  12. data/app/controllers/cmis_server/atom_pub/folder_collection_controller.rb +70 -0
  13. data/app/controllers/cmis_server/atom_pub/query_controller.rb +138 -0
  14. data/app/controllers/cmis_server/atom_pub/repository_controller.rb +75 -0
  15. data/app/controllers/cmis_server/atom_pub/secondary_types_controller.rb +149 -0
  16. data/app/controllers/cmis_server/atom_pub/service_documents_controller.rb +34 -0
  17. data/app/controllers/cmis_server/atom_pub/types_controller.rb +229 -0
  18. data/app/controllers/cmis_server/atom_pub/uri_templates_controller.rb +58 -0
  19. data/app/controllers/concerns/cmis_server/atom_pub/repository_scopable.rb +18 -0
  20. data/app/helpers/cmis_server/application_helper.rb +31 -0
  21. data/app/models/cmis_server/application_record.rb +5 -0
  22. data/app/services/cmis_server/bulk_update_service.rb +69 -0
  23. data/app/services/cmis_server/content_stream_service.rb +75 -0
  24. data/app/services/cmis_server/discovery_service.rb +31 -0
  25. data/app/services/cmis_server/navigation_service.rb +43 -0
  26. data/app/services/cmis_server/object_service.rb +176 -0
  27. data/app/services/cmis_server/repository_service.rb +40 -0
  28. data/app/services/cmis_server/secondary_type_service.rb +120 -0
  29. data/app/services/cmis_server/type_management_service.rb +117 -0
  30. data/app/views/cmis_server/atom_pub/bulk_update_feed.atom.builder +47 -0
  31. data/app/views/cmis_server/atom_pub/entries/_cmis_document_links.atom_entry.builder +0 -0
  32. data/app/views/cmis_server/atom_pub/entries/_cmis_folder_links.atom_entry.builder +3 -0
  33. data/app/views/cmis_server/atom_pub/entries/_object_entry.atom_entry.builder +64 -0
  34. data/app/views/cmis_server/atom_pub/entries/_property.atom_entry.builder +8 -0
  35. data/app/views/cmis_server/atom_pub/entries/object_entry.atom_entry.builder +1 -0
  36. data/app/views/cmis_server/atom_pub/entries/type_entry.atom_entry.builder +59 -0
  37. data/app/views/cmis_server/atom_pub/feeds/_feed_entry.atom_feed.builder +1 -0
  38. data/app/views/cmis_server/atom_pub/feeds/feed.atom_feed.builder +30 -0
  39. data/app/views/cmis_server/atom_pub/service_documents/_uri_template.atom_service.builder +5 -0
  40. data/app/views/cmis_server/atom_pub/service_documents/_workspace.atom_service.builder +89 -0
  41. data/app/views/cmis_server/atom_pub/service_documents/service_document.atom_service.builder +1 -0
  42. data/app/views/cmis_server/atom_pub/shared/_collection.xml.builder +7 -0
  43. data/app/views/cmis_server/atom_pub/shared/atom_entry_layout.atom_entry.builder +0 -0
  44. data/app/views/cmis_server/atom_pub/type_entry.atom.builder +69 -0
  45. data/app/views/cmis_server/atom_pub/types_feed.atom.builder +91 -0
  46. data/app/views/layouts/cmis_server/application.atom_entry.builder +2 -0
  47. data/app/views/layouts/cmis_server/application.atom_feed.builder +3 -0
  48. data/app/views/layouts/cmis_server/application.atom_service.builder +10 -0
  49. data/app/views/layouts/cmis_server/application.html.erb +14 -0
  50. data/config/routes.rb +49 -0
  51. data/lib/cmis_server/atom_pub/entry_parser.rb +72 -0
  52. data/lib/cmis_server/base_objects/base_type.rb +128 -0
  53. data/lib/cmis_server/base_objects/document.rb +68 -0
  54. data/lib/cmis_server/base_objects/folder.rb +104 -0
  55. data/lib/cmis_server/base_objects/item.rb +25 -0
  56. data/lib/cmis_server/base_types.rb +123 -0
  57. data/lib/cmis_server/cmis_object.rb +190 -0
  58. data/lib/cmis_server/configuration.rb +43 -0
  59. data/lib/cmis_server/constants.rb +8 -0
  60. data/lib/cmis_server/content_stream.rb +52 -0
  61. data/lib/cmis_server/context.rb +11 -0
  62. data/lib/cmis_server/document_object.rb +12 -0
  63. data/lib/cmis_server/document_type.rb +67 -0
  64. data/lib/cmis_server/engine.rb +60 -0
  65. data/lib/cmis_server/exceptions.rb +185 -0
  66. data/lib/cmis_server/folder_object.rb +18 -0
  67. data/lib/cmis_server/folder_type.rb +34 -0
  68. data/lib/cmis_server/id.rb +18 -0
  69. data/lib/cmis_server/item_adapter.rb +26 -0
  70. data/lib/cmis_server/item_object.rb +15 -0
  71. data/lib/cmis_server/item_type.rb +7 -0
  72. data/lib/cmis_server/object_adapter.rb +79 -0
  73. data/lib/cmis_server/property.rb +29 -0
  74. data/lib/cmis_server/property_definition.rb +118 -0
  75. data/lib/cmis_server/query/parser.output +2250 -0
  76. data/lib/cmis_server/query/parser.racc +222 -0
  77. data/lib/cmis_server/query/parser.racc.rb +1039 -0
  78. data/lib/cmis_server/query/parser.rex +114 -0
  79. data/lib/cmis_server/query/parser.rex.rb +238 -0
  80. data/lib/cmis_server/query/statement.rb +395 -0
  81. data/lib/cmis_server/query.rb +2 -0
  82. data/lib/cmis_server/renderable_collection.rb +45 -0
  83. data/lib/cmis_server/renderable_object.rb +49 -0
  84. data/lib/cmis_server/repository.rb +91 -0
  85. data/lib/cmis_server/secondary_type.rb +11 -0
  86. data/lib/cmis_server/type.rb +62 -0
  87. data/lib/cmis_server/type_registry.rb +115 -0
  88. data/lib/cmis_server/version.rb +4 -0
  89. data/lib/cmis_server.rb +22 -0
  90. data/lib/tasks/cmis_server_tasks.rake +4 -0
  91. data/test/cmis_server_test.rb +7 -0
  92. data/test/dummy/README.rdoc +28 -0
  93. data/test/dummy/Rakefile +6 -0
  94. data/test/dummy/app/assets/javascripts/application.js +13 -0
  95. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  96. data/test/dummy/app/controllers/application_controller.rb +5 -0
  97. data/test/dummy/app/helpers/application_helper.rb +2 -0
  98. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  99. data/test/dummy/bin/bundle +3 -0
  100. data/test/dummy/bin/rails +4 -0
  101. data/test/dummy/bin/rake +4 -0
  102. data/test/dummy/bin/setup +29 -0
  103. data/test/dummy/config/application.rb +26 -0
  104. data/test/dummy/config/boot.rb +5 -0
  105. data/test/dummy/config/database.yml +25 -0
  106. data/test/dummy/config/environment.rb +5 -0
  107. data/test/dummy/config/environments/development.rb +41 -0
  108. data/test/dummy/config/environments/production.rb +79 -0
  109. data/test/dummy/config/environments/test.rb +42 -0
  110. data/test/dummy/config/initializers/assets.rb +11 -0
  111. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  112. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  113. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  114. data/test/dummy/config/initializers/inflections.rb +16 -0
  115. data/test/dummy/config/initializers/mime_types.rb +4 -0
  116. data/test/dummy/config/initializers/session_store.rb +3 -0
  117. data/test/dummy/config/initializers/to_time_preserves_timezone.rb +10 -0
  118. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  119. data/test/dummy/config/locales/en.yml +23 -0
  120. data/test/dummy/config/routes.rb +4 -0
  121. data/test/dummy/config/secrets.yml +22 -0
  122. data/test/dummy/config.ru +4 -0
  123. data/test/dummy/public/404.html +67 -0
  124. data/test/dummy/public/422.html +67 -0
  125. data/test/dummy/public/500.html +66 -0
  126. data/test/dummy/public/favicon.ico +0 -0
  127. data/test/integration/navigation_test.rb +8 -0
  128. data/test/services/bulk_update_service_test.rb +121 -0
  129. data/test/services/content_stream_service_test.rb +176 -0
  130. data/test/services/secondary_type_service_test.rb +174 -0
  131. data/test/services/type_management_service_test.rb +146 -0
  132. data/test/test_helper.rb +16 -0
  133. metadata +326 -0
@@ -0,0 +1,2250 @@
1
+
2
+
3
+ -------- Grammar --------
4
+
5
+ rule 1 query_statement: simple_table order_by_clause
6
+ rule 2 simple_table: SELECT select_list from_clause where_clause
7
+ rule 3 select_list: asterisk
8
+ rule 4 select_list: select_sublist
9
+ rule 5 select_sublist: derived_column comma select_sublist
10
+ rule 6 select_sublist: derived_column
11
+ rule 7 derived_column: qualifier period asterisk
12
+ rule 8 derived_column: value_expression AS column_name
13
+ rule 9 derived_column: value_expression column_name
14
+ rule 10 derived_column: value_expression
15
+ rule 11 value_expression: numeric_value_function
16
+ rule 12 value_expression: column_reference
17
+ rule 13 numeric_value_function: SCORE left_paren right_paren
18
+ rule 14 column_reference: qualifier period column_name
19
+ rule 15 column_reference: column_name
20
+ rule 16 from_clause: FROM table_reference
21
+ rule 17 table_reference: table_name AS correlation_name
22
+ rule 18 table_reference: table_name correlation_name
23
+ rule 19 table_reference: table_name
24
+ rule 20 table_reference: joined_table
25
+ rule 21 joined_table: left_paren joined_table right_paren
26
+ rule 22 joined_table: table_reference JOIN table_reference join_specification
27
+ rule 23 joined_table: table_reference join_type JOIN table_reference join_specification
28
+ rule 24 join_type: INNER
29
+ rule 25 join_type: LEFT OUTER
30
+ rule 26 join_type: LEFT
31
+ rule 27 join_specification: ON column_reference equals_operator column_reference
32
+ rule 28 where_clause:
33
+ rule 29 where_clause: WHERE search_condition
34
+ rule 30 search_condition: search_condition OR boolean_term
35
+ rule 31 search_condition: boolean_term
36
+ rule 32 boolean_term: boolean_term AND boolean_factor
37
+ rule 33 boolean_term: boolean_factor
38
+ rule 34 boolean_factor: NOT boolean_test
39
+ rule 35 boolean_factor: boolean_test
40
+ rule 36 boolean_test: boolean_primary
41
+ rule 37 boolean_primary: predicate
42
+ rule 38 boolean_primary: left_paren search_condition right_paren
43
+ rule 39 predicate: quantified_comparison_predicate
44
+ rule 40 predicate: comparison_predicate
45
+ rule 41 predicate: folder_predicate
46
+ rule 42 predicate: in_predicate
47
+ rule 43 predicate: like_predicate
48
+ rule 44 predicate: null_predicate
49
+ rule 45 predicate: quantified_in_predicate
50
+ rule 46 comparison_predicate: value_expression equals_operator literal
51
+ rule 47 comparison_predicate: value_expression not_equals_operator literal
52
+ rule 48 comparison_predicate: value_expression less_than_operator literal
53
+ rule 49 comparison_predicate: value_expression greater_than_operator literal
54
+ rule 50 comparison_predicate: value_expression less_than_or_equals_operator literal
55
+ rule 51 comparison_predicate: value_expression greater_than_or_equals_operator literal
56
+ rule 52 in_predicate: column_reference NOT IN left_paren in_value_list right_paren
57
+ rule 53 in_predicate: column_reference IN left_paren in_value_list right_paren
58
+ rule 54 in_value_list: in_value_list comma literal
59
+ rule 55 in_value_list: literal
60
+ rule 56 null_predicate: column_reference IS NOT NULL
61
+ rule 57 null_predicate: column_reference IS NULL
62
+ rule 58 like_predicate: column_reference NOT LIKE general_literal
63
+ rule 59 like_predicate: column_reference LIKE general_literal
64
+ rule 60 quantified_comparison_predicate: literal equals_operator ANY column_reference
65
+ rule 61 quantified_in_predicate: ANY column_reference NOT IN left_paren in_value_list right_paren
66
+ rule 62 quantified_in_predicate: ANY column_reference IN left_paren in_value_list right_paren
67
+ rule 63 folder_predicate: depth_selector left_paren qualifier comma folder_id right_paren
68
+ rule 64 folder_predicate: depth_selector left_paren folder_id right_paren
69
+ rule 65 depth_selector: IN_FOLDER
70
+ rule 66 depth_selector: IN_TREE
71
+ rule 67 literal: boolean_literal
72
+ rule 68 literal: datetime_literal
73
+ rule 69 literal: signed_numeric_literal
74
+ rule 70 literal: general_literal
75
+ rule 71 order_by_clause:
76
+ rule 72 order_by_clause: ORDER BY sort_specification_list
77
+ rule 73 sort_specification_list: sort_specification comma sort_specification
78
+ rule 74 sort_specification_list: sort_specification
79
+ rule 75 sort_specification: sort_key ordering_specification
80
+ rule 76 sort_key: column_reference
81
+ rule 77 ordering_specification:
82
+ rule 78 ordering_specification: ASC
83
+ rule 79 ordering_specification: DESC
84
+ rule 80 qualifier: table_name
85
+ rule 81 correlation_name: qualifier
86
+ rule 82 folder_id: identifier
87
+ rule 83 table_name: identifier
88
+ rule 84 column_name: identifier
89
+ rule 85 general_literal: quote character_string_literal quote
90
+ rule 86 general_literal: quote quote
91
+ rule 87 @1:
92
+ rule 88 datetime_literal: TIMESTAMP date_string @1 signed_numeric_literal
93
+ rule 89 datetime_literal: sign unsigned_numeric_literal
94
+ rule 90 datetime_literal: unsigned_numeric_literal
95
+ rule 91 unsigned_numeric_literal: exact_numeric_literal
96
+ rule 92 unsigned_numeric_literal: approximate_numeric_literal
97
+ rule 93 exact_numeric_literal: unsigned_integer period unsigned_integer
98
+ rule 94 exact_numeric_literal: unsigned_integer period
99
+ rule 95 exact_numeric_literal: period unsigned_integer
100
+ rule 96 exact_numeric_literal: unsigned_integer
101
+ rule 97 approximate_numeric_literal: mantissa E exponent
102
+ rule 98 mantissa: exact_numeric_literal
103
+ rule 99 exponent: signed_integer
104
+ rule 100 signed_integer: sign unsigned_integer
105
+ rule 101 signed_integer: unsigned_integer
106
+ rule 102 sign: plus_sign
107
+ rule 103 sign: minus_sign
108
+ rule 104 boolean_literal: TRUE
109
+ rule 105 boolean_literal: FALSE
110
+
111
+ ------- Symbols -------
112
+
113
+ **Nonterminals, with rules where they appear
114
+
115
+ $start (49)
116
+ on right:
117
+ on left :
118
+ query_statement (50)
119
+ on right:
120
+ on left : 1
121
+ simple_table (51)
122
+ on right: 1
123
+ on left : 2
124
+ order_by_clause (52)
125
+ on right: 1
126
+ on left : 71 72
127
+ select_list (53)
128
+ on right: 2
129
+ on left : 3 4
130
+ from_clause (54)
131
+ on right: 2
132
+ on left : 16
133
+ where_clause (55)
134
+ on right: 2
135
+ on left : 28 29
136
+ select_sublist (56)
137
+ on right: 4 5
138
+ on left : 5 6
139
+ derived_column (57)
140
+ on right: 5 6
141
+ on left : 7 8 9 10
142
+ qualifier (58)
143
+ on right: 7 14 63 81
144
+ on left : 80
145
+ value_expression (59)
146
+ on right: 8 9 10 46 47 48 49 50 51
147
+ on left : 11 12
148
+ column_name (60)
149
+ on right: 8 9 14 15
150
+ on left : 84
151
+ numeric_value_function (61)
152
+ on right: 11
153
+ on left : 13
154
+ column_reference (62)
155
+ on right: 12 27 52 53 56 57 58 59 60 61 62 76
156
+ on left : 14 15
157
+ table_reference (63)
158
+ on right: 16 22 23
159
+ on left : 17 18 19 20
160
+ table_name (64)
161
+ on right: 17 18 19 80
162
+ on left : 83
163
+ correlation_name (65)
164
+ on right: 17 18
165
+ on left : 81
166
+ joined_table (66)
167
+ on right: 20 21
168
+ on left : 21 22 23
169
+ join_specification (67)
170
+ on right: 22 23
171
+ on left : 27
172
+ join_type (68)
173
+ on right: 23
174
+ on left : 24 25 26
175
+ search_condition (69)
176
+ on right: 29 30 38
177
+ on left : 30 31
178
+ boolean_term (70)
179
+ on right: 30 31 32
180
+ on left : 32 33
181
+ boolean_factor (71)
182
+ on right: 32 33
183
+ on left : 34 35
184
+ boolean_test (72)
185
+ on right: 34 35
186
+ on left : 36
187
+ boolean_primary (73)
188
+ on right: 36
189
+ on left : 37 38
190
+ predicate (74)
191
+ on right: 37
192
+ on left : 39 40 41 42 43 44 45
193
+ quantified_comparison_predicate (75)
194
+ on right: 39
195
+ on left : 60
196
+ comparison_predicate (76)
197
+ on right: 40
198
+ on left : 46 47 48 49 50 51
199
+ folder_predicate (77)
200
+ on right: 41
201
+ on left : 63 64
202
+ in_predicate (78)
203
+ on right: 42
204
+ on left : 52 53
205
+ like_predicate (79)
206
+ on right: 43
207
+ on left : 58 59
208
+ null_predicate (80)
209
+ on right: 44
210
+ on left : 56 57
211
+ quantified_in_predicate (81)
212
+ on right: 45
213
+ on left : 61 62
214
+ literal (82)
215
+ on right: 46 47 48 49 50 51 54 55 60
216
+ on left : 67 68 69 70
217
+ in_value_list (83)
218
+ on right: 52 53 54 61 62
219
+ on left : 54 55
220
+ general_literal (84)
221
+ on right: 58 59 70
222
+ on left : 85 86
223
+ depth_selector (85)
224
+ on right: 63 64
225
+ on left : 65 66
226
+ folder_id (86)
227
+ on right: 63 64
228
+ on left : 82
229
+ boolean_literal (87)
230
+ on right: 67
231
+ on left : 104 105
232
+ datetime_literal (88)
233
+ on right: 68
234
+ on left : 88 89 90
235
+ sort_specification_list (89)
236
+ on right: 72
237
+ on left : 73 74
238
+ sort_specification (90)
239
+ on right: 73 74
240
+ on left : 75
241
+ sort_key (91)
242
+ on right: 75
243
+ on left : 76
244
+ ordering_specification (92)
245
+ on right: 75
246
+ on left : 77 78 79
247
+ sign (93)
248
+ on right: 89 100
249
+ on left : 102 103
250
+ unsigned_numeric_literal (94)
251
+ on right: 89 90
252
+ on left : 91 92
253
+ @1 (95)
254
+ on right: 88
255
+ on left : 87
256
+ exact_numeric_literal (96)
257
+ on right: 91 98
258
+ on left : 93 94 95 96
259
+ approximate_numeric_literal (97)
260
+ on right: 92
261
+ on left : 97
262
+ mantissa (98)
263
+ on right: 97
264
+ on left : 98
265
+ exponent (99)
266
+ on right: 97
267
+ on left : 99
268
+ signed_integer (100)
269
+ on right: 99
270
+ on left : 100 101
271
+
272
+ **Terminals, with rules where they appear
273
+
274
+ $end (0)
275
+ error (1)
276
+ SELECT (2) 2
277
+ asterisk (3) 3 7
278
+ comma (4) 5 54 63 73
279
+ period (5) 7 14 93 94 95
280
+ AS (6) 8 17
281
+ SCORE (7) 13
282
+ left_paren (8) 13 21 38 52 53 61 62 63 64
283
+ right_paren (9) 13 21 38 52 53 61 62 63 64
284
+ FROM (10) 16
285
+ JOIN (11) 22 23
286
+ INNER (12) 24
287
+ LEFT (13) 25 26
288
+ OUTER (14) 25
289
+ ON (15) 27
290
+ equals_operator (16) 27 46 60
291
+ WHERE (17) 29
292
+ OR (18) 30
293
+ AND (19) 32
294
+ NOT (20) 34 52 56 58 61
295
+ not_equals_operator (21) 47
296
+ less_than_operator (22) 48
297
+ greater_than_operator (23) 49
298
+ less_than_or_equals_operator (24) 50
299
+ greater_than_or_equals_operator (25) 51
300
+ IN (26) 52 53 61 62
301
+ IS (27) 56 57
302
+ NULL (28) 56 57
303
+ LIKE (29) 58 59
304
+ ANY (30) 60 61 62
305
+ IN_FOLDER (31) 65
306
+ IN_TREE (32) 66
307
+ signed_numeric_literal (33) 69 88
308
+ ORDER (34) 72
309
+ BY (35) 72
310
+ ASC (36) 78
311
+ DESC (37) 79
312
+ identifier (38) 82 83 84
313
+ quote (39) 85 86
314
+ character_string_literal (40) 85
315
+ TIMESTAMP (41) 88
316
+ date_string (42) 88
317
+ unsigned_integer (43) 93 94 95 96 100 101
318
+ E (44) 97
319
+ plus_sign (45) 102
320
+ minus_sign (46) 103
321
+ TRUE (47) 104
322
+ FALSE (48) 105
323
+
324
+ --------- State ---------
325
+
326
+ state 0
327
+
328
+
329
+ SELECT shift, and go to state 3
330
+
331
+ query_statement go to state 1
332
+ simple_table go to state 2
333
+
334
+ state 1
335
+
336
+
337
+ $end shift, and go to state 4
338
+
339
+
340
+ state 2
341
+
342
+ 1) query_statement : simple_table _ order_by_clause
343
+
344
+ ORDER shift, and go to state 6
345
+ $default reduce using rule 71 (order_by_clause)
346
+
347
+ order_by_clause go to state 5
348
+
349
+ state 3
350
+
351
+ 2) simple_table : SELECT _ select_list from_clause where_clause
352
+
353
+ asterisk shift, and go to state 8
354
+ SCORE shift, and go to state 15
355
+ identifier shift, and go to state 18
356
+
357
+ select_list go to state 7
358
+ select_sublist go to state 9
359
+ derived_column go to state 10
360
+ qualifier go to state 11
361
+ value_expression go to state 12
362
+ numeric_value_function go to state 13
363
+ column_reference go to state 14
364
+ column_name go to state 16
365
+ table_name go to state 17
366
+
367
+ state 4
368
+
369
+
370
+ $end shift, and go to state 19
371
+
372
+
373
+ state 5
374
+
375
+ 1) query_statement : simple_table order_by_clause _
376
+
377
+ $default reduce using rule 1 (query_statement)
378
+
379
+
380
+ state 6
381
+
382
+ 72) order_by_clause : ORDER _ BY sort_specification_list
383
+
384
+ BY shift, and go to state 20
385
+
386
+
387
+ state 7
388
+
389
+ 2) simple_table : SELECT select_list _ from_clause where_clause
390
+
391
+ FROM shift, and go to state 22
392
+
393
+ from_clause go to state 21
394
+
395
+ state 8
396
+
397
+ 3) select_list : asterisk _
398
+
399
+ $default reduce using rule 3 (select_list)
400
+
401
+
402
+ state 9
403
+
404
+ 4) select_list : select_sublist _
405
+
406
+ $default reduce using rule 4 (select_list)
407
+
408
+
409
+ state 10
410
+
411
+ 5) select_sublist : derived_column _ comma select_sublist
412
+ 6) select_sublist : derived_column _
413
+
414
+ comma shift, and go to state 23
415
+ $default reduce using rule 6 (select_sublist)
416
+
417
+
418
+ state 11
419
+
420
+ 7) derived_column : qualifier _ period asterisk
421
+ 14) column_reference : qualifier _ period column_name
422
+
423
+ period shift, and go to state 24
424
+
425
+
426
+ state 12
427
+
428
+ 8) derived_column : value_expression _ AS column_name
429
+ 9) derived_column : value_expression _ column_name
430
+ 10) derived_column : value_expression _
431
+
432
+ AS shift, and go to state 25
433
+ identifier shift, and go to state 27
434
+ $default reduce using rule 10 (derived_column)
435
+
436
+ column_name go to state 26
437
+
438
+ state 13
439
+
440
+ 11) value_expression : numeric_value_function _
441
+
442
+ $default reduce using rule 11 (value_expression)
443
+
444
+
445
+ state 14
446
+
447
+ 12) value_expression : column_reference _
448
+
449
+ $default reduce using rule 12 (value_expression)
450
+
451
+
452
+ state 15
453
+
454
+ 13) numeric_value_function : SCORE _ left_paren right_paren
455
+
456
+ left_paren shift, and go to state 28
457
+
458
+
459
+ state 16
460
+
461
+ 15) column_reference : column_name _
462
+
463
+ $default reduce using rule 15 (column_reference)
464
+
465
+
466
+ state 17
467
+
468
+ 80) qualifier : table_name _
469
+
470
+ $default reduce using rule 80 (qualifier)
471
+
472
+
473
+ state 18
474
+
475
+ 83) table_name : identifier _
476
+ 84) column_name : identifier _
477
+
478
+ period reduce using rule 83 (table_name)
479
+ $default reduce using rule 84 (column_name)
480
+
481
+
482
+ state 19
483
+
484
+
485
+ $default accept
486
+
487
+
488
+ state 20
489
+
490
+ 72) order_by_clause : ORDER BY _ sort_specification_list
491
+
492
+ identifier shift, and go to state 18
493
+
494
+ qualifier go to state 29
495
+ column_name go to state 16
496
+ sort_specification_list go to state 30
497
+ sort_specification go to state 31
498
+ sort_key go to state 32
499
+ column_reference go to state 33
500
+ table_name go to state 17
501
+
502
+ state 21
503
+
504
+ 2) simple_table : SELECT select_list from_clause _ where_clause
505
+
506
+ WHERE shift, and go to state 35
507
+ $default reduce using rule 28 (where_clause)
508
+
509
+ where_clause go to state 34
510
+
511
+ state 22
512
+
513
+ 16) from_clause : FROM _ table_reference
514
+
515
+ left_paren shift, and go to state 39
516
+ identifier shift, and go to state 40
517
+
518
+ table_reference go to state 36
519
+ table_name go to state 37
520
+ joined_table go to state 38
521
+
522
+ state 23
523
+
524
+ 5) select_sublist : derived_column comma _ select_sublist
525
+
526
+ SCORE shift, and go to state 15
527
+ identifier shift, and go to state 18
528
+
529
+ derived_column go to state 10
530
+ select_sublist go to state 41
531
+ qualifier go to state 11
532
+ value_expression go to state 12
533
+ numeric_value_function go to state 13
534
+ column_reference go to state 14
535
+ column_name go to state 16
536
+ table_name go to state 17
537
+
538
+ state 24
539
+
540
+ 7) derived_column : qualifier period _ asterisk
541
+ 14) column_reference : qualifier period _ column_name
542
+
543
+ asterisk shift, and go to state 42
544
+ identifier shift, and go to state 27
545
+
546
+ column_name go to state 43
547
+
548
+ state 25
549
+
550
+ 8) derived_column : value_expression AS _ column_name
551
+
552
+ identifier shift, and go to state 27
553
+
554
+ column_name go to state 44
555
+
556
+ state 26
557
+
558
+ 9) derived_column : value_expression column_name _
559
+
560
+ $default reduce using rule 9 (derived_column)
561
+
562
+
563
+ state 27
564
+
565
+ 84) column_name : identifier _
566
+
567
+ $default reduce using rule 84 (column_name)
568
+
569
+
570
+ state 28
571
+
572
+ 13) numeric_value_function : SCORE left_paren _ right_paren
573
+
574
+ right_paren shift, and go to state 45
575
+
576
+
577
+ state 29
578
+
579
+ 14) column_reference : qualifier _ period column_name
580
+
581
+ period shift, and go to state 46
582
+
583
+
584
+ state 30
585
+
586
+ 72) order_by_clause : ORDER BY sort_specification_list _
587
+
588
+ $default reduce using rule 72 (order_by_clause)
589
+
590
+
591
+ state 31
592
+
593
+ 73) sort_specification_list : sort_specification _ comma sort_specification
594
+ 74) sort_specification_list : sort_specification _
595
+
596
+ comma shift, and go to state 47
597
+ $default reduce using rule 74 (sort_specification_list)
598
+
599
+
600
+ state 32
601
+
602
+ 75) sort_specification : sort_key _ ordering_specification
603
+
604
+ ASC shift, and go to state 49
605
+ DESC shift, and go to state 50
606
+ $default reduce using rule 77 (ordering_specification)
607
+
608
+ ordering_specification go to state 48
609
+
610
+ state 33
611
+
612
+ 76) sort_key : column_reference _
613
+
614
+ $default reduce using rule 76 (sort_key)
615
+
616
+
617
+ state 34
618
+
619
+ 2) simple_table : SELECT select_list from_clause where_clause _
620
+
621
+ $default reduce using rule 2 (simple_table)
622
+
623
+
624
+ state 35
625
+
626
+ 29) where_clause : WHERE _ search_condition
627
+
628
+ period shift, and go to state 84
629
+ SCORE shift, and go to state 15
630
+ left_paren shift, and go to state 59
631
+ NOT shift, and go to state 55
632
+ ANY shift, and go to state 69
633
+ IN_FOLDER shift, and go to state 71
634
+ IN_TREE shift, and go to state 72
635
+ signed_numeric_literal shift, and go to state 75
636
+ identifier shift, and go to state 18
637
+ quote shift, and go to state 77
638
+ TIMESTAMP shift, and go to state 78
639
+ unsigned_integer shift, and go to state 83
640
+ plus_sign shift, and go to state 86
641
+ minus_sign shift, and go to state 87
642
+ TRUE shift, and go to state 88
643
+ FALSE shift, and go to state 89
644
+
645
+ numeric_value_function go to state 13
646
+ column_reference go to state 51
647
+ qualifier go to state 29
648
+ column_name go to state 16
649
+ search_condition go to state 52
650
+ boolean_term go to state 53
651
+ boolean_factor go to state 54
652
+ boolean_test go to state 56
653
+ boolean_primary go to state 57
654
+ predicate go to state 58
655
+ quantified_comparison_predicate go to state 60
656
+ comparison_predicate go to state 61
657
+ folder_predicate go to state 62
658
+ in_predicate go to state 63
659
+ like_predicate go to state 64
660
+ null_predicate go to state 65
661
+ quantified_in_predicate go to state 66
662
+ value_expression go to state 67
663
+ literal go to state 68
664
+ depth_selector go to state 70
665
+ boolean_literal go to state 73
666
+ datetime_literal go to state 74
667
+ general_literal go to state 76
668
+ table_name go to state 17
669
+ sign go to state 79
670
+ unsigned_numeric_literal go to state 80
671
+ exact_numeric_literal go to state 81
672
+ approximate_numeric_literal go to state 82
673
+ mantissa go to state 85
674
+
675
+ state 36
676
+
677
+ 16) from_clause : FROM table_reference _
678
+ 22) joined_table : table_reference _ JOIN table_reference join_specification
679
+ 23) joined_table : table_reference _ join_type JOIN table_reference join_specification
680
+
681
+ JOIN shift, and go to state 90
682
+ INNER shift, and go to state 92
683
+ LEFT shift, and go to state 93
684
+ $default reduce using rule 16 (from_clause)
685
+
686
+ join_type go to state 91
687
+
688
+ state 37
689
+
690
+ 17) table_reference : table_name _ AS correlation_name
691
+ 18) table_reference : table_name _ correlation_name
692
+ 19) table_reference : table_name _
693
+
694
+ AS shift, and go to state 94
695
+ identifier shift, and go to state 40
696
+ $default reduce using rule 19 (table_reference)
697
+
698
+ correlation_name go to state 95
699
+ table_name go to state 17
700
+ qualifier go to state 96
701
+
702
+ state 38
703
+
704
+ 20) table_reference : joined_table _
705
+
706
+ $default reduce using rule 20 (table_reference)
707
+
708
+
709
+ state 39
710
+
711
+ 21) joined_table : left_paren _ joined_table right_paren
712
+
713
+ left_paren shift, and go to state 39
714
+ identifier shift, and go to state 40
715
+
716
+ table_name go to state 37
717
+ joined_table go to state 97
718
+ table_reference go to state 98
719
+
720
+ state 40
721
+
722
+ 83) table_name : identifier _
723
+
724
+ $default reduce using rule 83 (table_name)
725
+
726
+
727
+ state 41
728
+
729
+ 5) select_sublist : derived_column comma select_sublist _
730
+
731
+ $default reduce using rule 5 (select_sublist)
732
+
733
+
734
+ state 42
735
+
736
+ 7) derived_column : qualifier period asterisk _
737
+
738
+ $default reduce using rule 7 (derived_column)
739
+
740
+
741
+ state 43
742
+
743
+ 14) column_reference : qualifier period column_name _
744
+
745
+ $default reduce using rule 14 (column_reference)
746
+
747
+
748
+ state 44
749
+
750
+ 8) derived_column : value_expression AS column_name _
751
+
752
+ $default reduce using rule 8 (derived_column)
753
+
754
+
755
+ state 45
756
+
757
+ 13) numeric_value_function : SCORE left_paren right_paren _
758
+
759
+ $default reduce using rule 13 (numeric_value_function)
760
+
761
+
762
+ state 46
763
+
764
+ 14) column_reference : qualifier period _ column_name
765
+
766
+ identifier shift, and go to state 27
767
+
768
+ column_name go to state 43
769
+
770
+ state 47
771
+
772
+ 73) sort_specification_list : sort_specification comma _ sort_specification
773
+
774
+ identifier shift, and go to state 18
775
+
776
+ qualifier go to state 29
777
+ column_name go to state 16
778
+ sort_specification go to state 99
779
+ sort_key go to state 32
780
+ column_reference go to state 33
781
+ table_name go to state 17
782
+
783
+ state 48
784
+
785
+ 75) sort_specification : sort_key ordering_specification _
786
+
787
+ $default reduce using rule 75 (sort_specification)
788
+
789
+
790
+ state 49
791
+
792
+ 78) ordering_specification : ASC _
793
+
794
+ $default reduce using rule 78 (ordering_specification)
795
+
796
+
797
+ state 50
798
+
799
+ 79) ordering_specification : DESC _
800
+
801
+ $default reduce using rule 79 (ordering_specification)
802
+
803
+
804
+ state 51
805
+
806
+ 12) value_expression : column_reference _
807
+ 52) in_predicate : column_reference _ NOT IN left_paren in_value_list right_paren
808
+ 53) in_predicate : column_reference _ IN left_paren in_value_list right_paren
809
+ 56) null_predicate : column_reference _ IS NOT NULL
810
+ 57) null_predicate : column_reference _ IS NULL
811
+ 58) like_predicate : column_reference _ NOT LIKE general_literal
812
+ 59) like_predicate : column_reference _ LIKE general_literal
813
+
814
+ NOT shift, and go to state 100
815
+ IN shift, and go to state 101
816
+ IS shift, and go to state 102
817
+ LIKE shift, and go to state 103
818
+ $default reduce using rule 12 (value_expression)
819
+
820
+
821
+ state 52
822
+
823
+ 29) where_clause : WHERE search_condition _
824
+ 30) search_condition : search_condition _ OR boolean_term
825
+
826
+ OR shift, and go to state 104
827
+ $default reduce using rule 29 (where_clause)
828
+
829
+
830
+ state 53
831
+
832
+ 31) search_condition : boolean_term _
833
+ 32) boolean_term : boolean_term _ AND boolean_factor
834
+
835
+ AND shift, and go to state 105
836
+ $default reduce using rule 31 (search_condition)
837
+
838
+
839
+ state 54
840
+
841
+ 33) boolean_term : boolean_factor _
842
+
843
+ $default reduce using rule 33 (boolean_term)
844
+
845
+
846
+ state 55
847
+
848
+ 34) boolean_factor : NOT _ boolean_test
849
+
850
+ period shift, and go to state 84
851
+ SCORE shift, and go to state 15
852
+ left_paren shift, and go to state 59
853
+ ANY shift, and go to state 69
854
+ IN_FOLDER shift, and go to state 71
855
+ IN_TREE shift, and go to state 72
856
+ signed_numeric_literal shift, and go to state 75
857
+ identifier shift, and go to state 18
858
+ quote shift, and go to state 77
859
+ TIMESTAMP shift, and go to state 78
860
+ unsigned_integer shift, and go to state 83
861
+ plus_sign shift, and go to state 86
862
+ minus_sign shift, and go to state 87
863
+ TRUE shift, and go to state 88
864
+ FALSE shift, and go to state 89
865
+
866
+ numeric_value_function go to state 13
867
+ column_reference go to state 51
868
+ qualifier go to state 29
869
+ column_name go to state 16
870
+ boolean_test go to state 106
871
+ boolean_primary go to state 57
872
+ predicate go to state 58
873
+ quantified_comparison_predicate go to state 60
874
+ comparison_predicate go to state 61
875
+ folder_predicate go to state 62
876
+ in_predicate go to state 63
877
+ like_predicate go to state 64
878
+ null_predicate go to state 65
879
+ quantified_in_predicate go to state 66
880
+ value_expression go to state 67
881
+ literal go to state 68
882
+ depth_selector go to state 70
883
+ boolean_literal go to state 73
884
+ datetime_literal go to state 74
885
+ general_literal go to state 76
886
+ table_name go to state 17
887
+ sign go to state 79
888
+ unsigned_numeric_literal go to state 80
889
+ exact_numeric_literal go to state 81
890
+ approximate_numeric_literal go to state 82
891
+ mantissa go to state 85
892
+
893
+ state 56
894
+
895
+ 35) boolean_factor : boolean_test _
896
+
897
+ $default reduce using rule 35 (boolean_factor)
898
+
899
+
900
+ state 57
901
+
902
+ 36) boolean_test : boolean_primary _
903
+
904
+ $default reduce using rule 36 (boolean_test)
905
+
906
+
907
+ state 58
908
+
909
+ 37) boolean_primary : predicate _
910
+
911
+ $default reduce using rule 37 (boolean_primary)
912
+
913
+
914
+ state 59
915
+
916
+ 38) boolean_primary : left_paren _ search_condition right_paren
917
+
918
+ period shift, and go to state 84
919
+ SCORE shift, and go to state 15
920
+ left_paren shift, and go to state 59
921
+ NOT shift, and go to state 55
922
+ ANY shift, and go to state 69
923
+ IN_FOLDER shift, and go to state 71
924
+ IN_TREE shift, and go to state 72
925
+ signed_numeric_literal shift, and go to state 75
926
+ identifier shift, and go to state 18
927
+ quote shift, and go to state 77
928
+ TIMESTAMP shift, and go to state 78
929
+ unsigned_integer shift, and go to state 83
930
+ plus_sign shift, and go to state 86
931
+ minus_sign shift, and go to state 87
932
+ TRUE shift, and go to state 88
933
+ FALSE shift, and go to state 89
934
+
935
+ numeric_value_function go to state 13
936
+ column_reference go to state 51
937
+ qualifier go to state 29
938
+ column_name go to state 16
939
+ search_condition go to state 107
940
+ boolean_term go to state 53
941
+ boolean_factor go to state 54
942
+ boolean_test go to state 56
943
+ boolean_primary go to state 57
944
+ predicate go to state 58
945
+ quantified_comparison_predicate go to state 60
946
+ comparison_predicate go to state 61
947
+ folder_predicate go to state 62
948
+ in_predicate go to state 63
949
+ like_predicate go to state 64
950
+ null_predicate go to state 65
951
+ quantified_in_predicate go to state 66
952
+ value_expression go to state 67
953
+ literal go to state 68
954
+ depth_selector go to state 70
955
+ boolean_literal go to state 73
956
+ datetime_literal go to state 74
957
+ general_literal go to state 76
958
+ table_name go to state 17
959
+ sign go to state 79
960
+ unsigned_numeric_literal go to state 80
961
+ exact_numeric_literal go to state 81
962
+ approximate_numeric_literal go to state 82
963
+ mantissa go to state 85
964
+
965
+ state 60
966
+
967
+ 39) predicate : quantified_comparison_predicate _
968
+
969
+ $default reduce using rule 39 (predicate)
970
+
971
+
972
+ state 61
973
+
974
+ 40) predicate : comparison_predicate _
975
+
976
+ $default reduce using rule 40 (predicate)
977
+
978
+
979
+ state 62
980
+
981
+ 41) predicate : folder_predicate _
982
+
983
+ $default reduce using rule 41 (predicate)
984
+
985
+
986
+ state 63
987
+
988
+ 42) predicate : in_predicate _
989
+
990
+ $default reduce using rule 42 (predicate)
991
+
992
+
993
+ state 64
994
+
995
+ 43) predicate : like_predicate _
996
+
997
+ $default reduce using rule 43 (predicate)
998
+
999
+
1000
+ state 65
1001
+
1002
+ 44) predicate : null_predicate _
1003
+
1004
+ $default reduce using rule 44 (predicate)
1005
+
1006
+
1007
+ state 66
1008
+
1009
+ 45) predicate : quantified_in_predicate _
1010
+
1011
+ $default reduce using rule 45 (predicate)
1012
+
1013
+
1014
+ state 67
1015
+
1016
+ 46) comparison_predicate : value_expression _ equals_operator literal
1017
+ 47) comparison_predicate : value_expression _ not_equals_operator literal
1018
+ 48) comparison_predicate : value_expression _ less_than_operator literal
1019
+ 49) comparison_predicate : value_expression _ greater_than_operator literal
1020
+ 50) comparison_predicate : value_expression _ less_than_or_equals_operator literal
1021
+ 51) comparison_predicate : value_expression _ greater_than_or_equals_operator literal
1022
+
1023
+ equals_operator shift, and go to state 108
1024
+ not_equals_operator shift, and go to state 109
1025
+ less_than_operator shift, and go to state 110
1026
+ greater_than_operator shift, and go to state 111
1027
+ less_than_or_equals_operator shift, and go to state 112
1028
+ greater_than_or_equals_operator shift, and go to state 113
1029
+
1030
+
1031
+ state 68
1032
+
1033
+ 60) quantified_comparison_predicate : literal _ equals_operator ANY column_reference
1034
+
1035
+ equals_operator shift, and go to state 114
1036
+
1037
+
1038
+ state 69
1039
+
1040
+ 61) quantified_in_predicate : ANY _ column_reference NOT IN left_paren in_value_list right_paren
1041
+ 62) quantified_in_predicate : ANY _ column_reference IN left_paren in_value_list right_paren
1042
+
1043
+ identifier shift, and go to state 18
1044
+
1045
+ qualifier go to state 29
1046
+ column_name go to state 16
1047
+ column_reference go to state 115
1048
+ table_name go to state 17
1049
+
1050
+ state 70
1051
+
1052
+ 63) folder_predicate : depth_selector _ left_paren qualifier comma folder_id right_paren
1053
+ 64) folder_predicate : depth_selector _ left_paren folder_id right_paren
1054
+
1055
+ left_paren shift, and go to state 116
1056
+
1057
+
1058
+ state 71
1059
+
1060
+ 65) depth_selector : IN_FOLDER _
1061
+
1062
+ $default reduce using rule 65 (depth_selector)
1063
+
1064
+
1065
+ state 72
1066
+
1067
+ 66) depth_selector : IN_TREE _
1068
+
1069
+ $default reduce using rule 66 (depth_selector)
1070
+
1071
+
1072
+ state 73
1073
+
1074
+ 67) literal : boolean_literal _
1075
+
1076
+ $default reduce using rule 67 (literal)
1077
+
1078
+
1079
+ state 74
1080
+
1081
+ 68) literal : datetime_literal _
1082
+
1083
+ $default reduce using rule 68 (literal)
1084
+
1085
+
1086
+ state 75
1087
+
1088
+ 69) literal : signed_numeric_literal _
1089
+
1090
+ $default reduce using rule 69 (literal)
1091
+
1092
+
1093
+ state 76
1094
+
1095
+ 70) literal : general_literal _
1096
+
1097
+ $default reduce using rule 70 (literal)
1098
+
1099
+
1100
+ state 77
1101
+
1102
+ 85) general_literal : quote _ character_string_literal quote
1103
+ 86) general_literal : quote _ quote
1104
+
1105
+ quote shift, and go to state 118
1106
+ character_string_literal shift, and go to state 117
1107
+
1108
+
1109
+ state 78
1110
+
1111
+ 88) datetime_literal : TIMESTAMP _ date_string @1 signed_numeric_literal
1112
+
1113
+ date_string shift, and go to state 119
1114
+
1115
+
1116
+ state 79
1117
+
1118
+ 89) datetime_literal : sign _ unsigned_numeric_literal
1119
+
1120
+ period shift, and go to state 84
1121
+ unsigned_integer shift, and go to state 83
1122
+
1123
+ unsigned_numeric_literal go to state 120
1124
+ exact_numeric_literal go to state 81
1125
+ approximate_numeric_literal go to state 82
1126
+ mantissa go to state 85
1127
+
1128
+ state 80
1129
+
1130
+ 90) datetime_literal : unsigned_numeric_literal _
1131
+
1132
+ $default reduce using rule 90 (datetime_literal)
1133
+
1134
+
1135
+ state 81
1136
+
1137
+ 91) unsigned_numeric_literal : exact_numeric_literal _
1138
+ 98) mantissa : exact_numeric_literal _
1139
+
1140
+ E reduce using rule 98 (mantissa)
1141
+ $default reduce using rule 91 (unsigned_numeric_literal)
1142
+
1143
+
1144
+ state 82
1145
+
1146
+ 92) unsigned_numeric_literal : approximate_numeric_literal _
1147
+
1148
+ $default reduce using rule 92 (unsigned_numeric_literal)
1149
+
1150
+
1151
+ state 83
1152
+
1153
+ 93) exact_numeric_literal : unsigned_integer _ period unsigned_integer
1154
+ 94) exact_numeric_literal : unsigned_integer _ period
1155
+ 96) exact_numeric_literal : unsigned_integer _
1156
+
1157
+ period shift, and go to state 121
1158
+ $default reduce using rule 96 (exact_numeric_literal)
1159
+
1160
+
1161
+ state 84
1162
+
1163
+ 95) exact_numeric_literal : period _ unsigned_integer
1164
+
1165
+ unsigned_integer shift, and go to state 122
1166
+
1167
+
1168
+ state 85
1169
+
1170
+ 97) approximate_numeric_literal : mantissa _ E exponent
1171
+
1172
+ E shift, and go to state 123
1173
+
1174
+
1175
+ state 86
1176
+
1177
+ 102) sign : plus_sign _
1178
+
1179
+ $default reduce using rule 102 (sign)
1180
+
1181
+
1182
+ state 87
1183
+
1184
+ 103) sign : minus_sign _
1185
+
1186
+ $default reduce using rule 103 (sign)
1187
+
1188
+
1189
+ state 88
1190
+
1191
+ 104) boolean_literal : TRUE _
1192
+
1193
+ $default reduce using rule 104 (boolean_literal)
1194
+
1195
+
1196
+ state 89
1197
+
1198
+ 105) boolean_literal : FALSE _
1199
+
1200
+ $default reduce using rule 105 (boolean_literal)
1201
+
1202
+
1203
+ state 90
1204
+
1205
+ 22) joined_table : table_reference JOIN _ table_reference join_specification
1206
+
1207
+ left_paren shift, and go to state 39
1208
+ identifier shift, and go to state 40
1209
+
1210
+ table_name go to state 37
1211
+ joined_table go to state 38
1212
+ table_reference go to state 124
1213
+
1214
+ state 91
1215
+
1216
+ 23) joined_table : table_reference join_type _ JOIN table_reference join_specification
1217
+
1218
+ JOIN shift, and go to state 125
1219
+
1220
+
1221
+ state 92
1222
+
1223
+ 24) join_type : INNER _
1224
+
1225
+ $default reduce using rule 24 (join_type)
1226
+
1227
+
1228
+ state 93
1229
+
1230
+ 25) join_type : LEFT _ OUTER
1231
+ 26) join_type : LEFT _
1232
+
1233
+ OUTER shift, and go to state 126
1234
+ $default reduce using rule 26 (join_type)
1235
+
1236
+
1237
+ state 94
1238
+
1239
+ 17) table_reference : table_name AS _ correlation_name
1240
+
1241
+ identifier shift, and go to state 40
1242
+
1243
+ correlation_name go to state 127
1244
+ table_name go to state 17
1245
+ qualifier go to state 96
1246
+
1247
+ state 95
1248
+
1249
+ 18) table_reference : table_name correlation_name _
1250
+
1251
+ $default reduce using rule 18 (table_reference)
1252
+
1253
+
1254
+ state 96
1255
+
1256
+ 81) correlation_name : qualifier _
1257
+
1258
+ $default reduce using rule 81 (correlation_name)
1259
+
1260
+
1261
+ state 97
1262
+
1263
+ 20) table_reference : joined_table _
1264
+ 21) joined_table : left_paren joined_table _ right_paren
1265
+
1266
+ right_paren shift, and go to state 128
1267
+ $default reduce using rule 20 (table_reference)
1268
+
1269
+
1270
+ state 98
1271
+
1272
+ 22) joined_table : table_reference _ JOIN table_reference join_specification
1273
+ 23) joined_table : table_reference _ join_type JOIN table_reference join_specification
1274
+
1275
+ JOIN shift, and go to state 90
1276
+ INNER shift, and go to state 92
1277
+ LEFT shift, and go to state 93
1278
+
1279
+ join_type go to state 91
1280
+
1281
+ state 99
1282
+
1283
+ 73) sort_specification_list : sort_specification comma sort_specification _
1284
+
1285
+ $default reduce using rule 73 (sort_specification_list)
1286
+
1287
+
1288
+ state 100
1289
+
1290
+ 52) in_predicate : column_reference NOT _ IN left_paren in_value_list right_paren
1291
+ 58) like_predicate : column_reference NOT _ LIKE general_literal
1292
+
1293
+ IN shift, and go to state 129
1294
+ LIKE shift, and go to state 130
1295
+
1296
+
1297
+ state 101
1298
+
1299
+ 53) in_predicate : column_reference IN _ left_paren in_value_list right_paren
1300
+
1301
+ left_paren shift, and go to state 131
1302
+
1303
+
1304
+ state 102
1305
+
1306
+ 56) null_predicate : column_reference IS _ NOT NULL
1307
+ 57) null_predicate : column_reference IS _ NULL
1308
+
1309
+ NOT shift, and go to state 132
1310
+ NULL shift, and go to state 133
1311
+
1312
+
1313
+ state 103
1314
+
1315
+ 59) like_predicate : column_reference LIKE _ general_literal
1316
+
1317
+ quote shift, and go to state 77
1318
+
1319
+ general_literal go to state 134
1320
+
1321
+ state 104
1322
+
1323
+ 30) search_condition : search_condition OR _ boolean_term
1324
+
1325
+ period shift, and go to state 84
1326
+ SCORE shift, and go to state 15
1327
+ left_paren shift, and go to state 59
1328
+ NOT shift, and go to state 55
1329
+ ANY shift, and go to state 69
1330
+ IN_FOLDER shift, and go to state 71
1331
+ IN_TREE shift, and go to state 72
1332
+ signed_numeric_literal shift, and go to state 75
1333
+ identifier shift, and go to state 18
1334
+ quote shift, and go to state 77
1335
+ TIMESTAMP shift, and go to state 78
1336
+ unsigned_integer shift, and go to state 83
1337
+ plus_sign shift, and go to state 86
1338
+ minus_sign shift, and go to state 87
1339
+ TRUE shift, and go to state 88
1340
+ FALSE shift, and go to state 89
1341
+
1342
+ numeric_value_function go to state 13
1343
+ column_reference go to state 51
1344
+ qualifier go to state 29
1345
+ column_name go to state 16
1346
+ boolean_term go to state 135
1347
+ boolean_factor go to state 54
1348
+ boolean_test go to state 56
1349
+ boolean_primary go to state 57
1350
+ predicate go to state 58
1351
+ quantified_comparison_predicate go to state 60
1352
+ comparison_predicate go to state 61
1353
+ folder_predicate go to state 62
1354
+ in_predicate go to state 63
1355
+ like_predicate go to state 64
1356
+ null_predicate go to state 65
1357
+ quantified_in_predicate go to state 66
1358
+ value_expression go to state 67
1359
+ literal go to state 68
1360
+ depth_selector go to state 70
1361
+ boolean_literal go to state 73
1362
+ datetime_literal go to state 74
1363
+ general_literal go to state 76
1364
+ table_name go to state 17
1365
+ sign go to state 79
1366
+ unsigned_numeric_literal go to state 80
1367
+ exact_numeric_literal go to state 81
1368
+ approximate_numeric_literal go to state 82
1369
+ mantissa go to state 85
1370
+
1371
+ state 105
1372
+
1373
+ 32) boolean_term : boolean_term AND _ boolean_factor
1374
+
1375
+ period shift, and go to state 84
1376
+ SCORE shift, and go to state 15
1377
+ left_paren shift, and go to state 59
1378
+ NOT shift, and go to state 55
1379
+ ANY shift, and go to state 69
1380
+ IN_FOLDER shift, and go to state 71
1381
+ IN_TREE shift, and go to state 72
1382
+ signed_numeric_literal shift, and go to state 75
1383
+ identifier shift, and go to state 18
1384
+ quote shift, and go to state 77
1385
+ TIMESTAMP shift, and go to state 78
1386
+ unsigned_integer shift, and go to state 83
1387
+ plus_sign shift, and go to state 86
1388
+ minus_sign shift, and go to state 87
1389
+ TRUE shift, and go to state 88
1390
+ FALSE shift, and go to state 89
1391
+
1392
+ numeric_value_function go to state 13
1393
+ column_reference go to state 51
1394
+ qualifier go to state 29
1395
+ column_name go to state 16
1396
+ boolean_factor go to state 136
1397
+ boolean_test go to state 56
1398
+ boolean_primary go to state 57
1399
+ predicate go to state 58
1400
+ quantified_comparison_predicate go to state 60
1401
+ comparison_predicate go to state 61
1402
+ folder_predicate go to state 62
1403
+ in_predicate go to state 63
1404
+ like_predicate go to state 64
1405
+ null_predicate go to state 65
1406
+ quantified_in_predicate go to state 66
1407
+ value_expression go to state 67
1408
+ literal go to state 68
1409
+ depth_selector go to state 70
1410
+ boolean_literal go to state 73
1411
+ datetime_literal go to state 74
1412
+ general_literal go to state 76
1413
+ table_name go to state 17
1414
+ sign go to state 79
1415
+ unsigned_numeric_literal go to state 80
1416
+ exact_numeric_literal go to state 81
1417
+ approximate_numeric_literal go to state 82
1418
+ mantissa go to state 85
1419
+
1420
+ state 106
1421
+
1422
+ 34) boolean_factor : NOT boolean_test _
1423
+
1424
+ $default reduce using rule 34 (boolean_factor)
1425
+
1426
+
1427
+ state 107
1428
+
1429
+ 30) search_condition : search_condition _ OR boolean_term
1430
+ 38) boolean_primary : left_paren search_condition _ right_paren
1431
+
1432
+ right_paren shift, and go to state 137
1433
+ OR shift, and go to state 104
1434
+
1435
+
1436
+ state 108
1437
+
1438
+ 46) comparison_predicate : value_expression equals_operator _ literal
1439
+
1440
+ period shift, and go to state 84
1441
+ signed_numeric_literal shift, and go to state 75
1442
+ quote shift, and go to state 77
1443
+ TIMESTAMP shift, and go to state 78
1444
+ unsigned_integer shift, and go to state 83
1445
+ plus_sign shift, and go to state 86
1446
+ minus_sign shift, and go to state 87
1447
+ TRUE shift, and go to state 88
1448
+ FALSE shift, and go to state 89
1449
+
1450
+ literal go to state 138
1451
+ boolean_literal go to state 73
1452
+ datetime_literal go to state 74
1453
+ general_literal go to state 76
1454
+ sign go to state 79
1455
+ unsigned_numeric_literal go to state 80
1456
+ exact_numeric_literal go to state 81
1457
+ approximate_numeric_literal go to state 82
1458
+ mantissa go to state 85
1459
+
1460
+ state 109
1461
+
1462
+ 47) comparison_predicate : value_expression not_equals_operator _ literal
1463
+
1464
+ period shift, and go to state 84
1465
+ signed_numeric_literal shift, and go to state 75
1466
+ quote shift, and go to state 77
1467
+ TIMESTAMP shift, and go to state 78
1468
+ unsigned_integer shift, and go to state 83
1469
+ plus_sign shift, and go to state 86
1470
+ minus_sign shift, and go to state 87
1471
+ TRUE shift, and go to state 88
1472
+ FALSE shift, and go to state 89
1473
+
1474
+ literal go to state 139
1475
+ boolean_literal go to state 73
1476
+ datetime_literal go to state 74
1477
+ general_literal go to state 76
1478
+ sign go to state 79
1479
+ unsigned_numeric_literal go to state 80
1480
+ exact_numeric_literal go to state 81
1481
+ approximate_numeric_literal go to state 82
1482
+ mantissa go to state 85
1483
+
1484
+ state 110
1485
+
1486
+ 48) comparison_predicate : value_expression less_than_operator _ literal
1487
+
1488
+ period shift, and go to state 84
1489
+ signed_numeric_literal shift, and go to state 75
1490
+ quote shift, and go to state 77
1491
+ TIMESTAMP shift, and go to state 78
1492
+ unsigned_integer shift, and go to state 83
1493
+ plus_sign shift, and go to state 86
1494
+ minus_sign shift, and go to state 87
1495
+ TRUE shift, and go to state 88
1496
+ FALSE shift, and go to state 89
1497
+
1498
+ literal go to state 140
1499
+ boolean_literal go to state 73
1500
+ datetime_literal go to state 74
1501
+ general_literal go to state 76
1502
+ sign go to state 79
1503
+ unsigned_numeric_literal go to state 80
1504
+ exact_numeric_literal go to state 81
1505
+ approximate_numeric_literal go to state 82
1506
+ mantissa go to state 85
1507
+
1508
+ state 111
1509
+
1510
+ 49) comparison_predicate : value_expression greater_than_operator _ literal
1511
+
1512
+ period shift, and go to state 84
1513
+ signed_numeric_literal shift, and go to state 75
1514
+ quote shift, and go to state 77
1515
+ TIMESTAMP shift, and go to state 78
1516
+ unsigned_integer shift, and go to state 83
1517
+ plus_sign shift, and go to state 86
1518
+ minus_sign shift, and go to state 87
1519
+ TRUE shift, and go to state 88
1520
+ FALSE shift, and go to state 89
1521
+
1522
+ literal go to state 141
1523
+ boolean_literal go to state 73
1524
+ datetime_literal go to state 74
1525
+ general_literal go to state 76
1526
+ sign go to state 79
1527
+ unsigned_numeric_literal go to state 80
1528
+ exact_numeric_literal go to state 81
1529
+ approximate_numeric_literal go to state 82
1530
+ mantissa go to state 85
1531
+
1532
+ state 112
1533
+
1534
+ 50) comparison_predicate : value_expression less_than_or_equals_operator _ literal
1535
+
1536
+ period shift, and go to state 84
1537
+ signed_numeric_literal shift, and go to state 75
1538
+ quote shift, and go to state 77
1539
+ TIMESTAMP shift, and go to state 78
1540
+ unsigned_integer shift, and go to state 83
1541
+ plus_sign shift, and go to state 86
1542
+ minus_sign shift, and go to state 87
1543
+ TRUE shift, and go to state 88
1544
+ FALSE shift, and go to state 89
1545
+
1546
+ literal go to state 142
1547
+ boolean_literal go to state 73
1548
+ datetime_literal go to state 74
1549
+ general_literal go to state 76
1550
+ sign go to state 79
1551
+ unsigned_numeric_literal go to state 80
1552
+ exact_numeric_literal go to state 81
1553
+ approximate_numeric_literal go to state 82
1554
+ mantissa go to state 85
1555
+
1556
+ state 113
1557
+
1558
+ 51) comparison_predicate : value_expression greater_than_or_equals_operator _ literal
1559
+
1560
+ period shift, and go to state 84
1561
+ signed_numeric_literal shift, and go to state 75
1562
+ quote shift, and go to state 77
1563
+ TIMESTAMP shift, and go to state 78
1564
+ unsigned_integer shift, and go to state 83
1565
+ plus_sign shift, and go to state 86
1566
+ minus_sign shift, and go to state 87
1567
+ TRUE shift, and go to state 88
1568
+ FALSE shift, and go to state 89
1569
+
1570
+ literal go to state 143
1571
+ boolean_literal go to state 73
1572
+ datetime_literal go to state 74
1573
+ general_literal go to state 76
1574
+ sign go to state 79
1575
+ unsigned_numeric_literal go to state 80
1576
+ exact_numeric_literal go to state 81
1577
+ approximate_numeric_literal go to state 82
1578
+ mantissa go to state 85
1579
+
1580
+ state 114
1581
+
1582
+ 60) quantified_comparison_predicate : literal equals_operator _ ANY column_reference
1583
+
1584
+ ANY shift, and go to state 144
1585
+
1586
+
1587
+ state 115
1588
+
1589
+ 61) quantified_in_predicate : ANY column_reference _ NOT IN left_paren in_value_list right_paren
1590
+ 62) quantified_in_predicate : ANY column_reference _ IN left_paren in_value_list right_paren
1591
+
1592
+ NOT shift, and go to state 145
1593
+ IN shift, and go to state 146
1594
+
1595
+
1596
+ state 116
1597
+
1598
+ 63) folder_predicate : depth_selector left_paren _ qualifier comma folder_id right_paren
1599
+ 64) folder_predicate : depth_selector left_paren _ folder_id right_paren
1600
+
1601
+ identifier shift, and go to state 149
1602
+
1603
+ qualifier go to state 147
1604
+ folder_id go to state 148
1605
+ table_name go to state 17
1606
+
1607
+ state 117
1608
+
1609
+ 85) general_literal : quote character_string_literal _ quote
1610
+
1611
+ quote shift, and go to state 150
1612
+
1613
+
1614
+ state 118
1615
+
1616
+ 86) general_literal : quote quote _
1617
+
1618
+ $default reduce using rule 86 (general_literal)
1619
+
1620
+
1621
+ state 119
1622
+
1623
+ 88) datetime_literal : TIMESTAMP date_string _ @1 signed_numeric_literal
1624
+
1625
+ $default reduce using rule 87 (@1)
1626
+
1627
+ @1 go to state 151
1628
+
1629
+ state 120
1630
+
1631
+ 89) datetime_literal : sign unsigned_numeric_literal _
1632
+
1633
+ $default reduce using rule 89 (datetime_literal)
1634
+
1635
+
1636
+ state 121
1637
+
1638
+ 93) exact_numeric_literal : unsigned_integer period _ unsigned_integer
1639
+ 94) exact_numeric_literal : unsigned_integer period _
1640
+
1641
+ unsigned_integer shift, and go to state 152
1642
+ $default reduce using rule 94 (exact_numeric_literal)
1643
+
1644
+
1645
+ state 122
1646
+
1647
+ 95) exact_numeric_literal : period unsigned_integer _
1648
+
1649
+ $default reduce using rule 95 (exact_numeric_literal)
1650
+
1651
+
1652
+ state 123
1653
+
1654
+ 97) approximate_numeric_literal : mantissa E _ exponent
1655
+
1656
+ unsigned_integer shift, and go to state 156
1657
+ plus_sign shift, and go to state 86
1658
+ minus_sign shift, and go to state 87
1659
+
1660
+ exponent go to state 153
1661
+ signed_integer go to state 154
1662
+ sign go to state 155
1663
+
1664
+ state 124
1665
+
1666
+ 22) joined_table : table_reference _ JOIN table_reference join_specification
1667
+ 22) joined_table : table_reference JOIN table_reference _ join_specification
1668
+ 23) joined_table : table_reference _ join_type JOIN table_reference join_specification
1669
+
1670
+ JOIN shift, and go to state 90
1671
+ INNER shift, and go to state 92
1672
+ LEFT shift, and go to state 93
1673
+ ON shift, and go to state 158
1674
+
1675
+ join_specification go to state 157
1676
+ join_type go to state 91
1677
+
1678
+ state 125
1679
+
1680
+ 23) joined_table : table_reference join_type JOIN _ table_reference join_specification
1681
+
1682
+ left_paren shift, and go to state 39
1683
+ identifier shift, and go to state 40
1684
+
1685
+ table_name go to state 37
1686
+ joined_table go to state 38
1687
+ table_reference go to state 159
1688
+
1689
+ state 126
1690
+
1691
+ 25) join_type : LEFT OUTER _
1692
+
1693
+ $default reduce using rule 25 (join_type)
1694
+
1695
+
1696
+ state 127
1697
+
1698
+ 17) table_reference : table_name AS correlation_name _
1699
+
1700
+ $default reduce using rule 17 (table_reference)
1701
+
1702
+
1703
+ state 128
1704
+
1705
+ 21) joined_table : left_paren joined_table right_paren _
1706
+
1707
+ $default reduce using rule 21 (joined_table)
1708
+
1709
+
1710
+ state 129
1711
+
1712
+ 52) in_predicate : column_reference NOT IN _ left_paren in_value_list right_paren
1713
+
1714
+ left_paren shift, and go to state 160
1715
+
1716
+
1717
+ state 130
1718
+
1719
+ 58) like_predicate : column_reference NOT LIKE _ general_literal
1720
+
1721
+ quote shift, and go to state 77
1722
+
1723
+ general_literal go to state 161
1724
+
1725
+ state 131
1726
+
1727
+ 53) in_predicate : column_reference IN left_paren _ in_value_list right_paren
1728
+
1729
+ period shift, and go to state 84
1730
+ signed_numeric_literal shift, and go to state 75
1731
+ quote shift, and go to state 77
1732
+ TIMESTAMP shift, and go to state 78
1733
+ unsigned_integer shift, and go to state 83
1734
+ plus_sign shift, and go to state 86
1735
+ minus_sign shift, and go to state 87
1736
+ TRUE shift, and go to state 88
1737
+ FALSE shift, and go to state 89
1738
+
1739
+ in_value_list go to state 162
1740
+ literal go to state 163
1741
+ boolean_literal go to state 73
1742
+ datetime_literal go to state 74
1743
+ general_literal go to state 76
1744
+ sign go to state 79
1745
+ unsigned_numeric_literal go to state 80
1746
+ exact_numeric_literal go to state 81
1747
+ approximate_numeric_literal go to state 82
1748
+ mantissa go to state 85
1749
+
1750
+ state 132
1751
+
1752
+ 56) null_predicate : column_reference IS NOT _ NULL
1753
+
1754
+ NULL shift, and go to state 164
1755
+
1756
+
1757
+ state 133
1758
+
1759
+ 57) null_predicate : column_reference IS NULL _
1760
+
1761
+ $default reduce using rule 57 (null_predicate)
1762
+
1763
+
1764
+ state 134
1765
+
1766
+ 59) like_predicate : column_reference LIKE general_literal _
1767
+
1768
+ $default reduce using rule 59 (like_predicate)
1769
+
1770
+
1771
+ state 135
1772
+
1773
+ 30) search_condition : search_condition OR boolean_term _
1774
+ 32) boolean_term : boolean_term _ AND boolean_factor
1775
+
1776
+ AND shift, and go to state 105
1777
+ $default reduce using rule 30 (search_condition)
1778
+
1779
+
1780
+ state 136
1781
+
1782
+ 32) boolean_term : boolean_term AND boolean_factor _
1783
+
1784
+ $default reduce using rule 32 (boolean_term)
1785
+
1786
+
1787
+ state 137
1788
+
1789
+ 38) boolean_primary : left_paren search_condition right_paren _
1790
+
1791
+ $default reduce using rule 38 (boolean_primary)
1792
+
1793
+
1794
+ state 138
1795
+
1796
+ 46) comparison_predicate : value_expression equals_operator literal _
1797
+
1798
+ $default reduce using rule 46 (comparison_predicate)
1799
+
1800
+
1801
+ state 139
1802
+
1803
+ 47) comparison_predicate : value_expression not_equals_operator literal _
1804
+
1805
+ $default reduce using rule 47 (comparison_predicate)
1806
+
1807
+
1808
+ state 140
1809
+
1810
+ 48) comparison_predicate : value_expression less_than_operator literal _
1811
+
1812
+ $default reduce using rule 48 (comparison_predicate)
1813
+
1814
+
1815
+ state 141
1816
+
1817
+ 49) comparison_predicate : value_expression greater_than_operator literal _
1818
+
1819
+ $default reduce using rule 49 (comparison_predicate)
1820
+
1821
+
1822
+ state 142
1823
+
1824
+ 50) comparison_predicate : value_expression less_than_or_equals_operator literal _
1825
+
1826
+ $default reduce using rule 50 (comparison_predicate)
1827
+
1828
+
1829
+ state 143
1830
+
1831
+ 51) comparison_predicate : value_expression greater_than_or_equals_operator literal _
1832
+
1833
+ $default reduce using rule 51 (comparison_predicate)
1834
+
1835
+
1836
+ state 144
1837
+
1838
+ 60) quantified_comparison_predicate : literal equals_operator ANY _ column_reference
1839
+
1840
+ identifier shift, and go to state 18
1841
+
1842
+ qualifier go to state 29
1843
+ column_name go to state 16
1844
+ column_reference go to state 165
1845
+ table_name go to state 17
1846
+
1847
+ state 145
1848
+
1849
+ 61) quantified_in_predicate : ANY column_reference NOT _ IN left_paren in_value_list right_paren
1850
+
1851
+ IN shift, and go to state 166
1852
+
1853
+
1854
+ state 146
1855
+
1856
+ 62) quantified_in_predicate : ANY column_reference IN _ left_paren in_value_list right_paren
1857
+
1858
+ left_paren shift, and go to state 167
1859
+
1860
+
1861
+ state 147
1862
+
1863
+ 63) folder_predicate : depth_selector left_paren qualifier _ comma folder_id right_paren
1864
+
1865
+ comma shift, and go to state 168
1866
+
1867
+
1868
+ state 148
1869
+
1870
+ 64) folder_predicate : depth_selector left_paren folder_id _ right_paren
1871
+
1872
+ right_paren shift, and go to state 169
1873
+
1874
+
1875
+ state 149
1876
+
1877
+ 82) folder_id : identifier _
1878
+ 83) table_name : identifier _
1879
+
1880
+ comma reduce using rule 83 (table_name)
1881
+ $default reduce using rule 82 (folder_id)
1882
+
1883
+
1884
+ state 150
1885
+
1886
+ 85) general_literal : quote character_string_literal quote _
1887
+
1888
+ $default reduce using rule 85 (general_literal)
1889
+
1890
+
1891
+ state 151
1892
+
1893
+ 88) datetime_literal : TIMESTAMP date_string @1 _ signed_numeric_literal
1894
+
1895
+ signed_numeric_literal shift, and go to state 170
1896
+
1897
+
1898
+ state 152
1899
+
1900
+ 93) exact_numeric_literal : unsigned_integer period unsigned_integer _
1901
+
1902
+ $default reduce using rule 93 (exact_numeric_literal)
1903
+
1904
+
1905
+ state 153
1906
+
1907
+ 97) approximate_numeric_literal : mantissa E exponent _
1908
+
1909
+ $default reduce using rule 97 (approximate_numeric_literal)
1910
+
1911
+
1912
+ state 154
1913
+
1914
+ 99) exponent : signed_integer _
1915
+
1916
+ $default reduce using rule 99 (exponent)
1917
+
1918
+
1919
+ state 155
1920
+
1921
+ 100) signed_integer : sign _ unsigned_integer
1922
+
1923
+ unsigned_integer shift, and go to state 171
1924
+
1925
+
1926
+ state 156
1927
+
1928
+ 101) signed_integer : unsigned_integer _
1929
+
1930
+ $default reduce using rule 101 (signed_integer)
1931
+
1932
+
1933
+ state 157
1934
+
1935
+ 22) joined_table : table_reference JOIN table_reference join_specification _
1936
+
1937
+ $default reduce using rule 22 (joined_table)
1938
+
1939
+
1940
+ state 158
1941
+
1942
+ 27) join_specification : ON _ column_reference equals_operator column_reference
1943
+
1944
+ identifier shift, and go to state 18
1945
+
1946
+ qualifier go to state 29
1947
+ column_name go to state 16
1948
+ column_reference go to state 172
1949
+ table_name go to state 17
1950
+
1951
+ state 159
1952
+
1953
+ 22) joined_table : table_reference _ JOIN table_reference join_specification
1954
+ 23) joined_table : table_reference _ join_type JOIN table_reference join_specification
1955
+ 23) joined_table : table_reference join_type JOIN table_reference _ join_specification
1956
+
1957
+ JOIN shift, and go to state 90
1958
+ INNER shift, and go to state 92
1959
+ LEFT shift, and go to state 93
1960
+ ON shift, and go to state 158
1961
+
1962
+ join_type go to state 91
1963
+ join_specification go to state 173
1964
+
1965
+ state 160
1966
+
1967
+ 52) in_predicate : column_reference NOT IN left_paren _ in_value_list right_paren
1968
+
1969
+ period shift, and go to state 84
1970
+ signed_numeric_literal shift, and go to state 75
1971
+ quote shift, and go to state 77
1972
+ TIMESTAMP shift, and go to state 78
1973
+ unsigned_integer shift, and go to state 83
1974
+ plus_sign shift, and go to state 86
1975
+ minus_sign shift, and go to state 87
1976
+ TRUE shift, and go to state 88
1977
+ FALSE shift, and go to state 89
1978
+
1979
+ in_value_list go to state 174
1980
+ literal go to state 163
1981
+ boolean_literal go to state 73
1982
+ datetime_literal go to state 74
1983
+ general_literal go to state 76
1984
+ sign go to state 79
1985
+ unsigned_numeric_literal go to state 80
1986
+ exact_numeric_literal go to state 81
1987
+ approximate_numeric_literal go to state 82
1988
+ mantissa go to state 85
1989
+
1990
+ state 161
1991
+
1992
+ 58) like_predicate : column_reference NOT LIKE general_literal _
1993
+
1994
+ $default reduce using rule 58 (like_predicate)
1995
+
1996
+
1997
+ state 162
1998
+
1999
+ 53) in_predicate : column_reference IN left_paren in_value_list _ right_paren
2000
+ 54) in_value_list : in_value_list _ comma literal
2001
+
2002
+ comma shift, and go to state 176
2003
+ right_paren shift, and go to state 175
2004
+
2005
+
2006
+ state 163
2007
+
2008
+ 55) in_value_list : literal _
2009
+
2010
+ $default reduce using rule 55 (in_value_list)
2011
+
2012
+
2013
+ state 164
2014
+
2015
+ 56) null_predicate : column_reference IS NOT NULL _
2016
+
2017
+ $default reduce using rule 56 (null_predicate)
2018
+
2019
+
2020
+ state 165
2021
+
2022
+ 60) quantified_comparison_predicate : literal equals_operator ANY column_reference _
2023
+
2024
+ $default reduce using rule 60 (quantified_comparison_predicate)
2025
+
2026
+
2027
+ state 166
2028
+
2029
+ 61) quantified_in_predicate : ANY column_reference NOT IN _ left_paren in_value_list right_paren
2030
+
2031
+ left_paren shift, and go to state 177
2032
+
2033
+
2034
+ state 167
2035
+
2036
+ 62) quantified_in_predicate : ANY column_reference IN left_paren _ in_value_list right_paren
2037
+
2038
+ period shift, and go to state 84
2039
+ signed_numeric_literal shift, and go to state 75
2040
+ quote shift, and go to state 77
2041
+ TIMESTAMP shift, and go to state 78
2042
+ unsigned_integer shift, and go to state 83
2043
+ plus_sign shift, and go to state 86
2044
+ minus_sign shift, and go to state 87
2045
+ TRUE shift, and go to state 88
2046
+ FALSE shift, and go to state 89
2047
+
2048
+ in_value_list go to state 178
2049
+ literal go to state 163
2050
+ boolean_literal go to state 73
2051
+ datetime_literal go to state 74
2052
+ general_literal go to state 76
2053
+ sign go to state 79
2054
+ unsigned_numeric_literal go to state 80
2055
+ exact_numeric_literal go to state 81
2056
+ approximate_numeric_literal go to state 82
2057
+ mantissa go to state 85
2058
+
2059
+ state 168
2060
+
2061
+ 63) folder_predicate : depth_selector left_paren qualifier comma _ folder_id right_paren
2062
+
2063
+ identifier shift, and go to state 180
2064
+
2065
+ folder_id go to state 179
2066
+
2067
+ state 169
2068
+
2069
+ 64) folder_predicate : depth_selector left_paren folder_id right_paren _
2070
+
2071
+ $default reduce using rule 64 (folder_predicate)
2072
+
2073
+
2074
+ state 170
2075
+
2076
+ 88) datetime_literal : TIMESTAMP date_string @1 signed_numeric_literal _
2077
+
2078
+ $default reduce using rule 88 (datetime_literal)
2079
+
2080
+
2081
+ state 171
2082
+
2083
+ 100) signed_integer : sign unsigned_integer _
2084
+
2085
+ $default reduce using rule 100 (signed_integer)
2086
+
2087
+
2088
+ state 172
2089
+
2090
+ 27) join_specification : ON column_reference _ equals_operator column_reference
2091
+
2092
+ equals_operator shift, and go to state 181
2093
+
2094
+
2095
+ state 173
2096
+
2097
+ 23) joined_table : table_reference join_type JOIN table_reference join_specification _
2098
+
2099
+ $default reduce using rule 23 (joined_table)
2100
+
2101
+
2102
+ state 174
2103
+
2104
+ 52) in_predicate : column_reference NOT IN left_paren in_value_list _ right_paren
2105
+ 54) in_value_list : in_value_list _ comma literal
2106
+
2107
+ comma shift, and go to state 176
2108
+ right_paren shift, and go to state 182
2109
+
2110
+
2111
+ state 175
2112
+
2113
+ 53) in_predicate : column_reference IN left_paren in_value_list right_paren _
2114
+
2115
+ $default reduce using rule 53 (in_predicate)
2116
+
2117
+
2118
+ state 176
2119
+
2120
+ 54) in_value_list : in_value_list comma _ literal
2121
+
2122
+ period shift, and go to state 84
2123
+ signed_numeric_literal shift, and go to state 75
2124
+ quote shift, and go to state 77
2125
+ TIMESTAMP shift, and go to state 78
2126
+ unsigned_integer shift, and go to state 83
2127
+ plus_sign shift, and go to state 86
2128
+ minus_sign shift, and go to state 87
2129
+ TRUE shift, and go to state 88
2130
+ FALSE shift, and go to state 89
2131
+
2132
+ literal go to state 183
2133
+ boolean_literal go to state 73
2134
+ datetime_literal go to state 74
2135
+ general_literal go to state 76
2136
+ sign go to state 79
2137
+ unsigned_numeric_literal go to state 80
2138
+ exact_numeric_literal go to state 81
2139
+ approximate_numeric_literal go to state 82
2140
+ mantissa go to state 85
2141
+
2142
+ state 177
2143
+
2144
+ 61) quantified_in_predicate : ANY column_reference NOT IN left_paren _ in_value_list right_paren
2145
+
2146
+ period shift, and go to state 84
2147
+ signed_numeric_literal shift, and go to state 75
2148
+ quote shift, and go to state 77
2149
+ TIMESTAMP shift, and go to state 78
2150
+ unsigned_integer shift, and go to state 83
2151
+ plus_sign shift, and go to state 86
2152
+ minus_sign shift, and go to state 87
2153
+ TRUE shift, and go to state 88
2154
+ FALSE shift, and go to state 89
2155
+
2156
+ in_value_list go to state 184
2157
+ literal go to state 163
2158
+ boolean_literal go to state 73
2159
+ datetime_literal go to state 74
2160
+ general_literal go to state 76
2161
+ sign go to state 79
2162
+ unsigned_numeric_literal go to state 80
2163
+ exact_numeric_literal go to state 81
2164
+ approximate_numeric_literal go to state 82
2165
+ mantissa go to state 85
2166
+
2167
+ state 178
2168
+
2169
+ 54) in_value_list : in_value_list _ comma literal
2170
+ 62) quantified_in_predicate : ANY column_reference IN left_paren in_value_list _ right_paren
2171
+
2172
+ comma shift, and go to state 176
2173
+ right_paren shift, and go to state 185
2174
+
2175
+
2176
+ state 179
2177
+
2178
+ 63) folder_predicate : depth_selector left_paren qualifier comma folder_id _ right_paren
2179
+
2180
+ right_paren shift, and go to state 186
2181
+
2182
+
2183
+ state 180
2184
+
2185
+ 82) folder_id : identifier _
2186
+
2187
+ $default reduce using rule 82 (folder_id)
2188
+
2189
+
2190
+ state 181
2191
+
2192
+ 27) join_specification : ON column_reference equals_operator _ column_reference
2193
+
2194
+ identifier shift, and go to state 18
2195
+
2196
+ qualifier go to state 29
2197
+ column_name go to state 16
2198
+ column_reference go to state 187
2199
+ table_name go to state 17
2200
+
2201
+ state 182
2202
+
2203
+ 52) in_predicate : column_reference NOT IN left_paren in_value_list right_paren _
2204
+
2205
+ $default reduce using rule 52 (in_predicate)
2206
+
2207
+
2208
+ state 183
2209
+
2210
+ 54) in_value_list : in_value_list comma literal _
2211
+
2212
+ $default reduce using rule 54 (in_value_list)
2213
+
2214
+
2215
+ state 184
2216
+
2217
+ 54) in_value_list : in_value_list _ comma literal
2218
+ 61) quantified_in_predicate : ANY column_reference NOT IN left_paren in_value_list _ right_paren
2219
+
2220
+ comma shift, and go to state 176
2221
+ right_paren shift, and go to state 188
2222
+
2223
+
2224
+ state 185
2225
+
2226
+ 62) quantified_in_predicate : ANY column_reference IN left_paren in_value_list right_paren _
2227
+
2228
+ $default reduce using rule 62 (quantified_in_predicate)
2229
+
2230
+
2231
+ state 186
2232
+
2233
+ 63) folder_predicate : depth_selector left_paren qualifier comma folder_id right_paren _
2234
+
2235
+ $default reduce using rule 63 (folder_predicate)
2236
+
2237
+
2238
+ state 187
2239
+
2240
+ 27) join_specification : ON column_reference equals_operator column_reference _
2241
+
2242
+ $default reduce using rule 27 (join_specification)
2243
+
2244
+
2245
+ state 188
2246
+
2247
+ 61) quantified_in_predicate : ANY column_reference NOT IN left_paren in_value_list right_paren _
2248
+
2249
+ $default reduce using rule 61 (quantified_in_predicate)
2250
+