| /* 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); |