sqliterate 0.1.1 → 0.1.2
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.
- data/lib/sqliterate/grammar/expression.treetop +96 -12
- data/lib/sqliterate/grammar/keywords.treetop +43 -1
- data/lib/sqliterate/grammar/operator.treetop +39 -9
- data/lib/sqliterate/node/control/expression.rb +121 -7
- data/lib/sqliterate/node/evaluate/expression.rb +78 -11
- data/lib/sqliterate/node/evaluate/operator.rb +6 -6
- data/lib/sqliterate/version.rb +1 -1
- metadata +3 -3
@@ -7,6 +7,61 @@ module SQLiterate
|
|
7
7
|
include Operator
|
8
8
|
|
9
9
|
rule scalar_expression
|
10
|
+
disjunction_expression
|
11
|
+
end
|
12
|
+
|
13
|
+
rule disjunction_expression
|
14
|
+
e:conjunction_expression r:( space or_kw space e:conjunction_expression )*
|
15
|
+
<Node::DisjunctionExpression>
|
16
|
+
end
|
17
|
+
|
18
|
+
rule conjunction_expression
|
19
|
+
e:negation_expression r:( space and_kw space e:negation_expression )*
|
20
|
+
<Node::ConjunctionExpression>
|
21
|
+
end
|
22
|
+
|
23
|
+
rule negation_expression
|
24
|
+
not_kw space e:equality_expression <Node::NegationExpression>
|
25
|
+
/
|
26
|
+
equality_expression
|
27
|
+
end
|
28
|
+
|
29
|
+
rule equality_expression
|
30
|
+
e:between_expression r:( space '=' space e:between_expression )*
|
31
|
+
<Node::EqualityExpression>
|
32
|
+
end
|
33
|
+
|
34
|
+
rule between_expression
|
35
|
+
e:set_predicate_expression r:( space
|
36
|
+
( not_kw space )? between_kw space ( symmetric_kw space )?
|
37
|
+
l:set_predicate_expression space and_kw space
|
38
|
+
r:set_predicate_expression
|
39
|
+
)*
|
40
|
+
<Node::BetweenExpression>
|
41
|
+
end
|
42
|
+
|
43
|
+
rule set_predicate_expression
|
44
|
+
exists_expression
|
45
|
+
/
|
46
|
+
e:test_expression space set_predicate_operator space
|
47
|
+
'(' space query_expression space ')'
|
48
|
+
<Node::SetPredicateExpression>
|
49
|
+
/
|
50
|
+
test_expression
|
51
|
+
end
|
52
|
+
|
53
|
+
rule exists_expression
|
54
|
+
exists_kw space '(' space query_expression space ')'
|
55
|
+
<Node::ExistsExpression>
|
56
|
+
end
|
57
|
+
|
58
|
+
rule test_expression
|
59
|
+
l:gen_expression space binary_test_operator space r:gen_expression
|
60
|
+
<Node::TestExpression::Binary>
|
61
|
+
/
|
62
|
+
e:gen_expression space unary_test_operator
|
63
|
+
<Node::TestExpression::Unary>
|
64
|
+
/
|
10
65
|
gen_expression
|
11
66
|
end
|
12
67
|
|
@@ -21,13 +76,34 @@ module SQLiterate
|
|
21
76
|
rule gen_value
|
22
77
|
literal_value <Node::GenValue::Literal>
|
23
78
|
/
|
24
|
-
function_call
|
79
|
+
function_call
|
25
80
|
/
|
26
81
|
field_selection r:( space '['
|
27
82
|
space range_expression space
|
28
83
|
']' )+ <Node::GenValue::Subscript>
|
29
84
|
/
|
30
|
-
field_selection
|
85
|
+
field_selection
|
86
|
+
/
|
87
|
+
case_expression
|
88
|
+
end
|
89
|
+
|
90
|
+
rule case_expression
|
91
|
+
case_kw required_space
|
92
|
+
case_when_section r:( space case_when_section )* space
|
93
|
+
case_else_section space
|
94
|
+
end_kw
|
95
|
+
<Node::CaseExpression>
|
96
|
+
end
|
97
|
+
|
98
|
+
rule case_when_section
|
99
|
+
when_kw required_space w:scalar_expression space
|
100
|
+
then_kw required_space t:scalar_expression
|
101
|
+
<Node::CaseWhenSection>
|
102
|
+
end
|
103
|
+
|
104
|
+
rule case_else_section
|
105
|
+
( else_kw required_space scalar_expression / space )
|
106
|
+
<Node::CaseElseSection>
|
31
107
|
end
|
32
108
|
|
33
109
|
rule function_call
|
@@ -77,12 +153,19 @@ module SQLiterate
|
|
77
153
|
end
|
78
154
|
|
79
155
|
rule order_by_clause
|
80
|
-
( order_by_kw
|
81
|
-
|
156
|
+
( order_by_kw required_space sort_expressions_list / space ) <Node::OrderByClause>
|
157
|
+
end
|
158
|
+
|
159
|
+
rule sort_expressions_list
|
160
|
+
sort_expression r:( space ',' space sort_expression)* <Node::SortExpressionsList>
|
161
|
+
end
|
162
|
+
|
163
|
+
rule sort_expression
|
164
|
+
scalar_expression space ordering_specifier <Node::SortExpression>
|
82
165
|
end
|
83
166
|
|
84
167
|
rule expressions_list
|
85
|
-
|
168
|
+
scalar_expression r:( space ',' space scalar_expression)* <Node::ExpressionsList>
|
86
169
|
end
|
87
170
|
|
88
171
|
rule range_expression
|
@@ -102,9 +185,9 @@ module SQLiterate
|
|
102
185
|
end
|
103
186
|
|
104
187
|
rule row_value
|
105
|
-
'(' query_expression ')' <Node::RowValue::Query>
|
188
|
+
'(' space query_expression space ')' <Node::RowValue::Query>
|
106
189
|
/
|
107
|
-
'(' space
|
190
|
+
'(' space scalar_expression space ')' <Node::RowValue::Expression>
|
108
191
|
/
|
109
192
|
positional_param <Node::RowValue::Positional>
|
110
193
|
/
|
@@ -155,7 +238,7 @@ module SQLiterate
|
|
155
238
|
end
|
156
239
|
|
157
240
|
rule named_expression
|
158
|
-
|
241
|
+
scalar_expression ( space (as_kw space)? column_name )? <Node::NamedExpression>
|
159
242
|
end
|
160
243
|
|
161
244
|
rule table_reference
|
@@ -173,19 +256,20 @@ module SQLiterate
|
|
173
256
|
end
|
174
257
|
|
175
258
|
rule from_clause
|
176
|
-
(from_kw required_space table_references / space) <Node::FromClause>
|
259
|
+
( from_kw required_space table_references / space ) <Node::FromClause>
|
177
260
|
end
|
178
261
|
|
179
262
|
rule where_clause
|
180
|
-
where_kw required_space scalar_expression / space
|
263
|
+
( where_kw required_space scalar_expression / space ) <Node::WhereClause>
|
181
264
|
end
|
182
265
|
|
183
266
|
rule group_by_clause
|
184
|
-
group_by_kw required_space expressions_list space having_clause / space
|
267
|
+
( group_by_kw required_space expressions_list space having_clause / space )
|
268
|
+
<Node::GroupByClause>
|
185
269
|
end
|
186
270
|
|
187
271
|
rule having_clause
|
188
|
-
having_kw required_space scalar_expression / space
|
272
|
+
( having_kw required_space scalar_expression / space ) <Node::HavingClause>
|
189
273
|
end
|
190
274
|
|
191
275
|
rule table_references
|
@@ -10,7 +10,9 @@ module SQLiterate
|
|
10
10
|
bigint_kw / boolean_kw / double_kw / float_kw / int_kw / real_kw /
|
11
11
|
smallint_kw / string_kw / timestamp_kw / tinyint_kw / integer_kw /
|
12
12
|
group_kw / having_kw / nulls_kw / first_kw / last_kw / union_kw /
|
13
|
-
intersect_kw / except_kw / limit_kw / offset_kw
|
13
|
+
intersect_kw / except_kw / limit_kw / offset_kw /
|
14
|
+
case_kw / when_kw / then_kw / else_kw / end_kw / symmetric_kw /
|
15
|
+
unknown_kw / exists_kw / any_kw / some_kw
|
14
16
|
end
|
15
17
|
|
16
18
|
rule type_name
|
@@ -259,5 +261,45 @@ module SQLiterate
|
|
259
261
|
rule offset_kw
|
260
262
|
[oO] [fF] [fF] [sS] [eE] [tT] kw_sep
|
261
263
|
end
|
264
|
+
|
265
|
+
rule case_kw
|
266
|
+
[cC] [aA] [sS] [eE] kw_sep
|
267
|
+
end
|
268
|
+
|
269
|
+
rule when_kw
|
270
|
+
[wW] [hH] [eE] [nN] kw_sep
|
271
|
+
end
|
272
|
+
|
273
|
+
rule then_kw
|
274
|
+
[tT] [hH] [eE] [nN] kw_sep
|
275
|
+
end
|
276
|
+
|
277
|
+
rule else_kw
|
278
|
+
[eE] [lL] [sS] [eE] kw_sep
|
279
|
+
end
|
280
|
+
|
281
|
+
rule end_kw
|
282
|
+
[eE] [nN] [dD] kw_sep
|
283
|
+
end
|
284
|
+
|
285
|
+
rule symmetric_kw
|
286
|
+
[sS] [yY] [mM] [mM] [eE] [tT] [rR] [iI] [cC] kw_sep
|
287
|
+
end
|
288
|
+
|
289
|
+
rule unknown_kw
|
290
|
+
[uU] [nN] [kK] [nN] [oO] [wW] [nN] kw_sep
|
291
|
+
end
|
292
|
+
|
293
|
+
rule exists_kw
|
294
|
+
[eE] [xX] [iI] [sS] [tT] [sS] kw_sep
|
295
|
+
end
|
296
|
+
|
297
|
+
rule any_kw
|
298
|
+
[aA] [nN] [yY] kw_sep
|
299
|
+
end
|
300
|
+
|
301
|
+
rule some_kw
|
302
|
+
[sS] [oO] [mM] [eE] kw_sep
|
303
|
+
end
|
262
304
|
end
|
263
305
|
end
|
@@ -5,16 +5,14 @@ module SQLiterate
|
|
5
5
|
include Keywords
|
6
6
|
|
7
7
|
rule gen_operator
|
8
|
-
symbol_operator
|
9
|
-
end
|
10
|
-
|
11
|
-
rule keyword_operator
|
12
|
-
( and_kw / or_kw / not_kw ) <Node::KeywordOperator>
|
8
|
+
symbol_operator
|
13
9
|
end
|
14
10
|
|
15
11
|
rule symbol_operator
|
16
12
|
sign_ending_operator
|
17
13
|
/
|
14
|
+
comparison_operator
|
15
|
+
/
|
18
16
|
nonsign_ending_operator
|
19
17
|
/
|
20
18
|
ambiguous_operator
|
@@ -22,10 +20,6 @@ module SQLiterate
|
|
22
20
|
single_char_operator
|
23
21
|
end
|
24
22
|
|
25
|
-
rule single_char_operator
|
26
|
-
c:op_char <Node::SingleCharOperator>
|
27
|
-
end
|
28
|
-
|
29
23
|
rule sign_ending_operator
|
30
24
|
b:( r:( basic_op_char !special_op_char )* basic_op_char )? special_op_char
|
31
25
|
o:( r:( op_char !(sign_op_char !op_char) )* op_char )? sign_op_char !op_char
|
@@ -33,15 +27,22 @@ module SQLiterate
|
|
33
27
|
end
|
34
28
|
|
35
29
|
rule nonsign_ending_operator
|
30
|
+
!comparison_operator
|
36
31
|
r:( op_char !(nonsign_op_char !op_char) )* op_char nonsign_op_char !op_char
|
37
32
|
<Node::NonsignEndingOperator>
|
38
33
|
end
|
39
34
|
|
40
35
|
rule ambiguous_operator
|
36
|
+
!comparison_operator
|
41
37
|
r:( op_char !(sign_op_char !op_char) )* op_char
|
42
38
|
<Node::AmbiguousOperator>
|
43
39
|
end
|
44
40
|
|
41
|
+
rule single_char_operator
|
42
|
+
!comparison_operator
|
43
|
+
c:op_char <Node::SingleCharOperator>
|
44
|
+
end
|
45
|
+
|
45
46
|
rule sign_op_char
|
46
47
|
c:[+\-] comment* <Node::OperatorChar>
|
47
48
|
end
|
@@ -61,5 +62,34 @@ module SQLiterate
|
|
61
62
|
rule op_char
|
62
63
|
c:[+\-*/<>=~!@#%^&|`?] comment* <Node::OperatorChar>
|
63
64
|
end
|
65
|
+
|
66
|
+
rule comparison_operator
|
67
|
+
o:( '>=' / '<=' / '<>' / '!=' / '=' / '>' / '<' ) comment* !nonsign_op_char
|
68
|
+
<Node::ComparisonOperator>
|
69
|
+
end
|
70
|
+
|
71
|
+
rule binary_test_operator
|
72
|
+
is_kw space ( not_kw space )? distinct_kw space from_kw
|
73
|
+
end
|
74
|
+
|
75
|
+
rule unary_test_operator
|
76
|
+
is_kw space ( not_kw space )? null_kw
|
77
|
+
/
|
78
|
+
isnull_kw
|
79
|
+
/
|
80
|
+
notnull_kw
|
81
|
+
/
|
82
|
+
is_kw space ( not_kw space )? true_kw
|
83
|
+
/
|
84
|
+
is_kw space ( not_kw space )? false_kw
|
85
|
+
/
|
86
|
+
is_kw space ( not_kw space )? unknown_kw
|
87
|
+
end
|
88
|
+
|
89
|
+
rule set_predicate_operator
|
90
|
+
( not_kw space )? in_kw
|
91
|
+
/
|
92
|
+
comparison_operator space ( any_kw / some_kw / all_kw )
|
93
|
+
end
|
64
94
|
end
|
65
95
|
end
|
@@ -1,5 +1,62 @@
|
|
1
1
|
module SQLiterate
|
2
2
|
module Node
|
3
|
+
module DisjunctionExpression
|
4
|
+
def tables
|
5
|
+
e.tables + r.elements.flat_map { |e| e.e.tables }
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
module ConjunctionExpression
|
10
|
+
def tables
|
11
|
+
e.tables + r.elements.flat_map { |e| e.e.tables }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module NegationExpression
|
16
|
+
def tables
|
17
|
+
e.tables
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module EqualityExpression
|
22
|
+
def tables
|
23
|
+
e.tables + r.elements.flat_map { |e| e.e.tables }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module BetweenExpression
|
28
|
+
def tables
|
29
|
+
e.tables + r.elements.flat_map do |e|
|
30
|
+
e.l.tables + e.r.tables
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module SetPredicateExpression
|
36
|
+
def tables
|
37
|
+
e.tables + query_expression.tables
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
module ExistsExpression
|
42
|
+
def tables
|
43
|
+
query_expression.tables
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
module TestExpression
|
48
|
+
module Binary
|
49
|
+
def tables
|
50
|
+
l.tables + r.tables
|
51
|
+
end
|
52
|
+
end
|
53
|
+
module Unary
|
54
|
+
def tables
|
55
|
+
e.tables
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
3
60
|
module GenExpression
|
4
61
|
def tables
|
5
62
|
gen_value.tables + r.elements.flat_map { |e| e.gen_value.tables }
|
@@ -21,6 +78,27 @@ module SQLiterate
|
|
21
78
|
end
|
22
79
|
end
|
23
80
|
|
81
|
+
module CaseExpression
|
82
|
+
def tables
|
83
|
+
case_else_section.tables + \
|
84
|
+
case_when_section.tables + r.elements.flat_map do |e|
|
85
|
+
e.case_when_section.tables
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
module CaseWhenSection
|
91
|
+
def tables
|
92
|
+
w.tables + t.tables
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
module CaseElseSection
|
97
|
+
def tables
|
98
|
+
respond_to?(:scalar_expression) ? scalar_expression.tables : []
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
24
102
|
module FunctionCall
|
25
103
|
def tables
|
26
104
|
function_params.tables
|
@@ -47,14 +125,28 @@ module SQLiterate
|
|
47
125
|
|
48
126
|
module OrderByClause
|
49
127
|
def tables
|
50
|
-
respond_to?(:
|
128
|
+
respond_to?(:sort_expressions_list) ? sort_expressions_list.tables : []
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
module SortExpressionsList
|
133
|
+
def tables
|
134
|
+
sort_expression.tables + r.elements.flat_map do |e|
|
135
|
+
e.sort_expression.tables
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
module SortExpression
|
141
|
+
def tables
|
142
|
+
scalar_expression.tables
|
51
143
|
end
|
52
144
|
end
|
53
145
|
|
54
146
|
module ExpressionsList
|
55
147
|
def tables
|
56
|
-
|
57
|
-
e.
|
148
|
+
scalar_expression.tables + r.elements.flat_map do |e|
|
149
|
+
e.scalar_expression.tables
|
58
150
|
end
|
59
151
|
end
|
60
152
|
end
|
@@ -69,7 +161,7 @@ module SQLiterate
|
|
69
161
|
|
70
162
|
module NamedExpression
|
71
163
|
def tables
|
72
|
-
|
164
|
+
scalar_expression.tables
|
73
165
|
end
|
74
166
|
end
|
75
167
|
|
@@ -99,7 +191,7 @@ module SQLiterate
|
|
99
191
|
end
|
100
192
|
module Expression
|
101
193
|
def tables
|
102
|
-
|
194
|
+
scalar_expression.tables
|
103
195
|
end
|
104
196
|
end
|
105
197
|
module Identifier
|
@@ -127,13 +219,13 @@ module SQLiterate
|
|
127
219
|
|
128
220
|
module SelectQuery
|
129
221
|
def tables
|
130
|
-
select_list.tables + table_expression.tables
|
222
|
+
select_list.tables + table_expression.tables + order_by_clause.tables
|
131
223
|
end
|
132
224
|
end
|
133
225
|
|
134
226
|
module TableExpression
|
135
227
|
def tables
|
136
|
-
from_clause.tables
|
228
|
+
from_clause.tables + where_clause.tables + group_by_clause.tables
|
137
229
|
end
|
138
230
|
end
|
139
231
|
|
@@ -143,6 +235,28 @@ module SQLiterate
|
|
143
235
|
end
|
144
236
|
end
|
145
237
|
|
238
|
+
module WhereClause
|
239
|
+
def tables
|
240
|
+
respond_to?(:scalar_expression) ? scalar_expression.tables : []
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
module GroupByClause
|
245
|
+
def tables
|
246
|
+
if respond_to?(:expressions_list)
|
247
|
+
expressions_list.tables + having_clause.tables
|
248
|
+
else
|
249
|
+
[]
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
module HavingClause
|
255
|
+
def tables
|
256
|
+
respond_to?(:scalar_expression) ? scalar_expression.tables : []
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
146
260
|
module TableReferences
|
147
261
|
def tables
|
148
262
|
table_joins.tables + r.elements.flat_map { |e| e.table_joins.tables }
|
@@ -1,5 +1,78 @@
|
|
1
1
|
module SQLiterate
|
2
2
|
module Node
|
3
|
+
module DisjunctionExpression
|
4
|
+
def value
|
5
|
+
if r.empty?
|
6
|
+
e.value
|
7
|
+
else
|
8
|
+
[:or, e.value ] + r.elements.flat_map { |e| e.e.value }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module ConjunctionExpression
|
14
|
+
def value
|
15
|
+
if r.empty?
|
16
|
+
e.value
|
17
|
+
else
|
18
|
+
[:and, e.value ] + r.elements.flat_map { |e| e.e.value }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module NegationExpression
|
24
|
+
def value
|
25
|
+
[:not, e.value]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module EqualityExpression
|
30
|
+
def value
|
31
|
+
if r.empty?
|
32
|
+
e.value
|
33
|
+
else
|
34
|
+
[:eq, e.value ] + r.elements.flat_map { |e| e.e.value }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
module BetweenExpression
|
40
|
+
def value
|
41
|
+
if r.empty?
|
42
|
+
e.value
|
43
|
+
else
|
44
|
+
[:b, gen_expression.value] + r.elements.flat_map do |e|
|
45
|
+
[e.l.value, e.r.value]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
module SetPredicateExpression
|
52
|
+
def value
|
53
|
+
[:set, e.value, query_expression.value]
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
module ExistsExpression
|
58
|
+
def value
|
59
|
+
[:exists, query_expression.value]
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
module TestExpression
|
64
|
+
module Binary
|
65
|
+
def value
|
66
|
+
[:test, l.value, r.value]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
module Unary
|
70
|
+
def value
|
71
|
+
[:test, e.value]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
3
76
|
module GenExpression
|
4
77
|
def value
|
5
78
|
h.elements.map { |e| e.gen_operator.operator } +
|
@@ -12,10 +85,6 @@ module SQLiterate
|
|
12
85
|
end
|
13
86
|
|
14
87
|
module GenValue
|
15
|
-
module Literal
|
16
|
-
end
|
17
|
-
module Function
|
18
|
-
end
|
19
88
|
module Subscript
|
20
89
|
def value
|
21
90
|
[:s, field_selection.value] + r.elements.map do |e|
|
@@ -23,8 +92,6 @@ module SQLiterate
|
|
23
92
|
end
|
24
93
|
end
|
25
94
|
end
|
26
|
-
module Field
|
27
|
-
end
|
28
95
|
end
|
29
96
|
|
30
97
|
module FunctionCall
|
@@ -59,8 +126,8 @@ module SQLiterate
|
|
59
126
|
|
60
127
|
module ExpressionsList
|
61
128
|
def value
|
62
|
-
[
|
63
|
-
e.
|
129
|
+
[scalar_expression.value] + r.elements.map do |e|
|
130
|
+
e.scalar_expression.value
|
64
131
|
end
|
65
132
|
end
|
66
133
|
end
|
@@ -76,9 +143,9 @@ module SQLiterate
|
|
76
143
|
module NamedExpression
|
77
144
|
def value
|
78
145
|
if respond_to?(:column_name)
|
79
|
-
[column_name.name,
|
146
|
+
[column_name.name, scalar_expression.value]
|
80
147
|
else
|
81
|
-
|
148
|
+
scalar_expression.value
|
82
149
|
end
|
83
150
|
end
|
84
151
|
end
|
@@ -109,7 +176,7 @@ module SQLiterate
|
|
109
176
|
end
|
110
177
|
module Expression
|
111
178
|
def value
|
112
|
-
|
179
|
+
scalar_expression.value
|
113
180
|
end
|
114
181
|
end
|
115
182
|
module Positional
|
@@ -1,11 +1,5 @@
|
|
1
1
|
module SQLiterate
|
2
2
|
module Node
|
3
|
-
module KeywordOperator
|
4
|
-
def operator
|
5
|
-
text_value.to_sym
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
3
|
module OperatorChar
|
10
4
|
def char
|
11
5
|
c.text_value
|
@@ -47,5 +41,11 @@ module SQLiterate
|
|
47
41
|
( r.elements.map { |e| e.op_char.char } + [op_char.char] ).join.to_sym
|
48
42
|
end
|
49
43
|
end
|
44
|
+
|
45
|
+
module ComparisonOperator
|
46
|
+
def operator
|
47
|
+
o.text_value.to_sym
|
48
|
+
end
|
49
|
+
end
|
50
50
|
end
|
51
51
|
end
|
data/lib/sqliterate/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqliterate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -121,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
segments:
|
123
123
|
- 0
|
124
|
-
hash:
|
124
|
+
hash: 2802900881270778442
|
125
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
126
|
none: false
|
127
127
|
requirements:
|
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
130
|
version: '0'
|
131
131
|
segments:
|
132
132
|
- 0
|
133
|
-
hash:
|
133
|
+
hash: 2802900881270778442
|
134
134
|
requirements: []
|
135
135
|
rubyforge_project:
|
136
136
|
rubygems_version: 1.8.23
|