【发布时间】:2021-02-24 01:01:19
【问题描述】:
我为 jsonb 类型创建了一些自定义运算符,并为它们创建了一个类。问题是当我创建索引时
CREATE INDEX idx_name on table USING gin(column_name custom_operator_class)
我收到一个错误
missing support function 2 for attribute 1 of index "idx_name"
我可能需要为重叠、包含、包含和相等创建支持类,但我没有找到任何关于如何做到这一点的文档。我在网上找到的都是 btree,而杜松子酒没有。有谁知道如何做到这一点,或者我可以找到一些例子的任何材料?
如果您需要更多信息,我很乐意多说。运算符基本上用于递归搜索日期小于,大于,等于指定的键
编辑:
我尝试创建这样的支持函数
CREATE OR REPLACE FUNCTION jb_custom_contains(jsonb, jsonb)
RETURNS bool AS
'SELECT $1 <@ $2' LANGUAGE sql IMMUTABLE;
CREATE OR REPLACE FUNCTION jb_custom_contaiedBy(jsonb, jsonb)
RETURNS bool AS
'SELECT $1 @> $2' LANGUAGE sql IMMUTABLE;
CREATE OR REPLACE FUNCTION jb_custom_equals(jsonb, jsonb)
RETURNS bool AS
'SELECT $1 = $2' LANGUAGE sql IMMUTABLE;
CREATE INDEX 则不会返回错误,但操作符将无法正常工作
【问题讨论】:
标签: postgresql indexing