我在运行的 postgREST API 上遇到了无法放大字符串缓冲区的消息。我猜有些表太大而无法成功使用 API。
我正在使用来自https://hub.docker.com/r/postgrest/postgrest的 docker postgrest/postgrest 容器 ,其版本为 PostgREST 5.1.0。
一切都按预期工作,但如果表格太大,我会收到以下错误消息。
hint null
details "Cannot enlarge string buffer containing 1073741822 bytes by 1 more bytes."
code "54000"
message "out of memory"
我无法确定阈值何时工作。是否有可能在某些配置文件中扩大字符串缓冲区或者这是硬编码的?
使用 API 的表大小是否有任何限制。到目前为止,我在文档中找不到任何信息。
=========== 更新
postgres 日志给了我以下 SQL 查询:
WITH pg_source AS (
SELECT "public"."n_osm_bawue_line".*
FROM "public"."n_osm_bawue_line"
)
SELECT null AS total_result_set,
pg_catalog.count(_postgrest_t) AS page_total,
array[]::text[] AS header,
coalesce(json_agg(_postgrest_t), '[]')::character varying AS body
FROM (
SELECT *
FROM pg_source
) _postgrest_t
我使用以下 postgres 版本:
"PostgreSQL 11.1 (Debian 11.1-1.pgdg90+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit"