postgres如何获取char varchar和text数据类型的列大小

postgres如何获取char varchar和text数据类型的列大小,c,postgresql,C,Postgresql,我正在尝试使用postgres C api函数从查询中获取列大小 CREATE TABLE char_length_test (c char(3), vc varchar(5), t text) 例如,我有以下查询: SELECT c, vc, repeat(c, 1), t from char_length_test 我得到了正确的类型,但我不知道如何得到列大小。我试过使用PQfsize和PQgetlength PQfsize返回-1,这意味着根据postgres文档的不同大小,而我需要

我正在尝试使用postgres C api函数从查询中获取列大小

CREATE TABLE char_length_test (c char(3), vc varchar(5), t text)
例如,我有以下查询:

SELECT c, vc, repeat(c, 1), t from char_length_test
我得到了正确的类型,但我不知道如何得到列大小。我试过使用
PQfsize
PQgetlength

  • PQfsize
    返回
    -1
    ,这意味着根据postgres文档的不同大小,而我需要列大小
  • PQgetlength
    返回
    0
    ,这很好,因为表不包含任何数据,尽管它不是列大小
我希望
c
得到长度
3
5
得到'vc'的长度
repeat(c,1)
函数和
t


老实说,我期待类似于mysql\u fetch\u字段的功能

修饰符值的解释是特定于类型的;它们通常表示精度或尺寸限制。值-1用于表示“无可用信息”。大多数数据类型不使用修饰符,在这种情况下,值始终为-1


可能是varchar(n)的PQfmod?不知道。顺便说一句,如果你把答案贴出来,我会记下来的-_^