URX_PUBLIC._raster_constraint_info_scale(rastschema name, rasttable name, rastcolumn name, axis character) - Procedure
Home|Tables|Schemas|Diagrams|Foreign Keys|Indexes

NameURX_PUBLIC._raster_constraint_info_scale(rastschema name, rasttable name, rastcolumn name, axis character)
Comment
Src
CREATE FUNCTION "URX_PUBLIC"."_raster_constraint_info_scale"(rastschema name, rasttable name, rastcolumn name, axis character) 
 RETURNS double precision AS 
$BODY$
	WITH c AS (SELECT
		regexp_replace(
			replace(
				split_part(
					split_part(s.consrc, ' = ', 2),
					'::', 1
				),
				'round(', ''
			),
			'[ ''''\(\)]', '', 'g'
		)::text AS val
	FROM pg_class c, pg_namespace n, pg_attribute a, pg_constraint s
	WHERE n.nspname = $1
		AND c.relname = $2
		AND a.attname = $3
		AND a.attrelid = c.oid
		AND s.connamespace = n.oid
		AND s.conrelid = c.oid
		AND a.attnum = ANY (s.conkey)
		AND s.consrc LIKE '%st_scale' || $4 || '(% = %')
-- if it is a comma separated list of two numbers then need to use round
   SELECT CASE WHEN split_part(c.val,',', 2) > ''
        THEN round( split_part(c.val, ',',1)::numeric, split_part(c.val,',',2)::integer )::float8
        ELSE c.val::float8 END
        FROM c;
	$BODY$
 LANGUAGE 'sql' STABLESTRICT ;