本小节将会为您介绍当前交互式分析(Hologres)支持的函数列表,包括内建函数和扩展函数。

交互式分析(Hologres)兼容PostgreSQL,使用标准的PostgreSQL语法开发,因此常规的SQL函数都可以用于交互式分析(Hologres)开发。但当前版本支持的函数是PostgreSQL的一个子集,以下为交互式分析已支持的函数列表。具体关于函数的使用可以参见PostgreSQL官网文档

数学函数

当前交互式分析(Hologres)支持的数学函数列表如下。

函数名 是否支持 是否新增
abs(bigint)
abs(int)
abs(float8)
abs(float4)
abs(numeric)
cbrt(dp)
ceil(dp )
ceil(numeric)
ceiling(dp )
ceiling(numeric)
degrees(dp)
exp(dp)
exp(numeric)
floor(dp )
floor(numeric)
ln(dp)
ln(numeric)
log(dp)
log(numeric)
log(b numeric, x numeric)
mod(bigint, x)
mod(int, x)
pi()
power(a dp, b dp)
power(a numeric, b numeric)
radians(dp)
round(dp )
round(numeric)
round(v numeric, s int)
sign(dp )
sign(numeric)
sqrt(dp)
sqrt(numeric)
trunc(dp)
trunc(numeric)
trunc(v numeric, s int)
width_bucket(operand numeric, b1 numeric, ...)
random()

三角函数

当前交互式分析(Hologres)支持的三角函数列表如下。

函数名 是否支持 是否新增
acos(bigint)
acos(int)
acos(float8)
acos(float4)
acos(numeric)
asin(bigint)
asin(int)
asin(float8)
asin(float4)
asin(numeric)
atan(bigint)
atan(int)
atan(float8)
atan(float4)
atan(numeric)
atan2(bigint)
atan2(int)
atan2(float8)
atan2(float4)
atan2(numeric)
cos(bigint)
cos(int)
cos(float8)
cos(float4)
cos(numeric)
cot(bigint)
cot(int)
cot(float8)
cot(float4)
cot(numeric)
sin(bigint)
sin(int)
sin(float8)
sin(float4)
sin(numeric)
tan(bigint)
tan(int)
tan(float8)
tan(float4)
tan(numeric)

字符串函数

当前交互式分析(Hologres)支持的字符串函数列表如下。

函数名 是否支持 是否新增
string || string
bit_length(string)
char_length(string)
lower(string)
octet_length(string)
position(substring in string)
substring(string [from int] [for int])
substring(string from pattern)
substring(string from pattern for escape)
trim([leading | trailing | both] [characters] from string)
trim([lea| tra| both] [from] string [, char] )
upper(string)

其他PG字符串函数

当前交互式分析(Hologres)支持的其他PG字符串函数列表如下。

函数名 是否支持 是否新增
ascii(string)
btrim(string text [, characters text])
chr(int)
concat(str "any" [, str "any" [, ...] ])
initcap(string)
length(string)
lpad(string text, length int [, fill text])
ltrim(string text [, characters text])
md5(string)
parse_ident(quali_iden text [,...] )
quote_ident(string text)
quote_literal(string text)
regexp_matches(string text, pattern text )
regexp_replace(str text, pat text, replace text )
regexp_split_to_array(string text, pattern text )
regexp_split_to_table(string text, pattern text )
repeat(string text, number int)
replace(string text, from text, to text)
rpad(string text, length int [, fill text])
rtrim(string text [, characters text])
strpos(string, substring)
substr(string, from [, count])
starts_with(string, prefix)
to_hex(number int or bigint)
translate(string text, from text, to text)

模式匹配函数

当前交互式分析(Hologres)支持的模式匹配函数列表如下。

函数名 是否支持 是否新增
like
not like
similar to
not similar to
rlike ~
rlike !~*
rlike ~*
rlike !~
substring()
regexp_replace()
regexp_split_to_table
regexp_split_to_array

时间/日期函数

当前交互式分析(Hologres)支持的时间/日期函数列表如下。

函数名 是否支持 是否新增
to_char(timestamp, text)
to_char(int, text)
to_char(double precision, text)
to_date(text, text)
to_number(text, text)
to_timestamp(text, text)
date - date
clock_timestamp()
current_date
current_timestamp
date_part(text, timestamp)
date_trunc(text, timestamp)
extract(field from timestamp)
isfinite(date)
isfinite(timestamp)
isfinite(interval)
make_date(year int, month int, day int)
localtimestamp
now()
statement_timestamp()
timeofday()
transaction_timestamp()
to_timestamp(double precision)

条件表达函数

当前交互式分析(Hologres)支持的条件表达函数列表如下。

函数名 是否支持 是否新增
case
coalesce
nullif
greatest
least

数组函数

当前交互式分析(Hologres)支持的数组函数列表如下。

函数名 是否支持 是否新增
array_append(anyarray, anyelement)
array_dims(anyarray)
array_lower(anyarray, int)
array_prepend(anyelement, anyarray)
array_upper(anyarray, int)
unnest(anyarray)

通用集合函数

当前交互式分析(Hologres)支持的通用集合函数列表如下。

函数名 是否支持 是否新增
array_agg(bigint)
array_agg(bool)
array_agg(text)
array_agg(float8)
array_agg(float4)
array_agg(int)
avg(bigint)
avg(float8)
avg(float4)
avg(int)
bit_and(bigint)
bit_and(int)
bit_or(bigint)
bit_or(int)
bool_and(bool)
bool_or(bool)
cout(*)
cout(bigint)
cout(numeric)
every(bool)
max(bigint)
max(float8)
max(float4)
max(int)
max(numeric)
min(bigint)
min(float8)
min(float4)
min(int)
min(numeric)
sum(bigint)
sum(float8)
sum(float4)
sum(int)
sum(numeric)
string_agg(expression, delimiter)
corr(Y, X)
covar_pop(Y, X)
covar_samp(Y, X)
regr_avgx(Y, X)
regr_avgy(Y, X)
regr_count(Y, X)
regr_intercept(Y, X)
regr_r2(Y, X)
regr_slope(Y, X)
regr_sxx(Y, X)
regr_sxy(Y, X)
regr_syy(Y, X)
stddev(int)
stddev(numeric)
stddev(float8)
stddev_pop(int)
stddev_pop(numeric)
stddev_pop(float8)
stddev_samp(int)
stddev_samp(numeric)
stddev_samp(float8)
variance(int)
variance(numeric)
var_pop(float8)
var_pop(int)
var_pop(numeric)
var_samp(float8)
var_samp(int)
var_samp(numeric)

有序集合函数

当前交互式分析(Hologres)支持的有序集合函数列表如下。

函数名 是否支持 是否新增
GROUPING(args...)

窗口函数

当前交互式分析(Hologres)支持的窗口函数列表如下。

函数名 是否支持 是否新增
row_number()
rank()
dense_rank()
percent_rank()
lag()
lead()
first_value()
last_value()

子查询函数

当前交互式分析(Hologres)支持的子查询函数列表如下。

函数名 是否支持 是否新增
EXISTS (subquery)
IN (subquery)
NOT IN (subquery)
ANY (subquery)
SOME (subquery)

比较函数

当前交互式分析(Hologres)支持的比较函数列表如下。

函数名 是否支持 是否新增
NOT IN (values,...)
IN (values,...)

设置返回函数

当前交互式分析(Hologres)支持的设置返回函数列表如下。

函数名 是否支持 是否新增
generate_series(start, stop)
generate_series(start, stop, step)
generate_series(start, stop, step interval)
generate_subscripts(array anyarray, dim int)

连接信息函数

交互式分析(Hologres)支持的连接信息函数列表如下。

函数名 是否支持 是否新增
current_catalog
current_database()
current_query()
current_role
current_schema[()]
current_schemas(boolean)
current_user
inet_client_addr()
inet_client_port()
inet_server_addr()
inet_server_port()
pg_backend_pid()
pg_blocking_pids(int)
pg_conf_load_time()
pg_current_logfile([text])
pg_my_temp_schema()
pg_is_other_temp_schema(oid)
pg_jit_available()
pg_listening_channels()
pg_notification_queue_usage()
pg_postmaster_start_time()
pg_safe_snapshot_blocking_pids(int)
pg_trigger_depth()
session_user
user
version()

权限查询函数

交互式分析(Hologres)支持的连接信息函数列表如下。

函数名 是否支持 是否新增
has_any_column_privilege(user, table, privilege)
has_any_column_privilege(table, privilege)
has_column_privilege(user, table, column, privilege)
has_column_privilege(table, column, privilege)
has_database_privilege(user, database, privilege)
has_database_privilege(database, privilege)
has_foreign_data_wrapper_privilege(user, fdw, privilege)
has_foreign_data_wrapper_privilege(fdw, privilege)
has_function_privilege(user, function, privilege)
has_function_privilege(function, privilege)
has_language_privilege(user, language, privilege)
has_language_privilege(language, privilege)
has_schema_privilege(user, schema, privilege)
has_schema_privilege(schema, privilege)
has_server_privilege(user, server, privilege)
has_server_privilege(server, privilege)
has_table_privilege(user, table, privilege)
has_table_privilege(table, privilege)
has_tablespace_privilege(user, tablespace, privilege)
has_tablespace_privilege(tablespace, privilege)
has_type_privilege(user, type, privilege)
has_type_privilege(type, privilege)
pg_has_role(user, role, privilege)
pg_has_role(role, privilege)
row_security_active(table)
pg_collation_is_visible(collation_oid)
pg_conversion_is_visible(conversion_oid)
pg_function_is_visible(function_oid)
pg_opclass_is_visible(opclass_oid)
pg_operator_is_visible(operator_oid)
pg_opfamily_is_visible(opclass_oid)
pg_statistics_obj_is_visible(stat_oid)
pg_table_is_visible(table_oid)
pg_ts_config_is_visible(config_oid)
pg_ts_dict_is_visible(dict_oid)
pg_ts_parser_is_visible(parser_oid)
pg_ts_template_is_visible(template_oid)
pg_type_is_visible(type_oid)

系统管理函数

交互式分析(Hologres)支持的系统管理函数列表如下。

函数名 是否支持 是否新增
current_setting(setting_name)
pg_current_wal_flush_lsn()
pg_current_wal_insert_lsn()
pg_current_wal_lsn()
pg_is_in_backup()
pg_backup_start_time()
pg_is_in_recovery()
pg_last_wal_receive_lsn()
pg_last_wal_replay_lsn()
pg_last_xact_replay_timestamp()
pg_column_size(any)
pg_database_size(oid)
pg_database_size(name)
pg_size_bytes(text)
pg_size_pretty(bigint)
pg_size_pretty(numeric)
pg_tablespace_size(oid)
pg_tablespace_size(name)

Public API 扩展函数

在实际业务场景中,标准PostgreSQL支持的函数并不能完全满足业务需求,在此基础上,交互式分析在此基础上,交互式分析(Hologres)对函数的支持进行了丰富,您可以根据业务需求通过调用函数来简化开发流程,详情请见Public API扩展函数概览