module Sequel::Postgres::ExtendedDateSupport::DatasetMethods

Private Instance Methods

literal_date(date) click to toggle source

Handle BC Date objects.

Calls superclass method
    # File lib/sequel/extensions/pg_extended_date_support.rb
191 def literal_date(date)
192   if date.year < 1
193     date <<= ((date.year) * 24 - 12)
194     date.strftime("'%Y-%m-%d BC'")
195   else
196     super
197   end
198 end
literal_datetime(date) click to toggle source

Handle BC DateTime objects.

Calls superclass method
    # File lib/sequel/extensions/pg_extended_date_support.rb
201 def literal_datetime(date)
202   if date < DATETIME_YEAR_1
203     date <<= ((date.year) * 24 - 12)
204     date = db.from_application_timestamp(date)
205     minutes = (date.offset * 1440).to_i
206     date.strftime("'%Y-%m-%d %H:%M:%S.%6N#{sprintf("%+03i%02i", *minutes.divmod(60))} BC'")
207   else
208     super
209   end
210 end
literal_other_append(sql, v) click to toggle source

Handle Date::Infinity values

Calls superclass method
    # File lib/sequel/extensions/pg_extended_date_support.rb
213 def literal_other_append(sql, v)
214   if v.is_a?(Date::Infinity)
215     sql << (v > 0 ? "'infinity'" : "'-infinity'")
216   else
217     super
218   end
219 end
literal_time(time) click to toggle source

Work around JRuby bug #4822 in Time#to_datetime for times before date of calendar reform

Calls superclass method
    # File lib/sequel/extensions/pg_extended_date_support.rb
237 def literal_time(time)
238   if time < TIME_YEAR_1
239     literal_datetime(DateTime.parse(super))
240   else
241     super
242   end
243 end
type_convertor(map, meta, type, i) click to toggle source

Use non-JDBC parsing as JDBC parsing doesn’t work for BC dates/timestamps.

Calls superclass method
    # File lib/sequel/extensions/pg_extended_date_support.rb
227 def type_convertor(map, meta, type, i)
228   case type
229   when *CONVERT_TYPES
230     db.oid_convertor_proc(meta.getField(i).getOID)
231   else
232     super
233   end
234 end