mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-06 20:03:05 +08:00
- 引入 third_party/highgo-pq 作为 HighGo 专用驱动实现 - 调整驱动注册与连接入口,避免覆盖 postgres 驱动 - 保持 PG 数据源行为不变并补充接入文档
24 lines
555 B
Go
24 lines
555 B
Go
package pq
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"fmt"
|
|
)
|
|
|
|
// decodeUUIDBinary interprets the binary format of a uuid, returning it in text format.
|
|
func decodeUUIDBinary(src []byte) ([]byte, error) {
|
|
if len(src) != 16 {
|
|
return nil, fmt.Errorf("pq: unable to decode uuid; bad length: %d", len(src))
|
|
}
|
|
|
|
dst := make([]byte, 36)
|
|
dst[8], dst[13], dst[18], dst[23] = '-', '-', '-', '-'
|
|
hex.Encode(dst[0:], src[0:4])
|
|
hex.Encode(dst[9:], src[4:6])
|
|
hex.Encode(dst[14:], src[6:8])
|
|
hex.Encode(dst[19:], src[8:10])
|
|
hex.Encode(dst[24:], src[10:16])
|
|
|
|
return dst, nil
|
|
}
|