sql-parser 0.0.1

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.
@@ -0,0 +1,13 @@
1
+ module SQLParser
2
+
3
+ require 'strscan'
4
+ require 'date'
5
+
6
+ require 'racc/parser'
7
+
8
+ require_relative 'sql/version'
9
+ require_relative 'sql/statement'
10
+ require_relative 'sql/sql_visitor'
11
+ require_relative 'sql/parser.racc.rb'
12
+
13
+ end
@@ -0,0 +1,315 @@
1
+ class SQLParser::Parser
2
+
3
+ rule
4
+ # dynamic sql
5
+ direct_sql_statement
6
+ : direct_sql_data_statement
7
+
8
+ direct_sql_data_statement
9
+ : direct_select_statement_multiple_rows
10
+
11
+ direct_select_statement_multiple_rows
12
+ : query_expression order_by_clause { result = SQL::Statement::DirectSelect.new(val[0], val[1]) }
13
+
14
+ # module contents
15
+ order_by_clause
16
+ : # no action
17
+ | ORDER BY sort_specification_list { result = SQL::Statement::OrderBy.new(val[2]) }
18
+
19
+ sort_specification_list
20
+ : sort_specification_list comma sort_specification { result = Array(val[0]) + Array(val[2]) }
21
+ | sort_specification
22
+
23
+ sort_specification
24
+ : sort_key ordering_specification { result = val[1].new(val[0]) }
25
+
26
+ sort_key
27
+ : column_name
28
+ | unsigned_integer { result = SQL::Statement::Integer.new(val[0]) }
29
+
30
+ ordering_specification
31
+ : { result = SQL::Statement::Ascending } # default
32
+ | ASC { result = SQL::Statement::Ascending }
33
+ | DESC { result = SQL::Statement::Descending }
34
+
35
+ # queries
36
+ subquery
37
+ # FIXME: shortcut
38
+ : left_paren query_expression right_paren { result = SQL::Statement::Subquery.new(val[1]) }
39
+
40
+ query_expression
41
+ : query_specification
42
+
43
+ query_specification
44
+ : SELECT select_list table_expression { result = SQL::Statement::Select.new(val[1], val[2]) }
45
+ | SELECT select_list { result = SQL::Statement::Select.new(val[1]) }
46
+
47
+ select_list
48
+ : asterisk { result = SQL::Statement::All.new }
49
+ | select_sublist { result = SQL::Statement::SelectList.new(val[0]) }
50
+
51
+ select_sublist
52
+ : derived_column comma select_sublist { result = Array(val[0]) + Array(val[2]) }
53
+ | derived_column
54
+
55
+ derived_column
56
+ : value_expression AS column_name { result = SQL::Statement::As.new(val[0], val[2]) }
57
+ | value_expression column_name { result = SQL::Statement::As.new(val[0], val[1]) }
58
+ | value_expression
59
+
60
+ table_expression
61
+ : from_clause where_clause group_by_clause having_clause { result = SQL::Statement::TableExpression.new(val[0], val[1], val[2], val[3]) }
62
+
63
+ from_clause
64
+ : FROM table_reference { result = SQL::Statement::FromClause.new(val[1]) }
65
+
66
+ table_reference
67
+ : table_name AS column_name { result = SQL::Statement::As.new(val[0], val[2]) }
68
+ | table_name column_name { result = SQL::Statement::As.new(val[0], val[1]) }
69
+ | table_name
70
+ | joined_table
71
+
72
+ table_subquery
73
+ : subquery
74
+
75
+ joined_table
76
+ : cross_join
77
+ | qualified_join
78
+
79
+ cross_join
80
+ : table_reference comma table_name { result = SQL::Statement::CrossJoin.new(val[0], val[2]) }
81
+ | table_reference CROSS JOIN table_name { result = SQL::Statement::CrossJoin.new(val[0], val[3]) }
82
+
83
+ qualified_join
84
+ : table_reference join_type JOIN table_reference join_specification { result = val[1].new(val[0], val[3], val[4]) }
85
+
86
+ join_type
87
+ : INNER { result = SQL::Statement::InnerJoin }
88
+ | LEFT OUTER { result = SQL::Statement::LeftOuterJoin }
89
+ | LEFT { result = SQL::Statement::LeftJoin }
90
+ | RIGHT OUTER { result = SQL::Statement::RightOuterJoin }
91
+ | RIGHT { result = SQL::Statement::RightJoin }
92
+ | FULL { result = SQL::Statement::FullJoin }
93
+ | FULL OUTER { result = SQL::Statement::FullOuterJoin }
94
+
95
+ join_specification
96
+ : join_condition
97
+ | named_columns_join
98
+
99
+ join_condition
100
+ : ON search_condition { result = SQL::Statement::On.new(val[1]) }
101
+
102
+ named_columns_join
103
+ : USING left_paren join_column_list right_paren { result = SQL::Statement::Using.new(val[2]) }
104
+
105
+ join_column_list
106
+ : column_name_list
107
+
108
+ where_clause
109
+ : # no action
110
+ | WHERE search_condition { result = SQL::Statement::WhereClause.new(val[1]) }
111
+
112
+ group_by_clause
113
+ : # no action
114
+ | GROUP BY grouping_column_reference_list { result = SQL::Statement::GroupByClause.new(val[2]) }
115
+
116
+ grouping_column_reference_list
117
+ : grouping_column_reference_list comma grouping_column_reference { result = Array(val[0]) + Array(val[2]) }
118
+ | grouping_column_reference
119
+
120
+ grouping_column_reference
121
+ : column_reference
122
+
123
+ having_clause
124
+ : # no action
125
+ | HAVING search_condition { result = SQL::Statement::HavingClause.new(val[1]) }
126
+
127
+ # query expression components
128
+ row_subquery
129
+ : subquery
130
+
131
+ between_predicate
132
+ : row_value_constructor NOT BETWEEN row_value_constructor AND row_value_constructor { result = SQL::Statement::Not.new(SQL::Statement::Between.new(val[0], val[3], val[5])) }
133
+ | row_value_constructor BETWEEN row_value_constructor AND row_value_constructor { result = SQL::Statement::Between.new(val[0], val[2], val[4]) }
134
+
135
+ in_predicate
136
+ : row_value_constructor NOT IN in_predicate_value { result = SQL::Statement::Not.new(SQL::Statement::In.new(val[0], val[3])) }
137
+ | row_value_constructor IN in_predicate_value { result = SQL::Statement::In.new(val[0], val[2]) }
138
+
139
+ in_predicate_value
140
+ : table_subquery
141
+ | left_paren in_value_list right_paren { result = SQL::Statement::InValueList.new(val[1]) }
142
+
143
+ in_value_list
144
+ : value_expression comma in_value_list { result = Array(val[0]) + Array(val[2]) }
145
+ | value_expression
146
+
147
+ like_predicate
148
+ # FIXME: the SQL-92 grammar indicates these should be
149
+ # character_value_expression nodes, but changing them causes reduce/reduce
150
+ # conflicts.
151
+ : row_value_constructor NOT LIKE row_value_constructor { result = SQL::Statement::Not.new(SQL::Statement::Like.new(val[0], val[3])) }
152
+ | row_value_constructor LIKE row_value_constructor { result = SQL::Statement::Like.new(val[0], val[2]) }
153
+
154
+ null_predicate
155
+ : row_value_constructor IS NOT NULL { result = SQL::Statement::Not.new(SQL::Statement::Is.new(val[0], SQL::Statement::Null.new)) }
156
+ | row_value_constructor IS NULL { result = SQL::Statement::Is.new(val[0], SQL::Statement::Null.new) }
157
+
158
+ exists_predicate
159
+ : EXISTS table_subquery { result = SQL::Statement::Exists.new(val[1]) }
160
+
161
+ # constraints
162
+ table_name
163
+ : identifier { result = SQL::Statement::Table.new(val[0]) }
164
+
165
+ column_name_list
166
+ : column_name_list comma column_name { result = Array(val[0]) + Array(val[2]) }
167
+ | column_name
168
+
169
+ # search condition
170
+ search_condition
171
+ : boolean_term
172
+ | search_condition OR boolean_term { result = SQL::Statement::Or.new(val[0], val[2]) }
173
+
174
+ boolean_term
175
+ : boolean_factor
176
+ | boolean_term AND boolean_factor { result = SQL::Statement::And.new(val[0], val[2]) }
177
+
178
+ boolean_factor:
179
+ : NOT boolean_test { result = SQL::Statement::Not.new(val[1]) }
180
+ | boolean_test
181
+
182
+ boolean_test
183
+ : boolean_primary
184
+
185
+ boolean_primary
186
+ : predicate
187
+ | left_paren search_condition right_paren { result = val[1] }
188
+
189
+ predicate
190
+ : comparison_predicate
191
+ | between_predicate
192
+ | in_predicate
193
+ | like_predicate
194
+ | null_predicate
195
+ | exists_predicate
196
+
197
+ comparison_predicate
198
+ : row_value_constructor equals_operator row_value_constructor { result = SQL::Statement::Equals.new(val[0], val[2]) }
199
+ | row_value_constructor not_equals_operator row_value_constructor { result = SQL::Statement::Not.new(SQL::Statement::Equals.new(val[0], val[2])) }
200
+ | row_value_constructor less_than_operator row_value_constructor { result = SQL::Statement::Less.new(val[0], val[2]) }
201
+ | row_value_constructor greater_than_operator row_value_constructor { result = SQL::Statement::Greater.new(val[0], val[2]) }
202
+ | row_value_constructor less_than_or_equals_operator row_value_constructor { result = SQL::Statement::LessOrEquals.new(val[0], val[2]) }
203
+ | row_value_constructor greater_than_or_equals_operator row_value_constructor { result = SQL::Statement::GreaterOrEquals.new(val[0], val[2]) }
204
+
205
+ row_value_constructor
206
+ : row_value_constructor_element
207
+ | row_subquery
208
+
209
+ row_value_constructor_element
210
+ : value_expression
211
+
212
+ value_expression
213
+ : numeric_value_expression
214
+
215
+ numeric_value_expression
216
+ : term plus_sign numeric_value_expression { result = SQL::Statement::Add.new(val[0], val[2]) }
217
+ | term minus_sign numeric_value_expression { result = SQL::Statement::Subtract.new(val[0], val[2]) }
218
+ | term
219
+
220
+ term
221
+ : factor asterisk term { result = SQL::Statement::Multiply.new(val[0], val[2]) }
222
+ | factor solidus term { result = SQL::Statement::Divide.new(val[0], val[2]) }
223
+ | factor
224
+
225
+ factor
226
+ : sign value_expression_primary { result = val[0].new(val[1]) }
227
+ | value_expression_primary
228
+
229
+ value_expression_primary
230
+ : unsigned_value_specification
231
+ | column_reference
232
+ | set_function_specification
233
+ | left_paren value_expression right_paren { result = val[1] }
234
+
235
+ unsigned_value_specification
236
+ : unsigned_literal
237
+ | general_value_specification
238
+
239
+ unsigned_literal
240
+ : unsigned_numeric_literal
241
+ | general_literal
242
+
243
+ general_value_specification
244
+ : CURRENT_USER { result = SQL::Statement::CurrentUser.new }
245
+
246
+ column_reference
247
+ : qualifier period column_name { result = SQL::Statement::QualifiedColumn.new(val[0], val[2]) }
248
+ | column_name
249
+
250
+ qualifier
251
+ : table_name
252
+
253
+ set_function_specification
254
+ : COUNT left_paren asterisk right_paren { result = SQL::Statement::Count.new(SQL::Statement::All.new) }
255
+ | general_set_function
256
+
257
+ general_set_function
258
+ : COUNT left_paren value_expression right_paren { result = SQL::Statement::Count.new(val[2]) }
259
+ | AVG left_paren value_expression right_paren { result = SQL::Statement::Average.new(val[2]) }
260
+ | MAX left_paren value_expression right_paren { result = SQL::Statement::Maximum.new(val[2]) }
261
+ | MIN left_paren value_expression right_paren { result = SQL::Statement::Minimum.new(val[2]) }
262
+ | SUM left_paren value_expression right_paren { result = SQL::Statement::Sum.new(val[2]) }
263
+
264
+ # literal numbers, strings, dates and times
265
+ unsigned_numeric_literal
266
+ : exact_numeric_literal
267
+ | approximate_numeric_literal
268
+
269
+ exact_numeric_literal
270
+ : unsigned_integer period unsigned_integer { result = SQL::Statement::Float.new("#{val[0]}.#{val[2]}".to_f) }
271
+ | unsigned_integer period { result = SQL::Statement::Float.new(val[0]) }
272
+ | period unsigned_integer { result = SQL::Statement::Float.new("0.#{val[1]}".to_f) }
273
+ | unsigned_integer { result = SQL::Statement::Integer.new(val[0]) }
274
+
275
+ approximate_numeric_literal
276
+ : mantissa E exponent { result = SQL::Statement::ApproximateFloat.new(val[0], val[2]) }
277
+
278
+ mantissa
279
+ : exact_numeric_literal
280
+
281
+ exponent
282
+ : signed_integer
283
+
284
+ signed_integer
285
+ : sign unsigned_integer { result = val[0].new(SQL::Statement::Integer.new(val[1])) }
286
+ | unsigned_integer { result = SQL::Statement::Integer.new(val[0]) }
287
+
288
+ sign
289
+ : plus_sign { result = SQL::Statement::UnaryPlus }
290
+ | minus_sign { result = SQL::Statement::UnaryMinus }
291
+
292
+ # sql module
293
+ column_name
294
+ : identifier { result = SQL::Statement::Column.new(val[0]) }
295
+
296
+ # literals
297
+ general_literal
298
+ : quote character_string_literal quote { result = SQL::Statement::String.new(val[1]) }
299
+ | quote quote { result = SQL::Statement::String.new('') }
300
+ | datetime_literal
301
+
302
+ datetime_literal
303
+ : date_literal
304
+
305
+ date_literal
306
+ : DATE date_string { result = SQL::Statement::Date.new(val[1]) }
307
+
308
+ ---- header ----
309
+ require File.dirname(__FILE__) + '/parser.rex.rb'
310
+
311
+ ---- inner ----
312
+
313
+ def self.parse(sql)
314
+ new.scan_str(sql)
315
+ end
@@ -0,0 +1,1424 @@
1
+ require_relative 'parser.rex.rb'
2
+
3
+ module SQLParser
4
+
5
+ class Parser < Racc::Parser
6
+
7
+ module_eval <<'..end lib/sql/parser.racc modeval..id637f2c9ecb', 'lib/sql/parser.racc', 312
8
+
9
+ def self.parse(sql)
10
+ new.scan_str(sql)
11
+ end
12
+ ..end lib/sql/parser.racc modeval..id637f2c9ecb
13
+
14
+ ##### racc 1.4.5 generates ###
15
+
16
+ racc_reduce_table = [
17
+ 0, 0, :racc_error,
18
+ 1, 58, :_reduce_none,
19
+ 1, 59, :_reduce_none,
20
+ 2, 60, :_reduce_3,
21
+ 0, 62, :_reduce_none,
22
+ 3, 62, :_reduce_5,
23
+ 3, 63, :_reduce_6,
24
+ 1, 63, :_reduce_none,
25
+ 2, 64, :_reduce_8,
26
+ 1, 65, :_reduce_none,
27
+ 1, 65, :_reduce_10,
28
+ 0, 66, :_reduce_11,
29
+ 1, 66, :_reduce_12,
30
+ 1, 66, :_reduce_13,
31
+ 3, 68, :_reduce_14,
32
+ 1, 61, :_reduce_none,
33
+ 3, 69, :_reduce_16,
34
+ 2, 69, :_reduce_17,
35
+ 1, 70, :_reduce_18,
36
+ 1, 70, :_reduce_19,
37
+ 3, 72, :_reduce_20,
38
+ 1, 72, :_reduce_none,
39
+ 3, 73, :_reduce_22,
40
+ 2, 73, :_reduce_23,
41
+ 1, 73, :_reduce_none,
42
+ 4, 71, :_reduce_25,
43
+ 2, 75, :_reduce_26,
44
+ 3, 79, :_reduce_27,
45
+ 2, 79, :_reduce_28,
46
+ 1, 79, :_reduce_none,
47
+ 1, 79, :_reduce_none,
48
+ 1, 82, :_reduce_none,
49
+ 1, 81, :_reduce_none,
50
+ 1, 81, :_reduce_none,
51
+ 3, 83, :_reduce_34,
52
+ 4, 83, :_reduce_35,
53
+ 5, 84, :_reduce_36,
54
+ 1, 85, :_reduce_37,
55
+ 2, 85, :_reduce_38,
56
+ 1, 85, :_reduce_39,
57
+ 2, 85, :_reduce_40,
58
+ 1, 85, :_reduce_41,
59
+ 1, 85, :_reduce_42,
60
+ 2, 85, :_reduce_43,
61
+ 1, 86, :_reduce_none,
62
+ 1, 86, :_reduce_none,
63
+ 2, 87, :_reduce_46,
64
+ 4, 88, :_reduce_47,
65
+ 1, 90, :_reduce_none,
66
+ 0, 76, :_reduce_none,
67
+ 2, 76, :_reduce_50,
68
+ 0, 77, :_reduce_none,
69
+ 3, 77, :_reduce_52,
70
+ 3, 92, :_reduce_53,
71
+ 1, 92, :_reduce_none,
72
+ 1, 93, :_reduce_none,
73
+ 0, 78, :_reduce_none,
74
+ 2, 78, :_reduce_57,
75
+ 1, 95, :_reduce_none,
76
+ 6, 96, :_reduce_59,
77
+ 5, 96, :_reduce_60,
78
+ 4, 98, :_reduce_61,
79
+ 3, 98, :_reduce_62,
80
+ 1, 99, :_reduce_none,
81
+ 3, 99, :_reduce_64,
82
+ 3, 100, :_reduce_65,
83
+ 1, 100, :_reduce_none,
84
+ 4, 101, :_reduce_67,
85
+ 3, 101, :_reduce_68,
86
+ 4, 102, :_reduce_69,
87
+ 3, 102, :_reduce_70,
88
+ 2, 103, :_reduce_71,
89
+ 1, 80, :_reduce_72,
90
+ 3, 91, :_reduce_73,
91
+ 1, 91, :_reduce_none,
92
+ 1, 89, :_reduce_none,
93
+ 3, 89, :_reduce_76,
94
+ 1, 104, :_reduce_none,
95
+ 3, 104, :_reduce_78,
96
+ 2, 105, :_reduce_79,
97
+ 1, 105, :_reduce_none,
98
+ 1, 106, :_reduce_none,
99
+ 1, 107, :_reduce_none,
100
+ 3, 107, :_reduce_83,
101
+ 1, 108, :_reduce_none,
102
+ 1, 108, :_reduce_none,
103
+ 1, 108, :_reduce_none,
104
+ 1, 108, :_reduce_none,
105
+ 1, 108, :_reduce_none,
106
+ 1, 108, :_reduce_none,
107
+ 3, 109, :_reduce_90,
108
+ 3, 109, :_reduce_91,
109
+ 3, 109, :_reduce_92,
110
+ 3, 109, :_reduce_93,
111
+ 3, 109, :_reduce_94,
112
+ 3, 109, :_reduce_95,
113
+ 1, 97, :_reduce_none,
114
+ 1, 97, :_reduce_none,
115
+ 1, 110, :_reduce_none,
116
+ 1, 74, :_reduce_none,
117
+ 3, 111, :_reduce_100,
118
+ 3, 111, :_reduce_101,
119
+ 1, 111, :_reduce_none,
120
+ 3, 112, :_reduce_103,
121
+ 3, 112, :_reduce_104,
122
+ 1, 112, :_reduce_none,
123
+ 2, 113, :_reduce_106,
124
+ 1, 113, :_reduce_none,
125
+ 1, 115, :_reduce_none,
126
+ 1, 115, :_reduce_none,
127
+ 1, 115, :_reduce_none,
128
+ 3, 115, :_reduce_111,
129
+ 1, 116, :_reduce_none,
130
+ 1, 116, :_reduce_none,
131
+ 1, 118, :_reduce_none,
132
+ 1, 118, :_reduce_none,
133
+ 1, 119, :_reduce_116,
134
+ 3, 94, :_reduce_117,
135
+ 1, 94, :_reduce_none,
136
+ 1, 122, :_reduce_none,
137
+ 4, 117, :_reduce_120,
138
+ 1, 117, :_reduce_none,
139
+ 4, 123, :_reduce_122,
140
+ 4, 123, :_reduce_123,
141
+ 4, 123, :_reduce_124,
142
+ 4, 123, :_reduce_125,
143
+ 4, 123, :_reduce_126,
144
+ 1, 120, :_reduce_none,
145
+ 1, 120, :_reduce_none,
146
+ 3, 124, :_reduce_129,
147
+ 2, 124, :_reduce_130,
148
+ 2, 124, :_reduce_131,
149
+ 1, 124, :_reduce_132,
150
+ 3, 125, :_reduce_133,
151
+ 1, 126, :_reduce_none,
152
+ 1, 127, :_reduce_none,
153
+ 2, 128, :_reduce_136,
154
+ 1, 128, :_reduce_137,
155
+ 1, 114, :_reduce_138,
156
+ 1, 114, :_reduce_139,
157
+ 1, 67, :_reduce_140,
158
+ 3, 121, :_reduce_141,
159
+ 2, 121, :_reduce_142,
160
+ 1, 121, :_reduce_none,
161
+ 1, 129, :_reduce_none,
162
+ 2, 130, :_reduce_145 ]
163
+
164
+ racc_reduce_n = 146
165
+
166
+ racc_shift_n = 238
167
+
168
+ racc_action_table = [
169
+ 30, 59, 78, 42, 78, 74, 85, 118, 125, 187,
170
+ 204, 55, 56, 6, 99, 115, 205, 117, 30, 119,
171
+ 120, 42, 121, 123, 213, 210, 114, 72, 147, 17,
172
+ 72, 72, 148, 72, 58, 163, 30, 46, 48, 189,
173
+ 15, 18, 22, 26, 31, 33, 37, 17, 45, 149,
174
+ 10, 46, 48, 112, 113, 46, 48, 150, 15, 18,
175
+ 22, 26, 31, 33, 37, 17, 45, 151, 10, 30,
176
+ 75, 76, 42, 46, 48, 12, 15, 18, 22, 26,
177
+ 31, 33, 37, 110, 45, 153, 10, 30, 90, 118,
178
+ 189, 192, 155, 193, 194, 156, 157, 158, 17, 117,
179
+ 72, 119, 120, 162, 121, 123, 46, 48, 163, 15,
180
+ 18, 22, 26, 31, 33, 37, 17, 45, 30, 10,
181
+ 109, 141, 165, 72, 46, 48, 107, 15, 18, 22,
182
+ 26, 31, 33, 37, 181, 45, 182, 10, 30, 133,
183
+ 90, 42, 90, 6, 6, 102, 127, 17, 96, 90,
184
+ 188, 107, 116, 72, 70, 46, 48, 69, 15, 18,
185
+ 22, 26, 31, 33, 37, 68, 45, 17, 10, 30,
186
+ 67, 66, 189, 201, 65, 46, 48, 62, 15, 18,
187
+ 22, 26, 31, 33, 37, 60, 45, 30, 10, 57,
188
+ 189, 17, -134, 165, 54, -72, 201, 53, 17, 218,
189
+ 52, 221, 163, 222, 223, 51, 46, 48, 225, 15,
190
+ 18, 22, 26, 31, 33, 37, 17, 45, 30, 10,
191
+ 50, 42, 227, 6, 46, 48, 228, 15, 18, 22,
192
+ 26, 31, 33, 37, 17, 45, 72, 10, 163, 8,
193
+ 7, 30, 235, 236, 141, 72, nil, 17, nil, nil,
194
+ nil, nil, nil, nil, nil, 46, 48, nil, 15, 18,
195
+ 22, 26, 31, 33, 37, nil, 45, nil, 10, 127,
196
+ 17, 30, nil, nil, 42, nil, nil, nil, 46, 48,
197
+ nil, 15, 18, 22, 26, 31, 33, 37, nil, 45,
198
+ nil, 10, nil, nil, nil, nil, nil, nil, nil, 30,
199
+ 17, nil, 141, nil, nil, nil, nil, nil, 46, 48,
200
+ nil, 15, 18, 22, 26, 31, 33, 37, nil, 45,
201
+ 133, 10, 30, nil, nil, 42, nil, 127, 17, nil,
202
+ nil, nil, nil, nil, nil, nil, 46, 48, nil, 15,
203
+ 18, 22, 26, 31, 33, 37, nil, 45, nil, 10,
204
+ 30, 17, nil, 141, nil, nil, nil, nil, nil, 46,
205
+ 48, nil, 15, 18, 22, 26, 31, 33, 37, nil,
206
+ 45, 133, 10, 30, nil, nil, 42, nil, 127, 17,
207
+ nil, nil, nil, nil, nil, nil, nil, 46, 48, nil,
208
+ 15, 18, 22, 26, 31, 33, 37, nil, 45, nil,
209
+ 10, 30, 17, nil, 189, nil, nil, nil, nil, nil,
210
+ nil, nil, nil, 15, 18, 22, 26, 31, 33, 37,
211
+ nil, 45, nil, 10, 30, nil, nil, 189, nil, nil,
212
+ 17, nil, nil, nil, nil, nil, nil, nil, 46, 48,
213
+ nil, 15, 18, 22, 26, 31, 33, 37, nil, 45,
214
+ nil, 10, 30, 17, nil, 189, nil, nil, nil, nil,
215
+ nil, 46, 48, nil, 15, 18, 22, 26, 31, 33,
216
+ 37, nil, 45, nil, 10, 30, nil, nil, 189, nil,
217
+ nil, 17, nil, nil, nil, nil, nil, nil, nil, 46,
218
+ 48, nil, 15, 18, 22, 26, 31, 33, 37, nil,
219
+ 45, nil, 10, 30, 17, nil, 189, nil, nil, nil,
220
+ nil, nil, 46, 48, nil, 15, 18, 22, 26, 31,
221
+ 33, 37, nil, 45, nil, 10, nil, nil, nil, nil,
222
+ nil, 30, 17, nil, 141, nil, nil, nil, nil, nil,
223
+ 46, 48, nil, 15, 18, 22, 26, 31, 33, 37,
224
+ nil, 45, 133, 10, 30, nil, nil, 42, nil, 127,
225
+ 17, nil, nil, nil, nil, nil, nil, nil, 46, 48,
226
+ nil, 15, 18, 22, 26, 31, 33, 37, nil, 45,
227
+ nil, 10, 30, 17, nil, 42, nil, nil, nil, nil,
228
+ nil, 46, 48, nil, 15, 18, 22, 26, 31, 33,
229
+ 37, nil, 45, nil, 10, 30, nil, nil, 42, nil,
230
+ nil, 17, nil, nil, nil, nil, nil, nil, nil, 46,
231
+ 48, nil, 15, 18, 22, 26, 31, 33, 37, nil,
232
+ 45, nil, 10, 30, 17, nil, 141, nil, 6, nil,
233
+ nil, nil, 46, 48, nil, 15, 18, 22, 26, 31,
234
+ 33, 37, nil, 45, 133, 10, nil, nil, nil, nil,
235
+ nil, 127, 17, 30, nil, nil, 141, nil, nil, nil,
236
+ 46, 48, nil, 15, 18, 22, 26, 31, 33, 37,
237
+ nil, 45, nil, 10, 133, 30, nil, nil, 189, nil,
238
+ nil, 127, 17, nil, nil, nil, nil, nil, nil, nil,
239
+ 46, 48, nil, 15, 18, 22, 26, 31, 33, 37,
240
+ nil, 45, 30, 10, 17, 42, nil, nil, nil, nil,
241
+ nil, nil, 46, 48, nil, 15, 18, 22, 26, 31,
242
+ 33, 37, nil, 45, 30, 10, nil, 42, nil, nil,
243
+ nil, 17, nil, nil, nil, nil, nil, nil, nil, 46,
244
+ 48, nil, 15, 18, 22, 26, 31, 33, 37, nil,
245
+ 45, 30, 10, 17, 189, nil, nil, nil, nil, nil,
246
+ nil, 46, 48, nil, 15, 18, 22, 26, 31, 33,
247
+ 37, nil, 45, 30, 10, nil, 42, nil, nil, nil,
248
+ 17, nil, nil, nil, nil, nil, nil, nil, 46, 48,
249
+ nil, 15, 18, 22, 26, 31, 33, 37, nil, 45,
250
+ 30, 10, 17, 42, nil, nil, nil, nil, nil, nil,
251
+ 46, 48, nil, 15, 18, 22, 26, 31, 33, 37,
252
+ nil, 45, 30, 10, nil, 42, nil, nil, nil, 17,
253
+ nil, nil, nil, nil, nil, nil, nil, 46, 48, nil,
254
+ 15, 18, 22, 26, 31, 33, 37, nil, 45, 30,
255
+ 10, 17, 189, nil, nil, nil, nil, nil, nil, 46,
256
+ 48, nil, 15, 18, 22, 26, 31, 33, 37, nil,
257
+ 45, nil, 10, nil, nil, nil, nil, nil, 17, nil,
258
+ nil, nil, nil, nil, nil, nil, 46, 48, nil, 15,
259
+ 18, 22, 26, 31, 33, 37, nil, 45, nil, 10,
260
+ 171, 173, nil, 176, 178, 179, nil, nil, nil, nil,
261
+ 169, 170, 172, 174, 175, 177 ]
262
+
263
+ racc_action_check = [
264
+ 57, 24, 51, 57, 110, 43, 57, 184, 92, 166,
265
+ 179, 20, 20, 0, 65, 86, 179, 184, 228, 184,
266
+ 184, 228, 184, 184, 184, 184, 85, 43, 97, 57,
267
+ 92, 51, 98, 110, 24, 166, 225, 57, 57, 225,
268
+ 57, 57, 57, 57, 57, 57, 57, 228, 57, 103,
269
+ 57, 65, 65, 81, 81, 228, 228, 104, 228, 228,
270
+ 228, 228, 228, 228, 228, 225, 228, 105, 228, 6,
271
+ 45, 45, 6, 225, 225, 6, 225, 225, 225, 225,
272
+ 225, 225, 225, 79, 225, 117, 225, 218, 118, 91,
273
+ 218, 171, 120, 171, 171, 121, 122, 123, 6, 91,
274
+ 125, 91, 91, 127, 91, 91, 6, 6, 128, 6,
275
+ 6, 6, 6, 6, 6, 6, 218, 6, 213, 6,
276
+ 76, 213, 134, 74, 218, 218, 71, 218, 218, 218,
277
+ 218, 218, 218, 218, 146, 218, 147, 218, 201, 213,
278
+ 153, 201, 157, 201, 162, 66, 213, 213, 64, 62,
279
+ 167, 168, 89, 53, 39, 213, 213, 37, 213, 213,
280
+ 213, 213, 213, 213, 213, 33, 213, 201, 213, 194,
281
+ 31, 30, 194, 176, 29, 201, 201, 28, 201, 201,
282
+ 201, 201, 201, 201, 201, 26, 201, 192, 201, 22,
283
+ 192, 182, 21, 185, 18, 17, 193, 14, 194, 196,
284
+ 10, 204, 206, 207, 210, 8, 194, 194, 215, 194,
285
+ 194, 194, 194, 194, 194, 194, 192, 194, 189, 194,
286
+ 7, 189, 219, 189, 192, 192, 220, 192, 192, 192,
287
+ 192, 192, 192, 192, 222, 192, 223, 192, 224, 5,
288
+ 2, 133, 231, 232, 133, 236, nil, 189, nil, nil,
289
+ nil, nil, nil, nil, nil, 189, 189, nil, 189, 189,
290
+ 189, 189, 189, 189, 189, nil, 189, nil, 189, 133,
291
+ 133, 70, nil, nil, 70, nil, nil, nil, 133, 133,
292
+ nil, 133, 133, 133, 133, 133, 133, 133, nil, 133,
293
+ nil, 133, nil, nil, nil, nil, nil, nil, nil, 181,
294
+ 70, nil, 181, nil, nil, nil, nil, nil, 70, 70,
295
+ nil, 70, 70, 70, 70, 70, 70, 70, nil, 70,
296
+ 181, 70, 69, nil, nil, 69, nil, 181, 181, nil,
297
+ nil, nil, nil, nil, nil, nil, 181, 181, nil, 181,
298
+ 181, 181, 181, 181, 181, 181, nil, 181, nil, 181,
299
+ 96, 69, nil, 96, nil, nil, nil, nil, nil, 69,
300
+ 69, nil, 69, 69, 69, 69, 69, 69, 69, nil,
301
+ 69, 96, 69, 27, nil, nil, 27, nil, 96, 96,
302
+ nil, nil, nil, nil, nil, nil, nil, 96, 96, nil,
303
+ 96, 96, 96, 96, 96, 96, 96, nil, 96, nil,
304
+ 96, 178, 27, nil, 178, nil, nil, nil, nil, nil,
305
+ nil, nil, nil, 27, 27, 27, 27, 27, 27, 27,
306
+ nil, 27, nil, 27, 177, nil, nil, 177, nil, nil,
307
+ 178, nil, nil, nil, nil, nil, nil, nil, 178, 178,
308
+ nil, 178, 178, 178, 178, 178, 178, 178, nil, 178,
309
+ nil, 178, 175, 177, nil, 175, nil, nil, nil, nil,
310
+ nil, 177, 177, nil, 177, 177, 177, 177, 177, 177,
311
+ 177, nil, 177, nil, 177, 174, nil, nil, 174, nil,
312
+ nil, 175, nil, nil, nil, nil, nil, nil, nil, 175,
313
+ 175, nil, 175, 175, 175, 175, 175, 175, 175, nil,
314
+ 175, nil, 175, 173, 174, nil, 173, nil, nil, nil,
315
+ nil, nil, 174, 174, nil, 174, 174, 174, 174, 174,
316
+ 174, 174, nil, 174, nil, 174, nil, nil, nil, nil,
317
+ nil, 165, 173, nil, 165, nil, nil, nil, nil, nil,
318
+ 173, 173, nil, 173, 173, 173, 173, 173, 173, 173,
319
+ nil, 173, 165, 173, 68, nil, nil, 68, nil, 165,
320
+ 165, nil, nil, nil, nil, nil, nil, nil, 165, 165,
321
+ nil, 165, 165, 165, 165, 165, 165, 165, nil, 165,
322
+ nil, 165, 42, 68, nil, 42, nil, nil, nil, nil,
323
+ nil, 68, 68, nil, 68, 68, 68, 68, 68, 68,
324
+ 68, nil, 68, nil, 68, 67, nil, nil, 67, nil,
325
+ nil, 42, nil, nil, nil, nil, nil, nil, nil, 42,
326
+ 42, nil, 42, 42, 42, 42, 42, 42, 42, nil,
327
+ 42, nil, 42, 141, 67, nil, 141, nil, 141, nil,
328
+ nil, nil, 67, 67, nil, 67, 67, 67, 67, 67,
329
+ 67, 67, nil, 67, 141, 67, nil, nil, nil, nil,
330
+ nil, 141, 141, 163, nil, nil, 163, nil, nil, nil,
331
+ 141, 141, nil, 141, 141, 141, 141, 141, 141, 141,
332
+ nil, 141, nil, 141, 163, 170, nil, nil, 170, nil,
333
+ nil, 163, 163, nil, nil, nil, nil, nil, nil, nil,
334
+ 163, 163, nil, 163, 163, 163, 163, 163, 163, 163,
335
+ nil, 163, 55, 163, 170, 55, nil, nil, nil, nil,
336
+ nil, nil, 170, 170, nil, 170, 170, 170, 170, 170,
337
+ 170, 170, nil, 170, 56, 170, nil, 56, nil, nil,
338
+ nil, 55, nil, nil, nil, nil, nil, nil, nil, 55,
339
+ 55, nil, 55, 55, 55, 55, 55, 55, 55, nil,
340
+ 55, 169, 55, 56, 169, nil, nil, nil, nil, nil,
341
+ nil, 56, 56, nil, 56, 56, 56, 56, 56, 56,
342
+ 56, nil, 56, 58, 56, nil, 58, nil, nil, nil,
343
+ 169, nil, nil, nil, nil, nil, nil, nil, 169, 169,
344
+ nil, 169, 169, 169, 169, 169, 169, 169, nil, 169,
345
+ 59, 169, 58, 59, nil, nil, nil, nil, nil, nil,
346
+ 58, 58, nil, 58, 58, 58, 58, 58, 58, 58,
347
+ nil, 58, 60, 58, nil, 60, nil, nil, nil, 59,
348
+ nil, nil, nil, nil, nil, nil, nil, 59, 59, nil,
349
+ 59, 59, 59, 59, 59, 59, 59, nil, 59, 172,
350
+ 59, 60, 172, nil, nil, nil, nil, nil, nil, 60,
351
+ 60, nil, 60, 60, 60, 60, 60, 60, 60, nil,
352
+ 60, nil, 60, nil, nil, nil, nil, nil, 172, nil,
353
+ nil, nil, nil, nil, nil, nil, 172, 172, nil, 172,
354
+ 172, 172, 172, 172, 172, 172, nil, 172, nil, 172,
355
+ 143, 143, nil, 143, 143, 143, nil, nil, nil, nil,
356
+ 143, 143, 143, 143, 143, 143 ]
357
+
358
+ racc_action_pointer = [
359
+ 3, nil, 240, nil, nil, 237, 64, 220, 202, nil,
360
+ 144, nil, nil, nil, 151, nil, nil, 149, 189, nil,
361
+ -31, 140, 181, nil, -10, nil, 177, 368, 164, 122,
362
+ 125, 162, nil, 157, nil, nil, nil, 149, nil, 150,
363
+ nil, nil, 577, -7, nil, 17, nil, nil, nil, nil,
364
+ nil, -3, nil, 119, nil, 707, 729, -5, 778, 805,
365
+ 827, nil, 115, nil, 125, 9, 140, 600, 549, 317,
366
+ 266, 117, nil, nil, 89, nil, 67, nil, nil, 79,
367
+ nil, 47, nil, nil, nil, 17, 6, nil, nil, 143,
368
+ nil, 85, -4, nil, nil, nil, 345, 4, 27, nil,
369
+ nil, nil, nil, 40, 48, 58, nil, nil, nil, nil,
370
+ -1, nil, nil, nil, nil, nil, nil, 70, 54, nil,
371
+ 74, 77, 81, 79, nil, 66, nil, 95, 73, nil,
372
+ nil, nil, nil, 236, 94, nil, nil, nil, nil, nil,
373
+ nil, 628, nil, 884, nil, nil, 109, 133, nil, nil,
374
+ nil, nil, nil, 106, nil, nil, nil, 108, nil, nil,
375
+ nil, nil, 134, 658, nil, 526, 0, 141, 142, 756,
376
+ 680, 64, 854, 498, 470, 447, 165, 419, 396, -16,
377
+ nil, 294, 157, nil, 3, 165, nil, nil, nil, 213,
378
+ nil, nil, 182, 188, 164, nil, 171, nil, nil, nil,
379
+ nil, 133, nil, nil, 169, nil, 167, 199, nil, nil,
380
+ 196, nil, nil, 113, nil, 180, nil, nil, 82, 213,
381
+ 222, nil, 200, 202, 203, 31, nil, nil, 13, nil,
382
+ nil, 233, 239, nil, nil, nil, 211, nil ]
383
+
384
+ racc_action_default = [
385
+ -146, -15, -146, -1, -2, -4, -146, -146, -146, -3,
386
+ -146, -115, -18, -118, -146, -116, -99, -140, -146, -121,
387
+ -102, -127, -146, -119, -105, -128, -146, -146, -17, -146,
388
+ -132, -146, -107, -146, -109, -108, -19, -146, -110, -21,
389
+ -143, -112, -146, -24, -144, -146, -138, -113, -139, -114,
390
+ 238, -146, -145, -146, -131, -146, -146, -146, -146, -146,
391
+ -146, -106, -146, -16, -49, -146, -130, -146, -146, -146,
392
+ -146, -146, -140, -23, -146, -142, -146, -9, -10, -5,
393
+ -7, -11, -117, -100, -101, -146, -146, -104, -103, -146,
394
+ -72, -26, -29, -30, -32, -33, -146, -51, -146, -137,
395
+ -133, -135, -129, -146, -146, -146, -20, -111, -22, -141,
396
+ -146, -8, -12, -13, -120, -122, -123, -146, -146, -37,
397
+ -39, -41, -146, -42, -28, -146, -96, -146, -50, -87,
398
+ -58, -88, -89, -146, -75, -77, -97, -80, -98, -85,
399
+ -81, -146, -82, -146, -86, -84, -56, -146, -136, -124,
400
+ -125, -126, -6, -146, -34, -38, -40, -146, -43, -27,
401
+ -31, -71, -146, -146, -79, -146, -146, -146, -98, -146,
402
+ -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
403
+ -25, -146, -146, -35, -146, -76, -78, -83, -14, -146,
404
+ -90, -91, -146, -146, -146, -92, -146, -93, -94, -62,
405
+ -63, -146, -95, -68, -146, -70, -57, -52, -54, -55,
406
+ -146, -45, -36, -146, -44, -146, -61, -67, -146, -146,
407
+ -66, -69, -146, -146, -46, -146, -60, -64, -146, -53,
408
+ -74, -146, -48, -59, -65, -47, -146, -73 ]
409
+
410
+ racc_goto_table = [
411
+ 43, 73, 128, 92, 91, 36, 160, 80, 209, 77,
412
+ 219, 82, 208, 199, 83, 84, 87, 88, 190, 191,
413
+ 212, 195, 196, 197, 198, 146, 202, 203, 180, 64,
414
+ 216, 63, 108, 161, 97, 214, 71, 234, 211, 28,
415
+ 231, 215, 232, 217, 207, 111, 2, 166, 209, 79,
416
+ 124, 86, 229, 9, 89, 160, 5, 185, 186, 154,
417
+ 164, 103, 104, 105, 43, 4, 152, 226, 77, 106,
418
+ 3, 98, 160, 61, 233, 100, 101, nil, nil, nil,
419
+ nil, nil, nil, 159, nil, nil, nil, 206, nil, nil,
420
+ nil, nil, nil, nil, 183, nil, nil, nil, 92, 184,
421
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
422
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 224,
423
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
424
+ nil, nil, nil, nil, nil, 168, nil, nil, nil, nil,
425
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
426
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
427
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
428
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
429
+ nil, 230, nil, 71, nil, nil, nil, nil, nil, nil,
430
+ nil, nil, nil, nil, 237, 220, nil, nil, nil, nil,
431
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
432
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
433
+ nil, nil, 220 ]
434
+
435
+ racc_goto_check = [
436
+ 17, 10, 32, 23, 22, 15, 11, 7, 37, 10,
437
+ 43, 10, 36, 42, 54, 54, 55, 55, 40, 40,
438
+ 29, 40, 40, 40, 40, 20, 40, 40, 21, 18,
439
+ 42, 14, 10, 25, 19, 30, 17, 43, 31, 13,
440
+ 33, 40, 34, 40, 35, 9, 1, 32, 37, 6,
441
+ 10, 17, 36, 5, 17, 11, 4, 47, 48, 23,
442
+ 49, 17, 17, 17, 17, 3, 7, 40, 10, 15,
443
+ 2, 57, 11, 58, 40, 70, 71, nil, nil, nil,
444
+ nil, nil, nil, 10, nil, nil, nil, 32, nil, nil,
445
+ nil, nil, nil, nil, 23, nil, nil, nil, 23, 22,
446
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
447
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 32,
448
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
449
+ nil, nil, nil, nil, nil, 17, nil, nil, nil, nil,
450
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
451
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
452
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
453
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
454
+ nil, 10, nil, 17, nil, nil, nil, nil, nil, nil,
455
+ nil, nil, nil, nil, 10, 17, nil, nil, nil, nil,
456
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
457
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
458
+ nil, nil, 17 ]
459
+
460
+ racc_goto_pointer = [
461
+ nil, 46, 70, 65, 56, 48, -2, -44, nil, -36,
462
+ -42, -121, nil, 33, 3, -1, nil, -6, 1, -30,
463
+ -72, -118, -58, -59, nil, -94, nil, nil, nil, -164,
464
+ -149, -146, -94, -183, -181, -138, -170, -174, nil, nil,
465
+ -151, nil, -163, -191, nil, nil, nil, -106, -107, -73,
466
+ nil, nil, nil, nil, -41, -42, nil, 6, 46, nil,
467
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
468
+ 10, 11, nil, nil ]
469
+
470
+ racc_goto_default = [
471
+ nil, nil, nil, nil, 167, nil, nil, nil, 81, nil,
472
+ 13, 130, 1, nil, nil, nil, 39, 138, nil, nil,
473
+ nil, nil, nil, 23, 93, 200, 94, 95, 122, nil,
474
+ nil, nil, nil, nil, nil, nil, nil, 34, 136, 139,
475
+ 143, 144, nil, nil, 129, 131, 132, 134, 135, 137,
476
+ 140, 142, 145, 126, 16, 20, 24, 27, 32, 35,
477
+ 38, 41, 47, 49, 11, 14, 19, 21, 25, 29,
478
+ nil, nil, 40, 44 ]
479
+
480
+ racc_token_table = {
481
+ false => 0,
482
+ Object.new => 1,
483
+ :ORDER => 2,
484
+ :BY => 3,
485
+ :comma => 4,
486
+ :unsigned_integer => 5,
487
+ :ASC => 6,
488
+ :DESC => 7,
489
+ :left_paren => 8,
490
+ :right_paren => 9,
491
+ :SELECT => 10,
492
+ :asterisk => 11,
493
+ :AS => 12,
494
+ :FROM => 13,
495
+ :CROSS => 14,
496
+ :JOIN => 15,
497
+ :INNER => 16,
498
+ :LEFT => 17,
499
+ :OUTER => 18,
500
+ :RIGHT => 19,
501
+ :FULL => 20,
502
+ :ON => 21,
503
+ :USING => 22,
504
+ :WHERE => 23,
505
+ :GROUP => 24,
506
+ :HAVING => 25,
507
+ :NOT => 26,
508
+ :BETWEEN => 27,
509
+ :AND => 28,
510
+ :IN => 29,
511
+ :LIKE => 30,
512
+ :IS => 31,
513
+ :NULL => 32,
514
+ :EXISTS => 33,
515
+ :identifier => 34,
516
+ :OR => 35,
517
+ :equals_operator => 36,
518
+ :not_equals_operator => 37,
519
+ :less_than_operator => 38,
520
+ :greater_than_operator => 39,
521
+ :less_than_or_equals_operator => 40,
522
+ :greater_than_or_equals_operator => 41,
523
+ :plus_sign => 42,
524
+ :minus_sign => 43,
525
+ :solidus => 44,
526
+ :CURRENT_USER => 45,
527
+ :period => 46,
528
+ :COUNT => 47,
529
+ :AVG => 48,
530
+ :MAX => 49,
531
+ :MIN => 50,
532
+ :SUM => 51,
533
+ :E => 52,
534
+ :quote => 53,
535
+ :character_string_literal => 54,
536
+ :DATE => 55,
537
+ :date_string => 56 }
538
+
539
+ racc_use_result_var = true
540
+
541
+ racc_nt_base = 57
542
+
543
+ Racc_arg = [
544
+ racc_action_table,
545
+ racc_action_check,
546
+ racc_action_default,
547
+ racc_action_pointer,
548
+ racc_goto_table,
549
+ racc_goto_check,
550
+ racc_goto_default,
551
+ racc_goto_pointer,
552
+ racc_nt_base,
553
+ racc_reduce_table,
554
+ racc_token_table,
555
+ racc_shift_n,
556
+ racc_reduce_n,
557
+ racc_use_result_var ]
558
+
559
+ Racc_token_to_s_table = [
560
+ '$end',
561
+ 'error',
562
+ 'ORDER',
563
+ 'BY',
564
+ 'comma',
565
+ 'unsigned_integer',
566
+ 'ASC',
567
+ 'DESC',
568
+ 'left_paren',
569
+ 'right_paren',
570
+ 'SELECT',
571
+ 'asterisk',
572
+ 'AS',
573
+ 'FROM',
574
+ 'CROSS',
575
+ 'JOIN',
576
+ 'INNER',
577
+ 'LEFT',
578
+ 'OUTER',
579
+ 'RIGHT',
580
+ 'FULL',
581
+ 'ON',
582
+ 'USING',
583
+ 'WHERE',
584
+ 'GROUP',
585
+ 'HAVING',
586
+ 'NOT',
587
+ 'BETWEEN',
588
+ 'AND',
589
+ 'IN',
590
+ 'LIKE',
591
+ 'IS',
592
+ 'NULL',
593
+ 'EXISTS',
594
+ 'identifier',
595
+ 'OR',
596
+ 'equals_operator',
597
+ 'not_equals_operator',
598
+ 'less_than_operator',
599
+ 'greater_than_operator',
600
+ 'less_than_or_equals_operator',
601
+ 'greater_than_or_equals_operator',
602
+ 'plus_sign',
603
+ 'minus_sign',
604
+ 'solidus',
605
+ 'CURRENT_USER',
606
+ 'period',
607
+ 'COUNT',
608
+ 'AVG',
609
+ 'MAX',
610
+ 'MIN',
611
+ 'SUM',
612
+ 'E',
613
+ 'quote',
614
+ 'character_string_literal',
615
+ 'DATE',
616
+ 'date_string',
617
+ '$start',
618
+ 'direct_sql_statement',
619
+ 'direct_sql_data_statement',
620
+ 'direct_select_statement_multiple_rows',
621
+ 'query_expression',
622
+ 'order_by_clause',
623
+ 'sort_specification_list',
624
+ 'sort_specification',
625
+ 'sort_key',
626
+ 'ordering_specification',
627
+ 'column_name',
628
+ 'subquery',
629
+ 'query_specification',
630
+ 'select_list',
631
+ 'table_expression',
632
+ 'select_sublist',
633
+ 'derived_column',
634
+ 'value_expression',
635
+ 'from_clause',
636
+ 'where_clause',
637
+ 'group_by_clause',
638
+ 'having_clause',
639
+ 'table_reference',
640
+ 'table_name',
641
+ 'joined_table',
642
+ 'table_subquery',
643
+ 'cross_join',
644
+ 'qualified_join',
645
+ 'join_type',
646
+ 'join_specification',
647
+ 'join_condition',
648
+ 'named_columns_join',
649
+ 'search_condition',
650
+ 'join_column_list',
651
+ 'column_name_list',
652
+ 'grouping_column_reference_list',
653
+ 'grouping_column_reference',
654
+ 'column_reference',
655
+ 'row_subquery',
656
+ 'between_predicate',
657
+ 'row_value_constructor',
658
+ 'in_predicate',
659
+ 'in_predicate_value',
660
+ 'in_value_list',
661
+ 'like_predicate',
662
+ 'null_predicate',
663
+ 'exists_predicate',
664
+ 'boolean_term',
665
+ 'boolean_factor',
666
+ 'boolean_test',
667
+ 'boolean_primary',
668
+ 'predicate',
669
+ 'comparison_predicate',
670
+ 'row_value_constructor_element',
671
+ 'numeric_value_expression',
672
+ 'term',
673
+ 'factor',
674
+ 'sign',
675
+ 'value_expression_primary',
676
+ 'unsigned_value_specification',
677
+ 'set_function_specification',
678
+ 'unsigned_literal',
679
+ 'general_value_specification',
680
+ 'unsigned_numeric_literal',
681
+ 'general_literal',
682
+ 'qualifier',
683
+ 'general_set_function',
684
+ 'exact_numeric_literal',
685
+ 'approximate_numeric_literal',
686
+ 'mantissa',
687
+ 'exponent',
688
+ 'signed_integer',
689
+ 'datetime_literal',
690
+ 'date_literal']
691
+
692
+ Racc_debug_parser = false
693
+
694
+ ##### racc system variables end #####
695
+
696
+ # reduce 0 omitted
697
+
698
+ # reduce 1 omitted
699
+
700
+ # reduce 2 omitted
701
+
702
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 11
703
+ def _reduce_3( val, _values, result )
704
+ result = SQL::Statement::DirectSelect.new(val[0], val[1])
705
+ result
706
+ end
707
+ .,.,
708
+
709
+ # reduce 4 omitted
710
+
711
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 16
712
+ def _reduce_5( val, _values, result )
713
+ result = SQL::Statement::OrderBy.new(val[2])
714
+ result
715
+ end
716
+ .,.,
717
+
718
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 19
719
+ def _reduce_6( val, _values, result )
720
+ result = Array(val[0]) + Array(val[2])
721
+ result
722
+ end
723
+ .,.,
724
+
725
+ # reduce 7 omitted
726
+
727
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 23
728
+ def _reduce_8( val, _values, result )
729
+ result = val[1].new(val[0])
730
+ result
731
+ end
732
+ .,.,
733
+
734
+ # reduce 9 omitted
735
+
736
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 27
737
+ def _reduce_10( val, _values, result )
738
+ result = SQL::Statement::Integer.new(val[0])
739
+ result
740
+ end
741
+ .,.,
742
+
743
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 30
744
+ def _reduce_11( val, _values, result )
745
+ result = SQL::Statement::Ascending
746
+ result
747
+ end
748
+ .,.,
749
+
750
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 31
751
+ def _reduce_12( val, _values, result )
752
+ result = SQL::Statement::Ascending
753
+ result
754
+ end
755
+ .,.,
756
+
757
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 32
758
+ def _reduce_13( val, _values, result )
759
+ result = SQL::Statement::Descending
760
+ result
761
+ end
762
+ .,.,
763
+
764
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 37
765
+ def _reduce_14( val, _values, result )
766
+ result = SQL::Statement::Subquery.new(val[1])
767
+ result
768
+ end
769
+ .,.,
770
+
771
+ # reduce 15 omitted
772
+
773
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 43
774
+ def _reduce_16( val, _values, result )
775
+ result = SQL::Statement::Select.new(val[1], val[2])
776
+ result
777
+ end
778
+ .,.,
779
+
780
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 44
781
+ def _reduce_17( val, _values, result )
782
+ result = SQL::Statement::Select.new(val[1])
783
+ result
784
+ end
785
+ .,.,
786
+
787
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 47
788
+ def _reduce_18( val, _values, result )
789
+ result = SQL::Statement::All.new
790
+ result
791
+ end
792
+ .,.,
793
+
794
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 48
795
+ def _reduce_19( val, _values, result )
796
+ result = SQL::Statement::SelectList.new(val[0])
797
+ result
798
+ end
799
+ .,.,
800
+
801
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 51
802
+ def _reduce_20( val, _values, result )
803
+ result = Array(val[0]) + Array(val[2])
804
+ result
805
+ end
806
+ .,.,
807
+
808
+ # reduce 21 omitted
809
+
810
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 55
811
+ def _reduce_22( val, _values, result )
812
+ result = SQL::Statement::As.new(val[0], val[2])
813
+ result
814
+ end
815
+ .,.,
816
+
817
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 56
818
+ def _reduce_23( val, _values, result )
819
+ result = SQL::Statement::As.new(val[0], val[1])
820
+ result
821
+ end
822
+ .,.,
823
+
824
+ # reduce 24 omitted
825
+
826
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 60
827
+ def _reduce_25( val, _values, result )
828
+ result = SQL::Statement::TableExpression.new(val[0], val[1], val[2], val[3])
829
+ result
830
+ end
831
+ .,.,
832
+
833
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 63
834
+ def _reduce_26( val, _values, result )
835
+ result = SQL::Statement::FromClause.new(val[1])
836
+ result
837
+ end
838
+ .,.,
839
+
840
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 66
841
+ def _reduce_27( val, _values, result )
842
+ result = SQL::Statement::As.new(val[0], val[2])
843
+ result
844
+ end
845
+ .,.,
846
+
847
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 67
848
+ def _reduce_28( val, _values, result )
849
+ result = SQL::Statement::As.new(val[0], val[1])
850
+ result
851
+ end
852
+ .,.,
853
+
854
+ # reduce 29 omitted
855
+
856
+ # reduce 30 omitted
857
+
858
+ # reduce 31 omitted
859
+
860
+ # reduce 32 omitted
861
+
862
+ # reduce 33 omitted
863
+
864
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 79
865
+ def _reduce_34( val, _values, result )
866
+ result = SQL::Statement::CrossJoin.new(val[0], val[2])
867
+ result
868
+ end
869
+ .,.,
870
+
871
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 80
872
+ def _reduce_35( val, _values, result )
873
+ result = SQL::Statement::CrossJoin.new(val[0], val[3])
874
+ result
875
+ end
876
+ .,.,
877
+
878
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 83
879
+ def _reduce_36( val, _values, result )
880
+ result = val[1].new(val[0], val[3], val[4])
881
+ result
882
+ end
883
+ .,.,
884
+
885
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 86
886
+ def _reduce_37( val, _values, result )
887
+ result = SQL::Statement::InnerJoin
888
+ result
889
+ end
890
+ .,.,
891
+
892
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 87
893
+ def _reduce_38( val, _values, result )
894
+ result = SQL::Statement::LeftOuterJoin
895
+ result
896
+ end
897
+ .,.,
898
+
899
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 88
900
+ def _reduce_39( val, _values, result )
901
+ result = SQL::Statement::LeftJoin
902
+ result
903
+ end
904
+ .,.,
905
+
906
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 89
907
+ def _reduce_40( val, _values, result )
908
+ result = SQL::Statement::RightOuterJoin
909
+ result
910
+ end
911
+ .,.,
912
+
913
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 90
914
+ def _reduce_41( val, _values, result )
915
+ result = SQL::Statement::RightJoin
916
+ result
917
+ end
918
+ .,.,
919
+
920
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 91
921
+ def _reduce_42( val, _values, result )
922
+ result = SQL::Statement::FullJoin
923
+ result
924
+ end
925
+ .,.,
926
+
927
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 92
928
+ def _reduce_43( val, _values, result )
929
+ result = SQL::Statement::FullOuterJoin
930
+ result
931
+ end
932
+ .,.,
933
+
934
+ # reduce 44 omitted
935
+
936
+ # reduce 45 omitted
937
+
938
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 99
939
+ def _reduce_46( val, _values, result )
940
+ result = SQL::Statement::On.new(val[1])
941
+ result
942
+ end
943
+ .,.,
944
+
945
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 102
946
+ def _reduce_47( val, _values, result )
947
+ result = SQL::Statement::Using.new(val[2])
948
+ result
949
+ end
950
+ .,.,
951
+
952
+ # reduce 48 omitted
953
+
954
+ # reduce 49 omitted
955
+
956
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 109
957
+ def _reduce_50( val, _values, result )
958
+ result = SQL::Statement::WhereClause.new(val[1])
959
+ result
960
+ end
961
+ .,.,
962
+
963
+ # reduce 51 omitted
964
+
965
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 113
966
+ def _reduce_52( val, _values, result )
967
+ result = SQL::Statement::GroupByClause.new(val[2])
968
+ result
969
+ end
970
+ .,.,
971
+
972
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 116
973
+ def _reduce_53( val, _values, result )
974
+ result = Array(val[0]) + Array(val[2])
975
+ result
976
+ end
977
+ .,.,
978
+
979
+ # reduce 54 omitted
980
+
981
+ # reduce 55 omitted
982
+
983
+ # reduce 56 omitted
984
+
985
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 124
986
+ def _reduce_57( val, _values, result )
987
+ result = SQL::Statement::HavingClause.new(val[1])
988
+ result
989
+ end
990
+ .,.,
991
+
992
+ # reduce 58 omitted
993
+
994
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 131
995
+ def _reduce_59( val, _values, result )
996
+ result = SQL::Statement::Not.new(SQL::Statement::Between.new(val[0], val[3], val[5]))
997
+ result
998
+ end
999
+ .,.,
1000
+
1001
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 132
1002
+ def _reduce_60( val, _values, result )
1003
+ result = SQL::Statement::Between.new(val[0], val[2], val[4])
1004
+ result
1005
+ end
1006
+ .,.,
1007
+
1008
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 135
1009
+ def _reduce_61( val, _values, result )
1010
+ result = SQL::Statement::Not.new(SQL::Statement::In.new(val[0], val[3]))
1011
+ result
1012
+ end
1013
+ .,.,
1014
+
1015
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 136
1016
+ def _reduce_62( val, _values, result )
1017
+ result = SQL::Statement::In.new(val[0], val[2])
1018
+ result
1019
+ end
1020
+ .,.,
1021
+
1022
+ # reduce 63 omitted
1023
+
1024
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 140
1025
+ def _reduce_64( val, _values, result )
1026
+ result = SQL::Statement::InValueList.new(val[1])
1027
+ result
1028
+ end
1029
+ .,.,
1030
+
1031
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 143
1032
+ def _reduce_65( val, _values, result )
1033
+ result = Array(val[0]) + Array(val[2])
1034
+ result
1035
+ end
1036
+ .,.,
1037
+
1038
+ # reduce 66 omitted
1039
+
1040
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 150
1041
+ def _reduce_67( val, _values, result )
1042
+ result = SQL::Statement::Not.new(SQL::Statement::Like.new(val[0], val[3]))
1043
+ result
1044
+ end
1045
+ .,.,
1046
+
1047
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 151
1048
+ def _reduce_68( val, _values, result )
1049
+ result = SQL::Statement::Like.new(val[0], val[2])
1050
+ result
1051
+ end
1052
+ .,.,
1053
+
1054
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 154
1055
+ def _reduce_69( val, _values, result )
1056
+ result = SQL::Statement::Not.new(SQL::Statement::Is.new(val[0], SQL::Statement::Null.new))
1057
+ result
1058
+ end
1059
+ .,.,
1060
+
1061
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 155
1062
+ def _reduce_70( val, _values, result )
1063
+ result = SQL::Statement::Is.new(val[0], SQL::Statement::Null.new)
1064
+ result
1065
+ end
1066
+ .,.,
1067
+
1068
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 158
1069
+ def _reduce_71( val, _values, result )
1070
+ result = SQL::Statement::Exists.new(val[1])
1071
+ result
1072
+ end
1073
+ .,.,
1074
+
1075
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 162
1076
+ def _reduce_72( val, _values, result )
1077
+ result = SQL::Statement::Table.new(val[0])
1078
+ result
1079
+ end
1080
+ .,.,
1081
+
1082
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 165
1083
+ def _reduce_73( val, _values, result )
1084
+ result = Array(val[0]) + Array(val[2])
1085
+ result
1086
+ end
1087
+ .,.,
1088
+
1089
+ # reduce 74 omitted
1090
+
1091
+ # reduce 75 omitted
1092
+
1093
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 171
1094
+ def _reduce_76( val, _values, result )
1095
+ result = SQL::Statement::Or.new(val[0], val[2])
1096
+ result
1097
+ end
1098
+ .,.,
1099
+
1100
+ # reduce 77 omitted
1101
+
1102
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 175
1103
+ def _reduce_78( val, _values, result )
1104
+ result = SQL::Statement::And.new(val[0], val[2])
1105
+ result
1106
+ end
1107
+ .,.,
1108
+
1109
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 178
1110
+ def _reduce_79( val, _values, result )
1111
+ result = SQL::Statement::Not.new(val[1])
1112
+ result
1113
+ end
1114
+ .,.,
1115
+
1116
+ # reduce 80 omitted
1117
+
1118
+ # reduce 81 omitted
1119
+
1120
+ # reduce 82 omitted
1121
+
1122
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 186
1123
+ def _reduce_83( val, _values, result )
1124
+ result = val[1]
1125
+ result
1126
+ end
1127
+ .,.,
1128
+
1129
+ # reduce 84 omitted
1130
+
1131
+ # reduce 85 omitted
1132
+
1133
+ # reduce 86 omitted
1134
+
1135
+ # reduce 87 omitted
1136
+
1137
+ # reduce 88 omitted
1138
+
1139
+ # reduce 89 omitted
1140
+
1141
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 197
1142
+ def _reduce_90( val, _values, result )
1143
+ result = SQL::Statement::Equals.new(val[0], val[2])
1144
+ result
1145
+ end
1146
+ .,.,
1147
+
1148
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 198
1149
+ def _reduce_91( val, _values, result )
1150
+ result = SQL::Statement::Not.new(SQL::Statement::Equals.new(val[0], val[2]))
1151
+ result
1152
+ end
1153
+ .,.,
1154
+
1155
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 199
1156
+ def _reduce_92( val, _values, result )
1157
+ result = SQL::Statement::Less.new(val[0], val[2])
1158
+ result
1159
+ end
1160
+ .,.,
1161
+
1162
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 200
1163
+ def _reduce_93( val, _values, result )
1164
+ result = SQL::Statement::Greater.new(val[0], val[2])
1165
+ result
1166
+ end
1167
+ .,.,
1168
+
1169
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 201
1170
+ def _reduce_94( val, _values, result )
1171
+ result = SQL::Statement::LessOrEquals.new(val[0], val[2])
1172
+ result
1173
+ end
1174
+ .,.,
1175
+
1176
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 202
1177
+ def _reduce_95( val, _values, result )
1178
+ result = SQL::Statement::GreaterOrEquals.new(val[0], val[2])
1179
+ result
1180
+ end
1181
+ .,.,
1182
+
1183
+ # reduce 96 omitted
1184
+
1185
+ # reduce 97 omitted
1186
+
1187
+ # reduce 98 omitted
1188
+
1189
+ # reduce 99 omitted
1190
+
1191
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 215
1192
+ def _reduce_100( val, _values, result )
1193
+ result = SQL::Statement::Add.new(val[0], val[2])
1194
+ result
1195
+ end
1196
+ .,.,
1197
+
1198
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 216
1199
+ def _reduce_101( val, _values, result )
1200
+ result = SQL::Statement::Subtract.new(val[0], val[2])
1201
+ result
1202
+ end
1203
+ .,.,
1204
+
1205
+ # reduce 102 omitted
1206
+
1207
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 220
1208
+ def _reduce_103( val, _values, result )
1209
+ result = SQL::Statement::Multiply.new(val[0], val[2])
1210
+ result
1211
+ end
1212
+ .,.,
1213
+
1214
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 221
1215
+ def _reduce_104( val, _values, result )
1216
+ result = SQL::Statement::Divide.new(val[0], val[2])
1217
+ result
1218
+ end
1219
+ .,.,
1220
+
1221
+ # reduce 105 omitted
1222
+
1223
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 225
1224
+ def _reduce_106( val, _values, result )
1225
+ result = val[0].new(val[1])
1226
+ result
1227
+ end
1228
+ .,.,
1229
+
1230
+ # reduce 107 omitted
1231
+
1232
+ # reduce 108 omitted
1233
+
1234
+ # reduce 109 omitted
1235
+
1236
+ # reduce 110 omitted
1237
+
1238
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 232
1239
+ def _reduce_111( val, _values, result )
1240
+ result = val[1]
1241
+ result
1242
+ end
1243
+ .,.,
1244
+
1245
+ # reduce 112 omitted
1246
+
1247
+ # reduce 113 omitted
1248
+
1249
+ # reduce 114 omitted
1250
+
1251
+ # reduce 115 omitted
1252
+
1253
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 243
1254
+ def _reduce_116( val, _values, result )
1255
+ result = SQL::Statement::CurrentUser.new
1256
+ result
1257
+ end
1258
+ .,.,
1259
+
1260
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 246
1261
+ def _reduce_117( val, _values, result )
1262
+ result = SQL::Statement::QualifiedColumn.new(val[0], val[2])
1263
+ result
1264
+ end
1265
+ .,.,
1266
+
1267
+ # reduce 118 omitted
1268
+
1269
+ # reduce 119 omitted
1270
+
1271
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 253
1272
+ def _reduce_120( val, _values, result )
1273
+ result = SQL::Statement::Count.new(SQL::Statement::All.new)
1274
+ result
1275
+ end
1276
+ .,.,
1277
+
1278
+ # reduce 121 omitted
1279
+
1280
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 257
1281
+ def _reduce_122( val, _values, result )
1282
+ result = SQL::Statement::Count.new(val[2])
1283
+ result
1284
+ end
1285
+ .,.,
1286
+
1287
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 258
1288
+ def _reduce_123( val, _values, result )
1289
+ result = SQL::Statement::Average.new(val[2])
1290
+ result
1291
+ end
1292
+ .,.,
1293
+
1294
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 259
1295
+ def _reduce_124( val, _values, result )
1296
+ result = SQL::Statement::Maximum.new(val[2])
1297
+ result
1298
+ end
1299
+ .,.,
1300
+
1301
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 260
1302
+ def _reduce_125( val, _values, result )
1303
+ result = SQL::Statement::Minimum.new(val[2])
1304
+ result
1305
+ end
1306
+ .,.,
1307
+
1308
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 261
1309
+ def _reduce_126( val, _values, result )
1310
+ result = SQL::Statement::Sum.new(val[2])
1311
+ result
1312
+ end
1313
+ .,.,
1314
+
1315
+ # reduce 127 omitted
1316
+
1317
+ # reduce 128 omitted
1318
+
1319
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 269
1320
+ def _reduce_129( val, _values, result )
1321
+ result = SQL::Statement::Float.new("#{val[0]}.#{val[2]}".to_f)
1322
+ result
1323
+ end
1324
+ .,.,
1325
+
1326
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 270
1327
+ def _reduce_130( val, _values, result )
1328
+ result = SQL::Statement::Float.new(val[0])
1329
+ result
1330
+ end
1331
+ .,.,
1332
+
1333
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 271
1334
+ def _reduce_131( val, _values, result )
1335
+ result = SQL::Statement::Float.new("0.#{val[1]}".to_f)
1336
+ result
1337
+ end
1338
+ .,.,
1339
+
1340
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 272
1341
+ def _reduce_132( val, _values, result )
1342
+ result = SQL::Statement::Integer.new(val[0])
1343
+ result
1344
+ end
1345
+ .,.,
1346
+
1347
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 275
1348
+ def _reduce_133( val, _values, result )
1349
+ result = SQL::Statement::ApproximateFloat.new(val[0], val[2])
1350
+ result
1351
+ end
1352
+ .,.,
1353
+
1354
+ # reduce 134 omitted
1355
+
1356
+ # reduce 135 omitted
1357
+
1358
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 284
1359
+ def _reduce_136( val, _values, result )
1360
+ result = val[0].new(SQL::Statement::Integer.new(val[1]))
1361
+ result
1362
+ end
1363
+ .,.,
1364
+
1365
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 285
1366
+ def _reduce_137( val, _values, result )
1367
+ result = SQL::Statement::Integer.new(val[0])
1368
+ result
1369
+ end
1370
+ .,.,
1371
+
1372
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 288
1373
+ def _reduce_138( val, _values, result )
1374
+ result = SQL::Statement::UnaryPlus
1375
+ result
1376
+ end
1377
+ .,.,
1378
+
1379
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 289
1380
+ def _reduce_139( val, _values, result )
1381
+ result = SQL::Statement::UnaryMinus
1382
+ result
1383
+ end
1384
+ .,.,
1385
+
1386
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 293
1387
+ def _reduce_140( val, _values, result )
1388
+ result = SQL::Statement::Column.new(val[0])
1389
+ result
1390
+ end
1391
+ .,.,
1392
+
1393
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 297
1394
+ def _reduce_141( val, _values, result )
1395
+ result = SQL::Statement::String.new(val[1])
1396
+ result
1397
+ end
1398
+ .,.,
1399
+
1400
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 298
1401
+ def _reduce_142( val, _values, result )
1402
+ result = SQL::Statement::String.new('')
1403
+ result
1404
+ end
1405
+ .,.,
1406
+
1407
+ # reduce 143 omitted
1408
+
1409
+ # reduce 144 omitted
1410
+
1411
+ module_eval <<'.,.,', 'lib/sql/parser.racc', 305
1412
+ def _reduce_145( val, _values, result )
1413
+ result = SQL::Statement::Date.new(val[1])
1414
+ result
1415
+ end
1416
+ .,.,
1417
+
1418
+ def _reduce_none( val, _values, result )
1419
+ result
1420
+ end
1421
+
1422
+ end
1423
+
1424
+ end