本文整理汇总了Golang中github.com/jackc/pgx.ValueReader.Type方法的典型用法代码示例。如果您正苦于以下问题:Golang ValueReader.Type方法的具体用法?Golang ValueReader.Type怎么用?Golang ValueReader.Type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/jackc/pgx.ValueReader
的用法示例。
在下文中一共展示了ValueReader.Type方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Scan
func (attr *Int64) Scan(vr *pgx.ValueReader) error {
if vr.Type().DataType != pgx.Int8Oid {
return pgx.SerializationError(fmt.Sprintf("Int64.Scan cannot decode OID %d", vr.Type().DataType))
}
if vr.Len() == -1 {
attr.Value = 0
attr.Status = Null
return nil
}
err := pgx.Decode(vr, &attr.Value)
if err != nil {
return err
}
attr.Status = Present
return vr.Err()
}
示例2: Scan
func (p *NullPoint) Scan(vr *pgx.ValueReader) error {
if vr.Type().DataType != pointOid {
return pgx.SerializationError(fmt.Sprintf("NullPoint.Scan cannot decode OID %d", vr.Type().DataType))
}
if vr.Len() == -1 {
p.X, p.Y, p.Valid = 0, 0, false
return nil
}
switch vr.Type().FormatCode {
case pgx.TextFormatCode:
s := vr.ReadString(vr.Len())
match := pointRegexp.FindStringSubmatch(s)
if match == nil {
return pgx.SerializationError(fmt.Sprintf("Received invalid point: %v", s))
}
var err error
p.X, err = strconv.ParseFloat(match[1], 64)
if err != nil {
return pgx.SerializationError(fmt.Sprintf("Received invalid point: %v", s))
}
p.Y, err = strconv.ParseFloat(match[2], 64)
if err != nil {
return pgx.SerializationError(fmt.Sprintf("Received invalid point: %v", s))
}
case pgx.BinaryFormatCode:
return errors.New("binary format not implemented")
default:
return fmt.Errorf("unknown format %v", vr.Type().FormatCode)
}
p.Valid = true
return vr.Err()
}