Use Go casing convention for ACLItem

v3-ann
Jack Christensen 2017-06-03 11:58:40 -05:00
parent 6688466123
commit 24fb04edb5
6 changed files with 94 additions and 94 deletions

View File

@ -5,7 +5,7 @@ import (
"fmt" "fmt"
) )
// Aclitem is used for PostgreSQL's aclitem data type. A sample aclitem // ACLItem is used for PostgreSQL's aclitem data type. A sample aclitem
// might look like this: // might look like this:
// //
// postgres=arwdDxt/postgres // postgres=arwdDxt/postgres
@ -17,32 +17,32 @@ import (
// //
// postgres=arwdDxt/"role with spaces" // postgres=arwdDxt/"role with spaces"
// //
type Aclitem struct { type ACLItem struct {
String string String string
Status Status Status Status
} }
func (dst *Aclitem) Set(src interface{}) error { func (dst *ACLItem) Set(src interface{}) error {
switch value := src.(type) { switch value := src.(type) {
case string: case string:
*dst = Aclitem{String: value, Status: Present} *dst = ACLItem{String: value, Status: Present}
case *string: case *string:
if value == nil { if value == nil {
*dst = Aclitem{Status: Null} *dst = ACLItem{Status: Null}
} else { } else {
*dst = Aclitem{String: *value, Status: Present} *dst = ACLItem{String: *value, Status: Present}
} }
default: default:
if originalSrc, ok := underlyingStringType(src); ok { if originalSrc, ok := underlyingStringType(src); ok {
return dst.Set(originalSrc) return dst.Set(originalSrc)
} }
return fmt.Errorf("cannot convert %v to Aclitem", value) return fmt.Errorf("cannot convert %v to ACLItem", value)
} }
return nil return nil
} }
func (dst *Aclitem) Get() interface{} { func (dst *ACLItem) Get() interface{} {
switch dst.Status { switch dst.Status {
case Present: case Present:
return dst.String return dst.String
@ -53,7 +53,7 @@ func (dst *Aclitem) Get() interface{} {
} }
} }
func (src *Aclitem) AssignTo(dst interface{}) error { func (src *ACLItem) AssignTo(dst interface{}) error {
switch src.Status { switch src.Status {
case Present: case Present:
switch v := dst.(type) { switch v := dst.(type) {
@ -72,17 +72,17 @@ func (src *Aclitem) AssignTo(dst interface{}) error {
return fmt.Errorf("cannot decode %v into %T", src, dst) return fmt.Errorf("cannot decode %v into %T", src, dst)
} }
func (dst *Aclitem) DecodeText(ci *ConnInfo, src []byte) error { func (dst *ACLItem) DecodeText(ci *ConnInfo, src []byte) error {
if src == nil { if src == nil {
*dst = Aclitem{Status: Null} *dst = ACLItem{Status: Null}
return nil return nil
} }
*dst = Aclitem{String: string(src), Status: Present} *dst = ACLItem{String: string(src), Status: Present}
return nil return nil
} }
func (src *Aclitem) EncodeText(ci *ConnInfo, buf []byte) ([]byte, error) { func (src *ACLItem) EncodeText(ci *ConnInfo, buf []byte) ([]byte, error) {
switch src.Status { switch src.Status {
case Null: case Null:
return nil, nil return nil, nil
@ -94,9 +94,9 @@ func (src *Aclitem) EncodeText(ci *ConnInfo, buf []byte) ([]byte, error) {
} }
// Scan implements the database/sql Scanner interface. // Scan implements the database/sql Scanner interface.
func (dst *Aclitem) Scan(src interface{}) error { func (dst *ACLItem) Scan(src interface{}) error {
if src == nil { if src == nil {
*dst = Aclitem{Status: Null} *dst = ACLItem{Status: Null}
return nil return nil
} }
@ -113,7 +113,7 @@ func (dst *Aclitem) Scan(src interface{}) error {
} }
// Value implements the database/sql/driver Valuer interface. // Value implements the database/sql/driver Valuer interface.
func (src *Aclitem) Value() (driver.Value, error) { func (src *ACLItem) Value() (driver.Value, error) {
switch src.Status { switch src.Status {
case Present: case Present:
return src.String, nil return src.String, nil

View File

@ -5,28 +5,28 @@ import (
"fmt" "fmt"
) )
type AclitemArray struct { type ACLItemArray struct {
Elements []Aclitem Elements []ACLItem
Dimensions []ArrayDimension Dimensions []ArrayDimension
Status Status Status Status
} }
func (dst *AclitemArray) Set(src interface{}) error { func (dst *ACLItemArray) Set(src interface{}) error {
switch value := src.(type) { switch value := src.(type) {
case []string: case []string:
if value == nil { if value == nil {
*dst = AclitemArray{Status: Null} *dst = ACLItemArray{Status: Null}
} else if len(value) == 0 { } else if len(value) == 0 {
*dst = AclitemArray{Status: Present} *dst = ACLItemArray{Status: Present}
} else { } else {
elements := make([]Aclitem, len(value)) elements := make([]ACLItem, len(value))
for i := range value { for i := range value {
if err := elements[i].Set(value[i]); err != nil { if err := elements[i].Set(value[i]); err != nil {
return err return err
} }
} }
*dst = AclitemArray{ *dst = ACLItemArray{
Elements: elements, Elements: elements,
Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}}, Dimensions: []ArrayDimension{{Length: int32(len(elements)), LowerBound: 1}},
Status: Present, Status: Present,
@ -37,13 +37,13 @@ func (dst *AclitemArray) Set(src interface{}) error {
if originalSrc, ok := underlyingSliceType(src); ok { if originalSrc, ok := underlyingSliceType(src); ok {
return dst.Set(originalSrc) return dst.Set(originalSrc)
} }
return fmt.Errorf("cannot convert %v to Aclitem", value) return fmt.Errorf("cannot convert %v to ACLItem", value)
} }
return nil return nil
} }
func (dst *AclitemArray) Get() interface{} { func (dst *ACLItemArray) Get() interface{} {
switch dst.Status { switch dst.Status {
case Present: case Present:
return dst return dst
@ -54,7 +54,7 @@ func (dst *AclitemArray) Get() interface{} {
} }
} }
func (src *AclitemArray) AssignTo(dst interface{}) error { func (src *ACLItemArray) AssignTo(dst interface{}) error {
switch src.Status { switch src.Status {
case Present: case Present:
switch v := dst.(type) { switch v := dst.(type) {
@ -80,9 +80,9 @@ func (src *AclitemArray) AssignTo(dst interface{}) error {
return fmt.Errorf("cannot decode %v into %T", src, dst) return fmt.Errorf("cannot decode %v into %T", src, dst)
} }
func (dst *AclitemArray) DecodeText(ci *ConnInfo, src []byte) error { func (dst *ACLItemArray) DecodeText(ci *ConnInfo, src []byte) error {
if src == nil { if src == nil {
*dst = AclitemArray{Status: Null} *dst = ACLItemArray{Status: Null}
return nil return nil
} }
@ -91,13 +91,13 @@ func (dst *AclitemArray) DecodeText(ci *ConnInfo, src []byte) error {
return err return err
} }
var elements []Aclitem var elements []ACLItem
if len(uta.Elements) > 0 { if len(uta.Elements) > 0 {
elements = make([]Aclitem, len(uta.Elements)) elements = make([]ACLItem, len(uta.Elements))
for i, s := range uta.Elements { for i, s := range uta.Elements {
var elem Aclitem var elem ACLItem
var elemSrc []byte var elemSrc []byte
if s != "NULL" { if s != "NULL" {
elemSrc = []byte(s) elemSrc = []byte(s)
@ -111,12 +111,12 @@ func (dst *AclitemArray) DecodeText(ci *ConnInfo, src []byte) error {
} }
} }
*dst = AclitemArray{Elements: elements, Dimensions: uta.Dimensions, Status: Present} *dst = ACLItemArray{Elements: elements, Dimensions: uta.Dimensions, Status: Present}
return nil return nil
} }
func (src *AclitemArray) EncodeText(ci *ConnInfo, buf []byte) ([]byte, error) { func (src *ACLItemArray) EncodeText(ci *ConnInfo, buf []byte) ([]byte, error) {
switch src.Status { switch src.Status {
case Null: case Null:
return nil, nil return nil, nil
@ -174,7 +174,7 @@ func (src *AclitemArray) EncodeText(ci *ConnInfo, buf []byte) ([]byte, error) {
} }
// Scan implements the database/sql Scanner interface. // Scan implements the database/sql Scanner interface.
func (dst *AclitemArray) Scan(src interface{}) error { func (dst *ACLItemArray) Scan(src interface{}) error {
if src == nil { if src == nil {
return dst.DecodeText(nil, nil) return dst.DecodeText(nil, nil)
} }
@ -192,7 +192,7 @@ func (dst *AclitemArray) Scan(src interface{}) error {
} }
// Value implements the database/sql/driver Valuer interface. // Value implements the database/sql/driver Valuer interface.
func (src *AclitemArray) Value() (driver.Value, error) { func (src *ACLItemArray) Value() (driver.Value, error) {
buf, err := src.EncodeText(nil, nil) buf, err := src.EncodeText(nil, nil)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -8,40 +8,40 @@ import (
"github.com/jackc/pgx/pgtype/testutil" "github.com/jackc/pgx/pgtype/testutil"
) )
func TestAclitemArrayTranscode(t *testing.T) { func TestACLItemArrayTranscode(t *testing.T) {
testutil.TestSuccessfulTranscode(t, "aclitem[]", []interface{}{ testutil.TestSuccessfulTranscode(t, "aclitem[]", []interface{}{
&pgtype.AclitemArray{ &pgtype.ACLItemArray{
Elements: nil, Elements: nil,
Dimensions: nil, Dimensions: nil,
Status: pgtype.Present, Status: pgtype.Present,
}, },
&pgtype.AclitemArray{ &pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{ Elements: []pgtype.ACLItem{
pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present},
pgtype.Aclitem{Status: pgtype.Null}, pgtype.ACLItem{Status: pgtype.Null},
}, },
Dimensions: []pgtype.ArrayDimension{{Length: 2, LowerBound: 1}}, Dimensions: []pgtype.ArrayDimension{{Length: 2, LowerBound: 1}},
Status: pgtype.Present, Status: pgtype.Present,
}, },
&pgtype.AclitemArray{Status: pgtype.Null}, &pgtype.ACLItemArray{Status: pgtype.Null},
&pgtype.AclitemArray{ &pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{ Elements: []pgtype.ACLItem{
pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present},
pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present},
pgtype.Aclitem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present}, pgtype.ACLItem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present},
pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present},
pgtype.Aclitem{Status: pgtype.Null}, pgtype.ACLItem{Status: pgtype.Null},
pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present},
}, },
Dimensions: []pgtype.ArrayDimension{{Length: 3, LowerBound: 1}, {Length: 2, LowerBound: 1}}, Dimensions: []pgtype.ArrayDimension{{Length: 3, LowerBound: 1}, {Length: 2, LowerBound: 1}},
Status: pgtype.Present, Status: pgtype.Present,
}, },
&pgtype.AclitemArray{ &pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{ Elements: []pgtype.ACLItem{
pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present},
pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present},
pgtype.Aclitem{String: "=r/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "=r/postgres", Status: pgtype.Present},
pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present},
}, },
Dimensions: []pgtype.ArrayDimension{ Dimensions: []pgtype.ArrayDimension{
{Length: 2, LowerBound: 4}, {Length: 2, LowerBound: 4},
@ -52,26 +52,26 @@ func TestAclitemArrayTranscode(t *testing.T) {
}) })
} }
func TestAclitemArraySet(t *testing.T) { func TestACLItemArraySet(t *testing.T) {
successfulTests := []struct { successfulTests := []struct {
source interface{} source interface{}
result pgtype.AclitemArray result pgtype.ACLItemArray
}{ }{
{ {
source: []string{"=r/postgres"}, source: []string{"=r/postgres"},
result: pgtype.AclitemArray{ result: pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{{String: "=r/postgres", Status: pgtype.Present}}, Elements: []pgtype.ACLItem{{String: "=r/postgres", Status: pgtype.Present}},
Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}},
Status: pgtype.Present}, Status: pgtype.Present},
}, },
{ {
source: (([]string)(nil)), source: (([]string)(nil)),
result: pgtype.AclitemArray{Status: pgtype.Null}, result: pgtype.ACLItemArray{Status: pgtype.Null},
}, },
} }
for i, tt := range successfulTests { for i, tt := range successfulTests {
var r pgtype.AclitemArray var r pgtype.ACLItemArray
err := r.Set(tt.source) err := r.Set(tt.source)
if err != nil { if err != nil {
t.Errorf("%d: %v", i, err) t.Errorf("%d: %v", i, err)
@ -83,19 +83,19 @@ func TestAclitemArraySet(t *testing.T) {
} }
} }
func TestAclitemArrayAssignTo(t *testing.T) { func TestACLItemArrayAssignTo(t *testing.T) {
var stringSlice []string var stringSlice []string
type _stringSlice []string type _stringSlice []string
var namedStringSlice _stringSlice var namedStringSlice _stringSlice
simpleTests := []struct { simpleTests := []struct {
src pgtype.AclitemArray src pgtype.ACLItemArray
dst interface{} dst interface{}
expected interface{} expected interface{}
}{ }{
{ {
src: pgtype.AclitemArray{ src: pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{{String: "=r/postgres", Status: pgtype.Present}}, Elements: []pgtype.ACLItem{{String: "=r/postgres", Status: pgtype.Present}},
Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}},
Status: pgtype.Present, Status: pgtype.Present,
}, },
@ -103,8 +103,8 @@ func TestAclitemArrayAssignTo(t *testing.T) {
expected: []string{"=r/postgres"}, expected: []string{"=r/postgres"},
}, },
{ {
src: pgtype.AclitemArray{ src: pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{{String: "=r/postgres", Status: pgtype.Present}}, Elements: []pgtype.ACLItem{{String: "=r/postgres", Status: pgtype.Present}},
Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}},
Status: pgtype.Present, Status: pgtype.Present,
}, },
@ -112,7 +112,7 @@ func TestAclitemArrayAssignTo(t *testing.T) {
expected: _stringSlice{"=r/postgres"}, expected: _stringSlice{"=r/postgres"},
}, },
{ {
src: pgtype.AclitemArray{Status: pgtype.Null}, src: pgtype.ACLItemArray{Status: pgtype.Null},
dst: &stringSlice, dst: &stringSlice,
expected: (([]string)(nil)), expected: (([]string)(nil)),
}, },
@ -130,12 +130,12 @@ func TestAclitemArrayAssignTo(t *testing.T) {
} }
errorTests := []struct { errorTests := []struct {
src pgtype.AclitemArray src pgtype.ACLItemArray
dst interface{} dst interface{}
}{ }{
{ {
src: pgtype.AclitemArray{ src: pgtype.ACLItemArray{
Elements: []pgtype.Aclitem{{Status: pgtype.Null}}, Elements: []pgtype.ACLItem{{Status: pgtype.Null}},
Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}}, Dimensions: []pgtype.ArrayDimension{{LowerBound: 1, Length: 1}},
Status: pgtype.Present, Status: pgtype.Present,
}, },

View File

@ -8,25 +8,25 @@ import (
"github.com/jackc/pgx/pgtype/testutil" "github.com/jackc/pgx/pgtype/testutil"
) )
func TestAclitemTranscode(t *testing.T) { func TestACLItemTranscode(t *testing.T) {
testutil.TestSuccessfulTranscode(t, "aclitem", []interface{}{ testutil.TestSuccessfulTranscode(t, "aclitem", []interface{}{
&pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, &pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present},
&pgtype.Aclitem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present}, &pgtype.ACLItem{String: `postgres=arwdDxt/" tricky, ' } "" \ test user "`, Status: pgtype.Present},
&pgtype.Aclitem{Status: pgtype.Null}, &pgtype.ACLItem{Status: pgtype.Null},
}) })
} }
func TestAclitemSet(t *testing.T) { func TestACLItemSet(t *testing.T) {
successfulTests := []struct { successfulTests := []struct {
source interface{} source interface{}
result pgtype.Aclitem result pgtype.ACLItem
}{ }{
{source: "postgres=arwdDxt/postgres", result: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}}, {source: "postgres=arwdDxt/postgres", result: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}},
{source: (*string)(nil), result: pgtype.Aclitem{Status: pgtype.Null}}, {source: (*string)(nil), result: pgtype.ACLItem{Status: pgtype.Null}},
} }
for i, tt := range successfulTests { for i, tt := range successfulTests {
var d pgtype.Aclitem var d pgtype.ACLItem
err := d.Set(tt.source) err := d.Set(tt.source)
if err != nil { if err != nil {
t.Errorf("%d: %v", i, err) t.Errorf("%d: %v", i, err)
@ -38,17 +38,17 @@ func TestAclitemSet(t *testing.T) {
} }
} }
func TestAclitemAssignTo(t *testing.T) { func TestACLItemAssignTo(t *testing.T) {
var s string var s string
var ps *string var ps *string
simpleTests := []struct { simpleTests := []struct {
src pgtype.Aclitem src pgtype.ACLItem
dst interface{} dst interface{}
expected interface{} expected interface{}
}{ }{
{src: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &s, expected: "postgres=arwdDxt/postgres"}, {src: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &s, expected: "postgres=arwdDxt/postgres"},
{src: pgtype.Aclitem{Status: pgtype.Null}, dst: &ps, expected: ((*string)(nil))}, {src: pgtype.ACLItem{Status: pgtype.Null}, dst: &ps, expected: ((*string)(nil))},
} }
for i, tt := range simpleTests { for i, tt := range simpleTests {
@ -63,11 +63,11 @@ func TestAclitemAssignTo(t *testing.T) {
} }
pointerAllocTests := []struct { pointerAllocTests := []struct {
src pgtype.Aclitem src pgtype.ACLItem
dst interface{} dst interface{}
expected interface{} expected interface{}
}{ }{
{src: pgtype.Aclitem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &ps, expected: "postgres=arwdDxt/postgres"}, {src: pgtype.ACLItem{String: "postgres=arwdDxt/postgres", Status: pgtype.Present}, dst: &ps, expected: "postgres=arwdDxt/postgres"},
} }
for i, tt := range pointerAllocTests { for i, tt := range pointerAllocTests {
@ -82,10 +82,10 @@ func TestAclitemAssignTo(t *testing.T) {
} }
errorTests := []struct { errorTests := []struct {
src pgtype.Aclitem src pgtype.ACLItem
dst interface{} dst interface{}
}{ }{
{src: pgtype.Aclitem{Status: pgtype.Null}, dst: &s}, {src: pgtype.ACLItem{Status: pgtype.Null}, dst: &s},
} }
for i, tt := range errorTests { for i, tt := range errorTests {

View File

@ -35,8 +35,8 @@ const (
Int8ArrayOID = 1016 Int8ArrayOID = 1016
Float4ArrayOID = 1021 Float4ArrayOID = 1021
Float8ArrayOID = 1022 Float8ArrayOID = 1022
AclitemOID = 1033 ACLItemOID = 1033
AclitemArrayOID = 1034 ACLItemArrayOID = 1034
InetArrayOID = 1041 InetArrayOID = 1041
VarcharOID = 1043 VarcharOID = 1043
DateOID = 1082 DateOID = 1082
@ -206,7 +206,7 @@ var nameValues map[string]Value
func init() { func init() {
nameValues = map[string]Value{ nameValues = map[string]Value{
"_aclitem": &AclitemArray{}, "_aclitem": &ACLItemArray{},
"_bool": &BoolArray{}, "_bool": &BoolArray{},
"_bytea": &ByteaArray{}, "_bytea": &ByteaArray{},
"_cidr": &CidrArray{}, "_cidr": &CidrArray{},
@ -222,7 +222,7 @@ func init() {
"_timestamp": &TimestampArray{}, "_timestamp": &TimestampArray{},
"_timestamptz": &TimestamptzArray{}, "_timestamptz": &TimestamptzArray{},
"_varchar": &VarcharArray{}, "_varchar": &VarcharArray{},
"aclitem": &Aclitem{}, "aclitem": &ACLItem{},
"bool": &Bool{}, "bool": &Bool{},
"box": &Box{}, "box": &Box{},
"bytea": &Bytea{}, "bytea": &Bytea{},

View File

@ -12,7 +12,7 @@ erb pgtype_array_type=CidrArray pgtype_element_type=Cidr go_array_types=[]*net.I
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=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=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=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=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 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=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 element_type_name=numeric text_null=NULL binary_format=true typed_array.go.erb > numeric_array.go erb pgtype_array_type=NumericArray pgtype_element_type=Numeric go_array_types=[]float32,[]float64 element_type_name=numeric text_null=NULL binary_format=true typed_array.go.erb > numeric_array.go
goimports -w *_array.go goimports -w *_array.go