↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3
历史版本。 PostgreSQL 8.0 已结束支持。 请参阅 当前版本手册.

41.8. pg_cast #

目录pg_cast存储数据类型转换路径,包括内置路径以及使用CREATE CAST定义的路径。

表 41.8. pg_cast Columns

名称类型引用 描述
castsourceoidpg_type.oid 源数据类型的OID
casttargetoidpg_type.oid 目标数据类型的OID
castfuncoidpg_proc.oid 执行该转换的函数的OID。如果该转换方法不需要一个函数则存储0。
castcontextchar  指示该转换能被调用的环境。e表示仅能作为一个显式转换(使用CAST或::语法)。a表示在赋值给目标列时隐式调用,和显式调用一样。i表示在表达式中隐式调用,和其他转换一样。

在pg_cast里列出的类型转换函数必须总是以转换的源类型作为它的第一个参数类型,并且返回转换的目标类型作为它的结果类型。一个类型转换函数最多有三个参数。如果出现了第二个参数,必须是integer类型;它接受与目标类型关联的修饰词,如果没有,就是-1。如果出现了第三个参数,那么必须是boolean类型;如果该类型转换是一种明确的转换,那么它接受true,否则接受false。

在pg_cast里创建一条源类型和目标类型相同的记录是合理的,只要相关联的函数接受多过一个参数。这样的记录代表“长度转换函数”,它们把该类型的值转换为对特定的类型合法的值。

如果一个pg_cast的项有着不同的原类型和目标类型,并且有一个接收多于一个参数的函数,那么它会在一个步骤中完成从一种类型到另外一种类型的转换并应用一个长度转换。如果没有这样的项,使用一个类型修改器的转换涉及两个步骤,一个是在数据类型之间转换,另外一个是应用修改器。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.