mirror of
https://github.com/jackc/pgx.git
synced 2025-05-31 11:42:24 +00:00
Generalize array template
This commit is contained in:
parent
575574cf98
commit
0f68bdcd52
@ -211,9 +211,16 @@ func (src *<%= pgtype_array_type %>) EncodeText(w io.Writer) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
textElementWriter.Reset()
|
textElementWriter.Reset()
|
||||||
err = elem.EncodeText(textElementWriter)
|
if elem.String == "" && elem.Status == Present {
|
||||||
if err != nil {
|
_, err := io.WriteString(buf, `""`)
|
||||||
return err
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = elem.EncodeText(textElementWriter)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dec := range dimElemCounts {
|
for _, dec := range dimElemCounts {
|
||||||
@ -236,6 +243,10 @@ func (src *<%= pgtype_array_type %>) EncodeText(w io.Writer) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (src *<%= pgtype_array_type %>) EncodeBinary(w io.Writer) error {
|
func (src *<%= pgtype_array_type %>) EncodeBinary(w io.Writer) error {
|
||||||
|
return src.encodeBinary(w, <%= element_oid %>)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (src *<%= pgtype_array_type %>) encodeBinary(w io.Writer, elementOID int32) error {
|
||||||
if done, err := encodeNotPresent(w, src.Status); done {
|
if done, err := encodeNotPresent(w, src.Status); done {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -256,7 +267,7 @@ func (src *<%= pgtype_array_type %>) EncodeBinary(w io.Writer) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
arrayHeader.ElementOID = <%= element_oid %>
|
arrayHeader.ElementOID = elementOID
|
||||||
arrayHeader.Dimensions = src.Dimensions
|
arrayHeader.Dimensions = src.Dimensions
|
||||||
|
|
||||||
// TODO - consider how to avoid having to buffer array before writing length -
|
// TODO - consider how to avoid having to buffer array before writing length -
|
||||||
|
Loading…
x
Reference in New Issue
Block a user