2
0
Files
pgx/pgtype/range_types.go.erb
T
Jack Christensen 0355d2ffea Add Float8range
PostgreSQL doesn't define float8range out of the box though it can
easily be created by the user. However, it is still convenient to treat
a numrange as a float8range.
2022-02-05 08:54:38 -06:00

51 lines
1.0 KiB
Plaintext

package pgtype
<%
[
["Int4range", "Int4"],
["Int8range", "Int8"],
["Numrange", "Numeric"],
["Tsrange", "Timestamp"],
["Tstzrange", "Timestamptz"],
["Daterange", "Date"],
["Float8range", "Float8"]
].each do |range_type, element_type|
%>
type <%= range_type %> struct {
Lower <%= element_type %>
Upper <%= element_type %>
LowerType BoundType
UpperType BoundType
Valid bool
}
func (r <%= range_type %>) IsNull() bool {
return !r.Valid
}
func (r <%= range_type %>) BoundTypes() (lower, upper BoundType) {
return r.LowerType, r.UpperType
}
func (r <%= range_type %>) Bounds() (lower, upper interface{}) {
return &r.Lower, &r.Upper
}
func (r *<%= range_type %>) ScanNull() error {
*r = <%= range_type %>{}
return nil
}
func (r *<%= range_type %>) ScanBounds() (lowerTarget, upperTarget interface{}) {
return &r.Lower, &r.Upper
}
func (r *<%= range_type %>) SetBoundTypes(lower, upper BoundType) error {
r.LowerType = lower
r.UpperType = upper
r.Valid = true
return nil
}
<% end %>