arel_extensions 0.9.7.1 → 0.9.7.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.
- checksums.yaml +4 -4
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors/oracle.rb +12 -12
- data/test/visitors/test_oracle.rb +1 -1
- data/test/with_ar/all_agnostic_test.rb +6 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1923df0add8a1b52266d494eeb0eaf76e422b7f5
|
4
|
+
data.tar.gz: 5be82144d6f2c8c1862bb4cec335d37a2cfd109e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 738eb1d6e164f64625b06f91be03b8852be0f5e4c359ccab87b13342af03f4d79ce69371950ab6c52410394411aa22cb5e14a25d6a610de36eb5e28df92ac453
|
7
|
+
data.tar.gz: db4742a4ac307fc3e208deba698bfa9032e9b51d5eaa13b32f69860250211ed44f588f127a96d1ec431d03c8cfe94e190e2b4df10cf15aad952b842520fbd735
|
@@ -79,28 +79,28 @@ 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
|
-
|
83
|
-
|
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
|
-
|
85
|
+
collector << 'TO_DATE(' if lc
|
86
86
|
collector = visit o.left, collector
|
87
|
-
|
87
|
+
collector << ')' if lc
|
88
88
|
collector << " - "
|
89
|
-
|
89
|
+
collector << 'TO_DATE(' if rc
|
90
90
|
collector = visit o.right, collector
|
91
|
-
|
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
|
-
collector << ' * CASE WHEN (TRUNC('
|
95
|
-
|
94
|
+
collector << ' * (CASE WHEN (TRUNC('
|
95
|
+
collector << 'TO_DATE(' if lc
|
96
96
|
collector = visit o.left, collector
|
97
|
-
|
97
|
+
collector << ')' if lc
|
98
98
|
collector << Arel::Visitors::Oracle::COMMA
|
99
99
|
collector << "'DDD') = "
|
100
|
-
|
100
|
+
collector << 'TO_DATE(' if lc
|
101
101
|
collector = visit o.left, collector
|
102
|
-
|
103
|
-
collector << ') THEN 1 ELSE 86400 END' # converts to seconds
|
102
|
+
collector << ')' if lc
|
103
|
+
collector << ') THEN 1 ELSE 86400 END)' # converts to seconds
|
104
104
|
end
|
105
105
|
collector
|
106
106
|
end
|
@@ -70,7 +70,7 @@ module ArelExtensions
|
|
70
70
|
it "should diff date col and datetime col with AS" do
|
71
71
|
sql = compile((@table[:updated_at] - @table[:created_at]).as('new_name'))
|
72
72
|
# sql.must_be_like %{(TO_DATE("users"."updated_at") - "users"."created_at") * 86400 AS new_name}
|
73
|
-
sql.must_be_like %{("users"."updated_at" - "users"."created_at") * CASE WHEN (TRUNC("users"."updated_at", 'DDD') = "users"."updated_at") THEN 1 ELSE 86400 END AS new_name}
|
73
|
+
sql.must_be_like %{("users"."updated_at" - "users"."created_at") * (CASE WHEN (TRUNC("users"."updated_at", 'DDD') = "users"."updated_at") THEN 1 ELSE 86400 END) AS new_name}
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should diff between time values" do
|
@@ -302,7 +302,11 @@ 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
|
-
|
305
|
+
if @env_db == 'oracle'
|
306
|
+
assert_nil t(@laure, @comments.coalesce(""))
|
307
|
+
else
|
308
|
+
assert_equal('', t(@laure, @comments.coalesce("")))
|
309
|
+
end
|
306
310
|
|
307
311
|
if @env_db == 'postgresql'
|
308
312
|
assert_equal 100, t(@test, @age.coalesce(100))
|
@@ -364,7 +368,7 @@ module ArelExtensions
|
|
364
368
|
assert_equal 42, t(@lucas, @updated_at - Time.utc(2014, 3, 3, 12, 41, 18)).to_i
|
365
369
|
assert_equal(-3600, t(@lucas, @updated_at - Time.utc(2014, 3, 3, 13, 42)).to_i)
|
366
370
|
|
367
|
-
|
371
|
+
assert_includes [nil, 0, 'f'], t(@lucas, (@updated_at - Time.utc(2014, 3, 3, 12, 41, 18)) < -1)
|
368
372
|
end
|
369
373
|
end
|
370
374
|
|