postgres sql'cast a tuple'成语在哪里记录?

art*_*era 5 sql postgresql

我在postgres.org电子邮件中找到了一个表达式,这看起来很有用,但是我找不到它的文档.

select t.*::text from t
Run Code Online (Sandbox Code Playgroud)

这里,::text强制转换似乎适用于每一列,而psql显示的结果输出有点奇怪.也许有人可以教育像我这样的人,解开那个谜团.

编辑:奇怪的是,4.2.9.类型转换不提及此语法

编辑:最后!相关文档见4.2.13.行构造函数

Gor*_*off 5

我可以描述正在发生的事情。考虑这个语法:

select (1, 2)
Run Code Online (Sandbox Code Playgroud)

这将返回一个包含两列的记录(或元组)。您可以使用cast()或将元组转换为文本::

select (1, 2)::text
Run Code Online (Sandbox Code Playgroud)

同样的事情发生在t.*. 它被解释为:

select (t.*)::text
Run Code Online (Sandbox Code Playgroud)

你会得到相同的结果:

select cast(t.* as text)
Run Code Online (Sandbox Code Playgroud)