You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法运行pg_buffercache_pages()函数的问题求助

解决pg_buffercache_pages()函数调用错误的方法

首先确认pg_buffercache扩展已创建(若未创建,执行以下命令):

CREATE EXTENSION IF NOT EXISTS pg_buffercache;

正确调用pg_buffercache_pages()函数

pg_buffercache_pages()返回record类型,必须显式指定完整的列定义列表才能正确查询,完整的列定义与函数返回结构一致:

SELECT * FROM pg_buffercache_pages() AS p (
    bufferid integer,
    relfilenode oid,
    reltablespace oid,
    reldatabase oid,
    relforknumber smallint,
    relblocknumber bigint,
    isdirty boolean,
    usagecount smallint,
    pinning_backends integer
);

更简便的替代方案

直接使用pg_buffercache视图,该视图已封装了pg_buffercache_pages()的返回结构,无需手动指定列定义:

SELECT * FROM pg_buffercache;

错误原因说明

  • ERROR: return type must be a row type:pg_buffercache_pages()返回行类型,不能直接用SELECT 函数()的标量查询方式,必须通过SELECT * FROM 函数()调用。
  • ERROR: a column definition list is required for functions returning "record":返回record类型的函数,PostgreSQL无法自动识别列结构,必须显式提供列定义列表。
  • ERROR: incorrect number of output arguments:你指定的列数量与函数实际返回的字段数量不匹配,导致报错。

内容的提问来源于stack exchange,提问作者Ayush Vatsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:27:38