]> granicus.if.org Git - postgis/commitdiff
As per discussion in ticket #1373, convert raster constraints with floating point...
authorBborie Park <bkpark at ucdavis.edu>
Tue, 13 Dec 2011 23:21:31 +0000 (23:21 +0000)
committerBborie Park <bkpark at ucdavis.edu>
Tue, 13 Dec 2011 23:21:31 +0000 (23:21 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8396 b70326c6-7e19-0410-871a-916f4a2858ee

raster/rt_pg/rtpostgis.sql.in.c

index 4fafaa6529a4c1436dac91c6b3bd97dee41f712c..09309d777a26249e5fa87acab604cd06189c89f5 100644 (file)
@@ -3614,7 +3614,7 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_scale(rastschema name, rasttab
                        || ' ADD CONSTRAINT ' || quote_ident(cn)
                        || ' CHECK (st_scale' || $4 || '('
                        || quote_ident($3)
-                       || ') = ' || attr || ')';
+                       || ')::numeric(16,10) = (' || attr || ')::numeric(16,10))';
                RETURN _add_raster_constraint(cn, sql);
        END;
        $$ LANGUAGE 'plpgsql' VOLATILE STRICT
@@ -4054,14 +4054,14 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_nodata_values(rastschema name,
                sql := 'ALTER TABLE ' || fqtn
                        || ' ADD CONSTRAINT ' || quote_ident(cn)
                        || ' CHECK (_raster_constraint_nodata_values(' || quote_ident($3)
-                       || ') = ''{';
+                       || ')::numeric(16,10)[] = ''{';
                FOR x in 1..max LOOP
                        sql := sql || attr[x];
                        IF x < max THEN
                                sql := sql || ',';
                        END IF;
                END LOOP;
-               sql := sql || '}''::double precision[])';
+               sql := sql || '}''::numeric(16,10)[])';
 
                RETURN _add_raster_constraint(cn, sql);
        END;