2
0

Merge pull request #41 from TrueLevelSA/feat/slice-of-pointers

Create pgtypes (and slices of) from pointers
This commit is contained in:
Jack Christensen
2020-06-20 13:14:43 -05:00
committed by GitHub
37 changed files with 1773 additions and 21 deletions
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -47,6 +49,25 @@ func (dst *ACLItemArray) Set(src interface{}) error {
}
}
case []*string:
if value == nil {
*dst = ACLItemArray{Status: Null}
} else if len(value) == 0 {
*dst = ACLItemArray{Status: Present}
} else {
elements := make([]ACLItem, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = ACLItemArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []ACLItem:
if value == nil {
*dst = ACLItemArray{Status: Null}
@@ -94,6 +115,15 @@ func (src *ACLItemArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*string:
*v = make([]*string, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+12
View File
@@ -35,6 +35,18 @@ func (dst *Bool) Set(src interface{}) error {
return err
}
*dst = Bool{Bool: bb, Status: Present}
case *bool:
if value == nil {
*dst = Bool{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Bool{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingBoolType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *BoolArray) Set(src interface{}) error {
}
}
case []*bool:
if value == nil {
*dst = BoolArray{Status: Null}
} else if len(value) == 0 {
*dst = BoolArray{Status: Present}
} else {
elements := make([]Bool, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = BoolArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Bool:
if value == nil {
*dst = BoolArray{Status: Null}
@@ -96,6 +117,15 @@ func (src *BoolArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*bool:
*v = make([]*bool, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *BPCharArray) Set(src interface{}) error {
}
}
case []*string:
if value == nil {
*dst = BPCharArray{Status: Null}
} else if len(value) == 0 {
*dst = BPCharArray{Status: Present}
} else {
elements := make([]BPChar, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = BPCharArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []BPChar:
if value == nil {
*dst = BPCharArray{Status: Null}
@@ -96,6 +117,15 @@ func (src *BPCharArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*string:
*v = make([]*string, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+2
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -69,6 +71,25 @@ func (dst *CIDRArray) Set(src interface{}) error {
}
}
case []*net.IP:
if value == nil {
*dst = CIDRArray{Status: Null}
} else if len(value) == 0 {
*dst = CIDRArray{Status: Present}
} else {
elements := make([]CIDR, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = CIDRArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []CIDR:
if value == nil {
*dst = CIDRArray{Status: Null}
@@ -125,6 +146,15 @@ func (src *CIDRArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*net.IP:
*v = make([]*net.IP, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+12
View File
@@ -39,6 +39,18 @@ func (dst *Date) Set(src interface{}) error {
*dst = Date{Time: value, Status: Present}
case string:
return dst.DecodeText(nil, []byte(value))
case *time.Time:
if value == nil {
*dst = Date{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Date{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingTimeType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -50,6 +52,25 @@ func (dst *DateArray) Set(src interface{}) error {
}
}
case []*time.Time:
if value == nil {
*dst = DateArray{Status: Null}
} else if len(value) == 0 {
*dst = DateArray{Status: Present}
} else {
elements := make([]Date, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = DateArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Date:
if value == nil {
*dst = DateArray{Status: Null}
@@ -97,6 +118,15 @@ func (src *DateArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*time.Time:
*v = make([]*time.Time, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -47,6 +49,25 @@ func (dst *EnumArray) Set(src interface{}) error {
}
}
case []*string:
if value == nil {
*dst = EnumArray{Status: Null}
} else if len(value) == 0 {
*dst = EnumArray{Status: Present}
} else {
elements := make([]GenericText, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = EnumArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []GenericText:
if value == nil {
*dst = EnumArray{Status: Null}
@@ -94,6 +115,15 @@ func (src *EnumArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*string:
*v = make([]*string, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+78
View File
@@ -89,6 +89,84 @@ func (dst *Float4) Set(src interface{}) error {
return err
}
*dst = Float4{Float: float32(num), Status: Present}
case *float64:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *float32:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *int8:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint8:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *int16:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint16:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *int32:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint32:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *int64:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint64:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *int:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Float4{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingNumberType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *Float4Array) Set(src interface{}) error {
}
}
case []*float32:
if value == nil {
*dst = Float4Array{Status: Null}
} else if len(value) == 0 {
*dst = Float4Array{Status: Present}
} else {
elements := make([]Float4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Float4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Float4:
if value == nil {
*dst = Float4Array{Status: Null}
@@ -96,6 +117,15 @@ func (src *Float4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*float32:
*v = make([]*float32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+78
View File
@@ -79,6 +79,84 @@ func (dst *Float8) Set(src interface{}) error {
return err
}
*dst = Float8{Float: float64(num), Status: Present}
case *float64:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *float32:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *int8:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint8:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *int16:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint16:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *int32:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint32:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *int64:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint64:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *int:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Float8{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingNumberType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *Float8Array) Set(src interface{}) error {
}
}
case []*float64:
if value == nil {
*dst = Float8Array{Status: Null}
} else if len(value) == 0 {
*dst = Float8Array{Status: Present}
} else {
elements := make([]Float8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Float8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Float8:
if value == nil {
*dst = Float8Array{Status: Null}
@@ -96,6 +117,15 @@ func (src *Float8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*float64:
*v = make([]*float64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+2
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
+18 -2
View File
@@ -37,8 +37,6 @@ func (dst *Inet) Set(src interface{}) error {
switch value := src.(type) {
case net.IPNet:
*dst = Inet{IPNet: &value, Status: Present}
case *net.IPNet:
*dst = Inet{IPNet: value, Status: Present}
case net.IP:
bitCount := len(value) * 8
mask := net.CIDRMask(bitCount, bitCount)
@@ -49,6 +47,24 @@ func (dst *Inet) Set(src interface{}) error {
return err
}
*dst = Inet{IPNet: ipnet, Status: Present}
case *net.IPNet:
if value == nil {
*dst = Inet{Status: Null}
} else {
return dst.Set(*value)
}
case *net.IP:
if value == nil {
*dst = Inet{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Inet{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingPtrType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -69,6 +71,25 @@ func (dst *InetArray) Set(src interface{}) error {
}
}
case []*net.IP:
if value == nil {
*dst = InetArray{Status: Null}
} else if len(value) == 0 {
*dst = InetArray{Status: Present}
} else {
elements := make([]Inet, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = InetArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Inet:
if value == nil {
*dst = InetArray{Status: Null}
@@ -125,6 +146,15 @@ func (src *InetArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*net.IP:
*v = make([]*net.IP, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+66
View File
@@ -85,6 +85,72 @@ func (dst *Int2) Set(src interface{}) error {
return err
}
*dst = Int2{Int: int16(num), Status: Present}
case *int8:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *uint8:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *int16:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *uint16:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *int32:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *uint32:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *int64:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *uint64:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *int:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *uint:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Int2{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingNumberType(src); ok {
return dst.Set(originalSrc)
+226
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*int16:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint16:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -68,6 +89,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*uint16:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int32:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -87,6 +127,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*int32:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint32:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -106,6 +165,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*uint32:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int64:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -125,6 +203,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*int64:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint64:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -144,6 +241,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*uint64:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -163,6 +279,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*int:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -182,6 +317,25 @@ func (dst *Int2Array) Set(src interface{}) error {
}
}
case []*uint:
if value == nil {
*dst = Int2Array{Status: Null}
} else if len(value) == 0 {
*dst = Int2Array{Status: Present}
} else {
elements := make([]Int2, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int2Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Int2:
if value == nil {
*dst = Int2Array{Status: Null}
@@ -229,6 +383,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int16:
*v = make([]*int16, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint16:
*v = make([]uint16, len(src.Elements))
for i := range src.Elements {
@@ -238,6 +401,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint16:
*v = make([]*uint16, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int32:
*v = make([]int32, len(src.Elements))
for i := range src.Elements {
@@ -247,6 +419,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int32:
*v = make([]*int32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint32:
*v = make([]uint32, len(src.Elements))
for i := range src.Elements {
@@ -256,6 +437,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint32:
*v = make([]*uint32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int64:
*v = make([]int64, len(src.Elements))
for i := range src.Elements {
@@ -265,6 +455,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int64:
*v = make([]*int64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint64:
*v = make([]uint64, len(src.Elements))
for i := range src.Elements {
@@ -274,6 +473,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint64:
*v = make([]*uint64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int:
*v = make([]int, len(src.Elements))
for i := range src.Elements {
@@ -283,6 +491,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int:
*v = make([]*int, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint:
*v = make([]uint, len(src.Elements))
for i := range src.Elements {
@@ -292,6 +509,15 @@ func (src *Int2Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint:
*v = make([]*uint, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+66
View File
@@ -77,6 +77,72 @@ func (dst *Int4) Set(src interface{}) error {
return err
}
*dst = Int4{Int: int32(num), Status: Present}
case *int8:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint8:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *int16:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint16:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *int32:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint32:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *int64:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint64:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *int:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *uint:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Int4{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingNumberType(src); ok {
return dst.Set(originalSrc)
+226
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*int16:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint16:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -68,6 +89,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*uint16:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int32:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -87,6 +127,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*int32:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint32:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -106,6 +165,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*uint32:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int64:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -125,6 +203,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*int64:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint64:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -144,6 +241,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*uint64:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -163,6 +279,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*int:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -182,6 +317,25 @@ func (dst *Int4Array) Set(src interface{}) error {
}
}
case []*uint:
if value == nil {
*dst = Int4Array{Status: Null}
} else if len(value) == 0 {
*dst = Int4Array{Status: Present}
} else {
elements := make([]Int4, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int4Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Int4:
if value == nil {
*dst = Int4Array{Status: Null}
@@ -229,6 +383,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int16:
*v = make([]*int16, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint16:
*v = make([]uint16, len(src.Elements))
for i := range src.Elements {
@@ -238,6 +401,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint16:
*v = make([]*uint16, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int32:
*v = make([]int32, len(src.Elements))
for i := range src.Elements {
@@ -247,6 +419,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int32:
*v = make([]*int32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint32:
*v = make([]uint32, len(src.Elements))
for i := range src.Elements {
@@ -256,6 +437,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint32:
*v = make([]*uint32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int64:
*v = make([]int64, len(src.Elements))
for i := range src.Elements {
@@ -265,6 +455,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int64:
*v = make([]*int64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint64:
*v = make([]uint64, len(src.Elements))
for i := range src.Elements {
@@ -274,6 +473,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint64:
*v = make([]*uint64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int:
*v = make([]int, len(src.Elements))
for i := range src.Elements {
@@ -283,6 +491,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int:
*v = make([]*int, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint:
*v = make([]uint, len(src.Elements))
for i := range src.Elements {
@@ -292,6 +509,15 @@ func (src *Int4Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint:
*v = make([]*uint, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+66
View File
@@ -68,6 +68,72 @@ func (dst *Int8) Set(src interface{}) error {
return err
}
*dst = Int8{Int: num, Status: Present}
case *int8:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint8:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *int16:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint16:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *int32:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint32:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *int64:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint64:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *int:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *uint:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Int8{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingNumberType(src); ok {
return dst.Set(originalSrc)
+226
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*int16:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint16:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -68,6 +89,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*uint16:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int32:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -87,6 +127,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*int32:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint32:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -106,6 +165,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*uint32:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int64:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -125,6 +203,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*int64:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint64:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -144,6 +241,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*uint64:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -163,6 +279,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*int:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -182,6 +317,25 @@ func (dst *Int8Array) Set(src interface{}) error {
}
}
case []*uint:
if value == nil {
*dst = Int8Array{Status: Null}
} else if len(value) == 0 {
*dst = Int8Array{Status: Present}
} else {
elements := make([]Int8, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = Int8Array{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Int8:
if value == nil {
*dst = Int8Array{Status: Null}
@@ -229,6 +383,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int16:
*v = make([]*int16, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint16:
*v = make([]uint16, len(src.Elements))
for i := range src.Elements {
@@ -238,6 +401,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint16:
*v = make([]*uint16, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int32:
*v = make([]int32, len(src.Elements))
for i := range src.Elements {
@@ -247,6 +419,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int32:
*v = make([]*int32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint32:
*v = make([]uint32, len(src.Elements))
for i := range src.Elements {
@@ -256,6 +437,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint32:
*v = make([]*uint32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int64:
*v = make([]int64, len(src.Elements))
for i := range src.Elements {
@@ -265,6 +455,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int64:
*v = make([]*int64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint64:
*v = make([]uint64, len(src.Elements))
for i := range src.Elements {
@@ -274,6 +473,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint64:
*v = make([]*uint64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int:
*v = make([]int, len(src.Elements))
for i := range src.Elements {
@@ -283,6 +491,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*int:
*v = make([]*int, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint:
*v = make([]uint, len(src.Elements))
for i := range src.Elements {
@@ -292,6 +509,15 @@ func (src *Int8Array) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint:
*v = make([]*uint, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+12
View File
@@ -36,6 +36,18 @@ func (dst *Macaddr) Set(src interface{}) error {
return err
}
*dst = Macaddr{Addr: addr, Status: Present}
case *net.HardwareAddr:
if value == nil {
*dst = Macaddr{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Macaddr{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingPtrType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -50,6 +52,25 @@ func (dst *MacaddrArray) Set(src interface{}) error {
}
}
case []*net.HardwareAddr:
if value == nil {
*dst = MacaddrArray{Status: Null}
} else if len(value) == 0 {
*dst = MacaddrArray{Status: Present}
} else {
elements := make([]Macaddr, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = MacaddrArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Macaddr:
if value == nil {
*dst = MacaddrArray{Status: Null}
@@ -97,6 +118,15 @@ func (src *MacaddrArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*net.HardwareAddr:
*v = make([]*net.HardwareAddr, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+78
View File
@@ -115,6 +115,84 @@ func (dst *Numeric) Set(src interface{}) error {
return err
}
*dst = Numeric{Int: num, Exp: exp, Status: Present}
case *float64:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *float32:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *int8:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *uint8:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *int16:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *uint16:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *int32:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *uint32:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *int64:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *uint64:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *int:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *uint:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
case *string:
if value == nil {
*dst = Numeric{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingNumberType(src); ok {
return dst.Set(originalSrc)
+114
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *NumericArray) Set(src interface{}) error {
}
}
case []*float32:
if value == nil {
*dst = NumericArray{Status: Null}
} else if len(value) == 0 {
*dst = NumericArray{Status: Present}
} else {
elements := make([]Numeric, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = NumericArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []float64:
if value == nil {
*dst = NumericArray{Status: Null}
@@ -68,6 +89,25 @@ func (dst *NumericArray) Set(src interface{}) error {
}
}
case []*float64:
if value == nil {
*dst = NumericArray{Status: Null}
} else if len(value) == 0 {
*dst = NumericArray{Status: Present}
} else {
elements := make([]Numeric, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = NumericArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []int64:
if value == nil {
*dst = NumericArray{Status: Null}
@@ -87,6 +127,25 @@ func (dst *NumericArray) Set(src interface{}) error {
}
}
case []*int64:
if value == nil {
*dst = NumericArray{Status: Null}
} else if len(value) == 0 {
*dst = NumericArray{Status: Present}
} else {
elements := make([]Numeric, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = NumericArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []uint64:
if value == nil {
*dst = NumericArray{Status: Null}
@@ -106,6 +165,25 @@ func (dst *NumericArray) Set(src interface{}) error {
}
}
case []*uint64:
if value == nil {
*dst = NumericArray{Status: Null}
} else if len(value) == 0 {
*dst = NumericArray{Status: Present}
} else {
elements := make([]Numeric, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = NumericArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Numeric:
if value == nil {
*dst = NumericArray{Status: Null}
@@ -153,6 +231,15 @@ func (src *NumericArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*float32:
*v = make([]*float32, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]float64:
*v = make([]float64, len(src.Elements))
for i := range src.Elements {
@@ -162,6 +249,15 @@ func (src *NumericArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*float64:
*v = make([]*float64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]int64:
*v = make([]int64, len(src.Elements))
for i := range src.Elements {
@@ -171,6 +267,15 @@ func (src *NumericArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*int64:
*v = make([]*int64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
case *[]uint64:
*v = make([]uint64, len(src.Elements))
for i := range src.Elements {
@@ -180,6 +285,15 @@ func (src *NumericArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*uint64:
*v = make([]*uint64, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *TextArray) Set(src interface{}) error {
}
}
case []*string:
if value == nil {
*dst = TextArray{Status: Null}
} else if len(value) == 0 {
*dst = TextArray{Status: Present}
} else {
elements := make([]Text, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = TextArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Text:
if value == nil {
*dst = TextArray{Status: Null}
@@ -96,6 +117,15 @@ func (src *TextArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*string:
*v = make([]*string, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+6
View File
@@ -40,6 +40,12 @@ func (dst *Timestamp) Set(src interface{}) error {
switch value := src.(type) {
case time.Time:
*dst = Timestamp{Time: time.Date(value.Year(), value.Month(), value.Day(), value.Hour(), value.Minute(), value.Second(), value.Nanosecond(), time.UTC), Status: Present}
case *time.Time:
if value == nil {
*dst = Timestamp{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingTimeType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -50,6 +52,25 @@ func (dst *TimestampArray) Set(src interface{}) error {
}
}
case []*time.Time:
if value == nil {
*dst = TimestampArray{Status: Null}
} else if len(value) == 0 {
*dst = TimestampArray{Status: Present}
} else {
elements := make([]Timestamp, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = TimestampArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Timestamp:
if value == nil {
*dst = TimestampArray{Status: Null}
@@ -97,6 +118,15 @@ func (src *TimestampArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*time.Time:
*v = make([]*time.Time, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+6
View File
@@ -42,6 +42,12 @@ func (dst *Timestamptz) Set(src interface{}) error {
switch value := src.(type) {
case time.Time:
*dst = Timestamptz{Time: value, Status: Present}
case *time.Time:
if value == nil {
*dst = Timestamptz{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingTimeType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -50,6 +52,25 @@ func (dst *TimestamptzArray) Set(src interface{}) error {
}
}
case []*time.Time:
if value == nil {
*dst = TimestamptzArray{Status: Null}
} else if len(value) == 0 {
*dst = TimestamptzArray{Status: Present}
} else {
elements := make([]Timestamptz, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = TimestamptzArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Timestamptz:
if value == nil {
*dst = TimestamptzArray{Status: Null}
@@ -97,6 +118,15 @@ func (src *TimestamptzArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*time.Time:
*v = make([]*time.Time, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+2
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
+2
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
+19 -19
View File
@@ -1,26 +1,26 @@
erb pgtype_array_type=Int2Array pgtype_element_type=Int2 go_array_types=[]int16,[]uint16,[]int32,[]uint32,[]int64,[]uint64,[]int,[]uint element_type_name=int2 text_null=NULL binary_format=true typed_array.go.erb > int2_array.go
erb pgtype_array_type=Int4Array pgtype_element_type=Int4 go_array_types=[]int16,[]uint16,[]int32,[]uint32,[]int64,[]uint64,[]int,[]uint element_type_name=int4 text_null=NULL binary_format=true typed_array.go.erb > int4_array.go
erb pgtype_array_type=Int8Array pgtype_element_type=Int8 go_array_types=[]int16,[]uint16,[]int32,[]uint32,[]int64,[]uint64,[]int,[]uint element_type_name=int8 text_null=NULL binary_format=true typed_array.go.erb > int8_array.go
erb pgtype_array_type=BoolArray pgtype_element_type=Bool go_array_types=[]bool element_type_name=bool text_null=NULL binary_format=true typed_array.go.erb > bool_array.go
erb pgtype_array_type=DateArray pgtype_element_type=Date go_array_types=[]time.Time element_type_name=date text_null=NULL binary_format=true typed_array.go.erb > date_array.go
erb pgtype_array_type=TimestamptzArray pgtype_element_type=Timestamptz go_array_types=[]time.Time element_type_name=timestamptz text_null=NULL binary_format=true typed_array.go.erb > timestamptz_array.go
erb pgtype_array_type=Int2Array pgtype_element_type=Int2 go_array_types=[]int16,[]*int16,[]uint16,[]*uint16,[]int32,[]*int32,[]uint32,[]*uint32,[]int64,[]*int64,[]uint64,[]*uint64,[]int,[]*int,[]uint,[]*uint element_type_name=int2 text_null=NULL binary_format=true typed_array.go.erb > int2_array.go
erb pgtype_array_type=Int4Array pgtype_element_type=Int4 go_array_types=[]int16,[]*int16,[]uint16,[]*uint16,[]int32,[]*int32,[]uint32,[]*uint32,[]int64,[]*int64,[]uint64,[]*uint64,[]int,[]*int,[]uint,[]*uint element_type_name=int4 text_null=NULL binary_format=true typed_array.go.erb > int4_array.go
erb pgtype_array_type=Int8Array pgtype_element_type=Int8 go_array_types=[]int16,[]*int16,[]uint16,[]*uint16,[]int32,[]*int32,[]uint32,[]*uint32,[]int64,[]*int64,[]uint64,[]*uint64,[]int,[]*int,[]uint,[]*uint element_type_name=int8 text_null=NULL binary_format=true typed_array.go.erb > int8_array.go
erb pgtype_array_type=BoolArray pgtype_element_type=Bool go_array_types=[]bool,[]*bool element_type_name=bool text_null=NULL binary_format=true typed_array.go.erb > bool_array.go
erb pgtype_array_type=DateArray pgtype_element_type=Date go_array_types=[]time.Time,[]*time.Time element_type_name=date text_null=NULL binary_format=true typed_array.go.erb > date_array.go
erb pgtype_array_type=TimestamptzArray pgtype_element_type=Timestamptz go_array_types=[]time.Time,[]*time.Time element_type_name=timestamptz text_null=NULL binary_format=true typed_array.go.erb > timestamptz_array.go
erb pgtype_array_type=TstzrangeArray pgtype_element_type=Tstzrange go_array_types=[]Tstzrange element_type_name=tstzrange text_null=NULL binary_format=true typed_array.go.erb > tstzrange_array.go
erb pgtype_array_type=TimestampArray pgtype_element_type=Timestamp go_array_types=[]time.Time element_type_name=timestamp text_null=NULL binary_format=true typed_array.go.erb > timestamp_array.go
erb pgtype_array_type=Float4Array pgtype_element_type=Float4 go_array_types=[]float32 element_type_name=float4 text_null=NULL binary_format=true typed_array.go.erb > float4_array.go
erb pgtype_array_type=Float8Array pgtype_element_type=Float8 go_array_types=[]float64 element_type_name=float8 text_null=NULL binary_format=true typed_array.go.erb > float8_array.go
erb pgtype_array_type=InetArray pgtype_element_type=Inet go_array_types=[]*net.IPNet,[]net.IP element_type_name=inet text_null=NULL binary_format=true typed_array.go.erb > inet_array.go
erb pgtype_array_type=MacaddrArray pgtype_element_type=Macaddr go_array_types=[]net.HardwareAddr element_type_name=macaddr text_null=NULL binary_format=true typed_array.go.erb > macaddr_array.go
erb pgtype_array_type=CIDRArray pgtype_element_type=CIDR go_array_types=[]*net.IPNet,[]net.IP element_type_name=cidr text_null=NULL binary_format=true typed_array.go.erb > cidr_array.go
erb pgtype_array_type=TextArray pgtype_element_type=Text go_array_types=[]string element_type_name=text text_null=NULL binary_format=true typed_array.go.erb > text_array.go
erb pgtype_array_type=VarcharArray pgtype_element_type=Varchar go_array_types=[]string element_type_name=varchar text_null=NULL binary_format=true typed_array.go.erb > varchar_array.go
erb pgtype_array_type=BPCharArray pgtype_element_type=BPChar go_array_types=[]string element_type_name=bpchar text_null=NULL binary_format=true typed_array.go.erb > bpchar_array.go
erb pgtype_array_type=TimestampArray pgtype_element_type=Timestamp go_array_types=[]time.Time,[]*time.Time element_type_name=timestamp text_null=NULL binary_format=true typed_array.go.erb > timestamp_array.go
erb pgtype_array_type=Float4Array pgtype_element_type=Float4 go_array_types=[]float32,[]*float32 element_type_name=float4 text_null=NULL binary_format=true typed_array.go.erb > float4_array.go
erb pgtype_array_type=Float8Array pgtype_element_type=Float8 go_array_types=[]float64,[]*float64 element_type_name=float8 text_null=NULL binary_format=true typed_array.go.erb > float8_array.go
erb pgtype_array_type=InetArray pgtype_element_type=Inet go_array_types=[]*net.IPNet,[]net.IP,[]*net.IP element_type_name=inet text_null=NULL binary_format=true typed_array.go.erb > inet_array.go
erb pgtype_array_type=MacaddrArray pgtype_element_type=Macaddr go_array_types=[]net.HardwareAddr,[]*net.HardwareAddr element_type_name=macaddr text_null=NULL binary_format=true typed_array.go.erb > macaddr_array.go
erb pgtype_array_type=CIDRArray pgtype_element_type=CIDR go_array_types=[]*net.IPNet,[]net.IP,[]*net.IP element_type_name=cidr text_null=NULL binary_format=true typed_array.go.erb > cidr_array.go
erb pgtype_array_type=TextArray pgtype_element_type=Text go_array_types=[]string,[]*string element_type_name=text text_null=NULL binary_format=true typed_array.go.erb > text_array.go
erb pgtype_array_type=VarcharArray pgtype_element_type=Varchar go_array_types=[]string,[]*string element_type_name=varchar text_null=NULL binary_format=true typed_array.go.erb > varchar_array.go
erb pgtype_array_type=BPCharArray pgtype_element_type=BPChar go_array_types=[]string,[]*string element_type_name=bpchar text_null=NULL binary_format=true typed_array.go.erb > bpchar_array.go
erb pgtype_array_type=ByteaArray pgtype_element_type=Bytea go_array_types=[][]byte element_type_name=bytea text_null=NULL binary_format=true typed_array.go.erb > bytea_array.go
erb pgtype_array_type=ACLItemArray pgtype_element_type=ACLItem go_array_types=[]string element_type_name=aclitem text_null=NULL binary_format=false typed_array.go.erb > aclitem_array.go
erb pgtype_array_type=ACLItemArray pgtype_element_type=ACLItem go_array_types=[]string,[]*string element_type_name=aclitem text_null=NULL binary_format=false typed_array.go.erb > aclitem_array.go
erb pgtype_array_type=HstoreArray pgtype_element_type=Hstore go_array_types=[]map[string]string element_type_name=hstore text_null=NULL binary_format=true typed_array.go.erb > hstore_array.go
erb pgtype_array_type=NumericArray pgtype_element_type=Numeric go_array_types=[]float32,[]float64,[]int64,[]uint64 element_type_name=numeric text_null=NULL binary_format=true typed_array.go.erb > numeric_array.go
erb pgtype_array_type=UUIDArray pgtype_element_type=UUID go_array_types=[][16]byte,[][]byte,[]string element_type_name=uuid text_null=NULL binary_format=true typed_array.go.erb > uuid_array.go
erb pgtype_array_type=NumericArray pgtype_element_type=Numeric go_array_types=[]float32,[]*float32,[]float64,[]*float64,[]int64,[]*int64,[]uint64,[]*uint64 element_type_name=numeric text_null=NULL binary_format=true typed_array.go.erb > numeric_array.go
erb pgtype_array_type=UUIDArray pgtype_element_type=UUID go_array_types=[][16]byte,[][]byte,[]string,[]*string element_type_name=uuid text_null=NULL binary_format=true typed_array.go.erb > uuid_array.go
# While the binary format is theoretically possible it is only practical to use the text format.
erb pgtype_array_type=EnumArray pgtype_element_type=GenericText go_array_types=[]string text_null=NULL binary_format=false typed_array.go.erb > enum_array.go
erb pgtype_array_type=EnumArray pgtype_element_type=GenericText go_array_types=[]string,[]*string text_null=NULL binary_format=false typed_array.go.erb > enum_array.go
goimports -w *_array.go
+6
View File
@@ -45,6 +45,12 @@ func (dst *UUID) Set(src interface{}) error {
return err
}
*dst = UUID{Bytes: uuid, Status: Present}
case *string:
if value == nil {
*dst = UUID{Status: Null}
} else {
return dst.Set(*value)
}
default:
if originalSrc, ok := underlyingUUIDType(src); ok {
return dst.Set(originalSrc)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -87,6 +89,25 @@ func (dst *UUIDArray) Set(src interface{}) error {
}
}
case []*string:
if value == nil {
*dst = UUIDArray{Status: Null}
} else if len(value) == 0 {
*dst = UUIDArray{Status: Present}
} else {
elements := make([]UUID, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = UUIDArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []UUID:
if value == nil {
*dst = UUIDArray{Status: Null}
@@ -152,6 +173,15 @@ func (src *UUIDArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*string:
*v = make([]*string, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)
+30
View File
@@ -1,3 +1,5 @@
// Code generated by erb. DO NOT EDIT.
package pgtype
import (
@@ -49,6 +51,25 @@ func (dst *VarcharArray) Set(src interface{}) error {
}
}
case []*string:
if value == nil {
*dst = VarcharArray{Status: Null}
} else if len(value) == 0 {
*dst = VarcharArray{Status: Present}
} else {
elements := make([]Varchar, len(value))
for i := range value {
if err := elements[i].Set(value[i]); err != nil {
return err
}
}
*dst = VarcharArray{
Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present,
}
}
case []Varchar:
if value == nil {
*dst = VarcharArray{Status: Null}
@@ -96,6 +117,15 @@ func (src *VarcharArray) AssignTo(dst interface{}) error {
}
return nil
case *[]*string:
*v = make([]*string, len(src.Elements))
for i := range src.Elements {
if err := src.Elements[i].AssignTo(&((*v)[i])); err != nil {
return err
}
}
return nil
default:
if nextDst, retry := GetAssignToDstType(dst); retry {
return src.AssignTo(nextDst)