Commit 2910fc82 authored by Robert Haas's avatar Robert Haas

Update extensions with GIN/GIST support for parallel query.

Commit 749a787c bumped the extension
version on all of these extensions already, and we haven't had a
release since then, so we can make further changes without bumping the
extension version again.  Take this opportunity to mark all of the
functions exported by these modules PARALLEL SAFE -- except for
pg_trgm's set_limit().  Mark that one PARALLEL RESTRICTED, because it
makes a persistent change to a GUC value.

Note that some of the markings added by this commit don't have any
effect; for example, gseg_picksplit() isn't likely to be mentioned
explicitly in a query and therefore it's parallel-safety marking will
never be consulted.  But this commit just marks everything for
consistency: if it were somehow used in a query, that would be fine as
far as parallel query is concerned, since it does not consult any
backend-private state, attempt to write data, etc.

Andreas Karlsson, with a few revisions by me.
parent 131c7e70
...@@ -17,3 +17,44 @@ FROM (VALUES ...@@ -17,3 +17,44 @@ FROM (VALUES
('g_cube_distance(internal,cube,smallint,oid)', '{internal,cube,smallint,oid,internal}') ('g_cube_distance(internal,cube,smallint,oid)', '{internal,cube,smallint,oid,internal}')
) AS update_data (oldproc, newtypes) ) AS update_data (oldproc, newtypes)
WHERE oid = pg_catalog.to_regprocedure(oldproc); WHERE oid = pg_catalog.to_regprocedure(oldproc);
ALTER FUNCTION cube_in(cstring) PARALLEL SAFE;
ALTER FUNCTION cube(float8[], float8[]) PARALLEL SAFE;
ALTER FUNCTION cube(float8[]) PARALLEL SAFE;
ALTER FUNCTION cube_out(cube) PARALLEL SAFE;
ALTER FUNCTION cube_eq(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_ne(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_lt(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_gt(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_le(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_ge(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_cmp(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_contains(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_contained(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_overlap(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_union(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_inter(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_size(cube) PARALLEL SAFE;
ALTER FUNCTION cube_subset(cube, int4[]) PARALLEL SAFE;
ALTER FUNCTION cube_distance(cube, cube) PARALLEL SAFE;
ALTER FUNCTION distance_chebyshev(cube, cube) PARALLEL SAFE;
ALTER FUNCTION distance_taxicab(cube, cube) PARALLEL SAFE;
ALTER FUNCTION cube_dim(cube) PARALLEL SAFE;
ALTER FUNCTION cube_ll_coord(cube, int4) PARALLEL SAFE;
ALTER FUNCTION cube_ur_coord(cube, int4) PARALLEL SAFE;
ALTER FUNCTION cube_coord(cube, int4) PARALLEL SAFE;
ALTER FUNCTION cube_coord_llur(cube, int4) PARALLEL SAFE;
ALTER FUNCTION cube(float8) PARALLEL SAFE;
ALTER FUNCTION cube(float8, float8) PARALLEL SAFE;
ALTER FUNCTION cube(cube, float8) PARALLEL SAFE;
ALTER FUNCTION cube(cube, float8, float8) PARALLEL SAFE;
ALTER FUNCTION cube_is_point(cube) PARALLEL SAFE;
ALTER FUNCTION cube_enlarge(cube, float8, int4) PARALLEL SAFE;
ALTER FUNCTION g_cube_consistent(internal, cube, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_compress(internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_same(cube, cube, internal) PARALLEL SAFE;
ALTER FUNCTION g_cube_distance(internal, cube, smallint, oid, internal) PARALLEL SAFE;
...@@ -8,20 +8,20 @@ ...@@ -8,20 +8,20 @@
CREATE FUNCTION cube_in(cstring) CREATE FUNCTION cube_in(cstring)
RETURNS cube RETURNS cube
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube(float8[], float8[]) RETURNS cube CREATE FUNCTION cube(float8[], float8[]) RETURNS cube
AS 'MODULE_PATHNAME', 'cube_a_f8_f8' AS 'MODULE_PATHNAME', 'cube_a_f8_f8'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube(float8[]) RETURNS cube CREATE FUNCTION cube(float8[]) RETURNS cube
AS 'MODULE_PATHNAME', 'cube_a_f8' AS 'MODULE_PATHNAME', 'cube_a_f8'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_out(cube) CREATE FUNCTION cube_out(cube)
RETURNS cstring RETURNS cstring
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE TYPE cube ( CREATE TYPE cube (
INTERNALLENGTH = variable, INTERNALLENGTH = variable,
...@@ -41,70 +41,70 @@ COMMENT ON TYPE cube IS 'multi-dimensional cube ''(FLOAT-1, FLOAT-2, ..., FLOAT- ...@@ -41,70 +41,70 @@ COMMENT ON TYPE cube IS 'multi-dimensional cube ''(FLOAT-1, FLOAT-2, ..., FLOAT-
CREATE FUNCTION cube_eq(cube, cube) CREATE FUNCTION cube_eq(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_eq(cube, cube) IS 'same as'; COMMENT ON FUNCTION cube_eq(cube, cube) IS 'same as';
CREATE FUNCTION cube_ne(cube, cube) CREATE FUNCTION cube_ne(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_ne(cube, cube) IS 'different'; COMMENT ON FUNCTION cube_ne(cube, cube) IS 'different';
CREATE FUNCTION cube_lt(cube, cube) CREATE FUNCTION cube_lt(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_lt(cube, cube) IS 'lower than'; COMMENT ON FUNCTION cube_lt(cube, cube) IS 'lower than';
CREATE FUNCTION cube_gt(cube, cube) CREATE FUNCTION cube_gt(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_gt(cube, cube) IS 'greater than'; COMMENT ON FUNCTION cube_gt(cube, cube) IS 'greater than';
CREATE FUNCTION cube_le(cube, cube) CREATE FUNCTION cube_le(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_le(cube, cube) IS 'lower than or equal to'; COMMENT ON FUNCTION cube_le(cube, cube) IS 'lower than or equal to';
CREATE FUNCTION cube_ge(cube, cube) CREATE FUNCTION cube_ge(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_ge(cube, cube) IS 'greater than or equal to'; COMMENT ON FUNCTION cube_ge(cube, cube) IS 'greater than or equal to';
CREATE FUNCTION cube_cmp(cube, cube) CREATE FUNCTION cube_cmp(cube, cube)
RETURNS int4 RETURNS int4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_cmp(cube, cube) IS 'btree comparison function'; COMMENT ON FUNCTION cube_cmp(cube, cube) IS 'btree comparison function';
CREATE FUNCTION cube_contains(cube, cube) CREATE FUNCTION cube_contains(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_contains(cube, cube) IS 'contains'; COMMENT ON FUNCTION cube_contains(cube, cube) IS 'contains';
CREATE FUNCTION cube_contained(cube, cube) CREATE FUNCTION cube_contained(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_contained(cube, cube) IS 'contained in'; COMMENT ON FUNCTION cube_contained(cube, cube) IS 'contained in';
CREATE FUNCTION cube_overlap(cube, cube) CREATE FUNCTION cube_overlap(cube, cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
COMMENT ON FUNCTION cube_overlap(cube, cube) IS 'overlaps'; COMMENT ON FUNCTION cube_overlap(cube, cube) IS 'overlaps';
...@@ -113,17 +113,17 @@ COMMENT ON FUNCTION cube_overlap(cube, cube) IS 'overlaps'; ...@@ -113,17 +113,17 @@ COMMENT ON FUNCTION cube_overlap(cube, cube) IS 'overlaps';
CREATE FUNCTION cube_union(cube, cube) CREATE FUNCTION cube_union(cube, cube)
RETURNS cube RETURNS cube
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_inter(cube, cube) CREATE FUNCTION cube_inter(cube, cube)
RETURNS cube RETURNS cube
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_size(cube) CREATE FUNCTION cube_size(cube)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- Misc N-dimensional functions -- Misc N-dimensional functions
...@@ -131,81 +131,81 @@ LANGUAGE C IMMUTABLE STRICT; ...@@ -131,81 +131,81 @@ LANGUAGE C IMMUTABLE STRICT;
CREATE FUNCTION cube_subset(cube, int4[]) CREATE FUNCTION cube_subset(cube, int4[])
RETURNS cube RETURNS cube
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- proximity routines -- proximity routines
CREATE FUNCTION cube_distance(cube, cube) CREATE FUNCTION cube_distance(cube, cube)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION distance_chebyshev(cube, cube) CREATE FUNCTION distance_chebyshev(cube, cube)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION distance_taxicab(cube, cube) CREATE FUNCTION distance_taxicab(cube, cube)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- Extracting elements functions -- Extracting elements functions
CREATE FUNCTION cube_dim(cube) CREATE FUNCTION cube_dim(cube)
RETURNS int4 RETURNS int4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_ll_coord(cube, int4) CREATE FUNCTION cube_ll_coord(cube, int4)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_ur_coord(cube, int4) CREATE FUNCTION cube_ur_coord(cube, int4)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_coord(cube, int4) CREATE FUNCTION cube_coord(cube, int4)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube_coord_llur(cube, int4) CREATE FUNCTION cube_coord_llur(cube, int4)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube(float8) RETURNS cube CREATE FUNCTION cube(float8) RETURNS cube
AS 'MODULE_PATHNAME', 'cube_f8' AS 'MODULE_PATHNAME', 'cube_f8'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube(float8, float8) RETURNS cube CREATE FUNCTION cube(float8, float8) RETURNS cube
AS 'MODULE_PATHNAME', 'cube_f8_f8' AS 'MODULE_PATHNAME', 'cube_f8_f8'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube(cube, float8) RETURNS cube CREATE FUNCTION cube(cube, float8) RETURNS cube
AS 'MODULE_PATHNAME', 'cube_c_f8' AS 'MODULE_PATHNAME', 'cube_c_f8'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION cube(cube, float8, float8) RETURNS cube CREATE FUNCTION cube(cube, float8, float8) RETURNS cube
AS 'MODULE_PATHNAME', 'cube_c_f8_f8' AS 'MODULE_PATHNAME', 'cube_c_f8_f8'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- Test if cube is also a point -- Test if cube is also a point
CREATE FUNCTION cube_is_point(cube) CREATE FUNCTION cube_is_point(cube)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- Increasing the size of a cube by a radius in at least n dimensions -- Increasing the size of a cube by a radius in at least n dimensions
CREATE FUNCTION cube_enlarge(cube, float8, int4) CREATE FUNCTION cube_enlarge(cube, float8, int4)
RETURNS cube RETURNS cube
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- --
-- OPERATORS -- OPERATORS
...@@ -307,42 +307,42 @@ CREATE OPERATOR ~ ( ...@@ -307,42 +307,42 @@ CREATE OPERATOR ~ (
CREATE FUNCTION g_cube_consistent(internal,cube,smallint,oid,internal) CREATE FUNCTION g_cube_consistent(internal,cube,smallint,oid,internal)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_compress(internal) CREATE FUNCTION g_cube_compress(internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_decompress(internal) CREATE FUNCTION g_cube_decompress(internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_penalty(internal,internal,internal) CREATE FUNCTION g_cube_penalty(internal,internal,internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_picksplit(internal, internal) CREATE FUNCTION g_cube_picksplit(internal, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_union(internal, internal) CREATE FUNCTION g_cube_union(internal, internal)
RETURNS cube RETURNS cube
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_same(cube, cube, internal) CREATE FUNCTION g_cube_same(cube, cube, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION g_cube_distance (internal, cube, smallint, oid, internal) CREATE FUNCTION g_cube_distance (internal, cube, smallint, oid, internal)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- Create the operator classes for indexing -- Create the operator classes for indexing
......
...@@ -24,3 +24,61 @@ WHERE oid = pg_catalog.to_regprocedure(oldproc); ...@@ -24,3 +24,61 @@ WHERE oid = pg_catalog.to_regprocedure(oldproc);
UPDATE pg_catalog.pg_proc SET UPDATE pg_catalog.pg_proc SET
prorettype = 'ghstore'::pg_catalog.regtype prorettype = 'ghstore'::pg_catalog.regtype
WHERE oid = pg_catalog.to_regprocedure('ghstore_union(internal,internal)'); WHERE oid = pg_catalog.to_regprocedure('ghstore_union(internal,internal)');
ALTER FUNCTION hstore_in(cstring) PARALLEL SAFE;
ALTER FUNCTION hstore_out(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_recv(internal) PARALLEL SAFE;
ALTER FUNCTION hstore_send(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_version_diag(hstore) PARALLEL SAFE;
ALTER FUNCTION fetchval(hstore, text) PARALLEL SAFE;
ALTER FUNCTION slice_array(hstore, text[]) PARALLEL SAFE;
ALTER FUNCTION slice(hstore, text[]) PARALLEL SAFE;
ALTER FUNCTION isexists(hstore, text) PARALLEL SAFE;
ALTER FUNCTION exist(hstore, text) PARALLEL SAFE;
ALTER FUNCTION exists_any(hstore, text[]) PARALLEL SAFE;
ALTER FUNCTION exists_all(hstore, text[]) PARALLEL SAFE;
ALTER FUNCTION isdefined(hstore, text) PARALLEL SAFE;
ALTER FUNCTION defined(hstore, text) PARALLEL SAFE;
ALTER FUNCTION delete(hstore, text) PARALLEL SAFE;
ALTER FUNCTION delete(hstore, text[]) PARALLEL SAFE;
ALTER FUNCTION delete(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hs_concat(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hs_contains(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hs_contained(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION tconvert(text, text) PARALLEL SAFE;
ALTER FUNCTION hstore(text, text) PARALLEL SAFE;
ALTER FUNCTION hstore(text[], text[]) PARALLEL SAFE;
ALTER FUNCTION hstore(text[]) PARALLEL SAFE;
ALTER FUNCTION hstore_to_json(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_to_json_loose(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_to_jsonb(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_to_jsonb_loose(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore(record) PARALLEL SAFE;
ALTER FUNCTION hstore_to_array(hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_to_matrix(hstore) PARALLEL SAFE;
ALTER FUNCTION akeys(hstore) PARALLEL SAFE;
ALTER FUNCTION avals(hstore) PARALLEL SAFE;
ALTER FUNCTION skeys(hstore) PARALLEL SAFE;
ALTER FUNCTION svals(hstore) PARALLEL SAFE;
ALTER FUNCTION each(hstore) PARALLEL SAFE;
ALTER FUNCTION populate_record(anyelement, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_eq(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_ne(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_gt(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_ge(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_lt(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_le(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_cmp(hstore, hstore) PARALLEL SAFE;
ALTER FUNCTION hstore_hash(hstore) PARALLEL SAFE;
ALTER FUNCTION ghstore_in(cstring) PARALLEL SAFE;
ALTER FUNCTION ghstore_out(ghstore) PARALLEL SAFE;
ALTER FUNCTION ghstore_compress(internal) PARALLEL SAFE;
ALTER FUNCTION ghstore_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION ghstore_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION ghstore_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION ghstore_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION ghstore_same(ghstore, ghstore, internal) PARALLEL SAFE;
ALTER FUNCTION ghstore_consistent(internal, hstore, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION gin_extract_hstore(hstore, internal) PARALLEL SAFE;
ALTER FUNCTION gin_extract_hstore_query(hstore, internal, int2, internal, internal) PARALLEL SAFE;
ALTER FUNCTION gin_consistent_hstore(internal, int2, hstore, int4, internal, internal) PARALLEL SAFE;
This diff is collapsed.
...@@ -24,3 +24,56 @@ WHERE oid = pg_catalog.to_regprocedure(oldproc); ...@@ -24,3 +24,56 @@ WHERE oid = pg_catalog.to_regprocedure(oldproc);
UPDATE pg_catalog.pg_proc SET UPDATE pg_catalog.pg_proc SET
prorettype = 'intbig_gkey'::pg_catalog.regtype prorettype = 'intbig_gkey'::pg_catalog.regtype
WHERE oid = pg_catalog.to_regprocedure('g_intbig_union(internal,internal)'); WHERE oid = pg_catalog.to_regprocedure('g_intbig_union(internal,internal)');
ALTER FUNCTION bqarr_in(cstring) PARALLEL SAFE;
ALTER FUNCTION bqarr_out(query_int) PARALLEL SAFE;
ALTER FUNCTION querytree(query_int) PARALLEL SAFE;
ALTER FUNCTION boolop(_int4, query_int) PARALLEL SAFE;
ALTER FUNCTION rboolop(query_int, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_matchsel(internal, oid, internal, integer) PARALLEL SAFE;
ALTER FUNCTION _int_contains(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_contained(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_overlap(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_same(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_different(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_union(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_inter(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION _int_overlap_sel(internal, oid, internal, integer) PARALLEL SAFE;
ALTER FUNCTION _int_contains_sel(internal, oid, internal, integer) PARALLEL SAFE;
ALTER FUNCTION _int_contained_sel(internal, oid, internal, integer) PARALLEL SAFE;
ALTER FUNCTION _int_overlap_joinsel(internal, oid, internal, smallint, internal) PARALLEL SAFE;
ALTER FUNCTION _int_contains_joinsel(internal, oid, internal, smallint, internal) PARALLEL SAFE;
ALTER FUNCTION _int_contained_joinsel(internal, oid, internal, smallint, internal) PARALLEL SAFE;
ALTER FUNCTION intset(int4) PARALLEL SAFE;
ALTER FUNCTION icount(_int4) PARALLEL SAFE;
ALTER FUNCTION sort(_int4, text) PARALLEL SAFE;
ALTER FUNCTION sort(_int4) PARALLEL SAFE;
ALTER FUNCTION sort_asc(_int4) PARALLEL SAFE;
ALTER FUNCTION sort_desc(_int4) PARALLEL SAFE;
ALTER FUNCTION uniq(_int4) PARALLEL SAFE;
ALTER FUNCTION idx(_int4, int4) PARALLEL SAFE;
ALTER FUNCTION subarray(_int4, int4, int4) PARALLEL SAFE;
ALTER FUNCTION subarray(_int4, int4) PARALLEL SAFE;
ALTER FUNCTION intarray_push_elem(_int4, int4) PARALLEL SAFE;
ALTER FUNCTION intarray_push_array(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION intarray_del_elem(_int4, int4) PARALLEL SAFE;
ALTER FUNCTION intset_union_elem(_int4, int4) PARALLEL SAFE;
ALTER FUNCTION intset_subtract(_int4, _int4) PARALLEL SAFE;
ALTER FUNCTION g_int_consistent(internal, _int4, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION g_int_compress(internal) PARALLEL SAFE;
ALTER FUNCTION g_int_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION g_int_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_int_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_int_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_int_same(_int4, _int4, internal) PARALLEL SAFE;
ALTER FUNCTION _intbig_in(cstring) PARALLEL SAFE;
ALTER FUNCTION _intbig_out(intbig_gkey) PARALLEL SAFE;
ALTER FUNCTION g_intbig_consistent(internal, _int4, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION g_intbig_compress(internal) PARALLEL SAFE;
ALTER FUNCTION g_intbig_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION g_intbig_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_intbig_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_intbig_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION g_intbig_same(intbig_gkey, intbig_gkey, internal) PARALLEL SAFE;
ALTER FUNCTION ginint4_queryextract(_int4, internal, int2, internal, internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION ginint4_consistent(internal, int2, _int4, int4, internal, internal, internal, internal) PARALLEL SAFE;
This diff is collapsed.
...@@ -27,3 +27,74 @@ WHERE oid = pg_catalog.to_regprocedure('ltree_union(internal,internal)'); ...@@ -27,3 +27,74 @@ WHERE oid = pg_catalog.to_regprocedure('ltree_union(internal,internal)');
UPDATE pg_catalog.pg_proc SET UPDATE pg_catalog.pg_proc SET
prorettype = 'ltree_gist'::pg_catalog.regtype prorettype = 'ltree_gist'::pg_catalog.regtype
WHERE oid = pg_catalog.to_regprocedure('_ltree_union(internal,internal)'); WHERE oid = pg_catalog.to_regprocedure('_ltree_union(internal,internal)');
ALTER FUNCTION ltree_in(cstring) PARALLEL SAFE;
ALTER FUNCTION ltree_out(ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_cmp(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_lt(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_le(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_eq(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_ge(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_gt(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_ne(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION subltree(ltree, int4, int4) PARALLEL SAFE;
ALTER FUNCTION subpath(ltree, int4, int4) PARALLEL SAFE;
ALTER FUNCTION subpath(ltree, int4) PARALLEL SAFE;
ALTER FUNCTION index(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION index(ltree, ltree, int4) PARALLEL SAFE;
ALTER FUNCTION nlevel(ltree) PARALLEL SAFE;
ALTER FUNCTION ltree2text(ltree) PARALLEL SAFE;
ALTER FUNCTION text2ltree(text) PARALLEL SAFE;
ALTER FUNCTION lca(_ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree, ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree, ltree, ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree, ltree, ltree, ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree, ltree, ltree, ltree, ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION lca(ltree, ltree, ltree, ltree, ltree, ltree, ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_isparent(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_risparent(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_addltree(ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_addtext(ltree, text) PARALLEL SAFE;
ALTER FUNCTION ltree_textadd(text, ltree) PARALLEL SAFE;
ALTER FUNCTION ltreeparentsel(internal, oid, internal, integer) PARALLEL SAFE;
ALTER FUNCTION lquery_in(cstring) PARALLEL SAFE;
ALTER FUNCTION lquery_out(lquery) PARALLEL SAFE;
ALTER FUNCTION ltq_regex(ltree, lquery) PARALLEL SAFE;
ALTER FUNCTION ltq_rregex(lquery, ltree) PARALLEL SAFE;
ALTER FUNCTION lt_q_regex(ltree, _lquery) PARALLEL SAFE;
ALTER FUNCTION lt_q_rregex(_lquery, ltree) PARALLEL SAFE;
ALTER FUNCTION ltxtq_in(cstring) PARALLEL SAFE;
ALTER FUNCTION ltxtq_out(ltxtquery) PARALLEL SAFE;
ALTER FUNCTION ltxtq_exec(ltree, ltxtquery) PARALLEL SAFE;
ALTER FUNCTION ltxtq_rexec(ltxtquery, ltree) PARALLEL SAFE;
ALTER FUNCTION ltree_gist_in(cstring) PARALLEL SAFE;
ALTER FUNCTION ltree_gist_out(ltree_gist) PARALLEL SAFE;
ALTER FUNCTION ltree_consistent(internal, ltree, int2, oid, internal) PARALLEL SAFE;
ALTER FUNCTION ltree_compress(internal) PARALLEL SAFE;
ALTER FUNCTION ltree_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION ltree_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION ltree_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION ltree_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION ltree_same(ltree_gist, ltree_gist, internal) PARALLEL SAFE;
ALTER FUNCTION _ltree_isparent(_ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION _ltree_r_isparent(ltree, _ltree) PARALLEL SAFE;
ALTER FUNCTION _ltree_risparent(_ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION _ltree_r_risparent(ltree, _ltree) PARALLEL SAFE;
ALTER FUNCTION _ltq_regex(_ltree, lquery) PARALLEL SAFE;
ALTER FUNCTION _ltq_rregex(lquery, _ltree) PARALLEL SAFE;
ALTER FUNCTION _lt_q_regex(_ltree, _lquery) PARALLEL SAFE;
ALTER FUNCTION _lt_q_rregex(_lquery, _ltree) PARALLEL SAFE;
ALTER FUNCTION _ltxtq_exec(_ltree, ltxtquery) PARALLEL SAFE;
ALTER FUNCTION _ltxtq_rexec(ltxtquery, _ltree) PARALLEL SAFE;
ALTER FUNCTION _ltree_extract_isparent(_ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION _ltree_extract_risparent(_ltree, ltree) PARALLEL SAFE;
ALTER FUNCTION _ltq_extract_regex(_ltree, lquery) PARALLEL SAFE;
ALTER FUNCTION _ltxtq_extract_exec(_ltree, ltxtquery) PARALLEL SAFE;
ALTER FUNCTION _ltree_consistent(internal, _ltree, int2, oid, internal) PARALLEL SAFE;
ALTER FUNCTION _ltree_compress(internal) PARALLEL SAFE;
ALTER FUNCTION _ltree_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION _ltree_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION _ltree_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION _ltree_same(ltree_gist, ltree_gist, internal) PARALLEL SAFE;
This diff is collapsed.
...@@ -22,3 +22,29 @@ WHERE oid = pg_catalog.to_regprocedure(oldproc); ...@@ -22,3 +22,29 @@ WHERE oid = pg_catalog.to_regprocedure(oldproc);
UPDATE pg_catalog.pg_proc SET UPDATE pg_catalog.pg_proc SET
prorettype = 'gtrgm'::pg_catalog.regtype prorettype = 'gtrgm'::pg_catalog.regtype
WHERE oid = pg_catalog.to_regprocedure('gtrgm_union(internal,internal)'); WHERE oid = pg_catalog.to_regprocedure('gtrgm_union(internal,internal)');
ALTER FUNCTION set_limit(float4) PARALLEL RESTRICTED;
ALTER FUNCTION show_limit() PARALLEL SAFE;
ALTER FUNCTION show_trgm(text) PARALLEL SAFE;
ALTER FUNCTION similarity(text, text) PARALLEL SAFE;
ALTER FUNCTION similarity_op(text, text) PARALLEL SAFE;
ALTER FUNCTION word_similarity(text, text) PARALLEL SAFE;
ALTER FUNCTION word_similarity_op(text, text) PARALLEL SAFE;
ALTER FUNCTION word_similarity_commutator_op(text, text) PARALLEL SAFE;
ALTER FUNCTION similarity_dist(text, text) PARALLEL SAFE;
ALTER FUNCTION word_similarity_dist_op(text, text) PARALLEL SAFE;
ALTER FUNCTION word_similarity_dist_commutator_op(text, text) PARALLEL SAFE;
ALTER FUNCTION gtrgm_in(cstring) PARALLEL SAFE;
ALTER FUNCTION gtrgm_out(gtrgm) PARALLEL SAFE;
ALTER FUNCTION gtrgm_consistent(internal, text, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_distance(internal, text, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_compress(internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION gtrgm_same(gtrgm, gtrgm, internal) PARALLEL SAFE;
ALTER FUNCTION gin_extract_value_trgm(text, internal) PARALLEL SAFE;
ALTER FUNCTION gin_extract_query_trgm(text, internal, int2, internal, internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION gin_trgm_consistent(internal, int2, text, int4, internal, internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, internal, internal, internal) PARALLEL SAFE;
...@@ -7,28 +7,28 @@ ...@@ -7,28 +7,28 @@
CREATE FUNCTION set_limit(float4) CREATE FUNCTION set_limit(float4)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT VOLATILE; LANGUAGE C STRICT VOLATILE PARALLEL RESTRICTED;
-- Deprecated function -- Deprecated function
CREATE FUNCTION show_limit() CREATE FUNCTION show_limit()
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT STABLE; LANGUAGE C STRICT STABLE PARALLEL SAFE;
CREATE FUNCTION show_trgm(text) CREATE FUNCTION show_trgm(text)
RETURNS _text RETURNS _text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION similarity(text,text) CREATE FUNCTION similarity(text,text)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION similarity_op(text,text) CREATE FUNCTION similarity_op(text,text)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.similarity_threshold LANGUAGE C STRICT STABLE PARALLEL SAFE; -- stable because depends on pg_trgm.similarity_threshold
CREATE OPERATOR % ( CREATE OPERATOR % (
LEFTARG = text, LEFTARG = text,
...@@ -42,17 +42,17 @@ CREATE OPERATOR % ( ...@@ -42,17 +42,17 @@ CREATE OPERATOR % (
CREATE FUNCTION word_similarity(text,text) CREATE FUNCTION word_similarity(text,text)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION word_similarity_op(text,text) CREATE FUNCTION word_similarity_op(text,text)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.word_similarity_threshold LANGUAGE C STRICT STABLE PARALLEL SAFE; -- stable because depends on pg_trgm.word_similarity_threshold
CREATE FUNCTION word_similarity_commutator_op(text,text) CREATE FUNCTION word_similarity_commutator_op(text,text)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT STABLE; -- stable because depends on pg_trgm.word_similarity_threshold LANGUAGE C STRICT STABLE PARALLEL SAFE; -- stable because depends on pg_trgm.word_similarity_threshold
CREATE OPERATOR <% ( CREATE OPERATOR <% (
LEFTARG = text, LEFTARG = text,
...@@ -75,7 +75,7 @@ CREATE OPERATOR %> ( ...@@ -75,7 +75,7 @@ CREATE OPERATOR %> (
CREATE FUNCTION similarity_dist(text,text) CREATE FUNCTION similarity_dist(text,text)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE OPERATOR <-> ( CREATE OPERATOR <-> (
LEFTARG = text, LEFTARG = text,
...@@ -87,12 +87,12 @@ CREATE OPERATOR <-> ( ...@@ -87,12 +87,12 @@ CREATE OPERATOR <-> (
CREATE FUNCTION word_similarity_dist_op(text,text) CREATE FUNCTION word_similarity_dist_op(text,text)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION word_similarity_dist_commutator_op(text,text) CREATE FUNCTION word_similarity_dist_commutator_op(text,text)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE OPERATOR <<-> ( CREATE OPERATOR <<-> (
LEFTARG = text, LEFTARG = text,
...@@ -112,12 +112,12 @@ CREATE OPERATOR <->> ( ...@@ -112,12 +112,12 @@ CREATE OPERATOR <->> (
CREATE FUNCTION gtrgm_in(cstring) CREATE FUNCTION gtrgm_in(cstring)
RETURNS gtrgm RETURNS gtrgm
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION gtrgm_out(gtrgm) CREATE FUNCTION gtrgm_out(gtrgm)
RETURNS cstring RETURNS cstring
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE TYPE gtrgm ( CREATE TYPE gtrgm (
INTERNALLENGTH = -1, INTERNALLENGTH = -1,
...@@ -129,42 +129,42 @@ CREATE TYPE gtrgm ( ...@@ -129,42 +129,42 @@ CREATE TYPE gtrgm (
CREATE FUNCTION gtrgm_consistent(internal,text,smallint,oid,internal) CREATE FUNCTION gtrgm_consistent(internal,text,smallint,oid,internal)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_distance(internal,text,smallint,oid,internal) CREATE FUNCTION gtrgm_distance(internal,text,smallint,oid,internal)
RETURNS float8 RETURNS float8
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_compress(internal) CREATE FUNCTION gtrgm_compress(internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_decompress(internal) CREATE FUNCTION gtrgm_decompress(internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_penalty(internal,internal,internal) CREATE FUNCTION gtrgm_penalty(internal,internal,internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_picksplit(internal, internal) CREATE FUNCTION gtrgm_picksplit(internal, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_union(internal, internal) CREATE FUNCTION gtrgm_union(internal, internal)
RETURNS gtrgm RETURNS gtrgm
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gtrgm_same(gtrgm, gtrgm, internal) CREATE FUNCTION gtrgm_same(gtrgm, gtrgm, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- create the operator class for gist -- create the operator class for gist
CREATE OPERATOR CLASS gist_trgm_ops CREATE OPERATOR CLASS gist_trgm_ops
...@@ -207,17 +207,17 @@ ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD ...@@ -207,17 +207,17 @@ ALTER OPERATOR FAMILY gist_trgm_ops USING gist ADD
CREATE FUNCTION gin_extract_value_trgm(text, internal) CREATE FUNCTION gin_extract_value_trgm(text, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gin_extract_query_trgm(text, internal, int2, internal, internal, internal, internal) CREATE FUNCTION gin_extract_query_trgm(text, internal, int2, internal, internal, internal, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gin_trgm_consistent(internal, int2, text, int4, internal, internal, internal, internal) CREATE FUNCTION gin_trgm_consistent(internal, int2, text, int4, internal, internal, internal, internal)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- create the operator class for gin -- create the operator class for gin
CREATE OPERATOR CLASS gin_trgm_ops CREATE OPERATOR CLASS gin_trgm_ops
...@@ -247,7 +247,7 @@ ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD ...@@ -247,7 +247,7 @@ ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
CREATE FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, internal, internal, internal) CREATE FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, internal, internal, internal)
RETURNS "char" RETURNS "char"
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD ALTER OPERATOR FAMILY gin_trgm_ops USING gin ADD
OPERATOR 7 %> (text, text), OPERATOR 7 %> (text, text),
......
/* contrib/seg/seg--1.0--1.1.sql */ /* contrib/seg/seg--1.0--1.1.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION -- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION seg UPDATE TO '1.1'" to load this file. \quit \echo Use "ALTER EXTENSION seg UPDATE TO '1.1'" to load this file. \quit
-- Update procedure signatures the hard way. -- Update procedure signatures the hard way.
...@@ -16,3 +16,33 @@ FROM (VALUES ...@@ -16,3 +16,33 @@ FROM (VALUES
('gseg_consistent(internal,seg,int4,oid,internal)', '{internal,seg,int2,oid,internal}') ('gseg_consistent(internal,seg,int4,oid,internal)', '{internal,seg,int2,oid,internal}')
) AS update_data (oldproc, newtypes) ) AS update_data (oldproc, newtypes)
WHERE oid = pg_catalog.to_regprocedure(oldproc); WHERE oid = pg_catalog.to_regprocedure(oldproc);
ALTER FUNCTION seg_in(cstring) PARALLEL SAFE;
ALTER FUNCTION seg_out(seg) PARALLEL SAFE;
ALTER FUNCTION seg_over_left(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_over_right(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_left(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_right(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_lt(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_le(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_gt(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_ge(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_contains(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_contained(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_overlap(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_same(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_different(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_cmp(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_union(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_inter(seg, seg) PARALLEL SAFE;
ALTER FUNCTION seg_size(seg) PARALLEL SAFE;
ALTER FUNCTION seg_center(seg) PARALLEL SAFE;
ALTER FUNCTION seg_upper(seg) PARALLEL SAFE;
ALTER FUNCTION seg_lower(seg) PARALLEL SAFE;
ALTER FUNCTION gseg_consistent(internal, seg, smallint, oid, internal) PARALLEL SAFE;
ALTER FUNCTION gseg_compress(internal) PARALLEL SAFE;
ALTER FUNCTION gseg_decompress(internal) PARALLEL SAFE;
ALTER FUNCTION gseg_penalty(internal, internal, internal) PARALLEL SAFE;
ALTER FUNCTION gseg_picksplit(internal, internal) PARALLEL SAFE;
ALTER FUNCTION gseg_union(internal, internal) PARALLEL SAFE;
ALTER FUNCTION gseg_same(seg, seg, internal) PARALLEL SAFE;
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
CREATE FUNCTION seg_in(cstring) CREATE FUNCTION seg_in(cstring)
RETURNS seg RETURNS seg
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION seg_out(seg) CREATE FUNCTION seg_out(seg)
RETURNS cstring RETURNS cstring
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE TYPE seg ( CREATE TYPE seg (
INTERNALLENGTH = 12, INTERNALLENGTH = 12,
...@@ -33,7 +33,7 @@ COMMENT ON TYPE seg IS ...@@ -33,7 +33,7 @@ COMMENT ON TYPE seg IS
CREATE FUNCTION seg_over_left(seg, seg) CREATE FUNCTION seg_over_left(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_over_left(seg, seg) IS COMMENT ON FUNCTION seg_over_left(seg, seg) IS
'overlaps or is left of'; 'overlaps or is left of';
...@@ -41,7 +41,7 @@ COMMENT ON FUNCTION seg_over_left(seg, seg) IS ...@@ -41,7 +41,7 @@ COMMENT ON FUNCTION seg_over_left(seg, seg) IS
CREATE FUNCTION seg_over_right(seg, seg) CREATE FUNCTION seg_over_right(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_over_right(seg, seg) IS COMMENT ON FUNCTION seg_over_right(seg, seg) IS
'overlaps or is right of'; 'overlaps or is right of';
...@@ -49,7 +49,7 @@ COMMENT ON FUNCTION seg_over_right(seg, seg) IS ...@@ -49,7 +49,7 @@ COMMENT ON FUNCTION seg_over_right(seg, seg) IS
CREATE FUNCTION seg_left(seg, seg) CREATE FUNCTION seg_left(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_left(seg, seg) IS COMMENT ON FUNCTION seg_left(seg, seg) IS
'is left of'; 'is left of';
...@@ -57,7 +57,7 @@ COMMENT ON FUNCTION seg_left(seg, seg) IS ...@@ -57,7 +57,7 @@ COMMENT ON FUNCTION seg_left(seg, seg) IS
CREATE FUNCTION seg_right(seg, seg) CREATE FUNCTION seg_right(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_right(seg, seg) IS COMMENT ON FUNCTION seg_right(seg, seg) IS
'is right of'; 'is right of';
...@@ -68,7 +68,7 @@ COMMENT ON FUNCTION seg_right(seg, seg) IS ...@@ -68,7 +68,7 @@ COMMENT ON FUNCTION seg_right(seg, seg) IS
CREATE FUNCTION seg_lt(seg, seg) CREATE FUNCTION seg_lt(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_lt(seg, seg) IS COMMENT ON FUNCTION seg_lt(seg, seg) IS
'less than'; 'less than';
...@@ -76,7 +76,7 @@ COMMENT ON FUNCTION seg_lt(seg, seg) IS ...@@ -76,7 +76,7 @@ COMMENT ON FUNCTION seg_lt(seg, seg) IS
CREATE FUNCTION seg_le(seg, seg) CREATE FUNCTION seg_le(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_le(seg, seg) IS COMMENT ON FUNCTION seg_le(seg, seg) IS
'less than or equal'; 'less than or equal';
...@@ -84,7 +84,7 @@ COMMENT ON FUNCTION seg_le(seg, seg) IS ...@@ -84,7 +84,7 @@ COMMENT ON FUNCTION seg_le(seg, seg) IS
CREATE FUNCTION seg_gt(seg, seg) CREATE FUNCTION seg_gt(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_gt(seg, seg) IS COMMENT ON FUNCTION seg_gt(seg, seg) IS
'greater than'; 'greater than';
...@@ -92,7 +92,7 @@ COMMENT ON FUNCTION seg_gt(seg, seg) IS ...@@ -92,7 +92,7 @@ COMMENT ON FUNCTION seg_gt(seg, seg) IS
CREATE FUNCTION seg_ge(seg, seg) CREATE FUNCTION seg_ge(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_ge(seg, seg) IS COMMENT ON FUNCTION seg_ge(seg, seg) IS
'greater than or equal'; 'greater than or equal';
...@@ -100,7 +100,7 @@ COMMENT ON FUNCTION seg_ge(seg, seg) IS ...@@ -100,7 +100,7 @@ COMMENT ON FUNCTION seg_ge(seg, seg) IS
CREATE FUNCTION seg_contains(seg, seg) CREATE FUNCTION seg_contains(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_contains(seg, seg) IS COMMENT ON FUNCTION seg_contains(seg, seg) IS
'contains'; 'contains';
...@@ -108,7 +108,7 @@ COMMENT ON FUNCTION seg_contains(seg, seg) IS ...@@ -108,7 +108,7 @@ COMMENT ON FUNCTION seg_contains(seg, seg) IS
CREATE FUNCTION seg_contained(seg, seg) CREATE FUNCTION seg_contained(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_contained(seg, seg) IS COMMENT ON FUNCTION seg_contained(seg, seg) IS
'contained in'; 'contained in';
...@@ -116,7 +116,7 @@ COMMENT ON FUNCTION seg_contained(seg, seg) IS ...@@ -116,7 +116,7 @@ COMMENT ON FUNCTION seg_contained(seg, seg) IS
CREATE FUNCTION seg_overlap(seg, seg) CREATE FUNCTION seg_overlap(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_overlap(seg, seg) IS COMMENT ON FUNCTION seg_overlap(seg, seg) IS
'overlaps'; 'overlaps';
...@@ -124,7 +124,7 @@ COMMENT ON FUNCTION seg_overlap(seg, seg) IS ...@@ -124,7 +124,7 @@ COMMENT ON FUNCTION seg_overlap(seg, seg) IS
CREATE FUNCTION seg_same(seg, seg) CREATE FUNCTION seg_same(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_same(seg, seg) IS COMMENT ON FUNCTION seg_same(seg, seg) IS
'same as'; 'same as';
...@@ -132,7 +132,7 @@ COMMENT ON FUNCTION seg_same(seg, seg) IS ...@@ -132,7 +132,7 @@ COMMENT ON FUNCTION seg_same(seg, seg) IS
CREATE FUNCTION seg_different(seg, seg) CREATE FUNCTION seg_different(seg, seg)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_different(seg, seg) IS COMMENT ON FUNCTION seg_different(seg, seg) IS
'different'; 'different';
...@@ -142,41 +142,41 @@ COMMENT ON FUNCTION seg_different(seg, seg) IS ...@@ -142,41 +142,41 @@ COMMENT ON FUNCTION seg_different(seg, seg) IS
CREATE FUNCTION seg_cmp(seg, seg) CREATE FUNCTION seg_cmp(seg, seg)
RETURNS int4 RETURNS int4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
COMMENT ON FUNCTION seg_cmp(seg, seg) IS 'btree comparison function'; COMMENT ON FUNCTION seg_cmp(seg, seg) IS 'btree comparison function';
CREATE FUNCTION seg_union(seg, seg) CREATE FUNCTION seg_union(seg, seg)
RETURNS seg RETURNS seg
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION seg_inter(seg, seg) CREATE FUNCTION seg_inter(seg, seg)
RETURNS seg RETURNS seg
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION seg_size(seg) CREATE FUNCTION seg_size(seg)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
-- miscellaneous -- miscellaneous
CREATE FUNCTION seg_center(seg) CREATE FUNCTION seg_center(seg)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION seg_upper(seg) CREATE FUNCTION seg_upper(seg)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION seg_lower(seg) CREATE FUNCTION seg_lower(seg)
RETURNS float4 RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
-- --
...@@ -329,37 +329,37 @@ CREATE OPERATOR ~ ( ...@@ -329,37 +329,37 @@ CREATE OPERATOR ~ (
CREATE FUNCTION gseg_consistent(internal,seg,smallint,oid,internal) CREATE FUNCTION gseg_consistent(internal,seg,smallint,oid,internal)
RETURNS bool RETURNS bool
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gseg_compress(internal) CREATE FUNCTION gseg_compress(internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gseg_decompress(internal) CREATE FUNCTION gseg_decompress(internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gseg_penalty(internal,internal,internal) CREATE FUNCTION gseg_penalty(internal,internal,internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gseg_picksplit(internal, internal) CREATE FUNCTION gseg_picksplit(internal, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gseg_union(internal, internal) CREATE FUNCTION gseg_union(internal, internal)
RETURNS seg RETURNS seg
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
CREATE FUNCTION gseg_same(seg, seg, internal) CREATE FUNCTION gseg_same(seg, seg, internal)
RETURNS internal RETURNS internal
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C IMMUTABLE STRICT; LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE;
-- Create the operator classes for indexing -- Create the operator classes for indexing
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment