↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科

PostgreSQL 函数百科

内置函数是 PostgreSQL 手册第 9 章「函数和操作符」的全部内容:数学、字符串、日期时间、JSON、聚合、窗口、系统信息与管理函数都在其中,每一个都由一条或多条签名描述,写明参数、类型与返回值。本栏目收录 711 个函数,分属 27 个分组,覆盖 PostgreSQL 7.1 至 20,逐版本记下每条签名、说明与示例的变化。7.1 是本数据集的收录基线,不代表这些函数首次于 7.1 引入。

按分组浏览

按版本看变更

版本变动 未收录 存在 新增 签名变化 已移除

函数 签名 主签名 版本变动 最近变更
COMPARISON FUNCTIONS AND OPERATORS 比较函数和操作符 3 个 ↑
error_on_null 1 error_on_null ( anyelement ) → anyelement —
检查输入是否为 null 值;如果是,则生成错误;否则返回输入。 现存
num_nonnulls 1 num_nonnulls ( VARIADIC "any" ) → integer —
返回非 null 参数的数量。 现存
num_nulls 1 num_nulls ( VARIADIC "any" ) → integer —
返回 null 参数的数量。 现存
MATHEMATICAL FUNCTIONS AND OPERATORS 数学函数和操作符 56 个 ↑
abs基线 1 abs ( numeric_type ) → numeric_type 8.41 次
绝对值 现存
acos基线 1 acos ( double precision ) → double precision —
反余弦,结果为弧度 现存
acosd 1 acosd ( double precision ) → double precision —
反余弦,结果为度数 现存
acosh 1 acosh ( double precision ) → double precision —
反双曲余弦 现存
asin基线 1 asin ( double precision ) → double precision —
反正弦,结果为弧度 现存
asind 1 asind ( double precision ) → double precision —
反正弦,结果为度数 现存
asinh 1 asinh ( double precision ) → double precision —
反双曲正弦 现存
atan基线 1 atan ( double precision ) → double precision —
反正切,结果为弧度 现存
atan2基线 1 atan2 ( y double precision, x double precision ) → double precision 8.31 次
y/x 的反正切,结果为弧度 现存
atan2d 1 atan2d ( y double precision, x double precision ) → double precision —
y/x 的反正切,结果为度数 现存
atand 1 atand ( double precision ) → double precision —
反正切,结果为度数 现存
atanh 1 atanh ( double precision ) → double precision —
反双曲正切 现存
cbrt基线 1 cbrt ( double precision ) → double precision —
立方根 现存
ceil基线 2 ceil ( numeric ) → numeric 7.31 次
大于或等于参数的最接近的整数 现存
ceiling 2 ceiling ( numeric ) → numeric —
大于或等于参数的最接近的整数(与 ceil 相同) 现存
cos基线 1 cos ( double precision ) → double precision —
余弦,参数为弧度 现存
cosd 1 cosd ( double precision ) → double precision —
余弦,参数为度数 现存
cosh 1 cosh ( double precision ) → double precision —
双曲余弦 现存
cot基线 1 cot ( double precision ) → double precision —
余切,参数为弧度 现存
cotd 1 cotd ( double precision ) → double precision —
余切,参数为度数 现存
degrees基线 1 degrees ( double precision ) → double precision —
将弧度转换为角度 现存
div 1 div ( y numeric, x numeric ) → numeric —
y/x 的整数商(向零截断) 现存
erf 1 erf ( double precision ) → double precision —
误差函数 现存
erfc 1 erfc ( double precision ) → double precision —
互补误差函数(1 - erf(x),对较大输入不会损失精度) 现存
exp基线 2 exp ( numeric ) → numeric 7.31 次
指数函数(e 的给定次幂) 现存
factorial 1 factorial ( bigint ) → numeric —
阶乘 现存
floor基线 2 floor ( numeric ) → numeric 7.31 次
小于或等于参数的最接近整数 现存
gamma 1 gamma ( double precision ) → double precision —
伽马函数 现存
gcd 1 gcd ( numeric_type, numeric_type ) → numeric_type —
最大公约数(能将两个输入数整除而无余数的最大正数);如果两个输入为零则返回 0;适用于 integer、bigint 和 numeric 现存
lcm 1 lcm ( numeric_type, numeric_type ) → numeric_type —
最小公倍数(同时为两个输入的整数倍的最小严格正数);如果任意一个输入值为零则返回 0;适用于 integer、bigint 和 numeric 现存
lgamma 1 lgamma ( double precision ) → double precision —
伽马函数绝对值的自然对数 现存
ln基线 2 ln ( numeric ) → numeric 7.31 次
自然对数 现存
log基线 3 log ( numeric ) → numeric 7.31 次
以 10 为底的对数 现存
log10 2 log10 ( numeric ) → numeric —
以 10 为底的对数(与 log 相同) 现存
min_scale 1 min_scale ( numeric ) → integer —
精确表示给定值所需的最少小数位数 现存
mod基线 1 mod ( y numeric_type, x numeric_type ) → numeric_type —
y/x 的余数;适用于 smallint、integer、bigint 和 numeric 现存
pi基线 1 pi ( ) → double precision —
π的近似值 现存
pow基线 2 pow ( a dp, b dp ) → dp 7.42 次
a的b次幂 于 8.0 移除
power 2 power ( a numeric, b numeric ) → numeric —
a 的 b 次幂 现存
radians基线 1 radians ( double precision ) → double precision —
将角度转换为弧度 现存
random基线 7 random ( ) → double precision 192 次
返回范围 0.0 <= x < 1.0 内的随机值 现存
random_normal 1 random_normal ( [ mean double precision [, stddev double precision ]] ) → double precision —
从具有给定参数的正态分布中返回一个随机值;mean 默认为 0.0,stddev 默认为 1.0。 现存
round基线 3 round ( numeric ) → numeric 8.12 次
舍入到最接近的整数。对于 numeric,遇到恰好位于中点的情况时按远离零的方向舍入。对于 double precision,中点取舍规则取决于平台,但“舍入到最接近的偶数”是最常见的规则。 现存
scale 1 scale ( numeric ) → integer —
参数的小数位数(小数部分的十进制位数) 现存
setseed 1 setseed ( double precision ) → void 8.33 次
为后续的 random() 和 random_normal() 调用设置种子;参数必须在-1.0 和 1.0 之间,包括边界值 现存
sign 2 sign ( numeric ) → numeric 7.31 次
参数的符号(-1、0 或 +1) 现存
sin基线 1 sin ( double precision ) → double precision —
正弦,参数为弧度 现存
sind 1 sind ( double precision ) → double precision —
正弦,参数为度数 现存
sinh 1 sinh ( double precision ) → double precision —
双曲正弦 现存
sqrt基线 2 sqrt ( numeric ) → numeric 7.31 次
平方根 现存
tan基线 1 tan ( double precision ) → double precision —
正切,参数为弧度 现存
tand 1 tand ( double precision ) → double precision —
正切,参数为度数 现存
tanh 1 tanh ( double precision ) → double precision —
双曲正切 现存
trim_scale 1 trim_scale ( numeric ) → numeric —
通过移除尾随零来减少值的小数位数 现存
trunc基线 5 trunc ( numeric ) → numeric 103 次
向零截断为整数 现存
width_bucket 3 width_bucket ( operand numeric, low numeric, high numeric, count integer ) → integer 144 次
返回直方图中包含 operand 的桶编号。该直方图把 low 到 high 的范围划分为 count 个等宽桶。各桶包含下边界、不包含上边界。对于小于 low 的输入,返回 0;对于大于等于 high 的输入,返回 count+1。如果 low > high,行为会镜像反转,此时桶 1 表示刚好位于 low 下方的那个桶,并且包含边界的一侧改为上边界。 现存
STRING FUNCTIONS AND OPERATORS 字符串函数和操作符 58 个 ↑
ascii基线 1 ascii ( text ) → integer 8.22 次
返回参数的第一个字符的数字代码。在 UTF8 编码中,返回该字符的 Unicode 码点。在其他多字节编码中,该参数必须是一个 ASCII 字符。 现存
bit_length 3 bit_length ( text ) → integer 8.11 次
返回字符串中的位数(8 倍于 octet_length)。 现存
btrim基线 2 btrim ( string text [, characters text ] ) → text 8.04 次
从 string 的开头和结尾移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
casefold 1 casefold ( text ) → text —
根据排序规则对输入字符串执行大小写折叠。大小写折叠与大小写转换类似,但其目的是方便字符串的不区分大小写匹配,而大小写转换的目的是将字符串转换为特定的大小写形式。此函数只能在服务器编码为 UTF8 时使用。 现存
char_length基线 1 char_length ( text ) → integer 8.11 次
返回字符串中的字符数。 现存
character_length基线 1 character_length ( text ) → integer 8.11 次
返回字符串中的字符数。 现存
chr基线 1 chr ( integer ) → text 8.11 次
返回给定代码的字符。在 UTF8 编码中该参数被视作一个 Unicode 码点。在其他多字节编码中该参数必须指定一个 ASCII 字符。chr(0) 字符不被允许,因为文本数据类型不能存储这种字符。 现存
concat 1 concat ( val1 "any" [, val2 "any" [, ...] ] ) → text —
串接所有参数的文本表示。NULL 参数被忽略。 现存
concat_ws 1 concat_ws ( sep text, val1 "any" [, val2 "any" [, ...] ] ) → text —
用分隔符串接除第一个参数外的所有参数。第一个参数用作分隔符字符串,不应为 NULL。其他 NULL 参数将被忽略。 现存
format 2 format ( formatstr text [, formatarg "any" [, ...] ] ) → text 9.31 次
根据格式字符串对参数进行格式化;参见第 9.4.1 节。这个函数类似于 C 函数 sprintf。 现存
getdatabaseencoding 1 getdatabaseencoding ( ) → name —
返回当前数据库的编码名称。 现存
initcap基线 1 initcap ( text ) → text 8.21 次
将每个单词的第一个字母转换为大写(如果该字母是二合字母,且区域设置为 ICU 或 builtin PG_UNICODE_FAST,则转换为标题大小写),其余字母转换为小写。使用 libc 或 builtin 区域设置提供者时,单词是由非字母数字字符分隔的字母数字字符序列;使用 ICU 区域设置提供者时,单词按 ICU 的 u_strToTitle 函数划分。 现存
left 1 left ( string text, n integer ) → text —
返回字符串最左侧的 n 个字符;如果 n 为负,则返回除最后 |n| 个字符之外的全部字符。 现存
length基线 6 length ( text ) → integer 9.16 次
返回字符串中的字符数。 现存
lower基线 3 lower ( text ) → text 142 次
根据数据库的区域设置规则,将字符串转换为全部小写。 现存
lpad基线 1 lpad ( string text, length integer [, fill text ] ) → text 8.11 次
在 string 前面添加字符 fill(默认为空格),将其填充到长度 length。如果 string 已经长于 length,则从右侧截断。 现存
ltrim基线 2 ltrim ( string text [, characters text ] ) → text 144 次
从 string 的开头移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
md5 2 md5 ( text ) → text 8.22 次
计算参数的 MD5 hash,结果以十六进制形式写入。 现存
normalize 1 normalize ( text [, form ] ) → text —
将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。 现存
octet_length基线 4 octet_length ( text ) → integer 8.11 次
返回字符串的字节数。 现存
overlay 3 overlay ( string text PLACING newsubstring text FROM start integer [ FOR count integer ] ) → text 9.02 次
用 newsubstring 替换 string 中从第 start 个字符开始、长度为 count 个字符的子字符串。如果省略 count,则默认为 newsubstring 的长度。 现存
parse_ident 1 parse_ident ( qualified_identifier text [, strict_mode boolean DEFAULT true ] ) → text[] —
将 qualified_identifier 拆分为一个标识符数组,去除各个标识符的引号。默认情况下,最后一个标识符之后的额外字符被视为错误;但是,如果第二个参数为 false,则忽略这些额外的字符。(这种行为对于解析函数等对象的名称有作用。)请注意,此函数不会截断超长标识符。如果你想截断,你可以将结果转换为 name[]。 现存
pg_client_encoding 1 pg_client_encoding ( ) → name —
返回当前客户端编码名称。 现存
position基线 3 position ( substring text IN string text ) → integer 8.11 次
返回 substring 在 string 中首次出现的位置;如果不存在则返回零。 现存
quote_ident 1 quote_ident ( text ) → text 8.32 次
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的标识符。仅在必要时(即字符串包含不能用于标识符的字符,或会发生大小写折叠时)添加引号。内嵌的引号会被适当地双写。另见例 41.1。 现存
quote_literal 2 quote_literal ( text ) → text 8.32 次
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的字符串字面量。内嵌的单引号和反斜杠会被适当地双写。注意,quote_literal 在输入为 null 时返回 null;如果参数可能为 null,quote_nullable 通常更合适。另见例 41.1。 现存
quote_nullable 2 quote_nullable ( text ) → text —
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的字符串字面量;如果参数为 null,则返回 NULL。内嵌的单引号和反斜杠会被适当地双写。另见例 41.1。 现存
regexp_count 2 regexp_count ( string text, pattern text [, start integer [, flags text ] ] ) → integer 191 次
返回 POSIX 正则表达式 pattern 在 string 中匹配的次数;参见第 9.7.3.1.2 节。 现存
regexp_instr 2 regexp_instr ( string text, pattern text [, start integer [, N integer [, endoption integer [, flags text [, subexpr integer ] ] ] ] ] ) → integer 191 次
返回 POSIX 正则表达式 pattern 在 string 中第 N 次匹配的位置;如果没有这样的匹配,则返回零。参见第 9.7.3.1.3 节。 现存
regexp_like 2 regexp_like ( string text, pattern text [, flags text ] ) → boolean 191 次
检查 POSIX 正则表达式 pattern 是否在 string 中出现;参见第 9.7.3.1.4 节。 现存
regexp_match 2 regexp_match ( string text, pattern text [, flags text ] ) → text[] 191 次
返回 POSIX 正则表达式 pattern 与 string 的第一次匹配中的子字符串;参见第 9.7.3.1.5 节。 现存
regexp_matches 2 regexp_matches ( string text, pattern text [, flags text ] ) → setof text[] 191 次
返回 POSIX 正则表达式 pattern 与 string 的第一次匹配中的子字符串;如果使用 g 标志,则返回所有匹配中的子字符串。参见第 9.7.3.1.6 节。 现存
regexp_replace 4 regexp_replace ( string text, pattern text, replacement text [, flags text ] ) → text 194 次
替换第一个与 POSIX 正则表达式 pattern 匹配的子字符串,如果使用了 g 标志,则替换所有这样的匹配;参见第 9.7.3.1.7 节。 现存
regexp_split_to_array 2 regexp_split_to_array ( string text, pattern text [, flags text ] ) → text[] 191 次
使用 POSIX 正则表达式作为分隔符拆分 string,生成一个结果的数组;参见第 9.7.3.1.9 节。 现存
regexp_split_to_table 2 regexp_split_to_table ( string text, pattern text [, flags text ] ) → setof text 191 次
使用 POSIX 正则表达式作为分隔符拆分 string,生成一组结果;参见第 9.7.3.1.8 节。 现存
regexp_substr 2 regexp_substr ( string text, pattern text [, start integer [, N integer [, flags text [, subexpr integer ] ] ] ] ) → text 191 次
返回 string 中 POSIX 正则表达式 pattern 的第 N 次匹配对应的子字符串;如果没有这样的匹配,则返回 NULL。参见第 9.7.3.1.10 节。 现存
repeat基线 1 repeat ( string text, number integer ) → text 8.12 次
按 number 指定的次数重复 string。 现存
replace 1 replace ( string text, from text, to text ) → text —
将 string 中所有出现的子字符串 from 替换为子字符串 to。 现存
reverse 2 reverse ( text ) → text 181 次
颠倒字符串中字符的顺序。 现存
right 1 right ( string text, n integer ) → text —
返回字符串中的最后 n 个字符;如果 n 为负数,则返回除前 |n| 个字符之外的全部字符。 现存
rpad基线 1 rpad ( string text, length integer [, fill text ] ) → text 8.11 次
在 string 后面追加字符 fill(默认为空格),将其填充到长度 length。如果 string 已经长于 length,则截断它。 现存
rtrim基线 2 rtrim ( string text [, characters text ] ) → text 143 次
从 string 的结尾移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
split_part 1 split_part ( string text, delimiter text, n integer ) → text 8.12 次
在出现 delimiter 时拆分 string,并返回第 n 个字段(从一开始计数);如果 n 为负数,则返回倒数第 |n| 个字段。 现存
starts_with 1 starts_with ( string text, prefix text ) → boolean —
如果 string 以 prefix 开始就返回真。 现存
string_to_array 1 string_to_array ( string text, delimiter text [, null_string text ] ) → text[] 9.11 次
将 string 按 delimiter 分割,并将结果字段形成 text 数组。如果 delimiter 是 NULL,则 string 中的每个字符将成为数组中的一个单独元素。如果 delimiter 是空字符串,则 string 被视为单个字段。如果提供了 null_string 且不是 NULL,则匹配该字符串的字段将被 NULL 替换。另请参见 array_to_string。 现存
string_to_table 1 string_to_table ( string text, delimiter text [, null_string text ] ) → setof text —
在出现 delimiter 时拆分 string,并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL,则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串,则将 string 视为单个字段。如果提供了 null_string,并且不是 NULL,则匹配该字符串的字段将被 NULL 替换。 现存
strpos基线 1 strpos ( string text, substring text ) → integer 7.31 次
返回 substring 在 string 中首次出现的位置;如果不存在则返回零。(与 position(substring in string) 相同,但请注意参数顺序相反。) 现存
substr基线 2 substr ( string text, start integer [, count integer ] ) → text —
提取 string 中从第 start 个字符开始的子字符串;若指定了长度,则提取 count 个字符。(与 substring(string from start for count) 相同。) 现存
substring基线 11 substring ( string text [ FROM start integer ] [ FOR count integer ] ) → text 196 次
提取 string 的子字符串:若指定了起始位置,则从第 start 个字符开始;若指定了长度,则在提取 count 个字符后停止。start 和 count 至少需要指定一个。 现存
to_ascii基线 3 to_ascii ( string text ) → text 8.21 次
将 string 从其他编码转换为 ASCII,源编码可以用名称或编号指定。如果省略 encoding,则使用数据库编码(实际上,这也是唯一有用的情况)。转换主要是去除重音符号。只支持从 LATIN1、LATIN2、LATIN9 和 WIN1250 编码转换。(另一种更灵活的解决方案参见 unaccent 模块。) 现存
to_bin 2 to_bin ( integer ) → text —
将数字转换为等价的二进制补码表示。 现存
to_hex 2 to_hex ( integer ) → text 8.11 次
将数字转换为等价的二进制补码的十六进制表示。 现存
to_oct 2 to_oct ( integer ) → text —
将数字转换为等价的二进制补码的八进制表示。 现存
translate基线 1 translate ( string text, from text, to text ) → text —
将 string 中与 from 集合中匹配的每个字符替换为 to 集合中相应的字符。如果 from 长于 to,输入中出现的 from 中的额外字符会被删除。 现存
trim基线 4 trim ( [ LEADING | TRAILING | BOTH ] [ characters text ] FROM string text ) → text 144 次
从 string 的开始、末端或两端(默认为 BOTH)移除仅包含 characters(默认为空格)字符的最长字符串。 现存
unicode_assigned 1 unicode_assigned ( text ) → boolean —
如果字符串中的所有字符都是已分配的 Unicode 码点,则返回 true;否则返回 false。此函数只能在服务器编码为 UTF8 时使用。 现存
unistr 1 unistr ( text ) → text —
解析参数中转义的 Unicode 字符。Unicode 字符可以被指定为\XXXX(4 个十六进制数字),\+XXXXXX(6 个十六进制数字),\uXXXX(4 个十六进制数字),或\UXXXXXXXX(8 个十六进制数字)。要指定反斜杠,请写入两个反斜杠。所有其他字符均按字面解释。 现存
upper基线 3 upper ( text ) → text 142 次
根据数据库的区域设置规则,将字符串转换为全部大写。 现存
BINARY STRING FUNCTIONS AND OPERATORS 二进制串函数和操作符 16 个 ↑
bit_count 2 bit_count ( bytes bytea ) → bigint —
返回二进制字符串中被置位的位数(也称为“popcount”)。 现存
convert 1 convert ( bytes bytea, src_encoding name, dest_encoding name ) → bytea 8.32 次
将表示编码 src_encoding 的文本的二进制字符串转换为编码 dest_encoding 的二进制字符串(适用的转换请参阅第 23.3.4 节)。 现存
convert_from 1 convert_from ( bytes bytea, src_encoding name ) → text —
将表示编码 src_encoding 的文本的二进制字符串转换为数据库编码中的 text。(适用的转换请参阅第 23.3.4 节)。 现存
convert_to 1 convert_to ( string text, dest_encoding name ) → bytea —
将 text 字符串(数据库编码)转换为编码 dest_encoding 中编码的二进制字符串。(适用的转换请参阅第 23.3.4 节)。 现存
crc32 1 crc32 ( bytea ) → bigint —
计算二进制字符串的 CRC-32 值。 现存
crc32c 1 crc32c ( bytea ) → bigint —
计算二进制字符串的 CRC-32C 值。 现存
decode 1 decode ( string text, format text ) → bytea 8.41 次
从文本表示中解码二进制数据;支持的 format 值与 encode 相同。 现存
encode 1 encode ( bytes bytea, format text ) → text 8.41 次
将二进制数据编码成文本表示;支持的 format 值为:base32hex, base64, base64url, escape, hex。 现存
get_bit 2 get_bit ( bytes bytea, n bigint ) → integer 8.11 次
从二进制字符串中提取编号为 n 的位。 现存
get_byte 1 get_byte ( bytes bytea, n integer ) → integer 8.11 次
从二进制字符串中提取编号为 n 的字节。 现存
set_bit 2 set_bit ( bytes bytea, n bigint, newvalue integer ) → bytea —
设置二进制字符串中的编号为 n 的位为 newvalue。 现存
set_byte 1 set_byte ( bytes bytea, n integer, newvalue integer ) → bytea —
将二进制字符串中编号为 n 的字节设置为 newvalue。 现存
sha224 1 sha224 ( bytea ) → bytea —
计算二进制字符串的 SHA-224 hash。 现存
sha256 1 sha256 ( bytea ) → bytea —
计算二进制字符串的 SHA-256 hash。 现存
sha384 1 sha384 ( bytea ) → bytea —
计算二进制字符串的 SHA-384 hash。 现存
sha512 1 sha512 ( bytea ) → bytea —
计算二进制字符串的 SHA-512 hash。 现存
DATA TYPE FORMATTING FUNCTIONS 数据类型格式化函数 4 个 ↑
to_char基线 4 to_char ( timestamp, text ) → text 7.21 次
根据给定的格式将时间戳转换为字符串。 现存
to_date基线 1 to_date ( text, text ) → date —
根据给定的格式将字符串转换为日期。 现存
to_number基线 1 to_number ( text, text ) → numeric —
根据给定的格式将字符串转换为数值。 现存
to_timestamp基线 2 to_timestamp ( text, text ) → timestamp with time zone 8.12 次
根据给定的格式将字符串转换为时间戳。(也请参见表 9.33 中的 to_timestamp(double precision)。) 现存
DATE/TIME FUNCTIONS AND OPERATORS 日期/时间函数和操作符 30 个 ↑
age基线 3 age ( timestamp, timestamp ) → interval —
将两个参数相减,生成一个使用年和月而不是只用日的“符号化”结果 现存
clock_timestamp 2 clock_timestamp ( ) → timestamp with time zone —
当前日期和时间(在语句执行期间变化);参见第 9.9.5 节 现存
current_date 1 current_date → date —
当前日期;参见第 9.9.5 节 现存
current_time 3 current_time → time with time zone 8.23 次
一天中的当前时刻;参见第 9.9.5 节 现存
current_timestamp基线 3 current_timestamp → timestamp with time zone 8.23 次
当前日期和时间(当前事务开始时);参见第 9.9.5 节 现存
date_add 1 date_add ( timestamp with time zone, interval [, text ] ) → timestamp with time zone —
将一个 interval 加到 timestamp with time zone 上,并根据第三个参数命名的时区,或在省略该参数时根据当前 TimeZone 设置,计算时刻和夏令时调整。双参数形式等价于 timestamp with time zone + interval 操作符。 现存
date_bin 2 date_bin ( interval, timestamp, timestamp ) → timestamp —
将输入按指定的间隔进行分箱(bin),对齐到指定的原点;参见第 9.9.3 节 现存
date_part基线 3 date_part ( text, timestamp ) → double precision —
获取时间戳子字段(等同于 extract);参见第 9.9.1 节 现存
date_subtract 1 date_subtract ( timestamp with time zone, interval [, text ] ) → timestamp with time zone —
从一个 timestamp with time zone 中减去 interval,并根据第三个参数命名的时区,或在省略该参数时根据当前 TimeZone 设置,计算时刻和夏令时调整。双参数形式等价于 timestamp with time zone - interval 操作符。 现存
date_trunc基线 4 date_trunc ( text, timestamp ) → timestamp 183 次
截断到指定的精度;参见第 9.9.2 节 现存
extract基线 3 extract ( field FROM timestamp ) → numeric 193 次
获取时间戳子字段;参见第 9.9.1 节 现存
isfinite基线 3 isfinite ( date ) → boolean 8.41 次
测试日期是否有限(不是正负无穷) 现存
justify_days 1 justify_days ( interval ) → interval —
调整间隔,将 30 天的时间段转换为月份 现存
justify_hours 1 justify_hours ( interval ) → interval —
调整间隔,将 24 小时时间段转换为天数 现存
justify_interval 1 justify_interval ( interval ) → interval —
使用 justify_days 和 justify_hours 调整时间间隔,并额外调整符号 现存
localtime 3 localtime → time 8.22 次
一天中的当前时刻;参见第 9.9.5 节 现存
localtimestamp 3 localtimestamp → timestamp 8.22 次
当前日期和时间(当前事务开始时);参见第 9.9.5 节 现存
make_date 1 make_date ( year int, month int, day int ) → date —
从年、月和日字段创建日期(负数年份表示 BC) 现存
make_interval 1 make_interval ( [ years int [, months int [, weeks int [, days int [, hours int [, mins int [, secs double precision ]]]]]]] ) → interval —
从年、月、周、日、小时、分钟和秒字段创建时间间隔,每个字段默认为 0 现存
make_time 1 make_time ( hour int, min int, sec double precision ) → time —
从小时、分钟和秒字段创建时间 现存
make_timestamp 1 make_timestamp ( year int, month int, day int, hour int, min int, sec double precision ) → timestamp —
从年、月、日、小时、分钟和秒字段创建时间戳(负数年份表示 BC) 现存
make_timestamptz 1 make_timestamptz ( year int, month int, day int, hour int, min int, sec double precision [, timezone text ] ) → timestamp with time zone —
从年、月、日、小时、分钟和秒字段并结合时区创建时间戳(负数年份表示 BC)。如果没有指定 timezone,则使用当前时区;示例假设会话时区为 Europe/London 现存
now基线 2 now ( ) → timestamp with time zone 8.22 次
当前日期和时间(当前事务开始时);参见第 9.9.5 节 现存
pg_sleep 1 pg_sleep ( double precision ) —
pg_sleep 使当前会话的进程休眠,直到经过指定的秒数。可以指定带小数部分的秒数作为延迟时间。pg_sleep_for 是一个便捷函数,允许以 interval 指定休眠时间。pg_sleep_until 是在需要指定唤醒时间时使用的便捷函数。例如: 现存
pg_sleep_for 1 pg_sleep_for ( interval ) —
pg_sleep 使当前会话的进程休眠,直到经过指定的秒数。可以指定带小数部分的秒数作为延迟时间。pg_sleep_for 是一个便捷函数,允许以 interval 指定休眠时间。pg_sleep_until 是在需要指定唤醒时间时使用的便捷函数。例如: 现存
pg_sleep_until 1 pg_sleep_until ( timestamp with time zone ) —
pg_sleep 使当前会话的进程休眠,直到经过指定的秒数。可以指定带小数部分的秒数作为延迟时间。pg_sleep_for 是一个便捷函数,允许以 interval 指定休眠时间。pg_sleep_until 是在需要指定唤醒时间时使用的便捷函数。例如: 现存
statement_timestamp 2 statement_timestamp ( ) → timestamp with time zone —
当前日期和时间(当前语句开始时);参见第 9.9.5 节 现存
timeofday基线 2 timeofday ( ) → text 8.21 次
当前的日期和时间(类似 clock_timestamp,但是采用 text 字符串);参见第 9.9.5 节 现存
timestamp基线 2 timestamp ( date ) → timestamp —
date 转换为 timestamp 于 7.3 移除
transaction_timestamp 2 transaction_timestamp ( ) → timestamp with time zone —
当前日期和时间(当前事务开始时);参见第 9.9.5 节 现存
ENUM SUPPORT FUNCTIONS 枚举支持函数 3 个 ↑
enum_first 1 enum_first ( anyenum ) → anyenum —
返回输入枚举类型的第一个值。 现存
enum_last 1 enum_last ( anyenum ) → anyenum —
返回输入枚举类型的最后一个值。 现存
enum_range 2 enum_range ( anyenum ) → anyarray —
将输入枚举类型的所有值作为一个有序的数组返回。 现存
GEOMETRIC FUNCTIONS AND OPERATORS 几何函数和操作符 23 个 ↑
area基线 1 area ( geometric_type ) → double precision —
计算面积。适用于 box、path、circle。path 输入必须封闭,否则返回 NULL。同样,如果 path 是自交叉的,结果可能是没有意义的。 现存
bound_box 1 bound_box ( box, box ) → box —
计算两个矩形框的边界框。 现存
box基线 4 box ( circle ) → box 9.52 次
计算内接于圆的矩形框。 现存
box_intersect 1 box_intersect ( box, box ) → box —
交集矩形框 于 8.1 移除
center基线 1 center ( geometric_type ) → point —
计算中心点。适用于 box、circle。 现存
circle基线 3 circle ( box ) → circle 8.11 次
计算包围矩形框的最小圆。 现存
diagonal 1 diagonal ( box ) → lseg —
提取框的对角线作为线段(与 lseg(box) 相同)。 现存
diameter基线 1 diameter ( circle ) → double precision —
计算圆的直径。 现存
height基线 1 height ( box ) → double precision —
计算框的垂直尺寸。 现存
isclosed基线 1 isclosed ( path ) → boolean —
路径是否封闭? 现存
isopen基线 1 isopen ( path ) → boolean —
路径是否开放? 现存
line 1 line ( point, point ) → line —
将两个点转换成通过它们的直线。 现存
lseg基线 2 lseg ( box ) → lseg —
提取框的对角线作为线段。 现存
npoint基线 1 npoint ( path ) → integer 7.21 次
点数 于 7.3 移除
npoints 1 npoints ( geometric_type ) → integer 8.11 次
返回点的数量。适用于 path、polygon。 现存
path基线 1 path ( polygon ) → path 8.31 次
将多边形转换为具有相同点列表的封闭路径。 现存
pclose基线 1 pclose ( path ) → path —
将路径转换为封闭形式。 现存
point基线 5 point ( double precision, double precision ) → point 8.12 次
从它的坐标构造点。 现存
polygon基线 4 polygon ( box ) → polygon —
将框转换为 4 点多边形。 现存
popen基线 1 popen ( path ) → path —
将路径转换为开放形式。 现存
radius基线 1 radius ( circle ) → double precision —
计算圆的半径。 现存
slope 1 slope ( point, point ) → double precision —
计算通过两点所画直线的斜率。 现存
width基线 1 width ( box ) → double precision —
计算框的水平大小。 现存
NETWORK ADDRESS FUNCTIONS AND OPERATORS 网络地址函数和操作符 13 个 ↑
abbrev基线 2 abbrev ( inet ) → text 8.21 次
创建文本形式的缩写显示格式。(结果与 inet 输出函数产生的结果相同;只有与显式类型转换为 text 的结果相比时,才称为“缩写形式”。由于历史原因,后一种转换从不省略网络掩码部分。) 现存
broadcast基线 1 broadcast ( inet ) → inet —
为地址的网络计算广播地址。 现存
family 1 family ( inet ) → integer 8.11 次
返回地址的地址族:4 对应 IPv4,6 对应 IPv6。 现存
host基线 1 host ( inet ) → text —
返回 IP 地址文本,忽略子网掩码。 现存
hostmask 1 hostmask ( inet ) → inet —
为地址的网络计算主机掩码。 现存
inet_merge 1 inet_merge ( inet, inet ) → cidr —
计算包含两个给定网络的最小网络。 现存
inet_same_family 1 inet_same_family ( inet, inet ) → boolean —
测试地址是否属于同一 IP 族。 现存
macaddr8_set7bit 1 macaddr8_set7bit ( macaddr8 ) → macaddr8 —
将地址的第 7 位设置为 1,生成所谓的修订 EUI-64 格式,以便用于 IPv6 地址。 现存
masklen基线 1 masklen ( inet ) → integer 8.11 次
返回子网掩码长度,以位为单位。 现存
netmask基线 1 netmask ( inet ) → inet —
为地址的网络计算网络掩码。 现存
network基线 1 network ( inet ) → cidr —
返回地址的网络部分,将子网掩码右边的部分归零。(这相当于将值转换为 cidr。) 现存
set_masklen 2 set_masklen ( inet, integer ) → inet 8.23 次
设置 inet 值的子网掩码长度。地址部分不改变。 现存
text基线 1 text ( inet ) → text —
以文本形式返回未缩写的 IP 地址和子网掩码长度。(这与显式转换为 text 的结果相同。) 现存
TEXT SEARCH FUNCTIONS AND OPERATORS 文本检索函数和操作符 27 个 ↑
array_to_tsvector 1 array_to_tsvector ( text[] ) → tsvector —
将文本字符串数组转换为 tsvector。给定的字符串被直接用作词位,不经过进一步处理。数组元素不得为空字符串或 NULL。 现存
get_current_ts_config 1 get_current_ts_config ( ) → regconfig —
返回当前默认文本检索配置的 OID(由 default_text_search_config 设置)。 现存
json_to_tsvector 1 json_to_tsvector ( [ config regconfig, ] document json, filter jsonb ) → tsvector —
选择 filter 请求的 JSON 文档中的每个项,并将每个项转换为 tsvector,根据指定的或默认配置对单词进行正规化。然后将结果按文档顺序连接起来以产生输出。位置信息就像在每对选定的项目之间存在一个停用词一样生成。(注意,当输入为 jsonb 时,JSON 对象字段的“文档顺序”取决于实现。)filter 必须是一个 jsonb 数组,其中包含 0 个或多个关键字:"string"(包括所有字符串值),"numeric"(包括所有数值),"boolean"(包括所有布尔值),"key"(包括所有键),或 "all"(包括以上所有内容)。作为一种特殊情况,该 filter 也可以是这些关键字之一的简单 JSON 值。 现存
jsonb_to_tsvector 1 jsonb_to_tsvector ( [ config regconfig, ] document jsonb, filter jsonb ) → tsvector —
选择 filter 请求的 JSON 文档中的每个项,并将每个项转换为 tsvector,根据指定的或默认配置对单词进行正规化。然后将结果按文档顺序连接起来以产生输出。位置信息就像在每对选定的项目之间存在一个停用词一样生成。(注意,当输入为 jsonb 时,JSON 对象字段的“文档顺序”取决于实现。)filter 必须是一个 jsonb 数组,其中包含 0 个或多个关键字:"string"(包括所有字符串值),"numeric"(包括所有数值),"boolean"(包括所有布尔值),"key"(包括所有键),或 "all"(包括以上所有内容)。作为一种特殊情况,该 filter 也可以是这些关键字之一的简单 JSON 值。 现存
numnode 1 numnode ( tsquery ) → integer —
返回 tsquery 中词位和操作符的数目。 现存
phraseto_tsquery 1 phraseto_tsquery ( [ config regconfig, ] query text ) → tsquery —
将文本转换为 tsquery,根据指定的或默认配置对单词进行正规化。字符串中的任何标点符号都会被忽略(它不决定查询操作符)。结果查询匹配包含文本中所有非停用词的短语。 现存
plainto_tsquery 1 plainto_tsquery ( [ config regconfig, ] query text ) → tsquery —
将文本转换为 tsquery,根据指定的或默认配置对单词进行正规化。字符串中的任何标点符号都会被忽略(它们不决定查询操作符)。生成的查询匹配包含文本中所有非停用词的文档。 现存
querytree 1 querytree ( tsquery ) → text —
生成 tsquery 中可索引部分的表示。结果为空或仅为 T 表示该查询不可索引。 现存
setweight 2 setweight ( vector tsvector, weight "char" ) → tsvector 9.61 次
将指定的 weight 赋给 vector 的每个元素。 现存
strip 1 strip ( tsvector ) → tsvector —
从 tsvector 中移除位置和权重。 现存
to_tsquery 1 to_tsquery ( [ config regconfig, ] query text ) → tsquery —
将文本转换为 tsquery,根据指定的或默认配置对单词进行正规化。单词必须由有效的 tsquery 操作符组合。 现存
to_tsvector 3 to_tsvector ( [ config regconfig, ] document text ) → tsvector 101 次
将文本转换为 tsvector,根据指定的或默认配置对单词进行正规化。结果中包含位置信息。 现存
ts_debug 1 ts_debug ( [ config regconfig, ] document text ) → setof record ( alias text, description text, token text, dictionaries regdictionary[], dictionary regdictionary, lexemes text[] ) —
根据指定的或默认的文本检索配置从 document 中提取和正规化词元,并返回关于每个词元是如何处理的信息。详情参见第 12.8.1 节。 现存
ts_delete 2 ts_delete ( vector tsvector, lexeme text ) → tsvector —
从 vector 中删除给定的 lexeme 的所有出现。lexeme 字符串被视为原样的词位,不经过进一步处理。 现存
ts_filter 1 ts_filter ( vector tsvector, weights "char"[] ) → tsvector —
只从 vector 中选择具有给定 weights 的元素。 现存
ts_headline 3 ts_headline ( [ config regconfig, ] document text, query tsquery [, options text ] ) → text 101 次
以缩略形式显示 query 在 document 中的匹配项;后者必须是原始文本,不能是 tsvector。在匹配查询之前,文档中的单词将根据指定的或默认配置进行正规化。第 12.3.4 节中讨论了该函数的使用,还描述了可用的 options。 现存
ts_lexize 1 ts_lexize ( dict regdictionary, token text ) → text[] —
如果词典识别输入词元,则返回由替换词位组成的数组;如果词典识别该词元,但它是停用词,则返回空数组;如果词典无法识别该词元,则返回 NULL。详情参见第 12.8.3 节。 现存
ts_parse 2 ts_parse ( parser_name text, document text ) → setof record ( tokid integer, token text ) —
使用指定名称的解析器从 document 中提取词元。详情参见第 12.8.2 节。 现存
ts_rank 1 ts_rank ( [ weights real[], ] vector tsvector, query tsquery [, normalization integer ] ) → real —
计算一个分数,显示 vector 与 query 的匹配程度。详情请参见第 12.3.3 节。 现存
ts_rank_cd 1 ts_rank_cd ( [ weights real[], ] vector tsvector, query tsquery [, normalization integer ] ) → real —
使用覆盖密度算法计算一个分数,显示 vector 与 query 的匹配程度。详情参见第 12.3.3 节。 现存
ts_rewrite 2 ts_rewrite ( query tsquery, target tsquery, substitute tsquery ) → tsquery —
在 query 中使用 substitute 替换出现的 target。详情参见第 12.4.2.1 节。 现存
ts_stat 1 ts_stat ( sqlquery text [, weights text ] ) → setof record ( word text, ndoc integer, nentry integer ) —
执行 sqlquery,该查询必须返回单个 tsvector 列,并返回数据中每个不同词位的统计信息。详情参见第 12.4.4 节。 现存
ts_token_type 2 ts_token_type ( parser_name text ) → setof record ( tokid integer, alias text, description text ) —
返回一个表,该表描述指定名称的解析器可以识别的每种类型的词元。详情参见第 12.8.2 节。 现存
tsquery_phrase 2 tsquery_phrase ( query1 tsquery, query2 tsquery ) → tsquery —
构造一个短语查询,在连续的词位上搜索 query1 和 query2 的匹配项(与<-> 操作符相同)。 现存
tsvector_to_array 1 tsvector_to_array ( tsvector ) → text[] —
将 tsvector 转换为词位的数组。 现存
unnest 4 unnest ( tsvector ) → setof record ( lexeme text, positions smallint[], weights text ) 143 次
将 tsvector 展开为一组行,每行对应一个词位。 现存
websearch_to_tsquery 1 websearch_to_tsquery ( [ config regconfig, ] query text ) → tsquery —
将文本转换为 tsquery,根据指定的或默认配置对单词进行正规化。带引号的单词序列被转换为短语测试。“or”一词产生 OR 操作符,短横线产生 NOT 操作符;其他标点符号会被忽略。这类似于一些常见网络搜索工具的行为。 现存
TID FUNCTIONS TID 函数 2 个 ↑
tid_block 1 tid_block ( tid ) → bigint —
从元组标识符中提取块号。 现存
tid_offset 1 tid_offset ( tid ) → integer —
从元组标识符中提取块内的元组偏移量。 现存
UUID FUNCTIONS UUID 函数 5 个 ↑
gen_random_uuid 1 gen_random_uuid ( ) → uuid 181 次
生成一个版本 4(随机)的 UUID 现存
uuid_extract_timestamp 1 uuid_extract_timestamp ( uuid ) → timestamp with time zone 181 次
从版本 1、6 或 7 的 UUID 中提取 timestamp with time zone。对于其他版本,该函数返回 null。注意,提取出的时间戳不一定与 UUID 生成时刻完全一致;这取决于生成该 UUID 的实现。 现存
uuid_extract_version 1 uuid_extract_version ( uuid ) → smallint 181 次
从符合 RFC 9562 所描述某一变体的 UUID 中提取版本号。对于其他变体,该函数返回 null。例如,对于由 gen_random_uuid() 生成的 UUID,该函数将返回 4。 现存
uuidv4 1 uuidv4 ( ) → uuid —
生成一个版本 4(随机)的 UUID 现存
uuidv7 1 uuidv7 ( [ shift interval ] ) → uuid —
生成一个版本 7(按时间排序)的 UUID。其时间戳由 UNIX 时间戳(毫秒精度)加上亚毫秒时间戳和随机值计算得到。可选参数 shift 会按给定的 interval 偏移计算出的时间戳。不接受无穷 interval 值。偏移后的时间戳必须位于 UUID 版本 7 的 48 位毫秒时间戳字段所支持的范围内:从 1970-01-01 00:00:00 UTC 到大约 10889 年。如果结果时间戳超出此范围,则会引发错误。 现存
XML FUNCTIONS XML 函数 29 个 ↑
cursor_to_xml 1 cursor_to_xml ( cursor refcursor, count integer, nulls boolean, tableforest boolean, targetns text ) → xml —
下面的函数将会把关系表的内容映射成 XML 值。它们可以被看成是 XML 导出功能: 现存
cursor_to_xmlschema 1 cursor_to_xmlschema ( cursor refcursor, nulls boolean, tableforest boolean, targetns text ) → xml —
必须传入相同的参数,才能得到彼此匹配的 XML 数据映射和 XML 模式文档。 现存
database_to_xml 1 database_to_xml ( nulls boolean, tableforest boolean, targetns text ) → xml —
这些函数会忽略当前用户不可读的表。数据库范围的函数还会忽略当前用户没有 USAGE(查找)权限的模式。 现存
database_to_xml_and_xmlschema 1 database_to_xml_and_xmlschema ( nulls boolean, tableforest boolean, targetns text ) → xml —
这些函数会忽略当前用户不可读的表。数据库范围的函数还会忽略当前用户没有 USAGE(查找)权限的模式。 现存
database_to_xmlschema 1 database_to_xmlschema ( nulls boolean, tableforest boolean, targetns text ) → xml —
这些函数会忽略当前用户不可读的表。数据库范围的函数还会忽略当前用户没有 USAGE(查找)权限的模式。 现存
query_to_xml 1 query_to_xml ( query text, nulls boolean, tableforest boolean, targetns text ) → xml —
下面的函数将会把关系表的内容映射成 XML 值。它们可以被看成是 XML 导出功能: 现存
query_to_xml_and_xmlschema 1 query_to_xml_and_xmlschema ( query text, nulls boolean, tableforest boolean, targetns text ) → xml —
下面的函数将会把关系表的内容映射成 XML 值。它们可以被看成是 XML 导出功能: 现存
query_to_xmlschema 1 query_to_xmlschema ( query text, nulls boolean, tableforest boolean, targetns text ) → xml —
必须传入相同的参数,才能得到彼此匹配的 XML 数据映射和 XML 模式文档。 现存
schema_to_xml 1 schema_to_xml ( schema name, nulls boolean, tableforest boolean, targetns text ) → xml —
这些函数会忽略当前用户不可读的表。数据库范围的函数还会忽略当前用户没有 USAGE(查找)权限的模式。 现存
schema_to_xml_and_xmlschema 1 schema_to_xml_and_xmlschema ( schema name, nulls boolean, tableforest boolean, targetns text ) → xml —
这些函数会忽略当前用户不可读的表。数据库范围的函数还会忽略当前用户没有 USAGE(查找)权限的模式。 现存
schema_to_xmlschema 1 schema_to_xmlschema ( schema name, nulls boolean, tableforest boolean, targetns text ) → xml —
这些函数会忽略当前用户不可读的表。数据库范围的函数还会忽略当前用户没有 USAGE(查找)权限的模式。 现存
table_to_xml 1 table_to_xml ( table regclass, nulls boolean, tableforest boolean, targetns text ) → xml —
下面的函数将会把关系表的内容映射成 XML 值。它们可以被看成是 XML 导出功能: 现存
table_to_xml_and_xmlschema 1 table_to_xml_and_xmlschema ( table regclass, nulls boolean, tableforest boolean, targetns text ) → xml —
下面的函数将会把关系表的内容映射成 XML 值。它们可以被看成是 XML 导出功能: 现存
table_to_xmlschema 1 table_to_xmlschema ( table regclass, nulls boolean, tableforest boolean, targetns text ) → xml —
必须传入相同的参数,才能得到彼此匹配的 XML 数据映射和 XML 模式文档。 现存
xml_is_well_formed 1 xml_is_well_formed ( text ) → boolean —
这些函数检查一个 text 串是不是一个良构的 XML,返回一个布尔结果。xml_is_well_formed_document 检查一个良构的文档,而 xml_is_well_formed_content 检查良构的内容。如果 xmloption 配置参数被设置为 DOCUMENT,xml_is_well_formed 会做第一个函数的工作;如果配置参数被设置为 CONTENT,xml_is_well_formed 会做第二个函数的工作。这意味着 xml_is_well_formed 对于检查一个到类型 xml 的简单类型转换是否会成功非常有用,而其他两个函数对于检查 XMLPARSE 的对应变体是否会成功有用。 现存
xml_is_well_formed_content 1 xml_is_well_formed_content ( text ) → boolean —
这些函数检查一个 text 串是不是一个良构的 XML,返回一个布尔结果。xml_is_well_formed_document 检查一个良构的文档,而 xml_is_well_formed_content 检查良构的内容。如果 xmloption 配置参数被设置为 DOCUMENT,xml_is_well_formed 会做第一个函数的工作;如果配置参数被设置为 CONTENT,xml_is_well_formed 会做第二个函数的工作。这意味着 xml_is_well_formed 对于检查一个到类型 xml 的简单类型转换是否会成功非常有用,而其他两个函数对于检查 XMLPARSE 的对应变体是否会成功有用。 现存
xml_is_well_formed_document 1 xml_is_well_formed_document ( text ) → boolean —
这些函数检查一个 text 串是不是一个良构的 XML,返回一个布尔结果。xml_is_well_formed_document 检查一个良构的文档,而 xml_is_well_formed_content 检查良构的内容。如果 xmloption 配置参数被设置为 DOCUMENT,xml_is_well_formed 会做第一个函数的工作;如果配置参数被设置为 CONTENT,xml_is_well_formed 会做第二个函数的工作。这意味着 xml_is_well_formed 对于检查一个到类型 xml 的简单类型转换是否会成功非常有用,而其他两个函数对于检查 XMLPARSE 的对应变体是否会成功有用。 现存
xmlagg 2 xmlagg ( xml ) → xml 172 次
和这里描述的其他函数不同,函数 xmlagg 是一个聚合函数。它将聚合函数调用的输入值串接起来,非常像 xmlconcat 所做的事情,除了串接是跨行发生的而不是在单一行的多个表达式上发生。聚合函数的更多信息请见第 9.22 节。 现存
xmlcomment 1 xmlcomment ( text ) → xml —
函数 xmlcomment 创建了一个 XML 值,它包含一个使用指定文本作为内容的 XML 注释。该文本不能包含“--”,也不能以“-”结尾,否则该结果的结构不是一个合法的 XML 注释。如果参数为空,结果也为空。 现存
xmlconcat 1 xmlconcat ( xml [, ...] ) → xml —
函数 xmlconcat 将由各个独立 XML 值组成的列表串接成一个单独的值,这个值包含一个 XML 内容片段。空值会被忽略,只有当没有参数为非空时结果才为空。 现存
xmlelement 1 xmlelement ( NAME name [, XMLATTRIBUTES ( attvalue [AS attname] [, ...] ) ] [, content [, ...]] ) → xml —
表达式 xmlelement 使用给定名称、属性和内容产生一个 XML 元素。语法中显示的 name 和 attname 项是简单的标识符,而不是值。attvalue 和 content 项是表达式,它们可以产生任意 PostgreSQL 数据类型的值。XMLATTRIBUTES 的参数生成 XML 元素的属性;将 content 值连接起来形成其内容。 现存
XMLEXISTS 1 XMLEXISTS ( text PASSING [BY {REF|VALUE}] xml [BY {REF|VALUE}] ) → boolean 121 次
函数 xmlexists 对一个 XPath 1.0 表达式(第一个参数)求值,以传递的 XML 值作为其上下文项。如果求值结果产生一个空节点集,该函数返回 false,如果产生任何其他值,则返回 true。如果任何参数为空,则函数返回 null。作为上下文项传递的非空值必须是一个 XML 文档,而不是内容片段或任何非 XML 值。 现存
xmlforest 1 xmlforest ( content [AS name] [, ...] ) → xml —
表达式 xmlforest 使用给定名称和内容产生由元素构成的 XML 森林(序列)。与 xmlelement 一样,每个 name 都必须是一个简单的标识符,而 content 表达式可以有任何数据类型。 现存
xmlpi 1 xmlpi ( NAME name [, content] ) → xml —
表达式 xmlpi 创建一个 XML 处理指令。与 xmlelement 一样,name 必须是一个简单的标识符,而 content 表达式可以有任何数据类型。如果存在,content 不能包含字符序列?>。 现存
xmlroot 1 xmlroot ( xml, VERSION {text|NO VALUE} [, STANDALONE {YES|NO|NO VALUE} ] ) → xml 8.41 次
表达式 xmlroot 修改一个 XML 值的根节点的属性。如果指定了一个版本,它会替换根节点的版本声明中的值;如果指定了一个独立设置,它会替换根节点的独立声明中的值。 现存
XMLTABLE 1 XMLTABLE ( [XMLNAMESPACES ( namespace_uri AS namespace_name [, ...] ), ] row_expression PASSING [BY {REF|VALUE}] document_expression [BY {REF|VALUE}] COLUMNS name { type [PATH column_expression] [DEFAULT default_expression] [NOT NULL | NULL] | FOR ORDINALITY } [, ...] ) → setof record 121 次
xmltable 表达式根据给定的 XML 值、用于提取行的 XPath 过滤器和一组列定义生成一个表。虽然它在语法上类似于函数,但它只能作为一个表出现在查询的 FROM 子句中。 现存
xmltext 1 xmltext ( text ) → xml —
函数 xmltext 返回一个只包含单个文本节点的 XML 值,该文本节点的内容就是输入参数。预定义实体,例如和号(&)、左右尖括号(< >)以及引号(""),都会被转义。 现存
xpath 1 xpath ( xpath text, xml xml [, nsarray text[]] ) → xml[] 9.11 次
函数 xpath 根据 XML 值 xml 计算 XPath 1.0 表达式 xpath(以文本形式给出)。它返回一个 XML 值的数组,该数组对应于该 XPath 表达式产生的节点集合。如果该 XPath 表达式返回一个标量值而不是一个节点集合,将会返回一个单一元素的数组。 现存
xpath_exists 1 xpath_exists ( xpath text, xml xml [, nsarray text[]] ) → boolean —
函数 xpath_exists 是 xpath 函数的一种特殊形式。这个函数不是返回满足 XPath 1.0 表达式的各个 XML 值,它返回一个布尔值表示查询是否被满足(具体来说,它是否产生了空节点集以外的任何值)。这个函数等价于标准的 XMLEXISTS 谓词,不过它还提供了对一个名字空间映射参数的支持。 现存
JSON FUNCTIONS AND OPERATORS JSON 函数和操作符 61 个 ↑
array_to_json 1 array_to_json ( anyarray [, boolean ] ) → json 9.42 次
将 SQL 数组转换为 JSON 数组。该行为与 to_json 相同,只是如果可选布尔参数为真,换行符将在顶级数组元素之间添加。 现存
json 1 json ( expression [ FORMAT JSON [ ENCODING UTF8 ]] [ { WITH | WITHOUT } UNIQUE [ KEYS ]] ) → json —
将给定的 text 或 bytea 字符串表达式(采用 UTF8 编码)转换为 JSON 值。如果 expression 为 NULL,则返回 SQL 空值。如果指定了 WITH UNIQUE,则 expression 不能包含重复的对象键。 现存
json_array 2 json_array ( [ { value_expression [ FORMAT JSON ] } [, ...] ] [ { NULL | ABSENT } ON NULL ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) —
从一系列 value_expression 参数或 query_expression 的结果构造 JSON 数组;后者必须是返回单列的 SELECT 查询。如果指定了 ABSENT ON NULL,则忽略 NULL 值。使用 query_expression 时始终如此。如果查询不返回任何行,则返回空 JSON 数组。 现存
json_array_elements 1 json_array_elements ( json ) → setof json 9.41 次
将顶级 JSON 数组展开为一组 JSON 值。 现存
json_array_elements_text 1 json_array_elements_text ( json ) → setof text —
将顶级 JSON 数组展开为一组 text 值。 现存
json_array_length 1 json_array_length ( json ) → integer —
返回顶级 JSON 数组中的元素数量。 现存
json_build_array 1 json_build_array ( VARIADIC "any" ) → json —
根据可变参数列表构建可能异构类型的 JSON 数组。每个参数都按照 to_json 或 to_jsonb 进行转换。 现存
json_build_object 1 json_build_object ( VARIADIC "any" ) → json —
根据可变参数列表构建一个 JSON 对象。按照惯例,参数列表由交替的键和值组成。键参数会被强制转换为文本;值参数则按照 to_json 或 to_jsonb 进行转换。 现存
json_each 1 json_each ( json ) → setof record ( key text, value json ) 9.41 次
将顶级 JSON 对象展开为一组键/值对。 现存
json_each_text 1 json_each_text ( json ) → setof record ( key text, value text ) 9.41 次
将顶级 JSON 对象展开为一组键/值对。返回的 value 的类型为 text。 现存
JSON_EXISTS 1 JSON_EXISTS ( context_item, path_expression [PASSING { value AS varname } [, ...]] [{ TRUE | FALSE | UNKNOWN | ERROR } ON ERROR]) → boolean —
如果将 SQL/JSON path_expression 应用于 context_item 后产生了任何项,则返回 true,否则返回 false。 现存
json_extract_path 1 json_extract_path ( from_json json, VARIADIC path_elems text[] ) → json —
在指定路径下提取 JSON 子对象。(这在功能上相当于#> 操作符,但在某些情况下,将路径写成可变参数列表会更方便。) 现存
json_extract_path_text 1 json_extract_path_text ( from_json json, VARIADIC path_elems text[] ) → text —
将指定路径上的 JSON 子对象提取为 text。(这在功能上等同于#>> 操作符。) 现存
json_object 3 json_object ( [ { key_expression { VALUE | ':' } value_expression [ FORMAT JSON [ ENCODING UTF8 ] ] }[, ...] ] [ { NULL | ABSENT } ON NULL ] [ { WITH | WITHOUT } UNIQUE [ KEYS ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) 161 次
根据给定的所有键值对构造 JSON 对象;如果没有给出键值对,则构造空对象。key_expression 是定义 JSON 键的标量表达式,会被转换为 text 类型。它不能为 NULL,其类型也不能具有到 json 的类型转换。如果指定了 WITH UNIQUE KEYS,则 key_expression 不能重复。如果指定了 ABSENT ON NULL,则 value_expression 求值为 NULL 的键值对会从输出中省略;如果指定了 NULL ON NULL 或省略了该子句,则保留该键,并将其值设为 NULL。 现存
json_object_keys 1 json_object_keys ( json ) → setof text 9.41 次
返回顶级 JSON 对象中的键集合。 现存
json_populate_record 1 json_populate_record ( base anyelement, from_json json ) → anyelement 9.41 次
将顶级 JSON 对象展开为一行,其复合类型与 base 参数相同。系统会扫描该 JSON 对象,查找名称与输出行类型列名匹配的字段,并将其值插入输出中的对应列。(不对应任何输出列名的字段会被忽略。)在典型用法中,base 的值就是 NULL,这意味着凡是不匹配对象字段的输出列都会被填充为空值。但是,如果 base 不是 NULL,那么其中包含的值将用于那些不匹配的列。 现存
json_populate_recordset 1 json_populate_recordset ( base anyelement, from_json json ) → setof anyelement 9.41 次
将由对象组成的顶级 JSON 数组展开为一组行,其复合类型与 base 参数相同。JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
JSON_QUERY 1 JSON_QUERY ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ] [ { WITHOUT | WITH { CONDITIONAL | [UNCONDITIONAL] } } [ARRAY] WRAPPER] [ { KEEP | OMIT } QUOTES [ON SCALAR STRING] ] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON ERROR]) → jsonb —
返回将 SQL/JSON path_expression 应用于 context_item 的结果。 现存
json_scalar 1 json_scalar ( expression ) —
将给定的 SQL 标量值转换为 JSON 标量值。如果输入为 NULL,则返回 SQL 空值。如果输入是数字或布尔值,则返回相应的 JSON 数字或布尔值。对于其他值,则返回 JSON 字符串。 现存
json_serialize 1 json_serialize ( expression [ FORMAT JSON [ ENCODING UTF8 ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ] ) —
将 SQL/JSON 表达式转换为字符或二进制字符串。expression 可以是任意 JSON 类型、任意字符串类型,或采用 UTF8 编码的 bytea。 RETURNING 中使用的返回类型可以是任意字符串类型或 bytea,默认为 text。 现存
json_strip_nulls 1 json_strip_nulls ( target json [,strip_in_arrays boolean ] ) → json 181 次
递归地删除给定 JSON 值中所有值为 null 的对象字段。如果 strip_in_arrays 为 true(默认值为 false),那么数组中的 null 元素也会被删除;否则不会删除。裸露的 null 值永远不会被删除。 现存
JSON_TABLE 1 JSON_TABLE ( context_item, path_expression [ AS json_path_name] [ PASSING { value AS varname } [, ...] ] COLUMNS ( json_table_column [, ...] ) [ PLAN ( json_table_plan ) | PLAN DEFAULT ( { OUTER | INNER } [ , { CROSS | UNION } ] | { CROSS | UNION } [ , { OUTER | INNER } ] ) ] [ { ERROR | EMPTY [ARRAY]} ON ERROR] ) 201 次
下面更详细地说明每个语法元素。 现存
json_to_record 1 json_to_record ( json ) → record —
将顶级 JSON 对象展开为具有由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)输出记录由 JSON 对象的字段填充,与上面描述的 json[b]_populate_record 的方式相同。由于没有输入记录值,不匹配的列总是用空值填充。 现存
json_to_recordset 1 json_to_recordset ( json ) → setof record —
将顶级 JSON 对象数组展开为一组由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
json_typeof 1 json_typeof ( json ) → text —
以文本字符串形式返回顶级 JSON 值的类型。可能的类型有 object、array、string、number、boolean 和 null。(null 的结果不应与 SQL NULL 混淆;参见示例。) 现存
JSON_VALUE 1 JSON_VALUE ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type] [ { ERROR | NULL | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | DEFAULT expression } ON ERROR]) → text —
返回将 SQL/JSON path_expression 应用于 context_item 的结果。 现存
jsonb_array_elements 1 jsonb_array_elements ( jsonb ) → setof jsonb —
将顶级 JSON 数组展开为一组 JSON 值。 现存
jsonb_array_elements_text 1 jsonb_array_elements_text ( jsonb ) → setof text —
将顶级 JSON 数组展开为一组 text 值。 现存
jsonb_array_length 1 jsonb_array_length ( jsonb ) → integer —
返回顶级 JSON 数组中的元素数量。 现存
jsonb_build_array 1 jsonb_build_array ( VARIADIC "any" ) → jsonb —
根据可变参数列表构建可能异构类型的 JSON 数组。每个参数都按照 to_json 或 to_jsonb 进行转换。 现存
jsonb_build_object 1 jsonb_build_object ( VARIADIC "any" ) → jsonb —
根据可变参数列表构建一个 JSON 对象。按照惯例,参数列表由交替的键和值组成。键参数会被强制转换为文本;值参数则按照 to_json 或 to_jsonb 进行转换。 现存
jsonb_each 1 jsonb_each ( jsonb ) → setof record ( key text, value jsonb ) —
将顶级 JSON 对象展开为一组键/值对。 现存
jsonb_each_text 1 jsonb_each_text ( jsonb ) → setof record ( key text, value text ) —
将顶级 JSON 对象展开为一组键/值对。返回的 value 的类型为 text。 现存
jsonb_extract_path 1 jsonb_extract_path ( from_json jsonb, VARIADIC path_elems text[] ) → jsonb —
在指定路径下提取 JSON 子对象。(这在功能上相当于#> 操作符,但在某些情况下,将路径写成可变参数列表会更方便。) 现存
jsonb_extract_path_text 1 jsonb_extract_path_text ( from_json jsonb, VARIADIC path_elems text[] ) → text —
将指定路径上的 JSON 子对象提取为 text。(这在功能上等同于#>> 操作符。) 现存
jsonb_insert 1 jsonb_insert ( target jsonb, path text[], new_value jsonb [, insert_after boolean ] ) → jsonb —
返回插入 new_value 的 target。如果 path 指派的项是一个数组元素,则当 insert_after 为假(此为默认值)时,new_value 将被插入到该项之前;当 insert_after 为真时,则插入到该项之后。如果由 path 指派的项是一个对象字段,则只在对象不包含该键时才插入 new_value。路径中的所有前面步骤都必须存在,否则将不加改变地返回 target。与面向路径的操作符一样,path 中的负整数从 JSON 数组末尾计数。如果最后一个路径步骤是超出范围的数组下标,那么当下标为负时,新值会被添加到数组开头;当下标为正时,新值会被添加到数组末尾。 现存
jsonb_object 2 jsonb_object ( text[] ) → jsonb —
从 text 数组构造 JSON 对象。该数组必须是一维且包含偶数个成员,此时将成员按交替的键/值对处理;或者是二维数组,且每个内部数组恰好有两个元素,将这两个元素作为一个键/值对。所有值都转换为 JSON 字符串。 现存
jsonb_object_keys 1 jsonb_object_keys ( jsonb ) → setof text —
返回顶级 JSON 对象中的键集合。 现存
jsonb_path_exists 1 jsonb_path_exists ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
检查 JSON 路径是否为指定的 JSON 值返回任何项。(这只对 SQL 标准 JSON 路径表达式有用,而不适用于谓词检查表达式,因为后者总是返回一个值。)如果指定了 vars 参数,则它必须是一个 JSON 对象,并且它的字段提供要替换到 jsonpath 表达式中的具名值。如果指定了 silent 参数并为 true,函数会抑制与@? 和 @@操作符相同的错误。 现存
jsonb_path_exists_tz 1 jsonb_path_exists_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_match 1 jsonb_path_match ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
返回指定 JSON 值的 JSON 路径谓词检查的 SQL 布尔结果。(这只对谓词检查表达式有用,而不适用于 SQL 标准 JSON 路径表达式,因为如果路径结果不是单个布尔值,它将失败或返回 NULL。)可选的 vars 和 silent 参数的作用与 jsonb_path_exists 相同。 现存
jsonb_path_match_tz 1 jsonb_path_match_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query 1 jsonb_path_query ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb —
为指定的 JSON 值返回由 JSON 路径返回的所有 JSON 项。对于 SQL 标准 JSON 路径表达式,它返回从 target 中选出的 JSON 值。对于谓词检查表达式,它返回谓词检查的结果:true、false 或 null。可选的 vars 和 silent 参数的作用与 jsonb_path_exists 相同。 现存
jsonb_path_query_array 1 jsonb_path_query_array ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
以 JSON 数组的形式返回由 JSON 路径为指定的 JSON 值返回的所有 JSON 项。参数与 jsonb_path_query 相同。 现存
jsonb_path_query_array_tz 1 jsonb_path_query_array_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query_first 1 jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。 现存
jsonb_path_query_first_tz 1 jsonb_path_query_first_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query_tz 1 jsonb_path_query_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_populate_record 1 jsonb_populate_record ( base anyelement, from_json jsonb ) → anyelement —
将顶级 JSON 对象展开为一行,其复合类型与 base 参数相同。系统会扫描该 JSON 对象,查找名称与输出行类型列名匹配的字段,并将其值插入输出中的对应列。(不对应任何输出列名的字段会被忽略。)在典型用法中,base 的值就是 NULL,这意味着凡是不匹配对象字段的输出列都会被填充为空值。但是,如果 base 不是 NULL,那么其中包含的值将用于那些不匹配的列。 现存
jsonb_populate_record_valid 1 jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean —
用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。 现存
jsonb_populate_recordset 1 jsonb_populate_recordset ( base anyelement, from_json jsonb ) → setof anyelement —
将由对象组成的顶级 JSON 数组展开为一组行,其复合类型与 base 参数相同。JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
jsonb_pretty 1 jsonb_pretty ( jsonb ) → text —
将给定的 JSON 值转换为经过美化并带有缩进的文本。 现存
jsonb_set 1 jsonb_set ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean ] ) → jsonb —
返回 target,将 path 指定的项替换为 new_value,如果 create_if_missing 为真(此为默认值)并且 path 指定的项不存在,则添加 new_value。路径中的所有前面步骤都必须存在,否则将不加改变地返回 target。与面向路径的操作符一样,path 中的负整数从 JSON 数组末尾计数。如果最后一个路径步骤是超出范围的数组索引,并且 create_if_missing 为真,那么如果索引为负,新值将添加到数组的开头,如果索引为正,则添加到数组的结尾。 现存
jsonb_set_lax 1 jsonb_set_lax ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean [, null_value_treatment text ]] ) → jsonb —
如果 new_value 不是 NULL,则行为与 jsonb_set 完全相同。否则,根据 null_value_treatment 的值进行处理,其值必须是'raise_exception'、'use_json_null'、'delete_key' 或'return_target' 之一。默认值为'use_json_null'。 现存
jsonb_strip_nulls 1 jsonb_strip_nulls ( target jsonb [,strip_in_arrays boolean ] ) → jsonb 181 次
递归地删除给定 JSON 值中所有值为 null 的对象字段。如果 strip_in_arrays 为 true(默认值为 false),那么数组中的 null 元素也会被删除;否则不会删除。裸露的 null 值永远不会被删除。 现存
jsonb_to_record 1 jsonb_to_record ( jsonb ) → record —
将顶级 JSON 对象展开为具有由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)输出记录由 JSON 对象的字段填充,与上面描述的 json[b]_populate_record 的方式相同。由于没有输入记录值,不匹配的列总是用空值填充。 现存
jsonb_to_recordset 1 jsonb_to_recordset ( jsonb ) → setof record —
将顶级 JSON 对象数组展开为一组由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
jsonb_typeof 1 jsonb_typeof ( jsonb ) → text —
以文本字符串形式返回顶级 JSON 值的类型。可能的类型有 object、array、string、number、boolean 和 null。(null 的结果不应与 SQL NULL 混淆;参见示例。) 现存
row_to_json 1 row_to_json ( record [, boolean ] ) → json 9.42 次
将 SQL 复合值转换为 JSON 对象。该行为与 to_json 相同,只是如果可选布尔参数为真,换行符将在顶级元素之间添加。 现存
to_json 1 to_json ( anyelement ) → json 9.41 次
将任何 SQL 值转换为 json 或 jsonb。数组和复合值递归地转换为数组和对象(多维数组在 JSON 中变成数组的数组)。否则,如果存在从 SQL 数据类型到 json 的类型转换,则类型转换函数将用于执行转换;[a] 否则,将生成一个标量 JSON 值。对于除数字、布尔值或空值之外的任何标量,将使用文本表示,并根据需要进行转义,使其成为有效的 JSON 字符串值。 现存
to_jsonb 1 to_jsonb ( anyelement ) → jsonb —
将任何 SQL 值转换为 json 或 jsonb。数组和复合值递归地转换为数组和对象(多维数组在 JSON 中变成数组的数组)。否则,如果存在从 SQL 数据类型到 json 的类型转换,则类型转换函数将用于执行转换;[a] 否则,将生成一个标量 JSON 值。对于除数字、布尔值或空值之外的任何标量,将使用文本表示,并根据需要进行转义,使其成为有效的 JSON 字符串值。 现存
SEQUENCE MANIPULATION FUNCTIONS 序列操作函数 5 个 ↑
currval 1 currval ( regclass ) → bigint 8.11 次
返回当前会话中最近一次针对该序列调用 nextval 所获得的值。(如果当前会话从未针对该序列调用过 nextval,则会报错。)由于返回的是会话局部值,无论其他会话是否在当前会话调用之后执行过 nextval,结果都是可预测的。 现存
lastval 1 lastval () → bigint —
返回 nextval 在当前会话中最近返回的值。这个函数与 currval 相同,不同之处在于它没有使用序列名作为参数,而是引用当前会话中 nextval 最近应用到的序列。如果在当前会话中还没有调用 nextval,那么调用 lastval 是一个错误。 现存
nextval 1 nextval ( regclass ) → bigint 8.11 次
将序列对象推进到下一个值并返回该值。这个操作是原子的:即使多个会话并发地执行 nextval,每个会话也会安全地接收到不同的序列值。如果序列对象是用默认参数创建的,则连续的 nextval 调用将返回以 1 开始的连续值。其他行为可以通过在 CREATE SEQUENCE 命令中使用适当的参数获得。 现存
pg_get_sequence_data 1 pg_get_sequence_data ( regclass ) → record ( last_value bigint, is_called bool, page_lsn pg_lsn ) —
返回有关序列的信息。last_value 是最后一次写入磁盘的序列值。如果使用了缓存,这个值可能大于从序列中最后一次发出的值。is_called 表示该序列是否已经被使用过。page_lsn 是对应于最近一次修改此序列关系的 WAL 记录的 LSN。如果指定的关系 OID 不存在、该关系不是序列、当前用户没有序列上的 SELECT 权限、该序列是另一会话的临时序列,或者该序列是备库上的不记录 WAL 的序列,此函数将返回由 NULL 值组成的一行。 现存
setval 1 setval ( regclass, bigint [, boolean ] ) → bigint 8.12 次
设置序列对象的当前值,并可选地设置其 is_called 标志。双参数形式将序列的 last_value 字段设置为指定的值,并将其 is_called 字段设置为 true,意味着下一个 nextval 将在返回值之前推进序列。currval 将报告的值也设置为指定的值。在三参数形式中,is_called 可以设置为 true 或 false。true 与双参数形式具有相同的效果。如果设置为 false,下一个 nextval 将返回指定的值,序列推进从再下一次调用 nextval 开始。而且,currval 报告的值在这种情况下不会改变。例如: 现存
CONDITIONAL EXPRESSIONS 条件表达式 4 个 ↑
COALESCE基线 1 COALESCE(value [, ...]) 7.31 次
COALESCE 函数返回参数中第一个不为 null 的值。只有所有参数都为 null 时,才返回 null。它常用于在检索数据以供显示时,用默认值替换 null 值。例如: 现存
GREATEST 1 GREATEST(value [, ...]) —
GREATEST 和 LEAST 函数从由任意数量的表达式组成的列表中选取最大值或最小值。这些表达式都必须能转换为同一个数据类型,该类型将作为结果类型(详情参见第 10.5 节)。 现存
LEAST 1 LEAST(value [, ...]) —
GREATEST 和 LEAST 函数从由任意数量的表达式组成的列表中选取最大值或最小值。这些表达式都必须能转换为同一个数据类型,该类型将作为结果类型(详情参见第 10.5 节)。 现存
NULLIF基线 1 NULLIF(value1, value2) —
当 value1 和 value2 相等时,NULLIF 返回 null。否则它返回 value1。这可以用于执行前文给出的 COALESCE 示例的逆操作: 现存
ARRAY FUNCTIONS AND OPERATORS 数组函数和操作符 20 个 ↑
array_append 1 array_append ( anycompatiblearray, anycompatible ) → anycompatiblearray 141 次
向一个数组的末端追加一个元素(等同于 anycompatiblearray || anycompatible 操作符)。 现存
array_cat 1 array_cat ( anycompatiblearray, anycompatiblearray ) → anycompatiblearray 141 次
连接两个数组(等同于 anycompatiblearray || anycompatiblearray 操作符)。 现存
array_dims 1 array_dims ( anyarray ) → text —
返回数组维度的文本表示形式。 现存
array_fill 1 array_fill ( anyelement, integer[] [, integer[] ] ) → anyarray 9.31 次
返回用给定值的副本填充的数组,各维的长度由第二个参数指定。可选的第三个参数提供各维的下界值(默认均为 1)。 现存
array_length 1 array_length ( anyarray, integer ) → integer —
返回请求的数组维度的长度。(对于空或缺失的数组维度,返回 NULL 而不是 0。) 现存
array_lower 1 array_lower ( anyarray, integer ) → integer 8.11 次
返回请求的数组维度的下界。 现存
array_ndims 1 array_ndims ( anyarray ) → integer —
返回数组的维度数。 现存
array_position 1 array_position ( anycompatiblearray, anycompatible [, integer ] ) → integer 141 次
返回第二个参数在数组中首次出现的下标;若不存在,则返回 NULL。如果给出了第三个参数,则搜索从该下标开始。数组必须是一维的。比较是使用 IS NOT DISTINCT FROM 语义进行的,所以可以搜索 NULL。 现存
array_positions 1 array_positions ( anycompatiblearray, anycompatible ) → integer[] 141 次
返回第二个参数在第一个参数所给数组中所有出现位置的下标数组。数组必须是一维的。使用 IS NOT DISTINCT FROM 语义完成比较,所以可以搜索 NULL。只有当数组为 NULL 时才返回 NULL;如果在数组中没有找到该值,则返回空数组。 现存
array_prepend 1 array_prepend ( anycompatible, anycompatiblearray ) → anycompatiblearray 141 次
在数组的开头添加一个元素(等同于 anycompatible || anycompatiblearray 操作符)。 现存
array_remove 1 array_remove ( anycompatiblearray, anycompatible ) → anycompatiblearray 141 次
从数组中移除与给定值相等的所有元素。数组必须是一维的。使用 IS NOT DISTINCT FROM 语义完成比较,所以可以删除 NULL。 现存
array_replace 1 array_replace ( anycompatiblearray, anycompatible, anycompatible ) → anycompatiblearray 141 次
将等于第二个参数的每个数组元素替换为第三个参数。 现存
array_reverse 1 array_reverse ( anyarray ) → anyarray —
反转数组的第一维。 现存
array_sample 1 array_sample ( array anyarray, n integer ) → anyarray —
从 array 中随机选取 n 个项并返回一个数组。n 不能超过 array 第一维的长度。如果 array 是多维数组,则一个“项”是具有给定第一维下标的一个切片。 现存
array_shuffle 1 array_shuffle ( anyarray ) → anyarray —
随机打乱数组的第一维。 现存
array_sort 1 array_sort ( array anyarray [, descending boolean [, nulls_first boolean ]] ) → anyarray —
对数组的第一维进行排序。排序顺序由数组元素类型的默认排序顺序决定;不过,如果元素类型支持排序规则,也可以通过给 array 参数添加 COLLATE 子句来指定要使用的排序规则。 现存
array_to_string 1 array_to_string ( array anyarray, delimiter text [, null_string text ] ) → text 9.11 次
将每个数组元素转换为其文本表示,并将它们用 delimiter 字符串分隔连接起来。如果提供了 null_string 且不是 NULL,则 NULL 数组条目将用该字符串表示;否则将被省略。另请参见 string_to_array。 现存
array_upper 1 array_upper ( anyarray, integer ) → integer 8.11 次
返回请求的数组维度的上界。 现存
cardinality 1 cardinality ( anyarray ) → integer —
返回数组中元素的总数,如果数组为空则返回 0。 现存
trim_array 1 trim_array ( array anyarray, n integer ) → anyarray —
通过删除最后的 n 个元素来裁剪数组。如果数组是多维的,则只裁剪第一个维度。 现存
RANGE/MULTIRANGE FUNCTIONS AND OPERATORS 范围/多范围函数和操作符 9 个 ↑
isempty 2 isempty ( anyrange ) → boolean 141 次
范围为空吗? 现存
lower_inc 2 lower_inc ( anyrange ) → boolean 141 次
范围的下界是否包含在内? 现存
lower_inf 2 lower_inf ( anyrange ) → boolean 141 次
范围是否没有下界?(下界为 -Infinity 时返回假。) 现存
multirange 1 multirange ( anyrange ) → anymultirange —
返回仅包含给定范围的多范围。 现存
multirange_minus_multi 1 multirange_minus_multi ( anymultirange, anymultirange ) → setof anymultirange —
返回从第一个多范围中减去第二个多范围后剩下的非空多范围。如果减法得到空多范围,则不会返回任何行。永远不会返回两行,因为单个多范围总能容纳任何结果。 现存
range_merge 2 range_merge ( anyrange, anyrange ) → anyrange 141 次
计算包含两个给定范围的最小范围。 现存
range_minus_multi 1 range_minus_multi ( anyrange, anyrange ) → setof anyrange —
返回从第一个范围中减去第二个范围后剩下的非空范围。每个范围返回一行,因此如果第二个范围将第一个范围分成两部分,就会有两个结果。如果减法得到空范围,则不会返回任何行。 现存
upper_inc 2 upper_inc ( anyrange ) → boolean 141 次
范围的上界是否包含在内? 现存
upper_inf 2 upper_inf ( anyrange ) → boolean 141 次
范围是否没有上界?(上界为 Infinity 时返回假。) 现存
AGGREGATE FUNCTIONS 聚合函数 56 个 ↑
any_value 1 any_value ( anyelement ) → same as input type —
从非空输入值中返回任意一个值。 现存
array_agg 2 array_agg ( anynonarray ORDER BY input_sort_columns ) → anyarray 172 次
将所有输入值,包括空值,收集到一个数组中。 现存
avg基线 7 avg ( smallint ) → numeric 8.42 次
计算所有非空输入值的平均值(算术平均值)。 现存
bit_and 4 bit_and ( smallint ) → smallint —
计算所有非空输入值的按位与。 现存
bit_or 4 bit_or ( smallint ) → smallint —
计算所有非空输入值的按位或。 现存
bit_xor 4 bit_xor ( smallint ) → smallint —
计算所有非空输入值的按位异或。可用作一组无序的值集合的校验和。 现存
bool_and 1 bool_and ( boolean ) → boolean —
如果全部非空输入值都为真则返回真,否则返回假。 现存
bool_or 1 bool_or ( boolean ) → boolean —
如果任何非空输入值为真则返回真,否则返回假。 现存
corr 1 corr ( Y double precision, X double precision ) → double precision —
计算相关系数。 现存
count基线 2 count ( * ) → bigint 7.32 次
计算输入行的数量。 现存
covar_pop 1 covar_pop ( Y double precision, X double precision ) → double precision —
计算总体协方差。 现存
covar_samp 1 covar_samp ( Y double precision, X double precision ) → double precision —
计算样本协方差。 现存
cume_dist 2 cume_dist ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → double precision 9.41 次
计算累积分布,也就是(位于假想行之前或与假想行同等的行数)/(总行数)。取值范围为 1/N 到 1。 现存
dense_rank 2 dense_rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → bigint 9.41 次
计算假想行的排名,没有空缺;此函数实际上对同等行组进行计数。 现存
every 1 every ( boolean ) → boolean —
这是标准 SQL 中与 bool_and 等价的函数。 现存
GROUPING 1 GROUPING ( group_by_expression(s) ) → integer —
返回一个位掩码,指示哪些 GROUP BY 表达式未包含在当前分组集中。分配比特位时,最右侧参数对应最低有效位;如果相应表达式包含在生成当前结果行的分组集的分组条件中,该位为 0,否则为 1。 现存
json_agg 1 json_agg ( anyelement ORDER BY input_sort_columns ) → json 171 次
将所有输入值(包括空值)收集到一个 JSON 数组中。根据 to_json 或 to_jsonb 将值转换为 JSON。 现存
json_agg_strict 1 json_agg_strict ( anyelement ) → json —
将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。 现存
json_arrayagg 1 json_arrayagg ( [ value_expression ] [ ORDER BY sort_expression ] [ { NULL | ABSENT } ON NULL ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) —
行为与 json_array 相同,只是它作为一个聚合函数,因此只接受一个 value_expression 参数。如果指定了 ABSENT ON NULL,则会省略所有 NULL 值。如果指定了 ORDER BY,元素将按该顺序出现在数组中,而不是按输入顺序。 现存
json_object_agg 1 json_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → json 171 次
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能(为空)。如果一个键出现多次,json 结果会保留每个键值对,而 jsonb 结果只保留该键的最后一个值。 现存
json_object_agg_strict 1 json_object_agg_strict ( key "any", value "any" ) → json —
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。 现存
json_object_agg_unique 1 json_object_agg_unique ( key "any", value "any" ) → json —
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。 现存
json_object_agg_unique_strict 1 json_object_agg_unique_strict ( key "any", value "any" ) → json —
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。 现存
json_objectagg 1 json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL ] [ { WITH | WITHOUT } UNIQUE [ KEYS ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) —
行为与 json_object 相同,只是它作为一个聚合函数,因此只接受一个 key_expression 参数和一个 value_expression 参数。 现存
jsonb_agg 1 jsonb_agg ( anyelement ORDER BY input_sort_columns ) → jsonb 171 次
将所有输入值(包括空值)收集到一个 JSON 数组中。根据 to_json 或 to_jsonb 将值转换为 JSON。 现存
jsonb_agg_strict 1 jsonb_agg_strict ( anyelement ) → jsonb —
将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。 现存
jsonb_object_agg 1 jsonb_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → jsonb 171 次
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能(为空)。如果一个键出现多次,json 结果会保留每个键值对,而 jsonb 结果只保留该键的最后一个值。 现存
jsonb_object_agg_strict 1 jsonb_object_agg_strict ( key "any", value "any" ) → jsonb —
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。 现存
jsonb_object_agg_unique 1 jsonb_object_agg_unique ( key "any", value "any" ) → jsonb —
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。 现存
jsonb_object_agg_unique_strict 1 jsonb_object_agg_unique_strict ( key "any", value "any" ) → jsonb —
将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。 现存
max基线 1 max ( see text ) → same as input type 7.32 次
计算非空输入值的最大值。适用于任何数字、字符串、日期/时间或枚举类型,以及 bytea、inet、interval、money、oid、oid8、pg_lsn、tid、uuid、xid8,以及包含可排序数据类型的数组和复合类型。 现存
min基线 1 min ( see text ) → same as input type 7.32 次
计算非空输入值的最小值。适用于任何数字、字符串、日期/时间或枚举类型,以及 bytea、inet、interval、money、oid、oid8、pg_lsn、tid、uuid、xid8,以及包含可排序数据类型的数组和复合类型。 现存
mode 1 mode () WITHIN GROUP ( ORDER BY anyelement ) → anyelement —
计算众数,即聚合参数中出现次数最多的值(若多个值的出现次数相同且最多,则任意选择其中第一个)。聚合参数必须是可排序类型。 现存
percent_rank 2 percent_rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → double precision 9.41 次
计算假想行的相对排名,即(rank - 1)/(总行数 - 1)。取值范围为 0 到 1(含)。 现存
percentile_cont 4 percentile_cont ( fraction double precision ) WITHIN GROUP ( ORDER BY double precision ) → double precision —
计算连续百分位点,该值对应于聚合参数值有序集合中的指定 fraction。必要时会在相邻输入项之间进行插值。 现存
percentile_disc 2 percentile_disc ( fraction double precision ) WITHIN GROUP ( ORDER BY anyelement ) → anyelement —
计算离散百分位数,即聚合参数值的有序集合中的第一个值,该值在排序中的位置等于或超过指定的 fraction。聚合参数必须是可排序类型。 现存
range_agg 2 range_agg ( value anyrange ) → anymultirange 151 次
计算非空输入值的并集。 现存
range_intersect_agg 2 range_intersect_agg ( value anyrange ) → anyrange —
计算非空输入值的交集。 现存
rank 2 rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → bigint 9.41 次
计算假想行的排名,允许空缺;即该行所属同等行组中第一行的行号。 现存
regr_avgx 1 regr_avgx ( Y double precision, X double precision ) → double precision —
计算自变量的平均值,即 sum(X)/N。 现存
regr_avgy 1 regr_avgy ( Y double precision, X double precision ) → double precision —
计算因变量的平均值,即 sum(Y)/N。 现存
regr_count 1 regr_count ( Y double precision, X double precision ) → bigint —
计算两个输入都非空的行数。 现存
regr_intercept 1 regr_intercept ( Y double precision, X double precision ) → double precision —
计算由(X,Y)数值对确定的最小二乘拟合线性方程的 y 轴截距。 现存
regr_r2 1 regr_r2 ( Y double precision, X double precision ) → double precision —
计算相关系数的平方。 现存
regr_slope 1 regr_slope ( Y double precision, X double precision ) → double precision —
计算由(X,Y)数值对确定的最小二乘拟合线性方程的斜率。 现存
regr_sxx 1 regr_sxx ( Y double precision, X double precision ) → double precision —
计算自变量的“平方和”,即 sum(X^2) - sum(X)^2/N。 现存
regr_sxy 1 regr_sxy ( Y double precision, X double precision ) → double precision —
计算自变量与因变量的“乘积和”,即 sum(X*Y) - sum(X) * sum(Y)/N。 现存
regr_syy 1 regr_syy ( Y double precision, X double precision ) → double precision —
计算因变量的“平方和”,即 sum(Y^2) - sum(Y)^2/N。 现存
stddev基线 1 stddev ( numeric_type ) → double precision for real or double precision, otherwise numeric 7.32 次
这是 stddev_samp 的一个历史别名。 现存
stddev_pop 1 stddev_pop ( numeric_type ) → double precision for real or double precision, otherwise numeric —
计算输入值的总体标准差。 现存
stddev_samp 1 stddev_samp ( numeric_type ) → double precision for real or double precision, otherwise numeric —
计算输入值的样本标准差。 现存
string_agg 2 string_agg ( value text, delimiter text ) → text 172 次
将非 NULL 输入值连接成一个字符串。在第一个值之后,每个值前面都会放置相应的 delimiter(如果它不为 NULL)。 现存
sum基线 8 sum ( smallint ) → bigint 9.04 次
计算非空输入值的总和。 现存
var_pop 1 var_pop ( numeric_type ) → double precision for real or double precision, otherwise numeric —
计算输入值的总体方差(总体标准差的平方)。 现存
var_samp 1 var_samp ( numeric_type ) → double precision for real or double precision, otherwise numeric —
计算输入值的样本方差(样本标准差的平方)。 现存
variance基线 1 variance ( numeric_type ) → double precision for real or double precision, otherwise numeric 7.32 次
这是 var_samp 的一个历史别名。 现存
WINDOW FUNCTIONS 窗口函数 7 个 ↑
first_value 1 first_value ( value anyelement ) [ null treatment ] → anyelement 191 次
返回在窗口帧的第一行求得的 value。 现存
lag 1 lag ( value anycompatible [, offset integer [, default anycompatible ]] ) [ null treatment ] → anycompatible 193 次
返回在分区内当前行之前 offset 行处计算的 value;如果没有这样的行,则返回 default(其类型必须与 value 兼容)。offset 和 default 都针对当前行求值。如果省略,offset 默认为 1,default 默认为 NULL。 现存
last_value 1 last_value ( value anyelement ) [ null treatment ] → anyelement 191 次
返回在窗口帧的最后一行求得的 value。 现存
lead 1 lead ( value anycompatible [, offset integer [, default anycompatible ]] ) [ null treatment ] → anycompatible 193 次
返回在分区内当前行之后 offset 行处计算的 value;如果没有这样的行,则返回 default(其类型必须与 value 兼容)。offset 和 default 都针对当前行求值。如果省略,offset 默认为 1,default 默认为 NULL。 现存
nth_value 1 nth_value ( value anyelement, n integer ) [ null treatment ] → anyelement 191 次
返回在窗口帧的第 n 行求得的 value(从 1 开始计数);如果没有这样的行,则返回 NULL。 现存
ntile 1 ntile ( num_buckets integer ) → integer —
返回从 1 到参数值的整数,将分区尽可能均等地划分。 现存
row_number 1 row_number () → bigint —
返回当前行在其分区内的编号,从 1 开始计数。 现存
MERGE SUPPORT FUNCTIONS 合并支持函数 1 个 ↑
merge_action 1 merge_action ( ) → text —
返回为当前行执行的合并操作命令。结果为'INSERT'、'UPDATE' 或'DELETE'。 现存
SET RETURNING FUNCTIONS 集合返回函数 2 个 ↑
generate_series 5 generate_series ( start integer, stop integer [, step integer ] ) → setof integer 163 次
从 start 到 stop 生成一系列的值,步长为 step。step 默认为 1。 现存
generate_subscripts 2 generate_subscripts ( array anyarray, dim integer ) → setof integer —
生成一个包含给定数组第 dim 维的有效下标的序列。 现存
SYSTEM INFORMATION FUNCTIONS AND OPERATORS 系统信息函数和操作符 145 个 ↑
acldefault 1 acldefault ( type "char", ownerId oid ) → aclitem[] —
构造一个 aclitem 数组,保存类型为 type、属于 OID 为 ownerId 的角色的对象的默认访问权限。当对象的 ACL 条目为空值时,会采用这些访问权限。(默认访问权限见第 5.9 节。)type 参数必须为以下值之一:'c' 表示 COLUMN,'r' 表示 TABLE 和类似表的对象,'s' 表示 SEQUENCE,'d' 表示 DATABASE,'f' 表示 FUNCTION 或 PROCEDURE,'l' 表示 LANGUAGE,'L' 表示 LARGE OBJECT,'n' 表示 SCHEMA,'p' 表示 PARAMETER,'t' 表示 TABLESPACE,'F' 表示 FOREIGN DATA WRAPPER,'S' 表示 FOREIGN SERVER,'T' 表示 TYPE 或 DOMAIN。 现存
aclexplode 1 aclexplode ( aclitem[] ) → setof record ( grantor oid, grantee oid, privilege_type text, is_grantable boolean ) —
以行集的形式返回 aclitem 数组。如果被授权者是伪角色 PUBLIC,则在 grantee 列中用零表示。每项授予的权限表示为 SELECT、INSERT 等(完整列表见表 5.1)。注意,每项权限都会拆成单独的一行,因此 privilege_type 列中只会出现一个关键字。 现存
col_description 1 col_description ( table oid, column integer ) → text 7.41 次
返回表列的注释,列由所属表的 OID 和列号指定。(obj_description 不能用于表列,因为列没有自身的 OID。) 现存
current_catalog 1 current_catalog → name —
返回当前数据库的名称。(SQL 标准将数据库称为“目录(catalogs)”,因此 current_catalog 是标准中的写法。) 现存
current_database 1 current_database () → name —
返回当前数据库的名称。(SQL 标准将数据库称为“目录(catalogs)”,因此 current_catalog 是标准中的写法。) 现存
current_query 1 current_query () → text —
返回客户端提交的当前正在执行的查询文本(可能包含多条语句)。 现存
current_role 1 current_role → name —
这个等同于 current_user。 现存
current_schema 2 current_schema → name 8.41 次
返回在搜索路径中的第一个模式的名称(如果搜索路径为空则返回空值)。这个模式将用于没有指定目标模式就创建的任何表或其他已命名对象。 现存
current_schemas 1 current_schemas ( include_implicit boolean ) → name[] —
返回当前有效搜索路径中所有模式名称的数组,按优先级排序。(当前 search_path 设置中不对应于已存在且可搜索的模式的项会被省略。)如果布尔参数为 true,结果还会包含 pg_catalog 等隐式搜索的系统模式。 现存
current_user基线 1 current_user → name —
返回当前执行上下文的用户名。 现存
format_type 1 format_type ( type oid, typemod integer ) → text —
返回由其类型 OID 和可能的类型修饰符标识的数据类型的 SQL 名称。如果没有已知的类型修饰符,则传递 NULL 值给类型修饰符。 现存
has_any_column_privilege 1 has_any_column_privilege ( [ user name or oid, ] table text or oid, privilege text ) → boolean —
用户是否对表的至少一列具有权限?如果拥有整个表的权限,或至少一列获得了该权限的列级授权,则返回真。允许的权限类型为 SELECT、INSERT、UPDATE 和 REFERENCES。 现存
has_column_privilege 1 has_column_privilege ( [ user name or oid, ] table text or oid, column text or smallint, privilege text ) → boolean —
用户对指定的表列有权限么?如果对整个表持有权限,或者对列授予了列级别的权限,则会成功。可以通过名称或属性编号(pg_attribute.attnum)指定列。允许的权限类型为 SELECT、INSERT、UPDATE 和 REFERENCES。 现存
has_database_privilege 1 has_database_privilege ( [ user name or oid, ] database text or oid, privilege text ) → boolean 7.41 次
用户对数据库有权限吗?允许的权限类型为 CREATE、CONNECT、TEMPORARY 和 TEMP(相当于 TEMPORARY)。 现存
has_foreign_data_wrapper_privilege 1 has_foreign_data_wrapper_privilege ( [ user name or oid, ] fdw text or oid, privilege text ) → boolean —
用户是否具有外部数据包装器权限?唯一允许的权限类型为 USAGE。 现存
has_function_privilege 1 has_function_privilege ( [ user name or oid, ] function text or oid, privilege text ) → boolean 7.41 次
用户对函数有权限吗?唯一允许的权限类型是 EXECUTE。 现存
has_language_privilege 1 has_language_privilege ( [ user name or oid, ] language text or oid, privilege text ) → boolean 7.41 次
用户对语言有权限吗?唯一允许的权限类型是 USAGE。 现存
has_largeobject_privilege 1 has_largeobject_privilege ( [ user name or oid, ] largeobject oid, privilege text ) → boolean —
用户是否拥有大对象的权限?可用的权限类型是 SELECT 和 UPDATE。 现存
has_parameter_privilege 1 has_parameter_privilege ( [ user name or oid, ] parameter text, privilege text ) → boolean —
用户是否具有配置参数的权限?参数名称不区分大小写。允许的权限类型为 SET 和 ALTER SYSTEM。 现存
has_schema_privilege 1 has_schema_privilege ( [ user name or oid, ] schema text or oid, privilege text ) → boolean 7.41 次
用户对模式有权限吗?允许的权限类型是 CREATE 和 USAGE。 现存
has_sequence_privilege 1 has_sequence_privilege ( [ user name or oid, ] sequence text or oid, privilege text ) → boolean —
用户是否具有序列权限?允许的权限类型为 USAGE、SELECT 和 UPDATE。 现存
has_server_privilege 1 has_server_privilege ( [ user name or oid, ] server text or oid, privilege text ) → boolean —
用户是否对外部服务器有权限?唯一允许的权限类型是 USAGE。 现存
has_table_privilege 1 has_table_privilege ( [ user name or oid, ] table text or oid, privilege text ) → boolean 7.41 次
用户对表有权限吗?允许的权限类型有 SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER 和 MAINTAIN。 现存
has_tablespace_privilege 1 has_tablespace_privilege ( [ user name or oid, ] tablespace text or oid, privilege text ) → boolean —
用户对表空间有权限吗?唯一允许的权限类型是 CREATE。 现存
has_type_privilege 1 has_type_privilege ( [ user name or oid, ] type text or oid, privilege text ) → boolean —
用户对数据类型有权限吗?唯一允许的权限类型是 USAGE。当通过名称而不是 OID 指定类型时,允许的输入与 regtype 数据类型相同(参见第 8.19 节)。 现存
icu_unicode_version 1 icu_unicode_version () → text —
如果服务器在构建时启用了 ICU 支持,则返回一个表示 ICU 所使用的 Unicode 版本的字符串;否则返回 NULL。 现存
inet_client_addr 1 inet_client_addr () → inet —
返回当前客户端的 IP 地址;如果当前连接通过 Unix 域套接字建立,则返回 NULL。 现存
inet_client_port 1 inet_client_port () → integer 8.11 次
返回当前客户端的 IP 端口号,如果当前连接是通过 Unix 域套接字则返回 NULL。 现存
inet_server_addr 1 inet_server_addr () → inet —
返回服务器接受当前连接的 IP 地址,如果当前连接是通过 Unix 域套接字则返回 NULL。 现存
inet_server_port 1 inet_server_port () → integer 8.11 次
返回服务器接受当前连接的 IP 端口号,如果当前连接是通过 Unix 域套接字则返回 NULL。 现存
makeaclitem 1 makeaclitem ( grantee oid, grantor oid, privileges text, is_grantable boolean ) → aclitem —
使用给定的属性构造 aclitem。privileges 是以逗号分隔的权限名列表,例如 SELECT、INSERT 等,列出的所有权限都会设置在结果中。(权限字符串不区分大小写,权限名之间允许有额外的空白,但权限名内部不允许。) 现存
mxid_age 1 mxid_age ( xid ) → integer —
返回给定多事务 ID 与当前多事务计数器之间的多事务 ID 数。 现存
obj_description 2 obj_description ( object oid, catalog name ) → text 7.41 次
返回数据库对象的注释,对象由其 OID 和所在系统目录的名称指定。例如,obj_description(123456, 'pg_class') 会获取 OID 为 123456 的表的注释。 现存
pg_available_wal_summaries 1 pg_available_wal_summaries () → setof record ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn ) —
返回数据目录中 pg_wal/summaries 下现有 WAL 汇总文件的信息。每个 WAL 汇总文件返回一行。每个文件都汇总了指定 TLI 上、指定 LSN 范围内的 WAL。该函数可用于判断服务器上是否存在足够的 WAL 汇总,从而基于某个已知起始 LSN 的先前备份执行增量备份。 现存
pg_backend_pid 1 pg_backend_pid () → integer —
返回附加到当前会话的服务器进程的进程 ID。 现存
pg_basetype 1 pg_basetype ( regtype ) → regtype —
返回由类型 OID 标识的域的基础类型 OID。如果参数是非域类型的 OID,则原样返回该参数。如果参数不是有效的类型 OID,则返回 NULL。如果存在域依赖链,则递归查找,直到找到基础类型。 现存
pg_blocking_pids 1 pg_blocking_pids ( integer ) → integer[] —
返回一个数组,包含阻止指定进程 ID 对应的服务器进程获取锁的会话进程 ID;如果不存在这样的服务器进程,或该进程未被阻塞,则返回空数组。 现存
pg_char_to_encoding 1 pg_char_to_encoding ( encoding name ) → integer —
将提供的编码名称转换为表示在某些系统目录表中使用的内部标识符的整数。如果提供了未知的编码名称,则返回 -1。 现存
pg_collation_is_visible 1 pg_collation_is_visible ( collation oid ) → boolean —
排序规则在搜索路径中可见吗? 现存
pg_conf_load_time 1 pg_conf_load_time () → timestamp with time zone —
返回服务器配置文件最近一次加载的时间。如果当时当前会话已经存在,则返回该会话自身重新读取配置文件的时间(因此不同会话中的返回时间会略有不同)。否则,返回 postmaster 进程重新读取配置文件的时间。 现存
pg_control_checkpoint 1 pg_control_checkpoint () → record —
返回有关当前检查点状态的信息,如表 9.90 所展示。 现存
pg_control_init 1 pg_control_init () → record —
返回有关集簇初始化状态的信息,如表 9.92 所展示。 现存
pg_control_recovery 1 pg_control_recovery () → record —
返回有关恢复状态的信息,如表 9.93 所展示。 现存
pg_control_system 1 pg_control_system () → record —
返回有关当前控制文件状态的信息,如表 9.91 所展示。 现存
pg_conversion_is_visible 1 pg_conversion_is_visible ( conversion oid ) → boolean —
转换在搜索路径中可见吗? 现存
pg_current_logfile 1 pg_current_logfile ( [ text ] ) → text —
返回当前由日志收集器使用的日志文件的路径名。路径包括 log_directory 目录和单独的日志文件名。如果日志收集器已禁用,则结果为 NULL。当存在多个日志文件,每个以不同格式存在时,不带参数的 pg_current_logfile 返回有序列表中找到的第一个格式的文件路径:stderr,csvlog,jsonlog。如果没有任何日志文件具有这些格式,则返回 NULL。要请求有关特定日志文件格式的信息,请将 csvlog,jsonlog 或 stderr 作为可选参数的值。如果请求的日志格式未在 log_destination 中配置,则结果为 NULL。结果反映 current_logfiles 文件的内容。 现存
pg_current_snapshot 1 pg_current_snapshot () → pg_snapshot —
返回当前快照,即显示哪些事务 ID 正在进行中的数据结构。快照中只包含顶层事务 ID,不显示子事务 ID;详见第 67.3 节。 现存
pg_current_xact_id 1 pg_current_xact_id () → xid8 —
返回当前事务的 ID。如果当前事务还没有一个 ID(因为它还没有执行任何数据库更新),它将分配一个新的事务 ID;详见第 67.1 节。如果在子事务中执行,它将返回顶层事务的 ID;详见第 67.3 节。 现存
pg_current_xact_id_if_assigned 1 pg_current_xact_id_if_assigned () → xid8 —
返回当前事务的 ID;如果尚未分配 ID,则返回 NULL。(如果事务本来可能是只读的,最好使用此变体,以免不必要地消耗 XID。)如果在子事务中执行,则返回顶层事务 ID。 现存
pg_describe_object 1 pg_describe_object ( classid oid, objid oid, objsubid integer ) → text 9.51 次
返回数据库对象的文本描述,对象由系统目录 OID、对象 OID 和子对象 ID 指定(例如表中的列号;引用整个对象时,子对象 ID 为零)。该描述供人阅读,并可能根据服务器配置被翻译。这对于确定 pg_depend 系统目录中所引用对象的标识尤其有用。对于未定义的对象,此函数返回 NULL。 现存
pg_encoding_to_char 1 pg_encoding_to_char ( encoding integer ) → name —
将在某些系统目录表中用作编码内部标识符的整数转换为可读的字符串。如果提供了无效的编码编号,则返回空字符串。 现存
pg_function_is_visible 1 pg_function_is_visible ( function oid ) → boolean 7.41 次
函数在搜索路径中可见吗?(这也适用于过程和聚合。) 现存
pg_get_acl 1 pg_get_acl ( classid oid, objid oid, objsubid integer ) → aclitem[] —
返回由系统目录 OID、对象 OID 和子对象 ID 指定的数据库对象的 ACL。对于未定义的对象,此函数返回 NULL 值。 现存
pg_get_catalog_foreign_keys 1 pg_get_catalog_foreign_keys () → setof record ( fktable regclass, fkcols text[], pktable regclass, pkcols text[], is_array boolean, is_opt boolean ) —
返回一组记录,描述存在于 PostgreSQL 系统目录中的外键关系。fktable 列包含引用目录的名称,fkcols 列包含引用列的名称。类似地,pktable 列包含被引用目录的名称,而 pkcols 列包含被引用列的名称。如果 is_array 为真,则最后一个引用列是一个数组,其每个元素都应该与被引用目录中的某个条目匹配。如果 is_opt 为真,则允许引用列包含零而不是有效引用。 现存
pg_get_constraintdef 1 pg_get_constraintdef ( constraint oid [, pretty boolean ] ) → text 7.41 次
重建约束的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_database_ddl 1 pg_get_database_ddl ( database regdatabase [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] [, tablespace boolean DEFAULT true] ) → setof text —
重建指定数据库的 CREATE DATABASE 语句,随后返回用于连接数上限、模板状态和配置设置的 ALTER DATABASE 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。当 tablespace 为 false 时,省略 TABLESPACE 子句。 现存
pg_get_expr 1 pg_get_expr ( expr pg_node_tree, relation oid [, pretty boolean ] ) → text 9.11 次
反编译存储在系统目录中的表达式的内部形式,例如列的默认值。如果表达式可能包含 Var 节点,请将它们所引用的关系的 OID 指定为第二个参数;如果预计不含 Var 节点,传入零即可。 现存
pg_get_function_arguments 1 pg_get_function_arguments ( func oid ) → text —
重建函数或过程的参数列表,采用其在 CREATE FUNCTION 中应有的形式(包括默认值)。 现存
pg_get_function_identity_arguments 1 pg_get_function_identity_arguments ( func oid ) → text —
重建标识函数或过程所需的参数列表,采用其在 ALTER FUNCTION 等命令中应有的形式。这种形式省略默认值。 现存
pg_get_function_result 1 pg_get_function_result ( func oid ) → text —
重建函数的 RETURNS 子句,采用其在 CREATE FUNCTION 中应有的形式。对于过程,返回 NULL。 现存
pg_get_functiondef 1 pg_get_functiondef ( func oid ) → text —
重建函数或过程的创建命令。(这是反编译重建的结果,并非命令的原始文本。)结果是一条完整的 CREATE OR REPLACE FUNCTION 或 CREATE OR REPLACE PROCEDURE 语句。 现存
pg_get_indexdef 1 pg_get_indexdef ( index oid [, column integer, pretty boolean ] ) → text 7.41 次
重建索引的创建命令。(这是反编译重建的结果,并非命令的原始文本。)如果提供了 column 而且不为零,则只重建该列的定义。 现存
pg_get_keywords 1 pg_get_keywords () → setof record ( word text, catcode "char", barelabel boolean, catdesc text, baredesc text ) 141 次
返回描述服务器所识别 SQL 关键字的一组记录。word 列包含关键字。catcode 列包含类别代码:U 表示非保留关键字,C 表示可用作列名的关键字,T 表示可用作类型名或函数名的关键字,R 表示完全保留的关键字。如果关键字可以在 SELECT 列表中用作“裸”列标签,barelabel 列为 true;如果只能在 AS 之后使用,则为 false。catdesc 列包含描述关键字类别的字符串,该字符串可能已被本地化。baredesc 列包含描述关键字列标签状态的字符串,该字符串可能已被本地化。 现存
pg_get_loaded_modules 1 pg_get_loaded_modules () → setof record ( module_name text, version text, file_name text ) —
返回当前服务器会话中已加载的可加载模块列表。除非模块作者使用 PG_MODULE_MAGIC_EXT 宏提供了这些值,否则 module_name 和 version 字段为 NULL。file_name 字段给出模块(共享库)的文件名。 现存
pg_get_multixact_members 1 pg_get_multixact_members ( multixid xid ) → setof record ( xid xid, mode text ) —
返回指定多事务 ID 中每个成员的事务 ID 和锁模式。锁模式 forupd、fornokeyupd、sh 和 keysh 分别对应于第 13.3.2 节中描述的行级锁 FOR UPDATE、FOR NO KEY UPDATE、FOR SHARE 和 FOR KEY SHARE。另有两种多事务特有的模式:nokeyupd 用于不修改键列的更新,upd 用于修改键列的更新或删除。 现存
pg_get_multixact_stats 1 pg_get_multixact_stats () → record ( num_mxids integer, num_members bigint, members_size bigint, oldest_multixact xid ) —
返回当前多事务使用情况的统计信息:num_mxids 是系统中当前存在的多事务 ID 总数,num_members 是系统中当前存在的多事务成员条目总数,members_size 是 pg_multixact/members 目录中 num_members 占用的存储空间,oldest_multixact 是仍在使用的最旧多事务 ID。 现存
pg_get_object_address 1 pg_get_object_address ( type text, object_names text[], object_args text[] ) → record ( classid oid, objid oid, objsubid integer ) 111 次
返回一行,其中包含足以唯一标识数据库对象的信息,该对象由类型代码、对象名称数组和参数数组指定。返回的值就是 pg_depend 等系统目录中使用的值;它们可以传给 pg_describe_object 或 pg_identify_object 等其他系统函数。classid 是包含该对象的系统目录的 OID;objid 是对象自身的 OID;objsubid 是子对象 ID,没有子对象时为零。此函数执行 pg_identify_object_as_address 的逆操作。未定义的对象以 NULL 值标识。 现存
pg_get_partition_constraintdef 1 pg_get_partition_constraintdef ( table oid ) → text —
重建分区约束的定义。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_partkeydef 1 pg_get_partkeydef ( table oid ) → text —
重建分区表的分区键定义,采用其在 CREATE TABLE 的 PARTITION BY 子句中的形式。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_role_ddl 1 pg_get_role_ddl ( role regrole [, pretty boolean DEFAULT false] [, memberships boolean DEFAULT true] ) → setof text —
重建给定角色的 CREATE ROLE 语句以及任何 ALTER ROLE ... SET 语句。每条语句作为单独一行返回。密码信息绝不会包含在输出中。当 pretty 为 true 时,启用美化输出。当 memberships 为 false 时,省略用于角色成员关系的 GRANT 语句。 现存
pg_get_ruledef 1 pg_get_ruledef ( rule oid [, pretty boolean ] ) → text 7.42 次
重建规则的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_serial_sequence 1 pg_get_serial_sequence ( table text, column text ) → text —
返回与列相关联的序列名称,如果没有序列与该列相关联则返回 NULL。如果列是标识列,则关联序列是在内部为该列创建的序列。对于使用一种 serial 类型(serial、smallserial、bigserial)创建的列,它是为该 serial 列定义创建的序列。在后一种情况下,可以使用 ALTER SEQUENCE OWNED BY 修改或删除关联。(这个函数可能应该被称为 pg_get_owned_sequence;它的当前名称反映了它在历史上曾与 serial 类型的列一起使用。)第一个参数是具有可选模式的表名,第二个参数是列名。由于第一个参数可能包含模式名和表名,因此按照通常的 SQL 规则解析它,这意味着默认情况下它是小写的。第二个参数只是一个列名,按照字面来处理,因此保留了它的大小写。结果经过了适当的格式化,可以传递给序列函数(参见第 9.18 节)。 现存
pg_get_statisticsobjdef 1 pg_get_statisticsobjdef ( statobj oid ) → text —
重建扩展统计对象的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_tablespace_ddl 2 pg_get_tablespace_ddl ( tablespace oid [, pretty boolean DEFAULT false] [, owner boolean DEFAULT true] ) → setof text —
重建指定表空间(按 OID 或名称指定)的 CREATE TABLESPACE 语句。如果该表空间设置了选项,还会返回一条 ALTER TABLESPACE ... SET 语句。每条语句作为单独一行返回。当 pretty 为 true 时,启用美化输出。当 owner 为 false 时,省略 OWNER 子句。 现存
pg_get_triggerdef 1 pg_get_triggerdef ( trigger oid [, pretty boolean ] ) → text 9.01 次
重建触发器的创建命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_userbyid 1 pg_get_userbyid ( role oid ) → name 8.42 次
根据 OID 返回角色名。 现存
pg_get_viewdef 3 pg_get_viewdef ( view oid [, pretty boolean ] ) → text 9.23 次
重建定义视图或物化视图的 SELECT 命令。(这是反编译重建的结果,并非命令的原始文本。) 现存
pg_get_wal_summarizer_state 1 pg_get_wal_summarizer_state () → record ( summarized_tli bigint, summarized_lsn pg_lsn, pending_lsn pg_lsn, summarizer_pid int ) —
返回有关 WAL 汇总器进度的信息。如果自实例启动以来 WAL 汇总器从未运行过,则 summarized_tli 和 summarized_lsn 将分别为 0 和 0/00000000;否则,它们将是最近写入磁盘的 WAL 汇总文件的 TLI 和结束 LSN。如果 WAL 汇总器当前正在运行,pending_lsn 将是它已消费的最后一条记录的结束 LSN,该值必定始终大于或等于 summarized_lsn;如果 WAL 汇总器未在运行,则它将等于 summarized_lsn。summarizer_pid 是 WAL 汇总器进程的 PID;如果它正在运行则返回该 PID,否则为 NULL。 现存
pg_has_role 1 pg_has_role ( [ user name or oid, ] role text or oid, privilege text ) → boolean —
用户是否具有角色权限?允许的权限类型为 MEMBER、USAGE 和 SET。MEMBER 表示对该角色的直接或间接成员资格,而不考虑由此授予的具体权限。USAGE 表示该角色的权限是否无需执行 SET ROLE 即可立即使用,而 SET 表示是否可以使用 SET ROLE 命令切换到该角色。任一权限类型后面都可以附加 WITH ADMIN OPTION 或 WITH GRANT OPTION,用于测试是否持有 ADMIN 权限(这六种写法测试的都是同一件事)。此函数不允许将 user 设置为 public 这一特殊情况,因为 PUBLIC 伪角色永远不能成为实际角色的成员。 现存
pg_identify_object 1 pg_identify_object ( classid oid, objid oid, objsubid integer ) → record ( type text, schema text, name text, identity text ) 9.51 次
返回一行,其中包含足以唯一标识数据库对象的信息,该对象由系统目录 OID、对象 OID 和子对象 ID 指定。这些信息供机器读取,永远不会被翻译。type 标识数据库对象的类型;schema 是对象所属的模式名,对于不属于模式的对象类型则为 NULL;如果对象名(以及适用时的模式名)足以唯一标识该对象,name 就是对象名,并在必要时加引号,否则为 NULL;identity 是完整的对象标识,其具体格式取决于对象类型,格式中的每个名称都会根据需要加上模式限定和引号。未定义的对象以 NULL 值标识。 现存
pg_identify_object_as_address 1 pg_identify_object_as_address ( classid oid, objid oid, objsubid integer ) → record ( type text, object_names text[], object_args text[] ) —
返回一行,其中包含足以唯一标识数据库对象的信息,该对象由系统目录 OID、对象 OID 和子对象 ID 指定。返回的信息与当前服务器无关,也就是说,它也能用于标识另一台服务器上名称相同的对象。type 标识数据库对象的类型;object_names 和 object_args 是 text 数组,共同构成对该对象的引用。将这三个值传给 pg_get_object_address 可以获得对象的内部地址。 现存
pg_index_column_has_property 1 pg_index_column_has_property ( index regclass, column integer, property text ) → boolean —
测试一个索引列是否具有指定名称的属性。表 9.78 列出了常用索引列属性。(注意,扩展访问方法可以为其索引定义额外的属性名。)如果属性名未知或不适用于特定对象,或者 OID 或列号不能识别有效的对象,则返回 NULL。 现存
pg_index_has_property 1 pg_index_has_property ( index regclass, property text ) → boolean —
测试一个索引是否具有指定名称的属性。表 9.79 列出了常用的索引属性。(注意,扩展访问方法可以为其索引定义额外的属性名。)如果属性名未知或不适用于特定对象,或者 OID 不能识别有效的对象,则返回 NULL。 现存
pg_indexam_has_property 1 pg_indexam_has_property ( am oid, property text ) → boolean —
测试索引访问方法是否具有指定名称的属性。访问方法属性如表 9.80 所示。如果属性名未知或不适用于特定对象,或者 OID 不能识别有效的对象,则返回 NULL。 现存
pg_input_error_info 1 pg_input_error_info ( string text, type text ) → record ( message text, detail text, hint text, sql_error_code text ) —
测试给定的 string 是否是指定数据类型的有效输入;如果不是,则返回本应抛出的错误详情。如果输入有效,则结果为 NULL。输入参数与 pg_input_is_valid 相同。 现存
pg_input_is_valid 1 pg_input_is_valid ( string text, type text ) → boolean —
测试给定的 string 是否是指定数据类型的有效输入,返回 true 或 false。 现存
pg_is_other_temp_schema 1 pg_is_other_temp_schema ( oid ) → boolean —
如果给定的 OID 是另一个会话的临时模式的 OID 则返回真。(这可能是有用的,例如,在目录显示中排除其他会话的临时表。) 现存
pg_jit_available 1 pg_jit_available () → boolean —
如果 JIT 编译器扩展可用(参见第 30 章),并且 jit 配置参数设置为 on,则返回真。 现存
pg_last_committed_xact 1 pg_last_committed_xact () → record ( xid xid, timestamp timestamp with time zone, roident oid ) 141 次
返回最近提交事务的事务 ID、提交时间戳和复制源。 现存
pg_listening_channels 1 pg_listening_channels () → setof text —
返回当前会话正在侦听的异步通知通道的名称集。 现存
pg_my_temp_schema 1 pg_my_temp_schema () → oid —
返回当前会话的临时模式的 OID,如果没有则返回 0(因为它没有创建任何临时表)。 现存
pg_notification_queue_usage 1 pg_notification_queue_usage () → double precision —
返回待处理通知当前占用的空间占异步通知队列最大容量的比例(0–1)。更多信息请参见 LISTEN 和 NOTIFY。 现存
pg_numa_available 1 pg_numa_available () → boolean —
如果服务器在编译时启用了 NUMA 支持,则返回真。 现存
pg_opclass_is_visible 1 pg_opclass_is_visible ( opclass oid ) → boolean 7.41 次
操作符类在搜索路径中可见吗? 现存
pg_operator_is_visible 1 pg_operator_is_visible ( operator oid ) → boolean 7.41 次
操作符在搜索路径中可见吗? 现存
pg_opfamily_is_visible 1 pg_opfamily_is_visible ( opclass oid ) → boolean —
操作符族在搜索路径中可见吗? 现存
pg_options_to_table 1 pg_options_to_table ( options_array text[] ) → setof record ( option_name text, option_value text ) —
返回源自 pg_class.reloptions 或 pg_attribute.attoptions 的值表示的存储选项集。 现存
pg_postmaster_start_time 1 pg_postmaster_start_time () → timestamp with time zone —
返回服务器启动时的时间。 现存
pg_safe_snapshot_blocking_pids 1 pg_safe_snapshot_blocking_pids ( integer ) → integer[] —
返回一个数组,包含阻止指定进程 ID 对应的服务器进程获取安全快照的会话进程 ID;如果不存在这样的服务器进程,或该进程未被阻塞,则返回空数组。 现存
pg_settings_get_flags 1 pg_settings_get_flags ( guc text ) → text[] —
返回与给定 GUC 关联的标志数组;如果该 GUC 不存在,则返回 NULL。如果 GUC 存在但没有要显示的标志,则结果为空数组。此函数仅公开表 9.81 中列出的最有用的标志。 现存
pg_snapshot_xip 1 pg_snapshot_xip ( pg_snapshot ) → setof xid8 —
返回快照中包含的正在进行的事务 ID 集。 现存
pg_snapshot_xmax 1 pg_snapshot_xmax ( pg_snapshot ) → xid8 —
返回快照的 xmax。 现存
pg_snapshot_xmin 1 pg_snapshot_xmin ( pg_snapshot ) → xid8 —
返回快照的 xmin。 现存
pg_statistics_obj_is_visible 1 pg_statistics_obj_is_visible ( stat oid ) → boolean —
统计对象在搜索路径中可见吗? 现存
pg_table_is_visible 1 pg_table_is_visible ( table oid ) → boolean 7.41 次
表在搜索路径中可见吗?(这适用于所有类型的关系,包括视图、物化视图、索引、序列和外部表。) 现存
pg_tablespace_databases 1 pg_tablespace_databases ( tablespace oid ) → setof oid —
返回在指定表空间中存储了对象的数据库 OID 集合。如果此函数返回任何行,则说明该表空间不为空,不能删除。要查看存放在该表空间中的具体对象,需要连接到 pg_tablespace_databases 标识的数据库,并查询它们的 pg_class 系统目录。 现存
pg_tablespace_location 1 pg_tablespace_location ( tablespace oid ) → text —
返回表空间所在的文件系统路径。 现存
pg_trigger_depth 1 pg_trigger_depth () → integer —
返回 PostgreSQL 触发器的当前嵌套层级(如果不是从触发器内部直接或间接调用,则为 0)。 现存
pg_ts_config_is_visible 1 pg_ts_config_is_visible ( config oid ) → boolean —
全文检索配置是否在搜索路径中可见? 现存
pg_ts_dict_is_visible 1 pg_ts_dict_is_visible ( dict oid ) → boolean —
全文检索词典是否在搜索路径中可见? 现存
pg_ts_parser_is_visible 1 pg_ts_parser_is_visible ( parser oid ) → boolean —
全文检索解析器是否在搜索路径中可见? 现存
pg_ts_template_is_visible 1 pg_ts_template_is_visible ( template oid ) → boolean —
全文检索模板是否在搜索路径中可见? 现存
pg_type_is_visible 1 pg_type_is_visible ( type oid ) → boolean 7.41 次
类型(或域)在搜索路径中可见吗? 现存
pg_typeof 1 pg_typeof ( "any" ) → regtype —
返回所传入值的数据类型的 OID。这有助于排查问题或动态构造 SQL 查询。函数声明的返回类型是 regtype,它是一种 OID 别名类型(参见第 8.19 节);这意味着它在比较时与 OID 相同,但显示为类型名。 现存
pg_visible_in_snapshot 1 pg_visible_in_snapshot ( xid8, pg_snapshot ) → boolean —
根据此快照,给定的事务 ID 是否可见(即该事务是否在生成快照之前完成)?注意,此函数无法为子事务 ID(subxid)给出正确结果;详见第 67.3 节。 现存
pg_wal_summary_contents 1 pg_wal_summary_contents ( tli bigint, start_lsn pg_lsn, end_lsn pg_lsn ) → setof record ( relfilenode oid, reltablespace oid, reldatabase oid, relforknumber smallint, relblocknumber bigint, is_limit_block boolean ) —
返回由 TLI 以及起始和结束 LSN 标识的单个 WAL 汇总文件内容的信息。每一行中,如果 is_limit_block 为 false,则表示其余输出列所标识的块在该文件所汇总的 WAL 记录范围内被至少一条 WAL 记录修改过。每一行中,如果 is_limit_block 为 true,则表示以下两种情况之一:(a) 该关系分支在相关 WAL 记录范围内被截断到 relblocknumber 给出的长度;或者 (b) 该关系分支在相关 WAL 记录范围内被创建或删除;在创建或删除的情况下,relblocknumber 将为零。 现存
pg_xact_commit_timestamp 1 pg_xact_commit_timestamp ( xid ) → timestamp with time zone —
返回事务的提交时间戳。 现存
pg_xact_commit_timestamp_origin 1 pg_xact_commit_timestamp_origin ( xid ) → record ( timestamp timestamp with time zone, roident oid) —
返回事务的提交时间戳和复制源。 现存
pg_xact_status 1 pg_xact_status ( xid8 ) → text —
报告近期事务的提交状态。只要事务足够新,系统仍保留其提交状态,结果就为 in progress、committed 或 aborted。如果事务已足够旧,系统中不再有对它的引用,且提交状态信息已被丢弃,则返回 NULL。例如,在 COMMIT 进行过程中应用与数据库服务器断开连接时,应用可以用此函数判断事务是提交了还是中止了。注意,预备事务被报告为 in progress;如果需要确定某个事务 ID 是否为预备事务,应用必须检查 pg_prepared_xacts。 现存
row_security_active 1 row_security_active ( table text or oid ) → boolean —
在当前用户和当前环境的上下文中,指定表的行级安全是否生效? 现存
session_user基线 1 session_user → name —
返回会话用户名。 现存
shobj_description 1 shobj_description ( object oid, catalog name ) → text —
返回共享数据库对象的注释,对象由其 OID 和所在系统目录的名称指定。此函数与 obj_description 类似,但用于获取共享对象(即数据库、角色和表空间)的注释。有些系统目录由数据库集簇中的所有数据库全局共享,其中对象的描述也全局存储。 现存
system_user 1 system_user → text —
返回用户在被分配数据库角色之前,于认证周期中提供的认证方法和身份(如果有)。结果表示为 auth_method:identity;如果用户未被认证(例如使用了 Trust 认证),则返回 NULL。 现存
to_regclass 1 to_regclass ( text ) → regclass —
将文本关系名转换为它的 OID。通过将字符串类型转换为 regclass 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regcollation 1 to_regcollation ( text ) → regcollation —
将文本排序规则名称转换为它的 OID。通过将字符串类型转换为 regcollation(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regdatabase 1 to_regdatabase ( text ) → regdatabase —
将文本数据库名转换为它的 OID。通过将字符串类型转换为 regdatabase 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regnamespace 1 to_regnamespace ( text ) → regnamespace —
将文本模式名转换为它的 OID。通过将字符串转换为 regnamespace 类型(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regoper 1 to_regoper ( text ) → regoper —
将文本操作符名称转换为它的 OID。通过将字符串类型转换为 regoper(参见第 8.19 节)可以得到类似的结果;但是,如果找不到名称或名称有多义性,该函数将返回 NULL 而不会抛出错误。 现存
to_regoperator 1 to_regoperator ( text ) → regoperator —
将文本操作符名称(带有参数类型)转换为其 OID。通过将字符串转换为 regoperator 类型(参见第 8.19 节)可以得到类似的结果;但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regproc 1 to_regproc ( text ) → regproc —
将文本函数或过程名转换为其 OID。通过将字符串转换为 regproc 类型(参见第 8.19 节)可以得到类似的结果;但是,如果找不到名称或名称有多义性,该函数将返回 NULL 而不会抛出错误。 现存
to_regprocedure 1 to_regprocedure ( text ) → regprocedure —
将文本函数或过程名(带有参数类型)转换为其 OID。通过将字符串类型转换为 regprocedure 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regrole 1 to_regrole ( text ) → regrole —
将文本角色名转换为它的 OID。通过将字符串类型转换为 regrole 可以得到类似的结果(参见第 8.19 节);但是,如果没有找到名称,这个函数将返回 NULL 而不会抛出错误。 现存
to_regtype 1 to_regtype ( text ) → regtype —
解析文本字符串,从中提取可能的类型名,并将该名称转换为类型 OID。字符串中的语法错误会导致报错;但如果字符串是语法有效的类型名,只是在系统目录中找不到该类型,结果就是 NULL。将字符串转换为 regtype 类型也能得到类似的结果(参见第 8.19 节),区别在于类型转换会在找不到名称时报错。 现存
to_regtypemod 1 to_regtypemod ( text ) → integer —
解析文本字符串,从中提取可能的类型名称,并转换其类型修饰符(如果有)。字符串中的语法错误会引发错误;但如果字符串是语法有效的类型名称,只是在系统目录中找不到,则结果为 NULL。如果没有类型修饰符,则结果为 -1。 现存
txid_current 1 txid_current () → bigint —
参见 pg_current_xact_id()。 现存
txid_current_if_assigned 1 txid_current_if_assigned () → bigint —
参见 pg_current_xact_id_if_assigned()。 现存
txid_current_snapshot 1 txid_current_snapshot () → txid_snapshot —
参见 pg_current_snapshot()。 现存
txid_snapshot_xip 1 txid_snapshot_xip ( txid_snapshot ) → setof bigint —
参见 pg_snapshot_xip()。 现存
txid_snapshot_xmax 1 txid_snapshot_xmax ( txid_snapshot ) → bigint —
参见 pg_snapshot_xmax()。 现存
txid_snapshot_xmin 1 txid_snapshot_xmin ( txid_snapshot ) → bigint —
参见 pg_snapshot_xmin()。 现存
txid_status 1 txid_status ( bigint ) → text —
参见 pg_xact_status()。 现存
txid_visible_in_snapshot 1 txid_visible_in_snapshot ( bigint, txid_snapshot ) → boolean —
参见 pg_visible_in_snapshot()。 现存
unicode_version 1 unicode_version () → text —
返回一个表示 PostgreSQL 所使用的 Unicode 版本的字符串。 现存
user 1 user → name —
这个相当于 current_user。 现存
version 1 version () → text 7.31 次
返回描述 PostgreSQL 服务器版本的字符串。你还可以从 server_version 获得此信息,或者对于机器可读的版本,使用 server_version_num。软件开发人员应该使用 server_version_num(自 8.2 起可用)或 PQserverVersion,而不是解析文本版本。 现存
SYSTEM ADMINISTRATION FUNCTIONS 系统管理函数 124 个 ↑
brin_desummarize_range 1 brin_desummarize_range ( index regclass, blockNumber bigint ) → void —
如果存在涵盖指定表块的页面范围摘要,则删除对应的 BRIN 索引元组。 现存
brin_summarize_new_values 1 brin_summarize_new_values ( index regclass ) → integer 9.61 次
扫描指定的 BRIN 索引以查找基表中当前尚未生成索引摘要的页面范围;对于任何这样的范围,它都通过扫描这些表页来创建一个新的摘要索引元组。返回插入到索引中的新页面范围摘要的数量。 现存
brin_summarize_range 1 brin_summarize_range ( index regclass, blockNumber bigint ) → integer —
对覆盖给定块的页面范围执行摘要(如果尚未摘要)。这类似于 brin_summarize_new_values,区别在于它只处理包含给定表块编号的页面范围。 现存
current_setting 1 current_setting ( setting_name text [, missing_ok boolean ] ) → text 9.61 次
返回设置 setting_name 的当前值。如果没有这样的设置,current_setting 将抛出一个错误,除非 missing_ok 被提供并且为 true(在此情况下返回 NULL)。这个函数对应于 SQL 命令 SHOW。 现存
gin_clean_pending_list 1 gin_clean_pending_list ( index regclass ) → bigint —
将指定 GIN 索引的“待处理”列表中的条目批量移入主 GIN 数据结构,从而清理该列表。返回从待处理列表中移除的页数。如果参数是禁用 fastupdate 选项构建的 GIN 索引,则不会进行清理,结果为零,因为该索引没有待处理列表。有关待处理列表和 fastupdate 选项的详细信息,参见第 65.4.4.1 节和第 65.4.5 节。 现存
pg_advisory_lock 2 pg_advisory_lock ( key bigint ) → void —
获取一个排他的会话级咨询锁,如有必要则等待。 现存
pg_advisory_lock_shared 2 pg_advisory_lock_shared ( key bigint ) → void —
获取一个共享的会话级咨询锁,如有必要则等待。 现存
pg_advisory_unlock 2 pg_advisory_unlock ( key bigint ) → boolean —
释放以前获取的排他会话级咨询锁。如果锁成功释放则返回 true。如果锁没有被持有,则返回 false,此外,服务器将报告一个 SQL 警告。 现存
pg_advisory_unlock_all 1 pg_advisory_unlock_all () → void —
释放当前会话所持有的所有会话级咨询锁。(即使客户端异常断开连接,这个函数也会在会话结束时被隐式调用。) 现存
pg_advisory_unlock_shared 2 pg_advisory_unlock_shared ( key bigint ) → boolean —
释放以前获取的共享会话级咨询锁。如果锁成功释放则返回 true。如果锁没有被持有,则返回 false,此外,服务器将报告一个 SQL 警告。 现存
pg_advisory_xact_lock 2 pg_advisory_xact_lock ( key bigint ) → void —
获取一个排他的事务级咨询锁,如有必要则等待。 现存
pg_advisory_xact_lock_shared 2 pg_advisory_xact_lock_shared ( key bigint ) → void —
获取一个共享的事务级咨询锁,如有必要则等待。 现存
pg_backup_start 1 pg_backup_start ( label text [, fast boolean ] ) → pg_lsn —
准备服务器开始在线备份。唯一必需的参数是用户任意指定的备份标签。(通常是备份转储文件将要保存的名称。)如果可选的第二个参数为 true,则尽快执行 pg_backup_start。这会强制执行快速检查点,使 I/O 操作量陡增,并降低并发执行的查询的速度。 现存
pg_backup_start_time 1 pg_backup_start_time () → timestamp with time zone —
如果正在进行在线排他备份,返回其开始时间,否则返回 NULL。 于 15 移除
pg_backup_stop 1 pg_backup_stop ( [wait_for_archive boolean ] ) → record ( lsn pg_lsn, labelfile text, spcmapfile text ) —
结束在线备份。备份标签文件和表空间映射文件所需的内容作为函数结果的一部分返回,必须将其写入备份区域中的文件。切勿将这些文件写入正在使用的数据目录(否则发生崩溃后 PostgreSQL 将无法重新启动)。 现存
pg_cancel_backend 1 pg_cancel_backend ( pid integer ) → boolean 8.11 次
取消具有指定进程 ID 的后端进程的会话的当前查询。如果调用角色是被取消的后端进程所属角色的成员,或者调用角色具有 pg_signal_backend 的权限,则也允许执行此操作,但只有超级用户可以取消超级用户后端进程。例外情况是,具有 pg_signal_autovacuum_worker 角色权限的角色可以取消 autovacuum 工作进程,而这些进程原本被视为超级用户后端。 现存
pg_clear_attribute_stats 1 pg_clear_attribute_stats ( schemaname text, relname text, attname text, inherited boolean ) → void —
清除给定关系和属性的列级统计信息,就像该表是新创建的一样。 现存
pg_clear_extended_stats 1 pg_clear_extended_stats ( schemaname name, relname name, statistics_schemaname name, statistics_name name, inherited boolean ) → void —
清空扩展统计对象的数据,就像该对象是新建的一样。必需的参数包括 schemaname 和 relname,用于指定要清空其统计信息的关系的模式和表名,以及 statistics_schemaname 和 statistics_name,用于指定要清空的扩展统计对象的模式和扩展统计名称。 现存
pg_clear_relation_stats 1 pg_clear_relation_stats ( schemaname text, relname text ) → void —
清除给定关系的表级统计信息,就像该表是新创建的一样。 现存
pg_collation_actual_version 1 pg_collation_actual_version ( oid ) → text —
返回当前安装在操作系统中的该排序规则对象的实际版本。如果这个版本与 pg_collation.collversion 中的值不同,则依赖于该排序规则的对象可能需要被重建。还可以参考 ALTER COLLATION。 现存
pg_column_compression 1 pg_column_compression ( "any" ) → text —
显示用于压缩单个变长值的压缩算法。如果值没有被压缩,则返回 NULL。 现存
pg_column_size 1 pg_column_size ( "any" ) → integer —
显示用于存储任何单个数据值的字节数。如果直接应用于表的列值,则反映所做的任何压缩。 现存
pg_column_toast_chunk_id 1 pg_column_toast_chunk_id ( "any" ) → oid8 201 次
显示磁盘上经过 TOAST 处理的值的 chunk_id。如果该值未经过 TOAST 处理或不在磁盘上,则返回 NULL。有关 TOAST 的更多信息,请参见第 66.2 节。 现存
pg_copy_logical_replication_slot 1 pg_copy_logical_replication_slot ( src_slot_name name, dst_slot_name name [, temporary boolean [, plugin name ]] ) → record ( slot_name name, lsn pg_lsn ) —
复制一个名为 src_slot_name 的现有逻辑复制槽到一个名为 dst_slot_name 的逻辑复制槽,可选地更改输出插件和持久性。新槽名称不能是 pg_conflict_detection,因为该名称保留用于冲突检测。被复制的逻辑槽从与源逻辑槽相同的 LSN 开始。temporary 和 plugin 都是可选的。如果它们被省略了,使用与源逻辑槽相同的值。源逻辑槽的 failover 选项不会被复制,而是默认设为 false。这是为了避免故障切换到正在同步该槽的备库后无法继续逻辑复制的风险。不能复制已失效的槽。 现存
pg_copy_physical_replication_slot 1 pg_copy_physical_replication_slot ( src_slot_name name, dst_slot_name name [, temporary boolean ] ) → record ( slot_name name, lsn pg_lsn ) —
将一个名为 src_slot_name 的现有物理复制槽复制到一个名为 dst_slot_name 的物理复制槽。新槽名称不能是 pg_conflict_detection,因为它保留给冲突检测。复制后的物理槽从与源槽相同的 LSN 开始保留 WAL。temporary 是可选的。如果省略了 temporary,则使用与源槽相同的值。不能复制已失效的槽。 现存
pg_create_logical_replication_slot 1 pg_create_logical_replication_slot ( slot_name name, plugin name [, temporary boolean, twophase boolean, failover boolean ] ) → record ( slot_name name, lsn pg_lsn ) 173 次
创建一个名为 slot_name 的新逻辑(解码)复制槽,使用输出插件 plugin。槽名称不能是 pg_conflict_detection,因为它保留给冲突检测槽。可选的第三个参数 temporary,当设置为真时,指定槽不应永久存储到磁盘,仅供当前会话使用。临时槽也会在任何错误发生时释放。可选的第四个参数 twophase,当设置为真时,指定为此槽启用预备事务的解码。可选的第五个参数 failover,当设置为真时,指定启用此槽同步到备库,以便在故障切换后可以恢复逻辑复制。调用此函数的效果与复制协议命令 CREATE_REPLICATION_SLOT ... LOGICAL 相同。 现存
pg_create_physical_replication_slot 1 pg_create_physical_replication_slot ( slot_name name [, immediately_reserve boolean, temporary boolean ] ) → record ( slot_name name, lsn pg_lsn ) 102 次
创建名为 slot_name 的新物理复制槽。槽名称不能是 pg_conflict_detection,因为它保留给冲突检测槽。可选的第二个参数为 true 时,指定立即为此复制槽保留 LSN;否则在流复制客户端首次连接时保留 LSN。从物理槽流式传输更改只能使用流复制协议 — 参见第 54.4 节。可选的第三个参数 temporary 为真时,指定该槽不永久存储到磁盘,且仅供当前会话使用。发生任何错误时,临时槽也会被释放。此函数对应复制协议命令 CREATE_REPLICATION_SLOT ... PHYSICAL。 现存
pg_create_restore_point 1 pg_create_restore_point ( name text ) → pg_lsn 9.41 次
在预写式日志中创建一条命名标记记录,供以后用作恢复目标,并返回相应的预写式日志位置。随后可以在 recovery_target_name 中使用给定名称,指定恢复到哪一点。应避免创建多个同名恢复点,因为恢复会在第一个名称匹配恢复目标的恢复点停止。 现存
pg_current_wal_flush_lsn 1 pg_current_wal_flush_lsn () → pg_lsn —
返回当前预写式日志刷盘位置(参见下文说明)。 现存
pg_current_wal_insert_lsn 1 pg_current_wal_insert_lsn () → pg_lsn —
返回当前预写式日志插入位置(参见下文说明)。 现存
pg_current_wal_lsn 1 pg_current_wal_lsn () → pg_lsn —
返回当前预写式日志写入位置(参见下文说明)。 现存
pg_current_xlog_flush_location 1 pg_current_xlog_flush_location ( ) → pg_lsn —
获取当前预写式日志刷盘位置 于 10 移除
pg_current_xlog_insert_location 1 pg_current_xlog_insert_location ( ) → pg_lsn 9.41 次
获取当前预写式日志插入位置 于 10 移除
pg_current_xlog_location 1 pg_current_xlog_location ( ) → pg_lsn 9.41 次
获取当前预写式日志写入位置 于 10 移除
pg_database_collation_actual_version 1 pg_database_collation_actual_version ( oid ) → text —
返回数据库当前在操作系统中安装的排序规则的实际版本。如果这与 pg_database.datcollversion 中的值不同,则依赖于排序规则的对象可能需要重新构建。参见 ALTER DATABASE。 现存
pg_database_size 2 pg_database_size ( name ) → bigint —
计算具有指定名称或 OID 的数据库使用的总磁盘空间。要使用此函数,您必须对指定数据库具有 CONNECT 权限(默认情况下授予),或者具有 pg_read_all_stats 角色的权限。如果数据库不存在,则抛出错误。 现存
pg_disable_data_checksums 1 pg_disable_data_checksums () → void —
为集簇禁用数据校验和的计算与验证。这会在禁用数据校验和的过程中把状态设置为 inprogress-off。当所有活动后端都停止验证数据校验和后,数据校验和状态将被设置为 off。 现存
pg_drop_replication_slot 1 pg_drop_replication_slot ( slot_name name ) → void —
删除名为 slot_name 的物理或逻辑复制槽。与复制协议命令 DROP_REPLICATION_SLOT 相同。 现存
pg_enable_data_checksums 1 pg_enable_data_checksums ( [cost_delay int [, cost_limit int]] ) → void —
启动为集簇启用数据校验和的过程。这会把数据校验和状态设置为 inprogress-on,并启动一个后台工作进程来处理所有数据库中的所有页并为其启用数据校验和。当所有页都处理完后,集簇会自动把数据校验和状态设置为 on。该操作会写入 WAL,并复制到所有备库。 现存
pg_export_snapshot 1 pg_export_snapshot () → text —
保存事务的当前快照并返回 text 字符串以标识该快照。必须将此字符串传递(在数据库之外)给希望导入快照的客户端。快照仅在导出它的事务结束之前才可用于导入。 现存
pg_filenode_relation 1 pg_filenode_relation ( tablespace oid, filenode oid ) → regclass —
根据关系所在表空间的 OID 和文件节点返回该关系的 OID。这本质上是 pg_relation_filepath 的反向映射。对于数据库默认表空间中的关系,表空间可以指定为 0。如果当前数据库中没有与给定值关联的关系,或者该关系是临时关系,则返回 NULL。 现存
pg_get_wal_replay_pause_state 1 pg_get_wal_replay_pause_state () → text —
返回恢复暂停状态。如果没有请求暂停,返回值是 not paused,如果请求暂停但恢复还没有暂停,返回值是 pause requested,如果恢复实际已经暂停,返回值是 paused。 现存
pg_get_wal_resource_managers 1 pg_get_wal_resource_managers () → setof record ( rm_id integer, rm_name text, rm_builtin boolean ) —
返回系统中当前加载的 WAL 资源管理器。列 rm_builtin 指示它是内置资源管理器还是由扩展加载的自定义资源管理器。 现存
pg_import_system_collations 1 pg_import_system_collations ( schema regnamespace ) → integer —
根据操作系统中找到的所有区域设置,向系统目录 pg_collation 添加排序规则。initdb 使用的就是此函数;更多信息见第 23.2.2 节。如果以后在操作系统中安装了其他区域设置,可以再次运行此函数,为新区域设置添加排序规则。与 pg_collation 中现有条目匹配的区域设置会被跳过。(但此函数不会删除基于操作系统中已不存在的区域设置的排序规则对象。)schema 参数通常为 pg_catalog,但并非必须如此;也可以将排序规则安装到其他模式中。函数返回新建的排序规则对象数量。此函数仅限超级用户使用。 现存
pg_indexes_size 1 pg_indexes_size ( regclass ) → bigint —
计算附加到指定表的索引所使用的总磁盘空间。 现存
pg_is_in_backup 1 pg_is_in_backup () → boolean —
如果正在进行在线排他备份,则返回 true。 于 15 移除
pg_is_in_recovery 1 pg_is_in_recovery () → boolean —
如果恢复仍在进行则返回真。 现存
pg_is_wal_replay_paused 1 pg_is_wal_replay_paused () → boolean —
如果已请求暂停恢复,则返回真。 现存
pg_is_xlog_replay_paused 1 pg_is_xlog_replay_paused ( ) → bool —
如果恢复已暂停,则为真。 于 10 移除
pg_last_wal_receive_lsn 1 pg_last_wal_receive_lsn () → pg_lsn —
返回流复制最近接收并同步到磁盘的预写式日志位置。在流复制进行期间,该值单调增加。如果恢复已完成,该值将保持为恢复期间最后接收并同步到磁盘的 WAL 记录的位置。如果禁用了流复制,或者流复制尚未开始,此函数返回 NULL。 现存
pg_last_wal_replay_lsn 1 pg_last_wal_replay_lsn () → pg_lsn —
返回恢复期间最近重放的预写式日志位置。如果恢复仍在进行,该值单调增加。如果恢复已完成,该值将保持为该次恢复期间最后应用的 WAL 记录的位置。如果服务器未经恢复而正常启动,此函数返回 NULL。 现存
pg_last_xact_replay_timestamp 1 pg_last_xact_replay_timestamp () → timestamp with time zone —
返回恢复期间最近重放事务的时间戳,即该事务的提交或中止 WAL 记录在主库上生成的时间。如果恢复期间尚未重放任何事务,此函数返回 NULL。否则,如果恢复仍在进行,该值单调增加。如果恢复已完成,该值将保持为该次恢复期间最后应用的事务的时间戳。如果服务器未经恢复而正常启动,此函数返回 NULL。 现存
pg_last_xlog_receive_location 1 pg_last_xlog_receive_location ( ) → pg_lsn 9.41 次
获取流复制最近接收并同步到磁盘的预写式日志位置。在流复制进行期间,该值单调增加。如果恢复已完成,该值将保持为恢复期间最后接收并同步到磁盘的 WAL 记录的位置。如果禁用了流复制,或者流复制尚未开始,此函数返回 NULL。 于 10 移除
pg_last_xlog_replay_location 1 pg_last_xlog_replay_location ( ) → pg_lsn 9.41 次
获取恢复期间最近重放的预写式日志位置。如果恢复仍在进行,该值单调增加。如果恢复已完成,该值将保持为该次恢复期间最后应用的 WAL 记录的位置。如果服务器未经恢复而正常启动,此函数返回 NULL。 于 10 移除
pg_log_backend_memory_contexts 1 pg_log_backend_memory_contexts ( pid integer ) → boolean —
请求记录具有指定进程 ID 的后端进程的内存上下文。此函数可以向除日志记录进程以外的后端进程和辅助进程发送请求。这些内存上下文将以 LOG 消息级别记录,并根据日志配置出现在服务器日志中(详见第 19.8 节);无论 client_min_messages 如何设置,都不会发送给客户端。 现存
pg_log_standby_snapshot 1 pg_log_standby_snapshot () → pg_lsn —
为进行中的事务拍摄快照并将其写入 WAL,无须等待后台写入器或检查点进程记录快照。这对备用服务器上的逻辑解码很有用,因为创建逻辑复制槽必须等待此类记录在备用服务器上重放。 现存
pg_logical_emit_message 2 pg_logical_emit_message ( transactional boolean, prefix text, content text [, flush boolean DEFAULT false] ) → pg_lsn 171 次
发出逻辑解码消息。这可用于通过 WAL 向逻辑解码插件传递通用消息。transactional 参数指定消息是作为当前事务的一部分,还是立即写入并在逻辑解码器读到该记录时立即解码。prefix 参数是一个文本前缀,便于逻辑解码插件识别其关注的消息。content 参数是消息内容,可以文本或二进制形式给出。flush 参数(默认为 false)控制是否立即将消息对应的 WAL 记录刷盘。transactional 为真时,flush 不起作用,因为消息的 WAL 记录会与其事务一起刷盘。 现存
pg_logical_slot_get_binary_changes 1 pg_logical_slot_get_binary_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data bytea ) 101 次
行为就像 pg_logical_slot_get_changes() 函数,不过改变会以 bytea 返回。 现存
pg_logical_slot_get_changes 1 pg_logical_slot_get_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data text ) 101 次
返回槽 slot_name 中自上次消费更改的位置起的更改。如果 upto_lsn 和 upto_nchanges 都为 NULL,逻辑解码会持续到 WAL 末尾。如果 upto_lsn 非 NULL,解码仅包含在指定 LSN 之前提交的事务。如果 upto_nchanges 非 NULL,解码产生的行数超过指定值时就会停止。不过,实际返回行数可能更大,因为只有在添加完对每个新事务提交进行解码所产生的行后,才会检查此限制。如果指定的槽是逻辑故障切换槽,则只有在 synchronized_standby_slots 中指定的所有物理槽都确认已接收 WAL 后,该函数才会返回。 现存
pg_logical_slot_peek_binary_changes 1 pg_logical_slot_peek_binary_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data bytea ) 101 次
行为就像 pg_logical_slot_peek_changes() 函数,不过改变会以 bytea 返回。 现存
pg_logical_slot_peek_changes 1 pg_logical_slot_peek_changes ( slot_name name, upto_lsn pg_lsn, upto_nchanges integer, VARIADIC options text[] ) → setof record ( lsn pg_lsn, xid xid, data text ) 101 次
行为就像 pg_logical_slot_get_changes() 函数,不过改变不会被消费,即在未来的调用中还会返回这些改变。 现存
pg_ls_archive_statusdir 1 pg_ls_archive_statusdir () → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器 WAL 归档状态目录(pg_wal/archive_status)中每个普通文件的名称、大小和最后修改时间(mtime)。以点号开头的文件名、目录以及其他特殊文件都不会包含在结果中。 现存
pg_ls_dir 1 pg_ls_dir ( dirname text [, missing_ok boolean, include_dot_dirs boolean ] ) → setof text 9.51 次
返回指定目录中所有文件的名称(包括目录及其他特殊文件)。include_dot_dirs 参数指示结果集中是否包含“.”和“..”;默认不包含它们。在 missing_ok 为 true 时,包含它们有助于区分不存在的目录和空目录。 现存
pg_ls_logdir 1 pg_ls_logdir () → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器日志目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 现存
pg_ls_logicalmapdir 1 pg_ls_logicalmapdir () → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器的 pg_logical/mappings 目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 现存
pg_ls_logicalsnapdir 1 pg_ls_logicalsnapdir () → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器的 pg_logical/snapshots 目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 现存
pg_ls_replslotdir 1 pg_ls_replslotdir ( slot_name text ) → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器的 pg_replslot/slot_name 目录中每个普通文件的名称、大小和最后修改时间(mtime),其中 slot_name 是作为函数输入提供的复制槽的名称。以点开头的文件名、目录和其他特殊文件将被排除。 现存
pg_ls_summariesdir 1 pg_ls_summariesdir () → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器 WAL 摘要目录(pg_wal/summaries)中每个普通文件的名称、大小和最后修改时间(mtime)。排除名称以点开头的文件、目录及其他特殊文件。 现存
pg_ls_tmpdir 1 pg_ls_tmpdir ( [ tablespace oid ] ) → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回针对指定 tablespace 的临时文件目录中每个普通文件的名称、大小和最后修改时间(mtime)。如果未提供 tablespace,则检查 pg_default 表空间。以点号开头的文件名、目录以及其他特殊文件都不会包含在结果中。 现存
pg_ls_waldir 1 pg_ls_waldir () → setof record ( name text, size bigint, modification timestamp with time zone ) —
返回服务器的预写式日志(WAL)目录中每个普通文件的名称、大小和最后修改时间(mtime)。以点开头的文件名、目录和其他特殊文件将被排除。 现存
pg_partition_ancestors 1 pg_partition_ancestors ( regclass ) → setof regclass —
列出给定分区的祖先关系,包括关系本身。如果关系不存在,或者不是分区或分区表,则不返回行。 现存
pg_partition_root 1 pg_partition_root ( regclass ) → regclass —
返回给定关系所属的分区树的最顶级父节点。如果关系不存在,或者不是分区或分区表,则返回 NULL。 现存
pg_partition_tree 1 pg_partition_tree ( regclass ) → setof record ( relid regclass, parentrelid regclass, isleaf boolean, level integer ) —
列出给定分区表或分区索引的分区树中的表或索引,每行对应一个分区。提供的信息包括分区的 OID、其直接父的 OID、一个布尔值以告知分区是否是叶子,以及一个整数用来告诉分区在层次结构中的级别。对于输入表或索引,级别值为 0,其直接子分区的为 1,它们的分区为 2,以此类推。如果关系不存在,或者不是分区或分区表,则不返回行。 现存
pg_promote 1 pg_promote ( wait boolean DEFAULT true, wait_seconds integer DEFAULT 60 ) → boolean —
将备库提升为主库状态。当 wait 设置为 true(默认值)时,函数将等待直到提升完成或 wait_seconds 秒数已过,如果提升成功则返回 true,否则返回 false。如果 wait 设置为 false,则该函数在向 postmaster 发送 SIGUSR1 信号以触发提升后立即返回 true。 现存
pg_read_binary_file 1 pg_read_binary_file ( filename text [, offset bigint, length bigint ] [, missing_ok boolean ] ) → bytea 162 次
返回文件的全部或部分。该函数与 pg_read_file 完全相同,只是它可以读取任意二进制数据,并返回 bytea 而不是 text;因此不会执行编码检查。 现存
pg_read_file 1 pg_read_file ( filename text [, offset bigint, length bigint ] [, missing_ok boolean ] ) → text 163 次
返回一个文本文件的全部或部分,从给定的字节 offset 开始,最多返回 length 字节(如果先到达文件末尾,则返回更少)。如果 offset 为负,则它相对于文件末尾计算。如果省略 offset 和 length,则返回整个文件。从文件中读取的字节会按数据库编码解释为字符串;如果它们在该编码下无效,则会抛出错误。 现存
pg_relation_filenode 1 pg_relation_filenode ( relation regclass ) → oid —
返回当前分配给指定关系的“文件节点”编号。文件节点是关系所用文件名的基本组成部分(更多信息见第 66.1 节)。对于大多数关系,结果与 pg_class.relfilenode 相同;但某些系统目录的 relfilenode 为零,必须使用此函数获取正确值。如果传入的关系没有存储空间(例如视图),函数返回 NULL。 现存
pg_relation_filepath 1 pg_relation_filepath ( relation regclass ) → text —
返回关系的完整文件路径名称(相对于数据库集簇的数据目录,即 PGDATA)。 现存
pg_relation_size 1 pg_relation_size ( relation regclass [, fork text ] ) → bigint 8.41 次
计算指定关系的一个“分支”所使用的磁盘空间。(注意在大多数情况下,使用更高级的函数 pg_total_relation_size 或 pg_table_size 更方便,它们将所有分支的大小相加。)使用一个参数,这将返回关系的主数据分支的大小。第二个参数可以用来指定要检查哪个分支: 现存
pg_reload_conf 1 pg_reload_conf () → boolean —
使 PostgreSQL 服务器的所有进程重新加载其配置文件。(这是通过向 postmaster 进程发送 SIGHUP 信号来启动的,postmaster 进程又向其每个子进程发送 SIGHUP。)您可以使用 pg_file_settings、pg_hba_file_rules 和 pg_ident_file_mappings 视图来检查可能存在的错误,然后再重新加载配置文件。 现存
pg_replication_origin_advance 1 pg_replication_origin_advance ( node_name text, lsn pg_lsn ) → void 101 次
将给定节点的复制进度设置为给定的位置。这主要用于设置初始位置,或在配置更改或类似的变更后设置新位置。请注意这个函数的不当使用可能会导致不一致的复制数据。 现存
pg_replication_origin_create 1 pg_replication_origin_create ( node_name text ) → oid —
用给定的外部名称创建一个复制源,并且返回分配给它的内部 ID。该名称长度不得超过 512 字节。 现存
pg_replication_origin_drop 1 pg_replication_origin_drop ( node_name text ) → void —
删除一个以前创建的复制源,包括任何相关的重放进度。 现存
pg_replication_origin_oid 1 pg_replication_origin_oid ( node_name text ) → oid —
通过名称查找复制源并返回其内部 ID。如果未找到这样的复制源,则返回 NULL。 现存
pg_replication_origin_progress 1 pg_replication_origin_progress ( node_name text, flush boolean ) → pg_lsn —
返回给定复制源的重放位置。参数 flush 决定是否保证对应的本地事务已刷盘。 现存
pg_replication_origin_session_is_setup 1 pg_replication_origin_session_is_setup () → boolean —
如果在当前会话中选择了复制源则返回真。 现存
pg_replication_origin_session_progress 1 pg_replication_origin_session_progress ( flush boolean ) → pg_lsn —
返回当前会话中选择的复制源的重放位置。参数 flush 决定是否保证对应的本地事务已刷盘。 现存
pg_replication_origin_session_reset 1 pg_replication_origin_session_reset () → void —
取消 pg_replication_origin_session_setup() 的效果。 现存
pg_replication_origin_session_setup 1 pg_replication_origin_session_setup ( node_name text [, pid integer DEFAULT 0] ) → void 191 次
将当前会话标记为从给定的复制源重放,从而允许跟踪重放进度。只能在当前没有选择复制源时使用。使用 pg_replication_origin_session_reset 来撤销。如果多个进程可以安全地使用同一个复制源(例如,并行应用进程),则可选的 pid 参数可用于指定第一个进程的进程 ID。第一个进程必须提供 pid 等于 0,而共享同一复制源的其他进程应提供第一个进程的进程 ID。 现存
pg_replication_origin_xact_reset 1 pg_replication_origin_xact_reset () → void 9.61 次
取消 pg_replication_origin_xact_setup() 的效果。 现存
pg_replication_origin_xact_setup 1 pg_replication_origin_xact_setup ( origin_lsn pg_lsn, origin_timestamp timestamp with time zone ) → void —
将当前事务标记为重放在给定 LSN 和时间戳上提交的事务。只能在使用 pg_replication_origin_session_setup 选择复制源时调用。 现存
pg_replication_slot_advance 1 pg_replication_slot_advance ( slot_name name, upto_lsn pg_lsn ) → record ( slot_name name, end_lsn pg_lsn ) —
推进名为 slot_name 的复制槽当前已确认的位置。该槽不会后退,也不会越过当前插入位置。返回槽名及其实际推进到的位置。如果发生了推进,更新后的槽位置信息会在下一个检查点写出。因此,发生崩溃时,槽可能回到更早的位置。如果指定的槽是逻辑故障切换槽,则只有在 synchronized_standby_slots 中指定的所有物理槽都确认已接收 WAL 后,该函数才会返回。 现存
pg_restore_attribute_stats 1 pg_restore_attribute_stats ( VARIADIC kwargs "any" ) → boolean —
创建或更新列级统计信息。通常这些统计信息会自动收集或作为 VACUUM 或 ANALYZE 的一部分更新,因此不必调用此函数。但它在恢复后很有用,可以在尚未运行 ANALYZE 时帮助优化器选择更好的计划。 现存
pg_restore_extended_stats 1 pg_restore_extended_stats ( VARIADIC kwargs "any" ) → boolean —
创建或更新统计对象的统计信息。通常这些统计会自动收集,或者作为 VACUUM 或 ANALYZE 的一部分更新,因此通常不必调用此函数。不过,如果恢复后 ANALYZE 还没有运行,它可帮助优化器选择更好的计划。 现存
pg_restore_relation_stats 1 pg_restore_relation_stats ( VARIADIC kwargs "any" ) → boolean —
更新表级统计信息。通常这些统计信息会自动收集或作为 VACUUM 或 ANALYZE 的一部分更新,因此不必调用此函数。但它在恢复后很有用,可以在尚未运行 ANALYZE 时帮助优化器选择更好的计划。 现存
pg_rotate_logfile 1 pg_rotate_logfile () → boolean —
通知日志文件管理器立即切换到一个新的输出文件。这仅在内置日志收集器运行时有效,因为否则没有日志文件管理器子进程。 现存
pg_size_bytes 1 pg_size_bytes ( text ) → bigint —
将人类可读格式的大小(由 pg_size_pretty 返回)转换为字节。有效的单位为 bytes、B、kB、MB、GB、TB 和 PB。 现存
pg_size_pretty 2 pg_size_pretty ( bigint ) → text 9.21 次
将字节大小转换为更易于人类阅读的格式,带有大小单位(字节,kB,MB,GB,TB 或 PB)。请注意,单位是 2 的幂,而不是 10 的幂,因此 1kB 是 1024 字节,1MB 是 10242 = 1048576 字节,依此类推。 现存
pg_split_walfile_name 1 pg_split_walfile_name ( file_name text ) → record ( segment_number numeric, timeline_id bigint ) —
从 WAL 文件名中提取序列号和时间线 ID。 现存
pg_start_backup 1 pg_start_backup ( label text [, fast boolean [, exclusive boolean ]] ) → pg_lsn 9.64 次
准备服务器开始在线备份。唯一必需的参数是用户任意指定的备份标签。(通常是备份转储文件将要保存的名称。)如果可选的第二个参数为 true,则尽快执行 pg_start_backup。这会强制立即执行检查点,使 I/O 操作量陡增,并降低并发执行的查询的速度。可选的第三个参数指定执行排他备份还是非排他备份(默认为排他备份)。 于 15 移除
pg_stat_file 1 pg_stat_file ( filename text [, missing_ok boolean ] ) → record ( size bigint, access timestamp with time zone, modification timestamp with time zone, change timestamp with time zone, creation timestamp with time zone, isdir boolean ) 9.51 次
返回一个记录,包含文件大小、最后访问时间戳、最后修改时间戳、最后文件状态变更时间戳(仅限 Unix 平台)、文件创建时间戳(仅限 Windows)以及一个指示其是否为目录的标志。 现存
pg_stop_backup 2 pg_stop_backup ( exclusive boolean [, wait_for_archive boolean ] ) → setof record ( lsn pg_lsn, labelfile text, spcmapfile text ) 103 次
结束排他或非排他的在线备份。exclusive 参数必须与先前调用 pg_start_backup 时的值一致。在排他备份中,pg_stop_backup 会移除由 pg_start_backup 创建的备份标签文件,以及表空间映射文件(如果存在)。在非排他备份中,这些文件所需的内容作为函数结果的一部分返回,应将其写入备份区域中的文件(而不是数据目录)。 于 15 移除
pg_switch_wal 1 pg_switch_wal () → pg_lsn —
强制服务器切换到新的预写式日志文件,使当前文件可以归档(假设正在使用连续归档)。返回值是刚完成的预写式日志文件中的结束预写式日志位置加 1。如果自上次切换预写式日志以来没有发生任何预写式日志活动,pg_switch_wal 不执行任何操作,并返回当前使用的预写式日志文件的起始位置。 现存
pg_switch_xlog 1 pg_switch_xlog ( ) → pg_lsn 9.41 次
强制切换到新的预写式日志文件(默认仅限超级用户,但可以向其他用户授予EXECUTE权限以运行此函数) 于 10 移除
pg_sync_replication_slots 1 pg_sync_replication_slots () → void —
将逻辑故障切换复制槽从主库同步到备库。此函数只能在备库上执行。临时同步的槽(如果有)不能用于逻辑解码,必须在提升后删除。此函数会循环重试,直到在函数调用开始时存在于主库上的所有故障切换槽都同步完成。详见第 47.2.3 节。请注意,如果 sync_replication_slots 已启用且 slotsync 工作进程已在运行以执行槽同步,则无法执行此函数。 现存
pg_table_size 1 pg_table_size ( regclass ) → bigint —
计算指定表所使用的磁盘空间,不包括索引(但包括其 TOAST 表(如有)、空闲空间映射和可见性映射)。 现存
pg_tablespace_size 2 pg_tablespace_size ( name ) → bigint —
计算具有指定名称或 OID 的表空间中使用的总磁盘空间。要使用此函数,您必须对指定的表空间具有 CREATE 权限,或者具有 pg_read_all_stats 角色的权限,除非它是当前数据库的默认表空间。如果表空间不存在,则抛出错误。 现存
pg_terminate_backend 1 pg_terminate_backend ( pid integer, timeout bigint DEFAULT 0 ) → boolean 141 次
终止具有指定进程 ID 的后端进程的会话。如果调用角色是正在终止的后端的角色的成员,或者调用角色具有 pg_signal_backend 的权限,则也允许执行此操作,但只有超级用户才能终止超级用户后端。例外情况是,具有 pg_signal_autovacuum_worker 角色权限的角色可以终止 autovacuum 工作进程,而这些进程原本被视为超级用户后端。 现存
pg_total_relation_size 1 pg_total_relation_size ( regclass ) → bigint 8.41 次
计算指定表所使用的总磁盘空间,包括所有索引和 TOAST 数据。结果等价于 pg_table_size + pg_indexes_size。 现存
pg_try_advisory_lock 2 pg_try_advisory_lock ( key bigint ) → boolean —
尝试获取一个排他的会话级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 现存
pg_try_advisory_lock_shared 2 pg_try_advisory_lock_shared ( key bigint ) → boolean —
尝试获取一个共享的会话级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 现存
pg_try_advisory_xact_lock 2 pg_try_advisory_xact_lock ( key bigint ) → boolean —
尝试获取一个排他的事务级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 现存
pg_try_advisory_xact_lock_shared 2 pg_try_advisory_xact_lock_shared ( key bigint ) → boolean —
尝试获取一个共享的事务级咨询锁。如果能立即获取到锁,就返回 true;否则立即返回 false,而不等待。 现存
pg_wal_lsn_diff 1 pg_wal_lsn_diff ( lsn1 pg_lsn, lsn2 pg_lsn ) → numeric —
计算两个预写式日志位置之间的字节差(lsn1 - lsn2)。可以将它与 pg_stat_replication 或表 9.99 中的某些函数配合使用,以获取复制延迟。 现存
pg_wal_replay_pause 1 pg_wal_replay_pause () → void —
请求暂停恢复。请求不意味着恢复马上停止。如果你想要保证恢复实际上是暂停的,你需要检查 pg_get_wal_replay_pause_state() 返回的恢复暂停状态。注意,pg_is_wal_replay_paused() 返回是否作出请求。在恢复暂停时,不会应用进一步的数据库更改。如果热备是激活的,所有新查询将看到相同的一致的数据库快照,并且在恢复继续之前不会生成进一步的查询冲突。 现存
pg_wal_replay_resume 1 pg_wal_replay_resume () → void —
如果暂停了,则重新启动恢复。 现存
pg_walfile_name 1 pg_walfile_name ( lsn pg_lsn ) → text —
将预写式日志位置转换为包含该位置的 WAL 文件的名称。 现存
pg_walfile_name_offset 1 pg_walfile_name_offset ( lsn pg_lsn ) → record ( file_name text, file_offset integer ) —
将预写式日志位置转换为 WAL 文件名和该文件中的字节偏移量。 现存
pg_xlog_location_diff 1 pg_xlog_location_diff ( location pg_lsn, location pg_lsn ) → numeric 9.41 次
计算两个事务日志位置之差 于 10 移除
pg_xlog_replay_pause 1 pg_xlog_replay_pause ( ) → void —
立即暂停恢复(默认仅限超级用户,但可以向其他用户授予EXECUTE权限以运行此函数)。 于 10 移除
pg_xlog_replay_resume 1 pg_xlog_replay_resume ( ) → void —
如果恢复已暂停,则重新开始恢复(默认仅限超级用户,但可以向其他用户授予EXECUTE权限以运行此函数)。 于 10 移除
pg_xlogfile_name 1 pg_xlogfile_name ( location pg_lsn ) → text 9.41 次
将事务日志位置字符串转换为文件名 于 10 移除
pg_xlogfile_name_offset 1 pg_xlogfile_name_offset ( location pg_lsn ) → text, integer 9.41 次
将事务日志位置字符串转换为文件名和文件内的十进制字节偏移量 于 10 移除
set_config 1 set_config ( setting_name text, new_value text, is_local boolean ) → text —
将参数 setting_name 设置为 new_value,并返回该值。如果 is_local 为 true,新值仅在当前事务期间生效。如果希望新值在当前会话的剩余时间内生效,则使用 false。此函数对应 SQL 命令 SET。 现存
TRIGGER FUNCTIONS 触发器函数 3 个 ↑
suppress_redundant_updates_trigger 1 suppress_redundant_updates_trigger ( ) → trigger —
抑制不改变数据的更新操作。详见下文。 现存
tsvector_update_trigger 1 tsvector_update_trigger ( ) → trigger —
根据关联的纯文本文档列自动更新 tsvector 列。所用的全文检索配置以名称形式指定为触发器参数。详见第 12.4.3 节。 现存
tsvector_update_trigger_column 1 tsvector_update_trigger_column ( ) → trigger —
根据关联的纯文本文档列自动更新 tsvector 列。所用的全文检索配置取自表的 regconfig 列。详见第 12.4.3 节。 现存
EVENT TRIGGER FUNCTIONS 事件触发器函数 4 个 ↑
pg_event_trigger_ddl_commands 1 pg_event_trigger_ddl_commands () → setof record —
当在一个 ddl_command_end 事件触发器的函数中调用时,pg_event_trigger_ddl_commands 返回被每一个用户动作执行的 DDL 命令的列表。如果在其他任何环境中调用这个函数,会发生错误。pg_event_trigger_ddl_commands 为每一个被执行的基本命令返回一行,某些由单条 SQL 语句构成的命令可能会返回多于一行。这个函数返回下面的列: 现存
pg_event_trigger_dropped_objects 1 pg_event_trigger_dropped_objects () → setof record —
在命令的 sql_drop 事件中调用 pg_event_trigger_dropped_objects 时,它返回该命令删除的所有对象的列表。如果调用在任何其他上下文中,会引发一个错误。这个函数返回以下列: 现存
pg_event_trigger_table_rewrite_oid 1 pg_event_trigger_table_rewrite_oid () → oid —
返回将要重写的表的 OID。 现存
pg_event_trigger_table_rewrite_reason 1 pg_event_trigger_table_rewrite_reason () → integer —
返回一个说明重写原因的代码。该值是由以下值组成的位图:1(表的持久性发生变化)、2(某列的默认值发生变化)、4(某列具有新的数据类型)以及 8(表访问方法发生变化)。 现存
STATISTICS INFORMATION FUNCTIONS 统计信息函数 1 个 ↑
pg_mcv_list_items 1 pg_mcv_list_items ( pg_mcv_list ) → setof record —
pg_mcv_list_items 返回一组记录,描述存储在多列 MCV 列表中的所有项目。它返回以下列: 现存

说明

库里共 711 个函数、27 个大版本、11331 份逐版本快照,最新一版合计 926 条签名;相邻大版本之间记录到 309 处签名变化,20 个函数已经不在最新版本里。「主签名」是该函数在最新收录版本里的第一条签名,完整签名与全部重载写在详情页;一个函数出现在多页时,这里归到它最新一版里页面序最靠前的那一组。每行的「版本变动」是一排方格,一格一个大版本,与表头刻度逐格对齐;鼠标停在某一格上会写出它是哪一版、发生了什么。PostgreSQL 13 重排了手册里函数表的写法,签名文本整体改变,那一跳只记函数的增删,不逐条比较签名。函数签名、版本与示例依据同版本 PostgreSQL 英文手册;中文说明来自已核对的同版本中文手册与审阅译文。