在我的应用程序中,我使用 postgresql 返回复合类型值,如下所示:
select row('a','b','c','d');
此查询返回:
(A B C D)
我正在使用更复杂的类型,其中包含其他复合类型的数组等。在我的 DB 层中,我解析返回值并从中“解包”数组和其他复合。
问题?
select row(array[1,2,3,4]);
和
select row('{1,2,3,4}');
给出完全相同的输出:
("{1,2,3,4}")
我如何区分这'{1,2,3,4}'
意味着什么是常规字符串(可能由用户提供)和什么时候意味着它是数组?
复合字段值中不应该有类似转义序列的东西{
吗?}
PS我不能使用类似的东西select * from row[1,2,3]
。