CREATE OR REPLACE FUNCTION st_band(rast raster, nbands text, delimiter char DEFAULT ',')
RETURNS RASTER
- AS $$ SELECT st_band($1, regexp_split_to_array(regexp_replace($2, '[[:space:]]', '', 'g'), $3)::int[]) $$
+ AS $$ SELECT st_band($1, regexp_split_to_array(regexp_replace($2, '[[:space:]]', '', 'g'), '\' || array_to_string(regexp_split_to_array($3, ''), '\'))::int[]) $$
LANGUAGE 'sql' IMMUTABLE STRICT;
-----------------------------------------------------------------------
)
, ARRAY[999])
);
+
+-- Ticket #2812
+SELECT ST_Value(
+ ST_Band(
+ ST_AddBand(
+ ST_AddBand(
+ ST_AddBand(
+ ST_MakeEmptyRaster(200, 200, 10, 10, 2, 2, 0, 0,0)
+ , 1, '64BF', 1234.5678, NULL
+ )
+ , '64BF', 987.654321, NULL
+ )
+ , '64BF', 9876.54321, NULL
+ ),
+ '1|1', '|'
+ ),
+2, 3, 3);
+SELECT ST_Value(
+ ST_Band(
+ ST_AddBand(
+ ST_AddBand(
+ ST_AddBand(
+ ST_MakeEmptyRaster(200, 200, 10, 10, 2, 2, 0, 0,0)
+ , 1, '64BF', 1234.5678, NULL
+ )
+ , '64BF', 987.654321, NULL
+ )
+ , '64BF', 9876.54321, NULL
+ ),
+ '1.*.2', '.*.'
+ ),
+2, 3, 3);