mirror of https://github.com/jackc/pgx.git
parent
cd16be9308
commit
c4efaf30a2
|
@ -3,9 +3,10 @@ package pgx_test
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/jackc/pgx"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx"
|
||||||
)
|
)
|
||||||
|
|
||||||
var pointRegexp *regexp.Regexp = regexp.MustCompile(`^\((.*),(.*)\)$`)
|
var pointRegexp *regexp.Regexp = regexp.MustCompile(`^\((.*),(.*)\)$`)
|
||||||
|
@ -55,7 +56,7 @@ func (p *NullPoint) ScanPgx(vr *pgx.ValueReader) error {
|
||||||
return vr.Err()
|
return vr.Err()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p NullPoint) FormatCode() int16 { return pgx.BinaryFormatCode }
|
func (p NullPoint) FormatCode() int16 { return pgx.TextFormatCode }
|
||||||
|
|
||||||
func (p NullPoint) Encode(w *pgx.WriteBuf, oid pgx.Oid) error {
|
func (p NullPoint) Encode(w *pgx.WriteBuf, oid pgx.Oid) error {
|
||||||
if !p.Valid {
|
if !p.Valid {
|
||||||
|
@ -63,7 +64,7 @@ func (p NullPoint) Encode(w *pgx.WriteBuf, oid pgx.Oid) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
s := fmt.Sprintf("point(%v,%v)", p.X, p.Y)
|
s := fmt.Sprintf("(%v,%v)", p.X, p.Y)
|
||||||
w.WriteInt32(int32(len(s)))
|
w.WriteInt32(int32(len(s)))
|
||||||
w.WriteBytes([]byte(s))
|
w.WriteBytes([]byte(s))
|
||||||
|
|
||||||
|
@ -98,7 +99,15 @@ func Example_CustomType() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fmt.Println(p)
|
fmt.Println(p)
|
||||||
|
|
||||||
|
err = conn.QueryRow("select $1::point", &NullPoint{X: 0.5, Y: 0.75, Valid: true}).Scan(&p)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Println(p)
|
||||||
// Output:
|
// Output:
|
||||||
// null point
|
// null point
|
||||||
// 1.5, 2.5
|
// 1.5, 2.5
|
||||||
|
// 0.5, 0.75
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue