summaryrefslogtreecommitdiff
path: root/contrib/cube/cube.sql.in
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cube/cube.sql.in')
-rw-r--r--contrib/cube/cube.sql.in91
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;