arel_extensions 1.1.4 → 1.1.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c605fff28ecad52dbb7519c17ea982844ecad5fc
4
- data.tar.gz: ad640c79367460a9b06ce89bffd6ef587ec1f30d
3
+ metadata.gz: a8255cb9ebee4b9aded4f23486b0ef143651fecc
4
+ data.tar.gz: 5d45081246d1b3221d2e29c6f55b39ba886b20cd
5
5
  SHA512:
6
- metadata.gz: f113a241aec0ab76d42be635e1db174f82c02e2f8bdb0f5320a02b92b84b9d237f8ac1c2da27411a8ced881bdd752cf61f7d60224eca2e62683befde0f90ec74
7
- data.tar.gz: a60110f2acf2d1b46b2a576d2800fe1718b923c307e1691e960153c6cf72db8cce65e932fc5bac397af413b0dd1a8499a067522ad00080e76a34094837ec2a43
6
+ metadata.gz: 81631cd7e514add0be52d774c9be37c22dfa8304d73eb9ba79fd4b5b034eb69e9c1f8c7e40a18ee34183a34c5b0d86bca118c34cc76bba2765bca2886cebc858
7
+ data.tar.gz: afa3c43c1ec75118dc8c2ee24973973872a7b291b938e6a8a4cd9554c099c4abe067eb9d59f9b1d79f16946548f6b25ac1e01ea540caf7008c90d7240a5da59f
@@ -1,3 +1,3 @@
1
1
  module ArelExtensions
2
- VERSION = "1.1.4".freeze
2
+ VERSION = "1.1.5".freeze
3
3
  end
@@ -1,68 +1,65 @@
1
1
  module ArelExtensions
2
- module Visitors
3
- if Arel::VERSION.to_i < 7
4
- class Arel::Visitors::Oracle12 < Arel::Visitors::Oracle
5
-
2
+ module Visitors
3
+ class Arel::Visitors::Oracle12 < Arel::Visitors::Oracle
6
4
 
7
- def visit_Arel_Nodes_SelectStatement(o, collector)
8
- # Oracle does not allow LIMIT clause with select for update
9
- if o.limit && o.lock
10
- raise ArgumentError, <<-MSG
11
- 'Combination of limit and lock is not supported.
12
- because generated SQL statements
13
- `SELECT FOR UPDATE and FETCH FIRST n ROWS` generates ORA-02014.`
14
- MSG
15
- end
16
- super
17
- end
5
+ def visit_Arel_Nodes_SelectStatement(o, collector)
6
+ # Oracle does not allow LIMIT clause with select for update
7
+ if o.limit && o.lock
8
+ raise ArgumentError, <<-MSG
9
+ 'Combination of limit and lock is not supported.
10
+ because generated SQL statements
11
+ `SELECT FOR UPDATE and FETCH FIRST n ROWS` generates ORA-02014.`
12
+ MSG
13
+ end
14
+ super
15
+ end
18
16
 
19
- def visit_Arel_Nodes_SelectOptions(o, collector)
20
- collector = maybe_visit o.offset, collector
21
- collector = maybe_visit o.limit, collector
22
- maybe_visit o.lock, collector
23
- end
17
+ def visit_Arel_Nodes_SelectOptions(o, collector)
18
+ collector = maybe_visit o.offset, collector
19
+ collector = maybe_visit o.limit, collector
20
+ maybe_visit o.lock, collector
21
+ end
24
22
 
25
- def visit_Arel_Nodes_Limit(o, collector)
26
- collector << "FETCH FIRST "
27
- collector = visit o.expr, collector
28
- collector << " ROWS ONLY"
29
- end
23
+ def visit_Arel_Nodes_Limit(o, collector)
24
+ collector << "FETCH FIRST "
25
+ collector = visit o.expr, collector
26
+ collector << " ROWS ONLY"
27
+ end
30
28
 
31
- def visit_Arel_Nodes_Offset(o, collector)
32
- collector << "OFFSET "
33
- visit o.expr, collector
34
- collector << " ROWS"
35
- end
29
+ def visit_Arel_Nodes_Offset(o, collector)
30
+ collector << "OFFSET "
31
+ visit o.expr, collector
32
+ collector << " ROWS"
33
+ end
36
34
 
37
- def visit_Arel_Nodes_Except(o, collector)
38
- collector << "( "
39
- collector = infix_value o, collector, " MINUS "
40
- collector << " )"
41
- end
35
+ def visit_Arel_Nodes_Except(o, collector)
36
+ collector << "( "
37
+ collector = infix_value o, collector, " MINUS "
38
+ collector << " )"
39
+ end
42
40
 
43
- def visit_Arel_Nodes_UpdateStatement(o, collector)
44
- # Oracle does not allow ORDER BY/LIMIT in UPDATEs.
45
- if o.orders.any? && o.limit.nil?
46
- # However, there is no harm in silently eating the ORDER BY clause if no LIMIT has been provided,
47
- # otherwise let the user deal with the error
48
- o = o.dup
49
- o.orders = []
50
- end
41
+ def visit_Arel_Nodes_UpdateStatement(o, collector)
42
+ # Oracle does not allow ORDER BY/LIMIT in UPDATEs.
43
+ if o.orders.any? && o.limit.nil?
44
+ # However, there is no harm in silently eating the ORDER BY clause if no LIMIT has been provided,
45
+ # otherwise let the user deal with the error
46
+ o = o.dup
47
+ o.orders = []
48
+ end
51
49
 
52
- super
53
- end
50
+ super
51
+ end
54
52
 
55
- def visit_Arel_Nodes_BindParam(o, collector)
56
- collector.add_bind(o.value) { |i| ":a#{i}" }
57
- end
53
+ def visit_Arel_Nodes_BindParam(o, collector)
54
+ collector.add_bind(o.value) { |i| ":a#{i}" }
55
+ end
58
56
 
59
- def is_distinct_from(o, collector)
60
- collector << "DECODE("
61
- collector = visit [o.left, o.right, 0, 1], collector
62
- collector << ")"
63
- end
57
+ def is_distinct_from(o, collector)
58
+ collector << "DECODE("
59
+ collector = visit [o.left, o.right, 0, 1], collector
60
+ collector << ")"
61
+ end
64
62
 
65
- end
66
63
  end
67
64
  end
68
65
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Azoury