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

时间:2013-04-18 13:50:05

标签: 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

我得到了正确的类型,但我无法弄清楚如何获得列大小。我尝试过使用PQfsizePQgetlength

  • PQfsize返回-1,这意味着根据postgres文档可变大小,而我需要列大小。
  • PQgetlength返回0,这很好,因为表格不包含任何数据,但不是列大小。

我希望3的长度为c,{vc'为5repeat(c, 1)函数的值为t

说实话,我期待的功能类似于mysql_fetch_fields

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找PQfmod

  

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