sqliterate 0.1.2 → 0.1.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.
@@ -43,13 +43,19 @@ module SQLiterate
43
43
  rule set_predicate_expression
44
44
  exists_expression
45
45
  /
46
- e:test_expression space set_predicate_operator space
47
- '(' space query_expression space ')'
46
+ e:test_expression space set_predicate_operator space set_constructor
48
47
  <Node::SetPredicateExpression>
49
48
  /
50
49
  test_expression
51
50
  end
52
51
 
52
+ rule set_constructor
53
+ '(' space e:query_expression space ')'
54
+ /
55
+ '(' space e:expressions_list space ')'
56
+ <Node::SetConstructor>
57
+ end
58
+
53
59
  rule exists_expression
54
60
  exists_kw space '(' space query_expression space ')'
55
61
  <Node::ExistsExpression>
@@ -96,13 +102,13 @@ module SQLiterate
96
102
  end
97
103
 
98
104
  rule case_when_section
99
- when_kw required_space w:scalar_expression space
100
- then_kw required_space t:scalar_expression
105
+ when_kw space w:scalar_expression space
106
+ then_kw space t:scalar_expression
101
107
  <Node::CaseWhenSection>
102
108
  end
103
109
 
104
110
  rule case_else_section
105
- ( else_kw required_space scalar_expression / space )
111
+ ( else_kw space scalar_expression / space )
106
112
  <Node::CaseElseSection>
107
113
  end
108
114
 
@@ -149,11 +155,11 @@ module SQLiterate
149
155
 
150
156
  rule ordering_specifier
151
157
  ( asc_kw / desc_kw )?
152
- ( required_space nulls_kw required_space ( first_kw / last_kw ) )?
158
+ ( space nulls_kw required_space ( first_kw / last_kw ) )?
153
159
  end
154
160
 
155
161
  rule order_by_clause
156
- ( order_by_kw required_space sort_expressions_list / space ) <Node::OrderByClause>
162
+ ( order_by_kw space sort_expressions_list / space ) <Node::OrderByClause>
157
163
  end
158
164
 
159
165
  rule sort_expressions_list
@@ -210,7 +216,7 @@ module SQLiterate
210
216
  end
211
217
 
212
218
  rule select_query
213
- select_kw required_space
219
+ select_kw space
214
220
  distinct_clause space
215
221
  select_list space
216
222
  table_expression space
@@ -222,7 +228,7 @@ module SQLiterate
222
228
 
223
229
  rule distinct_clause
224
230
  aggregate_specifier (
225
- required_space on_kw required_space '(' space expressions_list space ')'
231
+ required_space on_kw space '(' space expressions_list space ')'
226
232
  )?
227
233
  /
228
234
  space
@@ -256,20 +262,20 @@ module SQLiterate
256
262
  end
257
263
 
258
264
  rule from_clause
259
- ( from_kw required_space table_references / space ) <Node::FromClause>
265
+ ( from_kw space table_references / space ) <Node::FromClause>
260
266
  end
261
267
 
262
268
  rule where_clause
263
- ( where_kw required_space scalar_expression / space ) <Node::WhereClause>
269
+ ( where_kw space scalar_expression / space ) <Node::WhereClause>
264
270
  end
265
271
 
266
272
  rule group_by_clause
267
- ( group_by_kw required_space expressions_list space having_clause / space )
273
+ ( group_by_kw space expressions_list space having_clause / space )
268
274
  <Node::GroupByClause>
269
275
  end
270
276
 
271
277
  rule having_clause
272
- ( having_kw required_space scalar_expression / space ) <Node::HavingClause>
278
+ ( having_kw space scalar_expression / space ) <Node::HavingClause>
273
279
  end
274
280
 
275
281
  rule table_references
@@ -323,15 +329,17 @@ module SQLiterate
323
329
  end
324
330
 
325
331
  rule limit_clause
326
- limit_kw required_space ( digits / all_kw )
327
- /
328
- space
332
+ ( limit_kw required_space all_kw
333
+ /
334
+ limit_kw space scalar_expression
335
+ /
336
+ space )
337
+ <Node::LimitClause>
329
338
  end
330
339
 
331
340
  rule offset_clause
332
- offset_kw required_space digits
333
- /
334
- space
341
+ ( offset_kw space scalar_expression / space )
342
+ <Node::OffsetClause>
335
343
  end
336
344
  end
337
345
  end
@@ -9,7 +9,7 @@ module SQLiterate
9
9
  end
10
10
 
11
11
  rule with_section
12
- (with_kw required_space with_queries / space) <Node::WithSection>
12
+ (with_kw space with_queries / space) <Node::WithSection>
13
13
  end
14
14
 
15
15
  rule with_queries
@@ -17,7 +17,7 @@ module SQLiterate
17
17
  end
18
18
 
19
19
  rule with_query
20
- identifier required_space as_kw required_space '('
20
+ identifier space as_kw space '('
21
21
  space query_expression space
22
22
  ')' <Node::WithQuery>
23
23
  end
@@ -38,6 +38,12 @@ module SQLiterate
38
38
  end
39
39
  end
40
40
 
41
+ module SetConstructor
42
+ def tables
43
+ e.tables
44
+ end
45
+ end
46
+
41
47
  module ExistsExpression
42
48
  def tables
43
49
  query_expression.tables
@@ -219,7 +225,11 @@ module SQLiterate
219
225
 
220
226
  module SelectQuery
221
227
  def tables
222
- select_list.tables + table_expression.tables + order_by_clause.tables
228
+ select_list.tables + \
229
+ table_expression.tables + \
230
+ order_by_clause.tables + \
231
+ limit_clause.tables + \
232
+ offset_clause.tables
223
233
  end
224
234
  end
225
235
 
@@ -302,5 +312,17 @@ module SQLiterate
302
312
  table_reference.table
303
313
  end
304
314
  end
315
+
316
+ module LimitClause
317
+ def tables
318
+ respond_to?(:scalar_expression) ? scalar_expression.tables : []
319
+ end
320
+ end
321
+
322
+ module OffsetClause
323
+ def tables
324
+ respond_to?(:scalar_expression) ? scalar_expression.tables : []
325
+ end
326
+ end
305
327
  end
306
328
  end
@@ -50,7 +50,13 @@ module SQLiterate
50
50
 
51
51
  module SetPredicateExpression
52
52
  def value
53
- [:set, e.value, query_expression.value]
53
+ [:set, e.value, set_constructor.value]
54
+ end
55
+ end
56
+
57
+ module SetConstructor
58
+ def value
59
+ e.value
54
60
  end
55
61
  end
56
62
 
@@ -1,3 +1,3 @@
1
1
  module SQLiterate
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
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.2
4
+ version: 0.1.3
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: 2802900881270778442
124
+ hash: 3648950469007697292
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: 2802900881270778442
133
+ hash: 3648950469007697292
134
134
  requirements: []
135
135
  rubyforge_project:
136
136
  rubygems_version: 1.8.23