diff options
Diffstat (limited to 'contrib/cube/cube.sql.in')
| -rw-r--r-- | contrib/cube/cube.sql.in | 91 |
1 files changed, 58 insertions, 33 deletions
diff --git a/contrib/cube/cube.sql.in b/contrib/cube/cube.sql.in index ecc9215070..e54f10c046 100644 --- a/contrib/cube/cube.sql.in +++ b/contrib/cube/cube.sql.in @@ -1,16 +1,16 @@ -- Create the user-defined type for N-dimensional boxes -- -BEGIN TRANSACTION; +BEGIN; -- Adjust this setting to control where the objects get created. SET search_path = public; -CREATE FUNCTION cube_in(cstring) +CREATE OR REPLACE FUNCTION cube_in(cstring) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c'IMMUTABLE STRICT; -CREATE FUNCTION cube_out(cube) +CREATE OR REPLACE FUNCTION cube_out(cube) RETURNS cstring AS 'MODULE_PATHNAME' LANGUAGE 'c'IMMUTABLE STRICT; @@ -26,8 +26,7 @@ COMMENT ON TYPE cube IS -- Convert from text to cube -CREATE FUNCTION cube(text) -RETURNS cube +CREATE OR REPLACE FUNCTION cube(text) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; @@ -40,25 +39,25 @@ COMMENT ON FUNCTION cube(text) IS -- Left/Right methods -CREATE FUNCTION cube_over_left(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_over_left(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_over_left(cube, cube) IS 'is over and left of (NOT IMPLEMENTED)'; -CREATE FUNCTION cube_over_right(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_over_right(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_over_right(cube, cube) IS 'is over and right of (NOT IMPLEMENTED)'; -CREATE FUNCTION cube_left(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_left(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_left(cube, cube) IS 'is left of (NOT IMPLEMENTED)'; -CREATE FUNCTION cube_right(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_right(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_right(cube, cube) IS @@ -67,43 +66,43 @@ COMMENT ON FUNCTION cube_right(cube, cube) IS -- Comparison methods -CREATE FUNCTION cube_lt(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_lt(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_lt(cube, cube) IS 'lower than'; -CREATE FUNCTION cube_gt(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_gt(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_gt(cube, cube) IS 'greater than'; -CREATE FUNCTION cube_contains(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_contains(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_contains(cube, cube) IS 'contains'; -CREATE FUNCTION cube_contained(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_contained(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_contained(cube, cube) IS 'contained in'; -CREATE FUNCTION cube_overlap(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_overlap(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_overlap(cube, cube) IS 'overlaps'; -CREATE FUNCTION cube_same(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_same(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_same(cube, cube) IS 'same as'; -CREATE FUNCTION cube_different(cube, cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_different(cube, cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; COMMENT ON FUNCTION cube_different(cube, cube) IS @@ -111,13 +110,13 @@ COMMENT ON FUNCTION cube_different(cube, cube) IS -- support routines for indexing -CREATE FUNCTION cube_union(cube, cube) RETURNS cube +CREATE OR REPLACE FUNCTION cube_union(cube, cube) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -CREATE FUNCTION cube_inter(cube, cube) RETURNS cube +CREATE OR REPLACE FUNCTION cube_inter(cube, cube) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -CREATE FUNCTION cube_size(cube) RETURNS float8 +CREATE OR REPLACE FUNCTION cube_size(cube) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; @@ -125,28 +124,28 @@ CREATE FUNCTION cube_size(cube) RETURNS float8 -- proximity routines -CREATE FUNCTION cube_distance(cube, cube) RETURNS float8 +CREATE OR REPLACE FUNCTION cube_distance(cube, cube) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -- Extracting elements functions -CREATE FUNCTION cube_dim(cube) RETURNS int4 +CREATE OR REPLACE FUNCTION cube_dim(cube) RETURNS int4 AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -CREATE FUNCTION cube_ll_coord(cube, int4) RETURNS float8 +CREATE OR REPLACE FUNCTION cube_ll_coord(cube, int4) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -CREATE FUNCTION cube_ur_coord(cube, int4) RETURNS float8 +CREATE OR REPLACE FUNCTION cube_ur_coord(cube, int4) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -- Test if cube is also a point -CREATE FUNCTION cube_is_point(cube) RETURNS bool +CREATE OR REPLACE FUNCTION cube_is_point(cube) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -- Increasing the size of a cube by a radius in at least n dimensions -CREATE FUNCTION cube_enlarge(cube, float8, int4) RETURNS cube +CREATE OR REPLACE FUNCTION cube_enlarge(cube, float8, int4) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c' IMMUTABLE STRICT; -- @@ -222,25 +221,25 @@ CREATE OPERATOR ~ ( -- define the GiST support methods -CREATE FUNCTION g_cube_consistent(internal,cube,int4) RETURNS bool +CREATE OR REPLACE FUNCTION g_cube_consistent(internal,cube,int4) RETURNS bool AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_compress(internal) RETURNS internal +CREATE OR REPLACE FUNCTION g_cube_compress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_decompress(internal) RETURNS internal +CREATE OR REPLACE FUNCTION g_cube_decompress(internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_penalty(internal,internal,internal) RETURNS internal +CREATE OR REPLACE FUNCTION g_cube_penalty(internal,internal,internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c' STRICT; -CREATE FUNCTION g_cube_picksplit(internal, internal) RETURNS internal +CREATE OR REPLACE FUNCTION g_cube_picksplit(internal, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_union(bytea, internal) RETURNS cube +CREATE OR REPLACE FUNCTION g_cube_union(bytea, internal) RETURNS cube AS 'MODULE_PATHNAME' LANGUAGE 'c'; -CREATE FUNCTION g_cube_same(cube, cube, internal) RETURNS internal +CREATE OR REPLACE FUNCTION g_cube_same(cube, cube, internal) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE 'c'; @@ -264,5 +263,31 @@ CREATE OPERATOR CLASS gist_cube_ops FUNCTION 6 g_cube_picksplit (internal, internal), FUNCTION 7 g_cube_same (cube, cube, internal); +-- +-- By default the externally visible functions are made executable by +-- anyone. To restrict their access comment out the following grant commands. +-- -END TRANSACTION; +GRANT EXECUTE ON FUNCTION cube(text) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_over_left(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_over_right(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_left(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_right(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_lt(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_gt(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_contains(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_contained(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_overlap(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_same(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_different(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_union(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_inter(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_size(cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_distance(cube, cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_dim(cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_ll_coord(cube, int4) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_ur_coord(cube, int4) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_is_point(cube) TO PUBLIC; +GRANT EXECUTE ON FUNCTION cube_enlarge(cube, float8, int4) TO PUBLIC; + +COMMIT; |
