Skip to content

Commit a076256

Browse files
committed
remove deprecated support for PG ranges with exclusive lower bounds.
addresses 91949e4#commitcomment-9144563
1 parent 5cc08e1 commit a076256

3 files changed

Lines changed: 10 additions & 37 deletions

File tree

activerecord/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* Remove deprecated support for PostgreSQL ranges with exclusive lower bounds.
2+
3+
*Yves Senn*
4+
15
* Remove deprecation when modifying a relation with cached arel.
26
This raises an `ImmutableRelation` error instead.
37

activerecord/lib/active_record/connection_adapters/postgresql/oid/range.rb

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,7 @@ def cast_value(value)
2525
to = type_cast_single extracted[:to]
2626

2727
if !infinity?(from) && extracted[:exclude_start]
28-
if from.respond_to?(:succ)
29-
from = from.succ
30-
ActiveSupport::Deprecation.warn(<<-MSG.squish)
31-
Excluding the beginning of a Range is only partialy supported
32-
through `#succ`. This is not reliable and will be removed in
33-
the future.
34-
MSG
35-
else
36-
raise ArgumentError, "The Ruby Range object does not support excluding the beginning of a Range. (unsupported value: '#{value}')"
37-
end
28+
raise ArgumentError, "The Ruby Range object does not support excluding the beginning of a Range. (unsupported value: '#{value}')"
3829
end
3930
::Range.new(from, to, extracted[:exclude_end])
4031
end

activerecord/test/cases/adapters/postgresql/range_test.rb

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -230,36 +230,14 @@ def test_update_int8range
230230
assert_nil_round_trip(@first_range, :int8_range, 39999...39999)
231231
end
232232

233-
def test_exclude_beginning_for_subtypes_with_succ_method_is_deprecated
234-
tz = ::ActiveRecord::Base.default_timezone
235-
236-
silence_warnings {
237-
assert_deprecated {
238-
range = PostgresqlRange.create!(date_range: "(''2012-01-02'', ''2012-01-04'']")
239-
assert_equal Date.new(2012, 1, 3)..Date.new(2012, 1, 4), range.date_range
240-
}
241-
assert_deprecated {
242-
range = PostgresqlRange.create!(ts_range: "(''2010-01-01 14:30'', ''2011-01-01 14:30'']")
243-
assert_equal Time.send(tz, 2010, 1, 1, 14, 30, 1)..Time.send(tz, 2011, 1, 1, 14, 30, 0), range.ts_range
244-
}
245-
assert_deprecated {
246-
range = PostgresqlRange.create!(tstz_range: "(''2010-01-01 14:30:00+05'', ''2011-01-01 14:30:00-03'']")
247-
assert_equal Time.parse('2010-01-01 09:30:01 UTC')..Time.parse('2011-01-01 17:30:00 UTC'), range.tstz_range
248-
}
249-
assert_deprecated {
250-
range = PostgresqlRange.create!(int4_range: "(1, 10]")
251-
assert_equal 2..10, range.int4_range
252-
}
253-
assert_deprecated {
254-
range = PostgresqlRange.create!(int8_range: "(10, 100]")
255-
assert_equal 11..100, range.int8_range
256-
}
257-
}
258-
end
259-
260233
def test_exclude_beginning_for_subtypes_without_succ_method_is_not_supported
261234
assert_raises(ArgumentError) { PostgresqlRange.create!(num_range: "(0.1, 0.2]") }
262235
assert_raises(ArgumentError) { PostgresqlRange.create!(float_range: "(0.5, 0.7]") }
236+
assert_raises(ArgumentError) { PostgresqlRange.create!(int4_range: "(1, 10]") }
237+
assert_raises(ArgumentError) { PostgresqlRange.create!(int8_range: "(10, 100]") }
238+
assert_raises(ArgumentError) { PostgresqlRange.create!(date_range: "(''2012-01-02'', ''2012-01-04'']") }
239+
assert_raises(ArgumentError) { PostgresqlRange.create!(ts_range: "(''2010-01-01 14:30'', ''2011-01-01 14:30'']") }
240+
assert_raises(ArgumentError) { PostgresqlRange.create!(tstz_range: "(''2010-01-01 14:30:00+05'', ''2011-01-01 14:30:00-03'']") }
263241
end
264242

265243
def test_update_all_with_ranges

0 commit comments

Comments
 (0)