diff --git a/aclitem_array.go b/aclitem_array.go index 260bbe4c..673951a6 100644 --- a/aclitem_array.go +++ b/aclitem_array.go @@ -190,7 +190,7 @@ func (dst ACLItemArray) Get() interface{} { func (src *ACLItemArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/bool_array.go b/bool_array.go index 149b0c9f..ed411a28 100644 --- a/bool_array.go +++ b/bool_array.go @@ -192,7 +192,7 @@ func (dst BoolArray) Get() interface{} { func (src *BoolArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/bpchar_array.go b/bpchar_array.go index d28d22ac..0b92ba30 100644 --- a/bpchar_array.go +++ b/bpchar_array.go @@ -192,7 +192,7 @@ func (dst BPCharArray) Get() interface{} { func (src *BPCharArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/bytea_array.go b/bytea_array.go index 26956edb..f80980bd 100644 --- a/bytea_array.go +++ b/bytea_array.go @@ -173,7 +173,7 @@ func (dst ByteaArray) Get() interface{} { func (src *ByteaArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/cidr_array.go b/cidr_array.go index d6108fe2..0b902cca 100644 --- a/cidr_array.go +++ b/cidr_array.go @@ -212,7 +212,7 @@ func (dst CIDRArray) Get() interface{} { func (src *CIDRArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/date_array.go b/date_array.go index e1b6061a..b306589e 100644 --- a/date_array.go +++ b/date_array.go @@ -193,7 +193,7 @@ func (dst DateArray) Get() interface{} { func (src *DateArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/enum_array.go b/enum_array.go index b2fb063c..4b6d2af4 100644 --- a/enum_array.go +++ b/enum_array.go @@ -190,7 +190,7 @@ func (dst EnumArray) Get() interface{} { func (src *EnumArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/float4_array.go b/float4_array.go index 7e750df8..22577023 100644 --- a/float4_array.go +++ b/float4_array.go @@ -192,7 +192,7 @@ func (dst Float4Array) Get() interface{} { func (src *Float4Array) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/float8_array.go b/float8_array.go index 12520722..6c309700 100644 --- a/float8_array.go +++ b/float8_array.go @@ -192,7 +192,7 @@ func (dst Float8Array) Get() interface{} { func (src *Float8Array) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/hstore_array.go b/hstore_array.go index d2ff2874..413e3993 100644 --- a/hstore_array.go +++ b/hstore_array.go @@ -173,7 +173,7 @@ func (dst HstoreArray) Get() interface{} { func (src *HstoreArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/inet_array.go b/inet_array.go index 7133fc0b..c4368ebc 100644 --- a/inet_array.go +++ b/inet_array.go @@ -212,7 +212,7 @@ func (dst InetArray) Get() interface{} { func (src *InetArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/int2_array.go b/int2_array.go index b64e0689..71ccc0c4 100644 --- a/int2_array.go +++ b/int2_array.go @@ -458,7 +458,7 @@ func (dst Int2Array) Get() interface{} { func (src *Int2Array) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/int4_array.go b/int4_array.go index 01613d39..09b23c2f 100644 --- a/int4_array.go +++ b/int4_array.go @@ -458,7 +458,7 @@ func (dst Int4Array) Get() interface{} { func (src *Int4Array) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/int8_array.go b/int8_array.go index 0babbe43..93a902b0 100644 --- a/int8_array.go +++ b/int8_array.go @@ -458,7 +458,7 @@ func (dst Int8Array) Get() interface{} { func (src *Int8Array) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/jsonb_array.go b/jsonb_array.go index 8f51b789..98970dcf 100644 --- a/jsonb_array.go +++ b/jsonb_array.go @@ -192,7 +192,7 @@ func (dst JSONBArray) Get() interface{} { func (src *JSONBArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/macaddr_array.go b/macaddr_array.go index 94a009fd..eafa5482 100644 --- a/macaddr_array.go +++ b/macaddr_array.go @@ -193,7 +193,7 @@ func (dst MacaddrArray) Get() interface{} { func (src *MacaddrArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/numeric_array.go b/numeric_array.go index 884e8b14..806557bc 100644 --- a/numeric_array.go +++ b/numeric_array.go @@ -306,7 +306,7 @@ func (dst NumericArray) Get() interface{} { func (src *NumericArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/text_array.go b/text_array.go index b2825b29..03f72d37 100644 --- a/text_array.go +++ b/text_array.go @@ -192,7 +192,7 @@ func (dst TextArray) Get() interface{} { func (src *TextArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/timestamp_array.go b/timestamp_array.go index 0bc30f17..27f6e867 100644 --- a/timestamp_array.go +++ b/timestamp_array.go @@ -193,7 +193,7 @@ func (dst TimestampArray) Get() interface{} { func (src *TimestampArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/timestamptz_array.go b/timestamptz_array.go index 313bde81..4db5c979 100644 --- a/timestamptz_array.go +++ b/timestamptz_array.go @@ -193,7 +193,7 @@ func (dst TimestamptzArray) Get() interface{} { func (src *TimestamptzArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/tstzrange_array.go b/tstzrange_array.go index 216182df..2c9492f4 100644 --- a/tstzrange_array.go +++ b/tstzrange_array.go @@ -154,7 +154,7 @@ func (dst TstzrangeArray) Get() interface{} { func (src *TstzrangeArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/typed_array.go.erb b/typed_array.go.erb index 809c7884..c4c797de 100644 --- a/typed_array.go.erb +++ b/typed_array.go.erb @@ -134,7 +134,7 @@ func (dst *<%= pgtype_array_type %>) setRecursive(value reflect.Value, index, di if len(dst.Dimensions) == dimension { break } - + valueLen := value.Len() if int32(valueLen) != dst.Dimensions[dimension].Length { return 0, errors.Errorf("multidimensional arrays must have array expressions with matching dimensions") @@ -174,7 +174,7 @@ func (dst <%= pgtype_array_type %>) Get() interface{} { func (src *<%= pgtype_array_type %>) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1{ + if len(src.Dimensions) <= 1{ // Attempt to match to select common types: switch v := dst.(type) { <% go_array_types.split(",").each do |t| %> @@ -189,7 +189,7 @@ func (src *<%= pgtype_array_type %>) AssignTo(dst interface{}) error { <% end %> } } - + // Fallback to reflection if an optimised match was not found. // The reflection is necessary for arrays and multidimensional slices, // but it comes with a 20-50% performance penalty for large arrays/slices @@ -211,7 +211,7 @@ func (src *<%= pgtype_array_type %>) AssignTo(dst interface{}) error { if elementCount != len(src.Elements) { return errors.Errorf("cannot assign %v, needed to assign %d elements, but only assigned %d", dst, len(src.Elements), elementCount) } - + return nil case Null: return NullAssignTo(dst) diff --git a/uuid_array.go b/uuid_array.go index 47e348f3..035fb114 100644 --- a/uuid_array.go +++ b/uuid_array.go @@ -230,7 +230,7 @@ func (dst UUIDArray) Get() interface{} { func (src *UUIDArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) { diff --git a/varchar_array.go b/varchar_array.go index e68614bb..95ab48f3 100644 --- a/varchar_array.go +++ b/varchar_array.go @@ -192,7 +192,7 @@ func (dst VarcharArray) Get() interface{} { func (src *VarcharArray) AssignTo(dst interface{}) error { switch src.Status { case Present: - if len(src.Dimensions) == 1 { + if len(src.Dimensions) <= 1 { // Attempt to match to select common types: switch v := dst.(type) {