gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 satır
1.6KB

  1. /* contrib/cube/cube--1.0--1.1.sql */
  2. -- complain if script is sourced in psql, rather than via ALTER EXTENSION
  3. \echo Use "ALTER EXTENSION cube UPDATE TO '1.1'" to load this file. \quit
  4. CREATE FUNCTION distance_chebyshev(cube, cube)
  5. RETURNS float8
  6. AS 'MODULE_PATHNAME'
  7. LANGUAGE C IMMUTABLE STRICT;
  8. CREATE FUNCTION distance_taxicab(cube, cube)
  9. RETURNS float8
  10. AS 'MODULE_PATHNAME'
  11. LANGUAGE C IMMUTABLE STRICT;
  12. CREATE FUNCTION cube_coord(cube, int4)
  13. RETURNS float8
  14. AS 'MODULE_PATHNAME'
  15. LANGUAGE C IMMUTABLE STRICT;
  16. CREATE FUNCTION cube_coord_llur(cube, int4)
  17. RETURNS float8
  18. AS 'MODULE_PATHNAME'
  19. LANGUAGE C IMMUTABLE STRICT;
  20. CREATE OPERATOR -> (
  21. LEFTARG = cube, RIGHTARG = int, PROCEDURE = cube_coord
  22. );
  23. CREATE OPERATOR ~> (
  24. LEFTARG = cube, RIGHTARG = int, PROCEDURE = cube_coord_llur
  25. );
  26. CREATE OPERATOR <#> (
  27. LEFTARG = cube, RIGHTARG = cube, PROCEDURE = distance_taxicab,
  28. COMMUTATOR = '<#>'
  29. );
  30. CREATE OPERATOR <-> (
  31. LEFTARG = cube, RIGHTARG = cube, PROCEDURE = cube_distance,
  32. COMMUTATOR = '<->'
  33. );
  34. CREATE OPERATOR <=> (
  35. LEFTARG = cube, RIGHTARG = cube, PROCEDURE = distance_chebyshev,
  36. COMMUTATOR = '<=>'
  37. );
  38. CREATE FUNCTION g_cube_distance (internal, cube, smallint, oid)
  39. RETURNS internal
  40. AS 'MODULE_PATHNAME'
  41. LANGUAGE C IMMUTABLE STRICT;
  42. ALTER OPERATOR FAMILY gist_cube_ops USING gist ADD
  43. OPERATOR 15 ~> (cube, int) FOR ORDER BY float_ops,
  44. OPERATOR 16 <#> (cube, cube) FOR ORDER BY float_ops,
  45. OPERATOR 17 <-> (cube, cube) FOR ORDER BY float_ops,
  46. OPERATOR 18 <=> (cube, cube) FOR ORDER BY float_ops,
  47. FUNCTION 8 (cube, cube) g_cube_distance (internal, cube, smallint, oid);
上海开阖软件有限公司 沪ICP备12045867号-1