在 PostgreSQL 9.5 下,在我编写的一个 C 函数中,ARR_ELEMTYPE(PG_GETARG_ARRAYTYPE_P(0))
其中 (0) 是一个复合类型数组(即由 定义CREATE TYPE
),返回 28642010。这个数字没有出现在源代码中,也没有记录在案。
今天,我升级到 PG 9.6,我的 C 函数抛出了错误。elemtype 现在报告为 16396。这也不会出现在源代码中。
我在 wiki 和源代码中搜索了十进制和十六进制的两个数字。
我看不出a)源代码中没有定义OID,b)数字随着PG的变化而变化。
我在这里错过了什么吗?