【发布时间】:2021-08-10 18:23:40
【问题描述】:
我正在尝试为 Postgres 中的文本搜索创建索引,但在创建生成的 tsvector 列时不断出现错误。
ERROR: generation expression is not immutable
SQL state: 42P17
我有一个文本“标题”列和文本[]“作者”列。我正在尝试将两者结合起来创建一个 tsvector 列
这是出现错误的代码
ALTER TABLE book
ADD COLUMN tscol tsvector
GENERATED ALWAYS AS (to_tsvector(title || ' ' || immutable_array_to_string(coalesce(authors, '{}'), ' '))) STORED;
immutable_array_to_string 函数代码:
CREATE OR REPLACE FUNCTION immutable_array_to_string(text[], text)
RETURNS text as $$ SELECT array_to_string($1, $2); $$
LANGUAGE sql IMMUTABLE;
【问题讨论】:
标签: postgresql full-text-search immutability