我正在使用pg_search gem
. 但是,其中一个表有一个Text
数据类型字段,它的内容恰好比平时大一点。
现在,当我需要tsvector column
为text
列设置 a 时,由于文本字段大小与 tsvector 大小的关系,我面临一些限制。
ERROR: string is too long for tsvector (5068741 bytes, max 1048575 bytes)
在触发器中Text
创建 tsvector 列以执行以下操作时,有什么方法可以确定跳过更大字段的条件:SQL
伪代码:
execute(<<-TRIGGERSQL)
CREATE OR REPLACE FUNCTION public.essays_before_insert_update_row_tr()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
If (SELECT LEN(body_text) FROM essays) <= 1048575
new.tsv_body_text := to_tsvector('pg_catalog.english', coalesce(new.body_text,''));
RETURN NEW;
End
END;
$function$
TRIGGERSQL
# no candidate create_trigger statement could be found, creating an adapter-specific one
execute("CREATE TRIGGER essays_before_insert_update_row_tr BEFORE INSERT OR UPDATE ON \"essays\" FOR EACH ROW EXECUTE PROCEDURE essays_before_insert_update_row_tr()")
我发现没有答案的相关问题: