Schema
Owner
postgres
Descriptions
There is no description for function _add_raster_constraint_nodata_values
Options
Option | Value |
---|---|
Returns |
boolean |
Language |
|
Parameters |
rastschema name rasttable name rastcolumn name |
Definition
CREATE OR REPLACE FUNCTION public._add_raster_constraint_nodata_values (
rastschema name,
rasttable name,
rastcolumn name
)
RETURNS boolean AS
$span$
DECLARE
fqtn text;
cn name;
sql text;
attr numeric[];
max int;
BEGIN
fqtn := '';
IF length($1) > 0 THEN
fqtn := quote_ident($1) || '.';
END IF;
fqtn := fqtn || quote_ident($2);
cn := 'enforce_nodata_values_' || $3;
sql := 'SELECT _raster_constraint_nodata_values(' || quote_ident($3)
|| ') FROM ' || fqtn
|| ' LIMIT 1';
BEGIN
EXECUTE sql INTO attr;
EXCEPTION WHEN OTHERS THEN
RAISE NOTICE 'Unable to get the nodata values of a sample raster: % (%)',
SQLERRM, SQLSTATE;
RETURN FALSE;
END;
max := array_length(attr, 1);
IF max < 1 OR max IS NULL THEN
RAISE NOTICE 'Unable to get the nodata values of a sample raster (max < 1 or null)';
RETURN FALSE;
END IF;
sql := 'ALTER TABLE ' || fqtn
|| ' ADD CONSTRAINT ' || quote_ident(cn)
|| ' CHECK (_raster_constraint_nodata_values(' || quote_ident($3)
|| ')::numeric[] = ''{';
FOR x in 1..max LOOP
IF attr[x] IS NULL THEN
sql := sql || 'NULL';
ELSE
sql := sql || attr[x];
END IF;
IF x < max THEN
sql := sql || ',';
END IF;
END LOOP;
sql := sql || '}''::numeric[])';
RETURN _add_raster_constraint(cn, sql);
END;
$span$
LANGUAGE 'plpgsql'
VOLATILE
RETURNS NULL ON NULL INPUT
SECURITY INVOKER
COST 100;
This file was generated with SQL Manager for PostgreSQL (www.pgsqlmanager.com) at 13/03/2014 13:23 |