Added HASH opclass and = operator for raster. This permits GROUP BY

raster usage.

git-svn-id: http://svn.osgeo.org/postgis/trunk@10389 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Bborie Park 2012-10-09 23:12:54 +00:00
parent 1727aedb20
commit 35af99a5e2

View file

@ -3593,6 +3593,33 @@ CREATE CAST (raster AS geometry)
CREATE CAST (raster AS bytea)
WITH FUNCTION bytea(raster) AS ASSIGNMENT;
-------------------------------------------------------------------
-- HASH operators
-------------------------------------------------------------------
-- call PostgreSQL's hashvarlena() function
CREATE OR REPLACE FUNCTION raster_hash(raster)
RETURNS integer
AS 'hashvarlena'
LANGUAGE 'internal' IMMUTABLE STRICT;
-- use raster_hash() to compare
CREATE OR REPLACE FUNCTION raster_eq(raster, raster)
RETURNS bool
AS $$ SELECT raster_hash($1) = raster_hash($2) $$
LANGUAGE 'sql' IMMUTABLE STRICT;
CREATE OPERATOR = (
LEFTARG = raster, RIGHTARG = raster, PROCEDURE = raster_eq,
COMMUTATOR = '=',
RESTRICT = eqsel, JOIN = eqjoinsel
);
CREATE OPERATOR CLASS hash_raster_ops
DEFAULT FOR TYPE raster USING hash AS
OPERATOR 1 = ,
FUNCTION 1 raster_hash (raster);
------------------------------------------------------------------------------
-- GiST index OPERATOR support functions
------------------------------------------------------------------------------