Documentation ¶
Index ¶
- func Array(a interface{}) interface{ ... }
- func EnableInfinityTs(negative time.Time, positive time.Time)
- func FormatTimestamp(t time.Time) []byte
- func ParseTimestamp(currentLocation *time.Location, str string) (time.Time, error)
- type ArrayDelimiter
- type BoolArray
- type Byte
- type BytesArray
- type Decimal
- type DecimalArray
- type Float64Array
- type GenericArray
- type HStore
- type Int64Array
- type JSON
- func (j *JSON) Marshal(obj interface{}) error
- func (j JSON) MarshalJSON() ([]byte, error)
- func (j *JSON) Randomize(seed *randomize.Seed, fieldType string, shouldBeNull bool)
- func (j *JSON) Scan(src interface{}) error
- func (j JSON) String() string
- func (j JSON) Unmarshal(dest interface{}) error
- func (j *JSON) UnmarshalJSON(data []byte) error
- func (j JSON) Value() (driver.Value, error)
- type NullDecimal
- type StringArray
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Array ¶
Array returns the optimal driver.Valuer and sql.Scanner for an array or slice of any dimension.
For example:
db.Query(`SELECT * FROM t WHERE id = ANY($1)`, pq.Array([]int{235, 401})) var x []sql.NullInt64 db.QueryRow('SELECT ARRAY[235, 401]').Scan(pq.Array(&x))
Scanning multi-dimensional arrays is not supported. Arrays where the lower bound is not one (such as `[0:0]={1}') are not supported.
func EnableInfinityTs ¶
EnableInfinityTs controls the handling of Postgres' "-infinity" and "infinity" "timestamp"s.
If EnableInfinityTs is not called, "-infinity" and "infinity" will return []byte("-infinity") and []byte("infinity") respectively, and potentially cause error "sql: Scan error on column index 0: unsupported driver -> Scan pair: []uint8 -> *time.Time", when scanning into a time.Time value.
Once EnableInfinityTs has been called, all connections created using this driver will decode Postgres' "-infinity" and "infinity" for "timestamp", "timestamp with time zone" and "date" types to the predefined minimum and maximum times, respectively. When encoding time.Time values, any time which equals or precedes the predefined minimum time will be encoded to "-infinity". Any values at or past the maximum time will similarly be encoded to "infinity".
If EnableInfinityTs is called with negative >= positive, it will panic. Calling EnableInfinityTs after a connection has been established results in undefined behavior. If EnableInfinityTs is called more than once, it will panic.
func FormatTimestamp ¶
FormatTimestamp formats t into Postgres' text format for timestamps.
func ParseTimestamp ¶
ParseTimestamp parses Postgres' text format. It returns a time.Time in currentLocation iff that time's offset agrees with the offset sent from the Postgres server. Otherwise, ParseTimestamp returns a time.Time with the fixed offset offset provided by the Postgres server.
Types ¶
type ArrayDelimiter ¶
type ArrayDelimiter interface { // ArrayDelimiter returns the delimiter character(s) for this element's type. ArrayDelimiter() string }
ArrayDelimiter may be optionally implemented by driver.Valuer or sql.Scanner to override the array delimiter used by GenericArray.
type BoolArray ¶
type BoolArray []bool
BoolArray represents a one-dimensional array of the PostgreSQL boolean type.
type Byte ¶
type Byte byte
Byte is an alias for byte. Byte implements Marshal and Unmarshal.
func (Byte) MarshalJSON ¶
MarshalJSON returns the JSON encoding of b.
func (*Byte) UnmarshalJSON ¶
UnmarshalJSON sets *b to a copy of data.
type BytesArray ¶
type BytesArray [][]byte
BytesArray represents a one-dimensional array of the PostgreSQL bytea type.
func (*BytesArray) Randomize ¶
func (a *BytesArray) Randomize(seed *randomize.Seed, fieldType string, shouldBeNull bool)
Randomize for sqlboiler
func (*BytesArray) Scan ¶
func (a *BytesArray) Scan(src interface{}) error
Scan implements the sql.Scanner interface.
type Decimal ¶
Decimal is a DECIMAL in sql. Its zero value is valid for use with both Value and Scan.
Although decimal can represent NaN and Infinity it will return an error if an attempt to store these values in the database is made.
Because it cannot be nil, when Big is nil Value() will return "0" It will error if an attempt to Scan() a "null" value into it.
func NewDecimal ¶
NewDecimal creates a new decimal from a decimal
type DecimalArray ¶
type DecimalArray []Decimal
DecimalArray represents a one-dimensional array of the decimal type.
func (*DecimalArray) Randomize ¶
func (a *DecimalArray) Randomize(seed *randomize.Seed, fieldType string, shouldBeNull bool)
Randomize for sqlboiler
func (*DecimalArray) Scan ¶
func (a *DecimalArray) Scan(src interface{}) error
Scan implements the sql.Scanner interface.
type Float64Array ¶
type Float64Array []float64
Float64Array represents a one-dimensional array of the PostgreSQL double precision type.
func (*Float64Array) Randomize ¶
func (a *Float64Array) Randomize(seed *randomize.Seed, fieldType string, shouldBeNull bool)
Randomize for sqlboiler
func (*Float64Array) Scan ¶
func (a *Float64Array) Scan(src interface{}) error
Scan implements the sql.Scanner interface.
type GenericArray ¶
type GenericArray struct{ A interface{} }
GenericArray implements the driver.Valuer and sql.Scanner interfaces for an array or slice of any dimension.
func (GenericArray) Scan ¶
func (a GenericArray) Scan(src interface{}) error
Scan implements the sql.Scanner interface.
type HStore ¶
type HStore map[string]sql.NullString
HStore is a wrapper for transferring HStore values back and forth easily.
type Int64Array ¶
type Int64Array []int64
Int64Array represents a one-dimensional array of the PostgreSQL integer types.
func (*Int64Array) Randomize ¶
func (a *Int64Array) Randomize(seed *randomize.Seed, fieldType string, shouldBeNull bool)
Randomize for sqlboiler
func (*Int64Array) Scan ¶
func (a *Int64Array) Scan(src interface{}) error
Scan implements the sql.Scanner interface.
type JSON ¶
type JSON json.RawMessage
JSON is an alias for json.RawMessage, which is a []byte underneath. JSON implements Marshal and Unmarshal.
func (JSON) MarshalJSON ¶
MarshalJSON returns j as the JSON encoding of j.
func (*JSON) UnmarshalJSON ¶
UnmarshalJSON sets *j to a copy of data.
type NullDecimal ¶
NullDecimal is the same as Decimal, but allows the Big pointer to be nil. See docmentation for Decimal for more details.
When going into a database, if Big is nil it's value will be "null".
func NewNullDecimal ¶
func NewNullDecimal(d *decimal.Big) NullDecimal
NewNullDecimal creates a new null decimal from a decimal
func (*NullDecimal) Randomize ¶
func (n *NullDecimal) Randomize(s *randomize.Seed, fieldType string, shouldBeNull bool)
Randomize implements sqlboiler's randomize interface
func (*NullDecimal) Scan ¶
func (n *NullDecimal) Scan(val interface{}) error
Scan implements sql.Scanner.
type StringArray ¶
type StringArray []string
StringArray represents a one-dimensional array of the PostgreSQL character types.
func (*StringArray) Randomize ¶
func (a *StringArray) Randomize(seed *randomize.Seed, fieldType string, shouldBeNull bool)
Randomize for sqlboiler
func (*StringArray) Scan ¶
func (a *StringArray) Scan(src interface{}) error
Scan implements the sql.Scanner interface.