]> granicus.if.org Git - postgis/commitdiff
- Added default values for function parameters of ST_ValueCount and ST_ValuePercent...
authorBborie Park <bkpark at ucdavis.edu>
Fri, 27 May 2011 00:02:59 +0000 (00:02 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Fri, 27 May 2011 00:02:59 +0000 (00:02 +0000)
- Tweaked the regression tests for ST_ValueCount and ST_ValuePercent as one question for each function type was too ambiguous.

git-svn-id: http://svn.osgeo.org/postgis/trunk@7264 b70326c6-7e19-0410-871a-916f4a2858ee

raster/rt_pg/rtpostgis.sql.in.c
raster/test/regress/rt_valuecount.sql
raster/test/regress/rt_valuepercent.sql

index 19a35ef3f87eb0ed196f62f512cbe85029747311..2f2dc4e85538f9fc0923917a0b631cd66b0ab29d 100644 (file)
@@ -910,62 +910,42 @@ CREATE TYPE valuecount AS (
 -- None of the "searchvaleus" functions can be strict as "searchvalues" and "roundto" can be NULL
 -- Allowing "searchvalues" to be NULL instructs the function to count all values
 
-CREATE OR REPLACE FUNCTION _st_valuecount(rast raster, nband integer, hasnodata boolean, searchvalues double precision[], roundto double precision)
+CREATE OR REPLACE FUNCTION _st_valuecount(rast raster, nband integer DEFAULT 1, hasnodata boolean DEFAULT TRUE, searchvalues double precision[] DEFAULT NULL, roundto double precision DEFAULT 0)
        RETURNS SETOF valuecount
        AS 'MODULE_PATHNAME', 'RASTER_valueCount'
        LANGUAGE 'C' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, hasnodata boolean, searchvalues double precision[], roundto double precision, OUT value double precision, OUT count integer)
+CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer DEFAULT 1, hasnodata boolean DEFAULT TRUE, searchvalues double precision[] DEFAULT NULL, roundto double precision DEFAULT 0, OUT value double precision, OUT count integer)
        RETURNS SETOF record
        AS $$ SELECT value, count FROM _st_valuecount($1, $2, $3, $4, $5) $$
        LANGUAGE 'sql' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, searchvalues double precision[], roundto double precision, OUT value double precision, OUT count integer)
+CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT count integer)
        RETURNS SETOF record
        AS $$ SELECT value, count FROM _st_valuecount($1, $2, TRUE, $3, $4) $$
        LANGUAGE 'sql' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, searchvalues double precision[], OUT value double precision, OUT count integer)
-       RETURNS SETOF record
-       AS $$ SELECT value, count FROM _st_valuecount($1, $2, TRUE, $3, 0) $$
-       LANGUAGE 'sql' IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, searchvalues double precision[], roundto double precision, OUT value double precision, OUT count integer)
+CREATE OR REPLACE FUNCTION st_valuecount(rast raster, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT count integer)
        RETURNS SETOF record
        AS $$ SELECT value, count FROM _st_valuecount($1, 1, TRUE, $2, $3) $$
        LANGUAGE 'sql' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, searchvalues double precision[], OUT value double precision, OUT count integer)
-       RETURNS SETOF record
-       AS $$ SELECT value, count FROM _st_valuecount($1, 1, TRUE, $2, 0) $$
-       LANGUAGE 'sql' IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision, OUT count integer)
+CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision DEFAULT 0, OUT count integer)
        RETURNS integer
        AS $$ SELECT count FROM _st_valuecount($1, $2, $3, ARRAY[$4]::double precision[], $5) $$
        LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, searchvalue double precision, roundto double precision, OUT count integer)
+CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, searchvalue double precision, roundto double precision DEFAULT 0, OUT count integer)
        RETURNS integer
        AS $$ SELECT count FROM _st_valuecount($1, $2, TRUE, ARRAY[$3]::double precision[], $4) $$
        LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, nband integer, searchvalue double precision, OUT count integer)
-       RETURNS integer
-       AS $$ SELECT count FROM _st_valuecount($1, $2, TRUE, ARRAY[$3]::double precision[], 0) $$
-       LANGUAGE 'sql' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, searchvalue double precision, roundto double precision, OUT count integer)
+CREATE OR REPLACE FUNCTION st_valuecount(rast raster, searchvalue double precision, roundto double precision DEFAULT 0, OUT count integer)
        RETURNS integer
        AS $$ SELECT count FROM _st_valuecount($1, 1, TRUE, ARRAY[$2]::double precision[], $3) $$
        LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rast raster, searchvalue double precision, OUT count integer)
-       RETURNS integer
-       AS $$ SELECT count FROM _st_valuecount($1, 1, TRUE, ARRAY[$2]::double precision[], 0) $$
-       LANGUAGE 'sql' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION _st_valuecount(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalues double precision[], roundto double precision)
+CREATE OR REPLACE FUNCTION _st_valuecount(rastertable text, rastercolumn text, nband integer DEFAULT 1, hasnodata boolean DEFAULT TRUE, searchvalues double precision[] DEFAULT NULL, roundto double precision DEFAULT 0)
        RETURNS SETOF valuecount
        AS $$
        DECLARE
@@ -1031,107 +1011,67 @@ CREATE OR REPLACE FUNCTION _st_valuecount(rastertable text, rastercolumn text, n
        END;
        $$ LANGUAGE 'plpgsql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalues double precision[], roundto double precision, OUT value double precision, OUT count bigint)
+CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer DEFAULT 1, hasnodata boolean DEFAULT TRUE, searchvalues double precision[] DEFAULT NULL, roundto double precision DEFAULT 0, OUT value double precision, OUT count bigint)
        RETURNS SETOF record
        AS $$ SELECT value, sum(count) AS count FROM _st_valuecount($1, $2, $3, $4, $5, $6) GROUP BY 1 ORDER BY 1 $$
        LANGUAGE 'sql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, searchvalues double precision[], roundto double precision, OUT value double precision, OUT count bigint)
+CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT count bigint)
        RETURNS SETOF record
        AS $$ SELECT value, count FROM st_valuecount($1, $2, $3, TRUE, $4, $5) $$
        LANGUAGE 'sql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, searchvalues double precision[], OUT value double precision, OUT count bigint)
-       RETURNS SETOF record
-       AS $$ SELECT value, count FROM st_valuecount($1, $2, $3, TRUE, $4, 0) $$
-       LANGUAGE 'sql' STABLE;
-
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, searchvalues double precision[], roundto double precision, OUT value double precision, OUT count bigint)
+CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT count bigint)
        RETURNS SETOF record
        AS $$ SELECT value, count FROM st_valuecount($1, $2, 1, TRUE, $3, $4) $$
        LANGUAGE 'sql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, searchvalues double precision[], OUT value double precision, OUT count bigint)
-       RETURNS SETOF record
-       AS $$ SELECT value, count FROM st_valuecount($1, $2, 1, TRUE, $3, 0) $$
-       LANGUAGE 'sql' STABLE;
-
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision, OUT count bigint)
+CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision DEFAULT 0, OUT count bigint)
        RETURNS bigint
        AS $$ SELECT count FROM st_valuecount($1, $2, $3, $4, ARRAY[$5]::double precision[], $6) $$
        LANGUAGE 'sql' STABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, searchvalue double precision, roundto double precision, OUT count bigint)
+CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, searchvalue double precision, roundto double precision DEFAULT 0, OUT count bigint)
        RETURNS bigint
        AS $$ SELECT count FROM st_valuecount($1, $2, $3, TRUE, ARRAY[$4]::double precision[], $5) $$
        LANGUAGE 'sql' STABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, nband integer, searchvalue double precision, OUT count bigint)
-       RETURNS bigint
-       AS $$ SELECT count FROM st_valuecount($1, $2, $3, TRUE, ARRAY[$4]::double precision[], 0) $$
-       LANGUAGE 'sql' STABLE STRICT;
-
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, searchvalue double precision, roundto double precision, OUT count bigint)
+CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, searchvalue double precision, roundto double precision DEFAULT 0, OUT count bigint)
        RETURNS bigint
        AS $$ SELECT count FROM st_valuecount($1, $2, 1, TRUE, ARRAY[$3]::double precision[], $4) $$
        LANGUAGE 'sql' STABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuecount(rastertable text, rastercolumn text, searchvalue double precision, OUT count bigint)
-       RETURNS bigint
-       AS $$ SELECT count FROM st_valuecount($1, $2, 1, TRUE, ARRAY[$3]::double precision[], 0) $$
-       LANGUAGE 'sql' STABLE STRICT;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, hasnodata boolean, searchvalues double precision[], roundto double precision, OUT value double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer DEFAULT 1, hasnodata boolean DEFAULT TRUE, searchvalues double precision[] DEFAULT NULL, roundto double precision DEFAULT 0, OUT value double precision, OUT percent double precision)
        RETURNS SETOF record
        AS $$ SELECT value, percent FROM _st_valuecount($1, $2, $3, $4, $5) $$
        LANGUAGE 'sql' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, searchvalues double precision[], roundto double precision, OUT value double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT percent double precision)
        RETURNS SETOF record
        AS $$ SELECT value, percent FROM _st_valuecount($1, $2, TRUE, $3, $4) $$
        LANGUAGE 'sql' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, searchvalues double precision[], OUT value double precision, OUT percent double precision)
-       RETURNS SETOF record
-       AS $$ SELECT value, percent FROM _st_valuecount($1, $2, TRUE, $3, 0) $$
-       LANGUAGE 'sql' IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, searchvalues double precision[], roundto double precision, OUT value double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT percent double precision)
        RETURNS SETOF record
        AS $$ SELECT value, percent FROM _st_valuecount($1, 1, TRUE, $2, $3) $$
        LANGUAGE 'sql' IMMUTABLE;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, searchvalues double precision[], OUT value double precision, OUT percent double precision)
-       RETURNS SETOF record
-       AS $$ SELECT value, percent FROM _st_valuecount($1, 1, TRUE, $2, 0) $$
-       LANGUAGE 'sql' IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision DEFAULT 0, OUT percent double precision)
        RETURNS double precision
        AS $$ SELECT percent FROM _st_valuecount($1, $2, $3, ARRAY[$4]::double precision[], $5) $$
        LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, searchvalue double precision, roundto double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, searchvalue double precision, roundto double precision DEFAULT 0, OUT percent double precision)
        RETURNS double precision
        AS $$ SELECT percent FROM _st_valuecount($1, $2, TRUE, ARRAY[$3]::double precision[], $4) $$
        LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, nband integer, searchvalue double precision, OUT percent double precision)
-       RETURNS double precision
-       AS $$ SELECT percent FROM _st_valuecount($1, $2, TRUE, ARRAY[$3]::double precision[], 0) $$
-       LANGUAGE 'sql' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, searchvalue double precision, roundto double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, searchvalue double precision, roundto double precision DEFAULT 0, OUT percent double precision)
        RETURNS double precision
        AS $$ SELECT percent FROM _st_valuecount($1, 1, TRUE, ARRAY[$2]::double precision[], $3) $$
        LANGUAGE 'sql' IMMUTABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rast raster, searchvalue double precision, OUT percent double precision)
-       RETURNS double precision
-       AS $$ SELECT percent FROM _st_valuecount($1, 1, TRUE, ARRAY[$2]::double precision[], 0) $$
-       LANGUAGE 'sql' IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalues double precision[], roundto double precision, OUT value double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer DEFAULT 1, hasnodata boolean DEFAULT TRUE, searchvalues double precision[] DEFAULT NULL, roundto double precision DEFAULT 0, OUT value double precision, OUT percent double precision)
        RETURNS SETOF record
        AS $$
                SELECT
@@ -1152,51 +1092,31 @@ CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text,
                ORDER BY 1
        $$ LANGUAGE 'sql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, searchvalues double precision[], roundto double precision, OUT value double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT percent double precision)
        RETURNS SETOF record
        AS $$ SELECT value, percent FROM st_valuepercent($1, $2, $3, TRUE, $4, $5) $$
        LANGUAGE 'sql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, searchvalues double precision[], OUT value double precision, OUT percent double precision)
-       RETURNS SETOF record
-       AS $$ SELECT value, percent FROM st_valuepercent($1, $2, $3, TRUE, $4, 0) $$
-       LANGUAGE 'sql' STABLE;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, searchvalues double precision[], roundto double precision, OUT value double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, searchvalues double precision[], roundto double precision DEFAULT 0, OUT value double precision, OUT percent double precision)
        RETURNS SETOF record
        AS $$ SELECT value, percent FROM st_valuepercent($1, $2, 1, TRUE, $3, $4) $$
        LANGUAGE 'sql' STABLE;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, searchvalues double precision[], OUT value double precision, OUT percent double precision)
-       RETURNS SETOF record
-       AS $$ SELECT value, percent FROM st_valuepercent($1, $2, 1, TRUE, $3, 0) $$
-       LANGUAGE 'sql' STABLE;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, hasnodata boolean, searchvalue double precision, roundto double precision DEFAULT 0, OUT percent double precision)
        RETURNS double precision
        AS $$ SELECT percent FROM st_valuepercent($1, $2, $3, $4, ARRAY[$5]::double precision[], $6) $$
        LANGUAGE 'sql' STABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, searchvalue double precision, roundto double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, searchvalue double precision, roundto double precision DEFAULT 0, OUT percent double precision)
        RETURNS double precision
        AS $$ SELECT percent FROM st_valuepercent($1, $2, $3, TRUE, ARRAY[$4]::double precision[], $5) $$
        LANGUAGE 'sql' STABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, nband integer, searchvalue double precision, OUT percent double precision)
-       RETURNS double precision
-       AS $$ SELECT percent FROM st_valuepercent($1, $2, $3, TRUE, ARRAY[$4]::double precision[], 0) $$
-       LANGUAGE 'sql' STABLE STRICT;
-
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, searchvalue double precision, roundto double precision, OUT percent double precision)
+CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, searchvalue double precision, roundto double precision DEFAULT 0, OUT percent double precision)
        RETURNS double precision
        AS $$ SELECT percent FROM st_valuepercent($1, $2, 1, TRUE, ARRAY[$3]::double precision[], $4) $$
        LANGUAGE 'sql' STABLE STRICT;
 
-CREATE OR REPLACE FUNCTION st_valuepercent(rastertable text, rastercolumn text, searchvalue double precision, OUT percent double precision)
-       RETURNS double precision
-       AS $$ SELECT percent FROM st_valuepercent($1, $2, 1, TRUE, ARRAY[$3]::double precision[], 0) $$
-       LANGUAGE 'sql' STABLE STRICT;
-
 -----------------------------------------------------------------------
 -- ST_Reclass
 -----------------------------------------------------------------------
index ad5daa6f9c68b21b9d9bc43c32b503c37ea26a6b..7b4102fdde06bbf51a3524933ec7ddbb0f1fca6f 100644 (file)
@@ -242,5 +242,5 @@ SELECT count FROM st_valuecount('test', 'rast', 1, TRUE, NULL::double precision,
 SELECT count FROM st_valuecount('test', 'rast', 1, 3.14, 1);
 SELECT count FROM st_valuecount('test', 'rast', 1, -1);
 SELECT count FROM st_valuecount('test', 'rast', 3.1, 0.1);
-SELECT count FROM st_valuecount('test', 'rast', -9);
+SELECT count FROM st_valuecount('test', 'rast', -9.);
 ROLLBACK;
index 1cf0d668f09b8c394018fad98f33e4b3c0b02d0e..a13e8bb4b06d8d569b19d7d3d19b809d5f899712 100644 (file)
@@ -242,5 +242,5 @@ SELECT round(percent::numeric, 3) FROM ST_ValuePercent('test', 'rast', 1, TRUE,
 SELECT round(percent::numeric, 3) FROM ST_ValuePercent('test', 'rast', 1, 3.14, 1);
 SELECT round(percent::numeric, 3) FROM ST_ValuePercent('test', 'rast', 1, -1);
 SELECT round(percent::numeric, 3) FROM ST_ValuePercent('test', 'rast', 3.1, 0.1);
-SELECT round(percent::numeric, 3) FROM ST_ValuePercent('test', 'rast', -9);
+SELECT round(percent::numeric, 3) FROM ST_ValuePercent('test', 'rast', -9.);
 ROLLBACK;