px普贤教程PuXian
普贤教程 › 包参考

pg 包

PostgreSQL 客户端驱动

pg_connect(host, port, user, password, dbname[, opts]) → Ok(conn dict) | Err

项值
包名pg
版本0.2.0
可用版本0.1.0 / 0.2.0
入口pg.px
分类数据库
文件数 / 行数1 / 651

安装与引入

bash
pxpkg init          # 首次
pxpkg add pg@0.2.0
pxpkg install
px
import pg
所属分类教程:数据库

公开接口

函数参数
pg_connecthost, port, user, password, dbname, opts
pg_query_paramsconn, sql, params
pg_queryconn, sql
pg_closeconn
其余 36 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
pg_u32v
pg_u16v
pg_u32_ofb, off
pg_prefixs, pre
pg_recv_nfd, n
pg_read_msgfd
pg_cstrbody, off
pg_send_msgfd, typech, body
pg_auth_md5user, password, salt_bytes
pg_xor32a, b
pg_scram_attrss
pg_auth_scramfd, user, password
pg_authenticatefd, user, password
pg_error_messagebody
pg_read_query_resultfd
pg_u16_ofb, off
pg_param_textv
pg_bind_bodyparams
pg_beginconn
pg_commitconn
pg_rollbackconn
pg_savepointconn, name
pg_rollback_toconn, name
pg_release_savepointconn, name
pg_prepareconn, name, sql
pg_exec_preparedconn, name, params
pg_deallocateconn, name
pg_copy_inconn, table, columns, rows
pg_versionconn
pg_list_tablesconn
pg_table_existsconn, table
pg_columnsconn, table
pg_countconn, table
pg_select_oneconn, table, where_clause
pg_insert_returningconn, table, columns, values, returning
pg_jsonb_extractconn, table, jsonb_col, json_path, where_clause

包内说明(源码头注释)

text
============================================================
普贤生态库:registry/pg —— PostgreSQL 客户端驱动
------------------------------------------------------------
pg_connect(host, port, user, password, dbname[, opts]) → Ok(conn dict) | Err
pg_query(conn, sql)        → Ok(query result dict) | Err(简单查询协议 Q)
pg_query_params(conn, sql, params) → Ok(query result dict) | Err(扩展查询协议,防注入)
pg_close(conn)             → Ok(true) | Err
- 连接:StartupMessage(v3.0)→ 认证(md5 / SCRAM-SHA-256 /
cleartext / trust)→ ReadyForQuery
- 查询:Q(Simple Query)→ RowDescription + DataRow* → CommandComplete
- 结果形态:
{ columns: [{name, type_oid}], rows: [[值...]] }
NULL → null;其余类型按文本表示返回字符串(bytea 为 hex 文本)
- 可选 TLS(opts.tls=true:SSLRequest → tls_upgrade)
依赖 runtime native:tcp_connect_ex / tcp_send_ex / tcp_recv_ex /
tls_upgrade / md5 / hmac_sha256 / pbkdf2_sha256 / sha256 /
base64_encode / bytes 族 / int_to_bytes / bytes_to_int
语言能力说明(m197):
- PX-DEF-019/020 已修(M186):bytes_to_int 的 endian/signed 三轨可靠,NULL 长度用 signed 判负
- PX-DEF-025 已修(M188):.find / starts_with 均为原生
============================================================
---- 内部:字节/字符串小工具(不依赖 std import,库自包含)----