[postgis-commits] svn - r3878 - spike/wktraster/rt_pg
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Tue Mar 17 07:41:50 PDT 2009
Author: pracine
Date: 2009-03-17 07:41:48 -0700 (Tue, 17 Mar 2009)
New Revision: 3878
Modified:
spike/wktraster/rt_pg/rtpostgis.sql.in.c
Log:
Added rt_bandpath(rast,bandnum)
Modified: spike/wktraster/rt_pg/rtpostgis.sql.in.c
===================================================================
--- spike/wktraster/rt_pg/rtpostgis.sql.in.c 2009-03-16 23:06:58 UTC (rev 3877)
+++ spike/wktraster/rt_pg/rtpostgis.sql.in.c 2009-03-17 14:41:48 UTC (rev 3878)
@@ -1,21 +1,21 @@
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
+--
-- $Id$
--
--- WKTRaster - Raster Type for PostGIS
+-- WKTRaster - Raster Type for PostGIS
-- http://postgis.refractions.net/support/wiki/index.php?WKTRasterHomePage
--
-- Copyright (c) 2009 Sandro Santilli <strk at keybit.net>
--
-- This is free software; you can redistribute and/or modify it under
-- the terms of the GNU General Public Licence. See the COPYING file.
---
+--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
--- TODO:
+-- TODO:
-- 1) Add regression tests
-- 2) Complete the warning and notes below.
---
+--
-- WARNING: Any change in this file must be evaluated for compatibility.
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -37,14 +37,14 @@
------------------------------------------------------------------------------
CREATEFUNCTION rt_raster_in(cstring)
- RETURNS raster
+ RETURNS raster
AS 'MODULE_PATHNAME','RASTER_in'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_raster_out(raster)
- RETURNS cstring
+ RETURNS cstring
AS 'MODULE_PATHNAME','RASTER_out'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATE TYPE raster (
alignment = double,
@@ -74,91 +74,96 @@
LANGUAGE 'C' IMMUTABLE;
CREATEFUNCTION rt_raster_to_box2d(raster)
- RETURNS BOX2D
+ RETURNS BOX2D
AS 'MODULE_PATHNAME','RASTER_to_BOX2DFLOAT4'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_raster_envelope(raster)
- RETURNS GEOMETRY
+ RETURNS GEOMETRY
AS 'MODULE_PATHNAME','RASTER_envelope'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_srid(raster)
RETURNS integer
AS 'MODULE_PATHNAME','RASTER_getSRID'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_width(raster)
RETURNS integer
AS 'MODULE_PATHNAME','RASTER_getWidth'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_height(raster)
RETURNS integer
AS 'MODULE_PATHNAME','RASTER_getHeight'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_pixelsizex(raster)
- RETURNS float8
+ RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getXPixelSize'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_pixelsizey(raster)
- RETURNS float8
+ RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getYPixelSize'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_rotationx(raster)
- RETURNS float8
+ RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getXRotation'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_rotationy(raster)
- RETURNS float8
+ RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getYRotation'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_upperleftx(raster)
- RETURNS float8
+ RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getXUpperLeft'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_upperlefty(raster)
- RETURNS float8
+ RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getYUpperLeft'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_georeference(raster)
RETURNS TEXT
AS 'MODULE_PATHNAME','RASTER_getGeoReference'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_numbands(raster)
RETURNS integer
AS 'MODULE_PATHNAME','RASTER_getNumBands'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_bandpixeltype(raster, integer)
RETURNS text
AS 'MODULE_PATHNAME','RASTER_getBandPixelTypeName'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
-
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
+
CREATEFUNCTION rt_bandnodatavalue(raster, integer)
RETURNS float4
AS 'MODULE_PATHNAME','RASTER_getBandNoDataValue'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
+CREATEFUNCTION rt_bandpath(raster, integer)
+ RETURNS text
+ AS 'MODULE_PATHNAME','RASTER_getBandPath'
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
+
CREATEFUNCTION rt_value(raster, integer, integer, integer)
RETURNS float8
AS 'MODULE_PATHNAME','RASTER_getPixelValue'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
-- TODO: To be implemented
CREATEFUNCTION rt_setvalue(raster, integer, integer, integer, float8)
RETURNS float8
AS 'MODULE_PATHNAME','RASTER_setPixelValue'
- LANGUAGE 'C' _IMMUTABLE_STRICT;
---
+ LANGUAGE 'C' _IMMUTABLE_STRICT;
+--
-- rt_MakeEmptyRaster( <width>, <height>, <ipx>, <ipy>,
-- <scalex>, <scaley>,
-- <skewx>, <skewy>,
@@ -183,68 +188,68 @@
WITH FUNCTION rt_bytea(raster) AS IMPLICIT;
------------------------------------------------------------------------------
--- GiST index OPERATOR support functions
+-- GiST index OPERATOR support functions
------------------------------------------------------------------------------
CREATEFUNCTION rt_overleft(raster, raster)
RETURNS bool
AS 'select geometry_overleft($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_overright(raster, raster)
RETURNS bool
AS 'select geometry_overright($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_left(raster, raster)
RETURNS bool
AS 'select geometry_left($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_right(raster, raster)
RETURNS bool
AS 'select geometry_right($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_overabove(raster, raster)
RETURNS bool
AS 'select geometry_overabove($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_overbelow(raster, raster)
RETURNS bool
AS 'select geometry_overbelow($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_above(raster, raster)
RETURNS bool
AS 'select geometry_above($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_below(raster, raster)
RETURNS bool
AS 'select geometry_below($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_same(raster, raster)
RETURNS bool
AS 'select geometry_same($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_contained(raster, raster)
RETURNS bool
AS 'select geometry_contained($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_contain(raster, raster)
RETURNS bool
AS 'select geometry_contain($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
CREATEFUNCTION rt_overlap(raster, raster)
RETURNS bool
AS 'select geometry_overlap($1::geometry, $2::geometry)'
- LANGUAGE 'SQL' _IMMUTABLE_STRICT;
+ LANGUAGE 'SQL' _IMMUTABLE_STRICT;
------------------------------------------------------------------------------
-- GiST index OPERATORs
@@ -306,7 +311,7 @@
CREATE OPERATOR ~= (
LEFTARG = raster, RIGHTARG = raster, PROCEDURE = rt_same,
- COMMUTATOR = '~=',
+ COMMUTATOR = '~=',
RESTRICT = eqsel, JOIN = eqjoinsel
);
@@ -349,10 +354,10 @@
blocksize_y double precision,
extent GEOMETRY,
- CONSTRAINT raster_columns_pk primary key (
- r_table_catalog,
- r_table_schema,
- r_table_name,
+ CONSTRAINT raster_columns_pk primary key (
+ r_table_catalog,
+ r_table_schema,
+ r_table_name,
r_column )
) WITH OIDS;
@@ -366,9 +371,9 @@
-- <blocksize_x> <blocksize_y>
-- <extent>
-------------------------------------------------------------------------------
---
+--
-- TODO: to be documented
---
+--
-------------------------------------------------------------------------------
CREATEFUNCTION AddRasterColumn(varchar, varchar, varchar, varchar,
@@ -383,7 +388,7 @@
integer, -- blocksize_y
geometry) -- extent
- RETURNS text AS
+ RETURNS text AS
$$
DECLARE
@@ -414,10 +419,10 @@
nodata_values_size integer := 0;
BEGIN
-
+
RAISE DEBUG 'Parameters: catalog=%, schema=%, table=%, column=%, srid=%, pixel_types=%, out_db=%, regular_blocking=%, nodata_values=%, pixelsize_x=%, pixelsize_y=%, blocksize_x=%, blocksize_y=%',
p_catalog_name, p_schema_name, p_table_name, p_column_name, p_srid, p_pixel_types, p_out_db, p_regular_blocking, p_nodata_values, p_pixelsize_x, p_pixelsize_y, p_blocksize_x, p_blocksize_y;
-
+
-- Validate required parametersa and combinations
IF ( (p_catalog_name IS NULL) OR (p_schema_name IS NULL)
OR (p_table_name IS NULL) OR (p_column_name IS NULL) ) THEN
@@ -439,7 +444,7 @@
RAISE EXCEPTION 'out_db IS NULL, value expected';
RETURN 'fail';
END IF;
-
+
IF ( p_regular_blocking IS NULL ) THEN
RAISE EXCEPTION 'regular_blocking IS NULL, value expected';
RETURN 'fail';
@@ -536,7 +541,7 @@
RAISE EXCEPTION 'extent is of invalid type (%), expected simple and non-rotated POLYGON', geometry_type_into;
RETURN 'fail';
END IF;
-
+
-- Verify SRID
SELECT ST_SRID(p_extent) INTO srid_into;
IF ( p_srid != srid_into::integer ) THEN
@@ -559,7 +564,7 @@
RETURN 'fail';
END IF;
END IF;
-
+
IF ( real_schema IS NULL ) THEN
RAISE DEBUG 'Detecting schema';
sql := 'SELECT n.nspname AS schemaname '
@@ -648,9 +653,9 @@
-- <blocksize_x> <blocksize_y>
-- <extent>
-------------------------------------------------------------------------------
---
+--
-- TODO: to be documented
---
+--
-------------------------------------------------------------------------------
CREATEFUNCTION AddRasterColumn(varchar, varchar, varchar, integer, varchar[],
@@ -658,7 +663,7 @@
double precision, double precision,
integer, integer, geometry)
RETURNS text AS
-$$
+$$
DECLARE
ret text;
BEGIN
@@ -678,9 +683,9 @@
-- <blocksize_x> <blocksize_y>
-- <extent>
-------------------------------------------------------------------------------
---
+--
-- TODO: to be documented
---
+--
-------------------------------------------------------------------------------
CREATEFUNCTION AddRasterColumn(varchar, varchar, integer, varchar[],
@@ -688,7 +693,7 @@
double precision, double precision,
integer, integer, geometry)
RETURNS text AS
-$$
+$$
DECLARE
ret text;
BEGIN
@@ -703,9 +708,9 @@
-- DROPRASTERCOLUMN
-- <catalog> <schema> <table> <column>
-------------------------------------------------------------------------------
---
+--
-- TODO: to be implemented, to be documented
---
+--
-------------------------------------------------------------------------------
CREATEFUNCTION DropRasterColumn(varchar, varchar, varchar, varchar)
More information about the postgis-commits
mailing list