我正在尝试使用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
,这很好,因为表格不包含任何数据,但不是列大小。我希望3
的长度为c
,{vc'为5
,repeat(c, 1)
函数的值为t
说实话,我期待的功能类似于mysql_fetch_fields
。
答案 0 :(得分:0)
我认为你正在寻找PQfmod。
修饰符值的解释是特定于类型的;它们通常表示精度或尺寸限制。值-1用于表示“无可用信息”。大多数数据类型不使用修饰符,在这种情况下,值始终为-1。