/* contrib/cube/cube--1.0--1.1.sql */ -- complain if script is sourced in psql, rather than via ALTER EXTENSION \echo Use "ALTER EXTENSION cube UPDATE TO '1.1'" to load this file. \quit CREATE FUNCTION distance_chebyshev(cube, cube) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE FUNCTION distance_taxicab(cube, cube) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE FUNCTION cube_coord(cube, int4) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE FUNCTION cube_coord_llur(cube, int4) RETURNS float8 AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; CREATE OPERATOR -> ( LEFTARG = cube, RIGHTARG = int, PROCEDURE = cube_coord ); CREATE OPERATOR ~> ( LEFTARG = cube, RIGHTARG = int, PROCEDURE = cube_coord_llur ); CREATE OPERATOR <#> ( LEFTARG = cube, RIGHTARG = cube, PROCEDURE = distance_taxicab, COMMUTATOR = '<#>' ); CREATE OPERATOR <-> ( LEFTARG = cube, RIGHTARG = cube, PROCEDURE = cube_distance, COMMUTATOR = '<->' ); CREATE OPERATOR <=> ( LEFTARG = cube, RIGHTARG = cube, PROCEDURE = distance_chebyshev, COMMUTATOR = '<=>' ); CREATE FUNCTION g_cube_distance (internal, cube, smallint, oid) RETURNS internal AS 'MODULE_PATHNAME' LANGUAGE C IMMUTABLE STRICT; ALTER OPERATOR FAMILY gist_cube_ops USING gist ADD OPERATOR 15 ~> (cube, int) FOR ORDER BY float_ops, OPERATOR 16 <#> (cube, cube) FOR ORDER BY float_ops, OPERATOR 17 <-> (cube, cube) FOR ORDER BY float_ops, OPERATOR 18 <=> (cube, cube) FOR ORDER BY float_ops, FUNCTION 8 (cube, cube) g_cube_distance (internal, cube, smallint, oid);