Make `wildspeed` a modern Postgres extension.
[wildspeed.git] / wildspeed--1.0.sql
1 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
2 \echo Use "CREATE EXTENSION wildspeed" to load this file. \quit
3
4 -- support functions for gin
5 CREATE OR REPLACE FUNCTION gin_extract_permuted(text, internal)
6 RETURNS internal
7 AS 'MODULE_PATHNAME'
8 LANGUAGE C IMMUTABLE;
9
10 CREATE OR REPLACE FUNCTION wildcmp(text, text)
11 RETURNS int32
12 AS 'MODULE_PATHNAME'
13 LANGUAGE C IMMUTABLE;
14
15 CREATE OR REPLACE FUNCTION wildcmp_prefix(text, text, int2)
16 RETURNS int32
17 AS 'MODULE_PATHNAME'
18 LANGUAGE C IMMUTABLE;
19
20 CREATE OR REPLACE FUNCTION gin_extract_wildcard(text, internal, int2, internal)
21 RETURNS internal
22 AS 'MODULE_PATHNAME'
23 LANGUAGE C IMMUTABLE;
24
25 CREATE OR REPLACE FUNCTION gin_consistent_wildcard(internal, int2, text)
26 RETURNS internal
27 AS 'MODULE_PATHNAME'
28 LANGUAGE C IMMUTABLE;
29
30 CREATE OPERATOR CLASS wildcard_ops
31 FOR TYPE text USING gin
32 AS
33         OPERATOR        1       ~~,
34         FUNCTION        1       wildcmp(text,text),
35         FUNCTION        2       gin_extract_permuted(text, internal),
36         FUNCTION        3       gin_extract_wildcard(text, internal, int2, internal),
37         FUNCTION        4       gin_consistent_wildcard(internal, int2, text),
38         FUNCTION        5       wildcmp_prefix(text,text,int2),
39 STORAGE         text;
40
41
42 --debug function
43 CREATE OR REPLACE FUNCTION permute(text)
44 RETURNS _text
45 AS 'MODULE_PATHNAME'
46 LANGUAGE C STRICT IMMUTABLE;