问题标签 [pgx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - Pgx OutOfMemoryError:最大堆外大小配置为不超过 8,192 MB
我加载了一个大图并应用了连续的过滤器,但是在计算了一些计算之后我破坏了临时图。
但是[ERROR] OutOfMemoryError: QUERY_PGQL failed maximum off-heap size is configured to not exceed 8,192 MBs.
当我尝试执行查询时出现异常。
所以我尝试使用 VM OPTS -Xms512m -Xmx4g,但 PGX 仍然忽略这些参数。我什至尝试-XX:-UseGCOverheadLimit但什么也没发生。我试图修改pgx.conf
文件以更改max_off_heap_size
参数的值,但也没有任何反应。
postgresql - 从 PostgreSQL 中的 JSONB 列中提取数组数据并使用 pgx 库将其编组为字符串切片
我以某种方式设法使它工作,但不完全符合预期。下面的代码是 JSONB 列中数据的“poco”。
下面我初始化了部分帖子以及用于扫描每一行的单个帖子。其余的是标准查询代码。这
data
是声明为 jsonb 的列名
我得到的输出:
正如你在上面看到的,每个标签切片的输出是相同的,因为切片只是一个指向底层数组的指针,最后一个从数据库中拉出的会覆盖以前的。我知道如果我声明 postTags [2]string
可以正常工作,但我需要使用 slice,因为我不知道可能有多少标签,对这个问题有什么建议吗?
这是桌子的样子
postgresql - pgx lib中的命名预处理语句,它是如何工作的?
介绍
数据库/sql
在 Go 标准 sql 库中,该*Stmt
类型具有如下定义的方法:
新的(未命名的)语句由以下人员准备:
- 连接池是抽象的,不能直接访问
- 在单个连接上准备事务
- 如果连接在语句执行时不可用,它将在新连接上重新准备。
pgx
该PreparedStatement
类型没有定义任何方法。一个新的命名准备好的语句由以下人员准备:
- 操作直接在连接池上
- 事务在池的所有连接上准备好
- 没有明确的方法如何执行准备好的语句
在Github 评论中,作者更好地解释了 pgx 和 database/sql 之间的架构差异。文档Prepare
还指出(强调我的):
准备是幂等的;即使用相同的名称和sql 参数多次调用Prepare 是安全的。这允许准备和查询/执行/PrepareEx 的代码路径,而不用担心语句是否已经准备好。
小例子
问题)
- 这个
name
论点给我的印象是它可以通过调用它来执行name
,但是如何呢? - 该文档给人的印象是
Query
/Exec
方法以某种方式利用了准备好的语句。但是,这些方法不带name
参数。它如何匹配它们? - 据推测,匹配是由查询内容完成的。那么命名语句的全部意义是什么?
可能的答案
这是我自己走多远:
- 没有按名称引用查询的方法(假设)
- 匹配是在
conn.ExecEx()
. 如果它还没有准备好,它将完成:
- PosgreSQL 本身需要它来做某事(假设)。
database - 如何在 jackc/pgx 中使用“where id in”子句?
pgx 是否提供对“where in”子句的任何支持?我在另一个 stackoverflow 线程中发现应该使用字符串连接来手动构建查询。不过,IMO 这有点容易出错,因为您必须自己处理转义/sql 注入等。
我也试着自己弄清楚:
当我执行此代码时,我收到以下错误:
错误:绑定参数 1 中的二进制数据格式不正确 (SQLSTATE 22P03)
我正在使用的版本:
Postgres:
PGX:
postgresql - pgx says I violate not-null constraint despite having DEFAULT NOW()
So I have this table:
And I have github.com/jackc/pgx/v4
in my import statement.
My Go code looks like this:
Output:
How come when I have DEFAULT NOW()
? I tried creating a recored from my DB GUI client (Postico) and created_at
field got auto-populated.
What's wrong?
postgresql - 如何使用变量通过 pgx 驱动程序获取不同的表?
这是一个获取法语谚语的函数:
有时我想从每个说 proverbs_bzh 表中获取另一个谚语表。是否可以使用变量名获取不同的表?
例如...
postgresql - 如何将 pgtype.UUIDArray 分配给 []uuid.UUID?
我使用 Go + Postgres。要使用 Postgres,我使用pgx。我的 Postgres 表中有一个 UUID 数组,Go 中有一个带有 []*uuid.UUID 的 Struct (来自github.com/gofrs/uuid)(参见下面的代码)。
问题是当我尝试使用 AssignTo 函数时总是出错
不能:解码 &pgtype.UUIDArray{Elements:[]pgtype.UUID(nil), Dimensions:[]pgtype.ArrayDimension(nil), Status:0x2} 成 *[]*uuid.UUID
(我尝试使用所有带有指针的组合,但它不起作用)
我的结构(用于 API):
我的结构(用于使用 Postgres):
我使用AssignTo
的功能来自pgx
如何解决这个问题呢?
go - 如何在很短的时间间隔内/同时进行多个查询
嘿,我收到一条错误消息:conn busy
来自 pgx
我不知道如何解决这个问题。这是我的功能:
r.Db
是pgx.Connect(context.Background(), os.Getenv("PSQL_URL"))
我在很短的时间间隔内从两个单独的前端请求中获取两个不同的表。
第一个请求通过,另一个返回conn busy
错误消息。
我真的不知道要找什么,有人可以帮助我吗?
go - 从 lib/pq 迁移到 jackc/pgx
将项目迁移到“ github.com/jackc/pgx/pgxpool ”后,每个查询都有一个错误:
expected 0 arguments, got 1
我注意到扫描时发生错误
这是简单的代码块:
这是输出:
我的应用结构:
...
PGRepository 实现存储库:
...这是 QueryRow 实现:
需要帮忙!我不明白哪些论点是错误的?如何修复此错误?
@mkopriva 评论后(对我的代码感到羞耻):
变成
参数错误消失了。但是现在tx.Commit
出现了一些问题:conn busy