覆盖用于在超表的整数 time
列中设置当前时间的 now()
日期/时间函数。许多策略仅适用于特定年龄的数据块。integer_now_func
确定每个数据块的年龄。
您设置为 integer_now_func
的函数没有参数。它必须是以下之一
IMMUTABLE
: 当您每次执行查询而不是在执行之前准备查询时使用。integer_now_func
的值在生成计划之前计算。这会生成一个明显更小的计划,尤其是在您有大量数据块的情况下。STABLE
:integer_now_func
在查询执行开始之前进行评估。数据块修剪在运行时执行。这会生成正确的结果,但可能会增加计划时间。
set_integer_now_func
不适用于 time
列类型为 TIMESTAMP
、TIMESTAMPTZ
或 DATE
的表。
名称 | 类型 | 描述 |
---|---|---|
main_table | REGCLASS | 在其中使用 integer_now_func 的超表。 |
integer_now_func | REGPROC | 一个函数,返回在 main_table 的 time 列中的每行中设置的当前时间。 |
名称 | 类型 | 描述 |
---|---|---|
replace_if_exists | BOOLEAN | 设置为 true 以在您之前设置了自定义函数时覆盖 integer_now_func 。默认为 false 。 |
为在 unix 时间中具有时间列的超表设置整数 now
函数。
IMMUTABLE
:当您每次执行查询时CREATE OR REPLACE FUNCTION unix_now_immutable() returns BIGINT LANGUAGE SQL IMMUTABLE as $$ SELECT extract (epoch from now())::BIGINT $$;SELECT set_integer_now_func('hypertable_name', 'unix_now_immutable');STABLE
:对于预处理语句CREATE OR REPLACE FUNCTION unix_now_stable() returns BIGINT LANGUAGE SQL STABLE AS $$ SELECT extract(epoch from now())::BIGINT $$;SELECT set_integer_now_func('hypertable_name', 'unix_now_stable');
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。