arel_extensions 0.9.7 → 0.9.7.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.
- checksums.yaml +4 -4
- data/SQL_Challenges.md +1 -1
- data/TODO +0 -1
- data/functions.html +19 -1
- data/lib/arel_extensions/date_duration.rb +1 -0
- data/lib/arel_extensions/nodes/duration.rb +2 -1
- data/lib/arel_extensions/nodes/is_null.rb +1 -0
- data/lib/arel_extensions/nodes/rand.rb +0 -1
- data/lib/arel_extensions/nodes/round.rb +1 -0
- data/lib/arel_extensions/nodes/wday.rb +1 -1
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors/oracle.rb +10 -10
- data/test/with_ar/all_agnostic_test.rb +8 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be145c31813735ab972e8b497c6ceab5e06e291
|
4
|
+
data.tar.gz: 7c62d208758ff4ae6c0519736db22e67163b1084
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39ba0787983047a55a20012256533f4f22752e54e44e2f0504a86e26f912fa29662742b1d75588e6b35b051567754a74bc129b53c11ff1869146606480b64a43
|
7
|
+
data.tar.gz: 2b8ea0881447aa61d5bdad1b2c8e111059804abe4b6613adef9372f00d7d22ef6bcada95da7f2615be8a174c298ff3e1fca8345f7bb9dda28948ec58f1d934ca
|
data/SQL_Challenges.md
CHANGED
data/TODO
CHANGED
data/functions.html
CHANGED
@@ -198,12 +198,30 @@
|
|
198
198
|
<tr>
|
199
199
|
<td class="tg-yw4l">TRIM (both)<br>column.trim("BOTH","e")</td>
|
200
200
|
<td class="ok">✔</td>
|
201
|
-
<td class="tg-j6lv">TRIM()
|
201
|
+
<td class="tg-j6lv">TRIM()</td>
|
202
202
|
<td class="tg-j6lv">TRIM()</td>
|
203
203
|
<td class="ok">✔</td>
|
204
204
|
<td class="tg-j6lv">LTRIM(RTRIM())</td>
|
205
205
|
<td class="tg-j6lv">TRIM()</td>
|
206
206
|
</tr>
|
207
|
+
<tr>
|
208
|
+
<td class="tg-yw4l">LOWER<br>column.downcase</td>
|
209
|
+
<td class="ok">✔</td>
|
210
|
+
<td class="ok">✔</td>
|
211
|
+
<td class="ok">✔</td>
|
212
|
+
<td class="ok">✔</td>
|
213
|
+
<td class="ok">✔</td>
|
214
|
+
<td class="ok">✔</td>
|
215
|
+
</tr>
|
216
|
+
<tr>
|
217
|
+
<td class="tg-yw4l">UPPER<br>column.upcase</td>
|
218
|
+
<td class="ok">✔</td>
|
219
|
+
<td class="ok">✔</td>
|
220
|
+
<td class="ok">✔</td>
|
221
|
+
<td class="ok">✔</td>
|
222
|
+
<td class="ok">✔</td>
|
223
|
+
<td class="ok">✔</td>
|
224
|
+
</tr>
|
207
225
|
<tr>
|
208
226
|
<th class="tg-4rp9" rowspan="6"><div>Date functions</div></th>
|
209
227
|
<td class="tg-yw4l">DATEADD<br>column + 2.year<br></td>
|
@@ -79,27 +79,27 @@ module ArelExtensions
|
|
79
79
|
|
80
80
|
# :date is not possible in Oracle since this type does not really exist
|
81
81
|
def visit_ArelExtensions_Nodes_DateDiff o, collector
|
82
|
-
lc = o.left_node_type == :ruby_date || o.left_node_type == :ruby_time
|
83
|
-
rc = o.right_node_type == :ruby_date || o.right_node_type == :ruby_time
|
82
|
+
# lc = o.left_node_type == :ruby_date || o.left_node_type == :ruby_time
|
83
|
+
# rc = o.right_node_type == :ruby_date || o.right_node_type == :ruby_time
|
84
84
|
collector << '('
|
85
|
-
collector << 'TO_DATE(' if lc
|
85
|
+
# collector << 'TO_DATE(' if lc
|
86
86
|
collector = visit o.left, collector
|
87
|
-
collector << ')' if lc
|
87
|
+
# collector << ')' if lc
|
88
88
|
collector << " - "
|
89
|
-
collector << 'TO_DATE(' if rc
|
89
|
+
# collector << 'TO_DATE(' if rc
|
90
90
|
collector = visit o.right, collector
|
91
|
-
collector << ')' if rc
|
91
|
+
# collector << ')' if rc
|
92
92
|
collector << ')'
|
93
93
|
if o.left_node_type == :ruby_time || o.left_node_type == :datetime || o.left_node_type == :time
|
94
94
|
collector << ' * CASE WHEN (TRUNC('
|
95
|
-
collector << 'TO_DATE(' if lc
|
95
|
+
# collector << 'TO_DATE(' if lc
|
96
96
|
collector = visit o.left, collector
|
97
|
-
collector << ')' if lc
|
97
|
+
# collector << ')' if lc
|
98
98
|
collector << Arel::Visitors::Oracle::COMMA
|
99
99
|
collector << "'DDD') = "
|
100
|
-
collector << 'TO_DATE(' if lc
|
100
|
+
# collector << 'TO_DATE(' if lc
|
101
101
|
collector = visit o.left, collector
|
102
|
-
collector << ')' if lc
|
102
|
+
# collector << ')' if lc
|
103
103
|
collector << ') THEN 1 ELSE 86400 END' # converts to seconds
|
104
104
|
end
|
105
105
|
collector
|
@@ -123,8 +123,8 @@ module ArelExtensions
|
|
123
123
|
def test_ceil
|
124
124
|
# skip "Sqlite version can't load extension for ceil" if $sqlite && $load_extension_disabled
|
125
125
|
assert_equal 2, t(@test, @score.ceil) # 1.62
|
126
|
-
assert_equal
|
127
|
-
assert_equal
|
126
|
+
assert_equal(-20, t(@camille, @score.ceil)) # -20.16
|
127
|
+
assert_equal(-20, t(@camille, (@score - 0.5).ceil)) # -20.16
|
128
128
|
assert_equal 63, t(@arthur, @age.ceil + 42)
|
129
129
|
end
|
130
130
|
|
@@ -132,7 +132,7 @@ module ArelExtensions
|
|
132
132
|
# skip "Sqlite version can't load extension for floor" if $sqlite && $load_extension_disabled
|
133
133
|
assert_equal 0, t(@neg, @score.floor)
|
134
134
|
assert_equal 1, t(@test, @score.floor) # 1.62
|
135
|
-
assert_equal
|
135
|
+
assert_equal(-9, t(@test, (@score - 10).floor)) # 1.62
|
136
136
|
assert_equal 42, t(@arthur, @score.floor - 23)
|
137
137
|
end
|
138
138
|
|
@@ -192,12 +192,12 @@ module ArelExtensions
|
|
192
192
|
|
193
193
|
def test_substring
|
194
194
|
assert_equal 'C', t(@camille, @name.substring(1, 1))
|
195
|
-
assert_equal
|
195
|
+
assert_equal(@env_db == 'oracle' ? nil : '', t(@lucas, @name.substring(42)))
|
196
196
|
assert_equal 'Lu', t(@lucas, @name.substring(1,2))
|
197
197
|
|
198
198
|
assert_equal 'C', t(@camille, @name[0, 1])
|
199
199
|
assert_equal 'C', t(@camille, @name[0])
|
200
|
-
assert_equal
|
200
|
+
assert_equal(@env_db == 'oracle' ? nil : '', t(@lucas, @name[42]))
|
201
201
|
assert_equal 'Lu', t(@lucas, @name[0,2])
|
202
202
|
assert_equal 'Lu', t(@lucas, @name[0..1])
|
203
203
|
end
|
@@ -302,7 +302,7 @@ module ArelExtensions
|
|
302
302
|
|
303
303
|
assert_equal ' ', t(@myung, @comments.coalesce("Myung").coalesce('ignored'))
|
304
304
|
assert_equal 'Laure', t(@laure, @comments.coalesce("Laure"))
|
305
|
-
assert_equal
|
305
|
+
assert_equal(@env_db == 'oracle' ? nil : '', t(@laure, @comments.coalesce("")))
|
306
306
|
|
307
307
|
if @env_db == 'postgresql'
|
308
308
|
assert_equal 100, t(@test, @age.coalesce(100))
|
@@ -363,6 +363,8 @@ module ArelExtensions
|
|
363
363
|
else
|
364
364
|
assert_equal 42, t(@lucas, @updated_at - Time.utc(2014, 3, 3, 12, 41, 18)).to_i
|
365
365
|
assert_equal(-3600, t(@lucas, @updated_at - Time.utc(2014, 3, 3, 13, 42)).to_i)
|
366
|
+
|
367
|
+
assert_equal 0, t(@lucas, (@updated_at - Time.utc(2014, 3, 3, 12, 41, 18)) < -1).to_i
|
366
368
|
end
|
367
369
|
end
|
368
370
|
|
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: 0.9.7
|
4
|
+
version: 0.9.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yann Azoury
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-03-
|
13
|
+
date: 2017-03-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: arel
|