可以对用户定义的函数构建函数索引。 用户定义的函数可以是外部函数或 SPL 函数。
要对用户定义的函数构建函数索引:
例如,要对 darkness() 函数创建函数索引:
CREATE FUNCTION darkness(im image) RETURNS decimal EXTERNAL NAME '/lib/image.so' LANGUAGE C NOT VARIANT
在此示例中,您可以对函数索引使用缺省运算符类,因为 darkness() 函数的返回值是内置数据类型 DECIMAL。
CREATE TABLE photos ( name char(20), picture image ... ); CREATE INDEX dark_ix ON photos (darkness(picture));
在此示例中,假设用户定义的数据类型 image 已定义于数据库中。
SELECT count(*) FROM photos WHERE darkness(picture) > 0.5