Files
MyGoNavi/third_party/highgo-pq/conn_go19.go
Syngnat de8fb60a30 feat(highgo-sm3): 增加瀚高SM3专用驱动并解耦PostgreSQL连接链路
- 引入 third_party/highgo-pq 作为 HighGo 专用驱动实现
- 调整驱动注册与连接入口,避免覆盖 postgres 驱动
- 保持 PG 数据源行为不变并补充接入文档
2026-02-10 17:42:28 +08:00

46 lines
816 B
Go

//go:build go1.9
// +build go1.9
package pq
import (
"database/sql"
"database/sql/driver"
"reflect"
)
var _ driver.NamedValueChecker = (*conn)(nil)
func (c *conn) CheckNamedValue(nv *driver.NamedValue) error {
if _, ok := nv.Value.(driver.Valuer); ok {
// Ignore Valuer, for backward compatibility with pq.Array().
return driver.ErrSkip
}
// Ignoring []byte / []uint8.
if _, ok := nv.Value.([]uint8); ok {
return driver.ErrSkip
}
v := reflect.ValueOf(nv.Value)
if v.Kind() == reflect.Ptr {
v = v.Elem()
}
if v.Kind() == reflect.Slice {
var err error
nv.Value, err = Array(v.Interface()).Value()
return err
}
if v.Kind() == reflect.Struct {
var err error
switch nv.Value.(type) {
case sql.Out:
return err
default:
return driver.ErrSkip
}
}
return driver.ErrSkip
}