Postgresql PQgetvalue:数组返回

May*_*ank 5 c postgresql libpq

我创建的表格如下:

CREATE TABLE tbl_test
(
  id        bigserial    PRIMARY KEY,
  interest  int          ARRAY[2]
);
Run Code Online (Sandbox Code Playgroud)

PGresult* res用了PQexec(conn, "SELECT * FROM tbl_test");

现在,我怎样才能int[]PQgetvalue(res, 0, 1).
我不想依赖于定义的结构,array.h因为它们可能会改变.

我在Postgresql文档中找不到任何可以执行操作的API.
请指教.

此致,
Mayank

Mik*_*ll' 6

除非指定二进制游标,否则PQgetvalue()将返回字段值的字符串表示形式.在任何一种情况下(字符串或二进制光标),您都需要提供代码来将结果操作为您想要的表单.

您可能会在PostgreSQL源代码中找到一些想法.

  • 文件src/backend/utils的/ ADT/arrayfuncs.c
  • 的src /包括/ utils的/ array.h.

而contrib/intarray中有一些代码.

http://doxygen.postgresql.org/,单击"文件",然后搜索"数组".

在字符串级别,这是PQgetvalue()返回的内容,谷歌可能很容易通过逗号分隔的字符串提取整数代码.