问题标签 [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.

0 投票
1 回答
124 浏览

oracle - Pgx OutOfMemoryError:最大堆外大小配置为不超过 8,192 MB

对 Oracle 的 PGX API 有疑问

我加载了一个大图并应用了连续的过滤器,但是在计算了一些计算之后我破坏了临时图。

但是[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参数的值,但也没有任何反应。

0 投票
0 回答
465 浏览

postgresql - 从 PostgreSQL 中的 JSONB 列中提取数组数据并使用 pgx 库将其编组为字符串切片

我以某种方式设法使它工作,但不完全符合预期。下面的代码是 JSONB 列中数据的“poco”。

下面我初始化了部分帖子以及用于扫描每一行的单个帖子。其余的是标准查询代码。这 data是声明为 jsonb 的列名

我得到的输出:

正如你在上面看到的,每个标签切片的输出是相同的,因为切片只是一个指向底层数组的指针,最后一个从数据库中拉出的会覆盖以前的。我知道如果我声明 postTags [2]string可以正常工作,但我需要使用 slice,因为我不知道可能有多少标签,对这个问题有什么建议吗?

这是桌子的样子

0 投票
1 回答
5203 浏览

postgresql - pgx lib中的命名预处理语句,它是如何工作的?

介绍

数据库/sql

在 Go 标准 sql 库中,该*Stmt类型具有如下定义的方法:

新的(未命名的)语句由以下人员准备:

  1. 连接池是抽象的,不能直接访问
  2. 在单个连接上准备事务
  3. 如果连接在语句执行时不可用,它将在新连接上重新准备。

pgx

PreparedStatement类型没有定义任何方法。一个新的命名准备好的语句由以下人员准备:

  1. 操作直接在连接池上
  2. 事务在池的所有连接上准备好
  3. 没有明确的方法如何执行准备好的语句

Github 评论中,作者更好地解释了 pgx 和 database/sql 之间的架构差异。文档Prepare还指出(强调我的):

准备是幂等的;即使用相同的名称和sql 参数多次调用Prepare 是安全的。这允许准备和查询/执行/PrepareEx 的代码路径,而不用担心语句是否已经准备好。

小例子

问题)

  1. 这个name论点给我的印象是它可以通过调用它来执行name,但是如何呢?
  2. 该文档给人的印象是Query/Exec方法以某种方式利用了准备好的语句。但是,这些方法不带name参数。它如何匹配它们?
  3. 据推测,匹配是由查询内容完成的。那么命名语句的全部意义是什么?

可能的答案

这是我自己走多远:

  1. 没有按名称引用查询的方法(假设)
  2. 匹配是在conn.ExecEx(). 如果它还没有准备好,它将完成:
  1. PosgreSQL 本身需要它来做某事(假设)。
0 投票
1 回答
4274 浏览

database - 如何在 jackc/pgx 中使用“where id in”子句?

pgx 是否提供对“where in”子句的任何支持?我在另一个 stackoverflow 线程中发现应该使用字符串连接来手动构建查询。不过,IMO 这有点容易出错,因为您必须自己处理转义/sql 注入等。

我也试着自己弄清楚:

当我执行此代码时,我收到以下错误:

错误:绑定参数 1 中的二进制数据格式不正确 (SQLSTATE 22P03)

我正在使用的版本:

Postgres:

PGX:

0 投票
0 回答
182 浏览

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?

0 投票
1 回答
904 浏览

postgresql - 如何将 pgtype.Int4Array(来自 pgx 库)转换为 []int64 Golang 类型?

我使用 Go 和 Postgres(带有pgx 驱动程序

在我的 Postgres 表中,我有一个包含整数数组的字段。我创建了一个变量来存储扫描后的整数数组。

如何转换ids[]int64

0 投票
1 回答
248 浏览

postgresql - 如何使用变量通过 pgx 驱动程序获取不同的表?

这是一个获取法语谚语的函数:

有时我想从每个说 proverbs_bzh 表中获取另一个谚语表。是否可以使用变量名获取不同的表?

例如...

0 投票
0 回答
1119 浏览

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

如何解决这个问题呢?

0 投票
2 回答
4746 浏览

go - 如何在很短的时间间隔内/同时进行多个查询

嘿,我收到一条错误消息:conn busy来自 pgx

我不知道如何解决这个问题。这是我的功能:

r.Dbpgx.Connect(context.Background(), os.Getenv("PSQL_URL"))

我在很短的时间间隔内从两个单独的前端请求中获取两个不同的表。

第一个请求通过,另一个返回conn busy错误消息。

我真的不知道要找什么,有人可以帮助我吗?

0 投票
0 回答
1047 浏览

go - 从 lib/pq 迁移到 jackc/pgx

将项目迁移到“ github.com/jackc/pgx/pgxpool ”后,每个查询都有一个错误:

expected 0 arguments, got 1

我注意到扫描时发生错误

这是简单的代码块:

这是输出:

我的应用结构:

...

PGRepository 实现存储库:

...这是 QueryRow 实现:

需要帮忙!我不明白哪些论点是错误的?如何修复此错误?

@mkopriva 评论后(对我的代码感到羞耻):

变成

参数错误消失了。但是现在tx.Commit出现了一些问题:conn busy