lib/pq v1.10.9 移植,纯 Go 实现,零 cgo、零外部依赖。
- Go 编译器:https://github.com/acoinfo/go/tree/sylixos-patch_on_go1.25
- 上游驱动:https://github.com/lib/pq v1.10.9
仅 user_posix.go build tag 追加 sylixos,其余源码未改。
import (
"database/sql"
_ "github.com/lib/pq"
)
db, err := sql.Open("postgres",
"postgres://user:password@host:5432/dbname?sslmode=disable")- 编译必须加
-tags netgo(绕过 SylixOS 未移植的 cgo DNS resolver) - 编译必须加
-ldflags="-linkmode=external"(SylixOS 进程模型要求) - 连接非 PostgreSQL 端口时务必用
sslmode=require,否则 pq 会将任意响应数据当消息长度解析,触发巨型内存分配导致板端卡死。 - 详细编译及测试步骤见《Golang 应用移植指导手册》pq 移植章节。
pq/
├── README.md
├── go.mod
├── LICENSE.md
├── *.go # 驱动源码(17 文件)
├── oid/ # OID 类型(3 文件)
└── scram/ # SCRAM 认证(1 文件)