From 35239b6bfab2fd7e08d415df7d53f409c38bc464 Mon Sep 17 00:00:00 2001 From: Bborie Park Date: Sat, 24 Jan 2015 17:27:11 +0000 Subject: [PATCH] add unit test for #3020. use rectangular out-db raster git-svn-id: http://svn.osgeo.org/postgis/trunk@13197 b70326c6-7e19-0410-871a-916f4a2858ee --- raster/test/regress/load_outdb-pre.pl | 8 ++-- raster/test/regress/load_outdb-pre.sh | 8 ++-- .../test/regress/loader/Basic.select.expected | 6 +-- raster/test/regress/loader/Basic.select.sql | 4 +- .../regress/loader/BasicCopy.select.expected | 6 +-- .../test/regress/loader/BasicCopy.select.sql | 4 +- .../loader/BasicFilename.select.expected | 4 +- .../regress/loader/BasicFilename.select.sql | 4 +- .../regress/loader/BasicOutDB.select.expected | 6 +-- .../test/regress/loader/BasicOutDB.select.sql | 4 +- .../regress/loader/Projected.select.expected | 4 +- raster/test/regress/loader/Projected.tif | Bin 24836 -> 13894 bytes .../regress/loader/Tiled10x10.select.expected | 6 +-- .../test/regress/loader/Tiled10x10.select.sql | 4 +- .../loader/Tiled10x10Copy.select.expected | 6 +-- .../regress/loader/Tiled10x10Copy.select.sql | 4 +- .../regress/loader/Tiled8x8.select.expected | 8 ++-- .../test/regress/loader/Tiled8x8.select.sql | 6 +-- raster/test/regress/loader/testraster.tif | Bin 24614 -> 13674 bytes raster/test/regress/rt_addband.sql | 35 ++++++++++++++++++ raster/test/regress/rt_addband_expected | 4 ++ raster/test/regress/rt_utility_expected | 8 ++-- 22 files changed, 89 insertions(+), 50 deletions(-) diff --git a/raster/test/regress/load_outdb-pre.pl b/raster/test/regress/load_outdb-pre.pl index 65b24af36..1592030d7 100755 --- a/raster/test/regress/load_outdb-pre.pl +++ b/raster/test/regress/load_outdb-pre.pl @@ -23,14 +23,14 @@ CREATE TABLE raster_outdb_template AS SELECT 1 AS rid, ST_AddBand( -- insert all three bands of out-db raster at index 1 - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), 1, '$FILERASTER'::text, NULL::int[] ) AS rast UNION ALL SELECT 2 AS rid, ST_AddBand( -- append all three bands of out-db raster - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), '$FILERASTER'::text, NULL::int[] ) AS rast UNION ALL @@ -38,7 +38,7 @@ SELECT 3 AS rid, ST_AddBand( -- append out-db band 2 ST_AddBand( -- in-db band - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), 1, '8BUI', 1, 0 ), '$FILERASTER'::text, ARRAY[2]::int[] @@ -48,7 +48,7 @@ SELECT 4 AS rid, ST_AddBand( -- append out-db band 2 ST_AddBand( -- in-db band - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), 1, '8BUI', 1, 0 ), '$FILERASTER'::text, ARRAY[2]::int[], diff --git a/raster/test/regress/load_outdb-pre.sh b/raster/test/regress/load_outdb-pre.sh index 7d4e5b1bf..6b05b9e64 100755 --- a/raster/test/regress/load_outdb-pre.sh +++ b/raster/test/regress/load_outdb-pre.sh @@ -21,14 +21,14 @@ CREATE TABLE raster_outdb_template AS \ SELECT \ 1 AS rid, \ ST_AddBand( -- insert all three bands of out-db raster at index 1 \ - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \ + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \ 1, '$FILERASTER'::text, NULL::int[] \ ) AS rast \ UNION ALL \ SELECT \ 2 AS rid, \ ST_AddBand( -- append all three bands of out-db raster \ - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \ + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \ '$FILERASTER'::text, NULL::int[] \ ) AS rast \ UNION ALL \ @@ -36,7 +36,7 @@ SELECT \ 3 AS rid, \ ST_AddBand( -- append out-db band 2 \ ST_AddBand( \ - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \ + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \ 1, '8BUI', 1, 0 \ ), \ '$FILERASTER'::text, ARRAY[2]::int[] \ @@ -46,7 +46,7 @@ SELECT \ 4 AS rid, \ ST_AddBand( -- append out-db band 2 \ ST_AddBand( \ - ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), \ + ST_MakeEmptyRaster(90, 50, 0., 0., 1, -1, 0, 0, 0), \ 1, '8BUI', 1, 0 \ ), \ '$FILERASTER'::text, ARRAY[2]::int[], \ diff --git a/raster/test/regress/loader/Basic.select.expected b/raster/test/regress/loader/Basic.select.expected index 856d81fb0..484721c35 100644 --- a/raster/test/regress/loader/Basic.select.expected +++ b/raster/test/regress/loader/Basic.select.expected @@ -1,4 +1,4 @@ -0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -90,0 0,90 0,90 -90,0 -90)) +0|1.0000000000|-1.0000000000|90|50|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50)) POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255 -POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0 -POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0 +POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0 +POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0 diff --git a/raster/test/regress/loader/Basic.select.sql b/raster/test/regress/loader/Basic.select.sql index 921329d41..bc0434c08 100644 --- a/raster/test/regress/loader/Basic.select.sql +++ b/raster/test/regress/loader/Basic.select.sql @@ -1,4 +1,4 @@ SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25; diff --git a/raster/test/regress/loader/BasicCopy.select.expected b/raster/test/regress/loader/BasicCopy.select.expected index 856d81fb0..484721c35 100644 --- a/raster/test/regress/loader/BasicCopy.select.expected +++ b/raster/test/regress/loader/BasicCopy.select.expected @@ -1,4 +1,4 @@ -0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -90,0 0,90 0,90 -90,0 -90)) +0|1.0000000000|-1.0000000000|90|50|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50)) POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255 -POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0 -POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0 +POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0 +POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0 diff --git a/raster/test/regress/loader/BasicCopy.select.sql b/raster/test/regress/loader/BasicCopy.select.sql index 921329d41..bc0434c08 100644 --- a/raster/test/regress/loader/BasicCopy.select.sql +++ b/raster/test/regress/loader/BasicCopy.select.sql @@ -1,4 +1,4 @@ SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25; diff --git a/raster/test/regress/loader/BasicFilename.select.expected b/raster/test/regress/loader/BasicFilename.select.expected index e10dcacb5..abc84600b 100644 --- a/raster/test/regress/loader/BasicFilename.select.expected +++ b/raster/test/regress/loader/BasicFilename.select.expected @@ -1,5 +1,5 @@ 0|||||f|f||||| POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255 -POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0 -POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0 +POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0 +POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0 BasicFilename.tif diff --git a/raster/test/regress/loader/BasicFilename.select.sql b/raster/test/regress/loader/BasicFilename.select.sql index 9aba71db0..78fd86c47 100644 --- a/raster/test/regress/loader/BasicFilename.select.sql +++ b/raster/test/regress/loader/BasicFilename.select.sql @@ -1,5 +1,5 @@ SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25; SELECT foobar FROM loadedrast ORDER BY foobar; diff --git a/raster/test/regress/loader/BasicOutDB.select.expected b/raster/test/regress/loader/BasicOutDB.select.expected index e8622fc42..8b2217746 100644 --- a/raster/test/regress/loader/BasicOutDB.select.expected +++ b/raster/test/regress/loader/BasicOutDB.select.expected @@ -1,4 +1,4 @@ -0|1.0000000000|-1.0000000000|90|90|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{t,t,t}|POLYGON((0 -90,0 0,90 0,90 -90,0 -90)) +0|1.0000000000|-1.0000000000|90|50|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{t,t,t}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50)) POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255 -POLYGON((89 -89,90 -89,90 -90,89 -90,89 -89))|0 -POLYGON((44 -44,45 -44,45 -45,44 -45,44 -44))|0 +POLYGON((89 -49,90 -49,90 -50,89 -50,89 -49))|0 +POLYGON((44 -24,45 -24,45 -25,44 -25,44 -24))|0 diff --git a/raster/test/regress/loader/BasicOutDB.select.sql b/raster/test/regress/loader/BasicOutDB.select.sql index 455e0f3a9..a2567a998 100644 --- a/raster/test/regress/loader/BasicOutDB.select.sql +++ b/raster/test/regress/loader/BasicOutDB.select.sql @@ -7,5 +7,5 @@ SET postgis.gdal_enabled_drivers = 'GTiff'; DELETE FROM loadedrast WHERE filename != 'testraster.tif'; SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 90; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 45; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 90 AND y = 50; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 45 AND y = 25; diff --git a/raster/test/regress/loader/Projected.select.expected b/raster/test/regress/loader/Projected.select.expected index 9ea740384..8fe45cf03 100644 --- a/raster/test/regress/loader/Projected.select.expected +++ b/raster/test/regress/loader/Projected.select.expected @@ -1,4 +1,4 @@ 3857 --20000000 +-14500000 3857 --20000000 +-14500000 diff --git a/raster/test/regress/loader/Projected.tif b/raster/test/regress/loader/Projected.tif index 312692f9081dcc336dd52ba9919654a009078096..8b9c4e2f98bb3f791e7e99eb7646c40d905b46b8 100644 GIT binary patch literal 13894 zcmeI2txp3%5XI-NO*ukCir_==85{!9AaE2#(2zh-C>*9iqJVG&fg}OlU}+@|g+w8d z1i?R1W|t#*$);=C<|WN+@7TxO?!KAdjc5Y9yK9n(NKGUuNuugV@1)Rm)v4-|&hL7c zinv=>DRioODk+PbKlPq2;%?7Op%+!p7Hd9K&%-%;s@>Wzy(cfLUjL}RxT;D;=Tyy} z^O7v9uB&e6RqxeQ-N{p*{e@~bGXH5UiOfxl+-h`vMXT|j#|JlFw*Ke89ld}0b=$|U zCvIHtH2zn*(?rHZ%I@S;v@CzVOC*u+T9S2geJU0I``zkz*3R9Y2|tV6oSxk;w3_a` z#?$`c_QB5H^5(|5bR~LqM{USaH*y&bgkv;}1`p@(l@Kgq0P` z7i$kSD=U_7NB|?OtXRHSd#G7iv3x@UgNlq^Mg5R58c5G*7!4$V+IquiAOY0Y8%6^O zptjx^Z5pii%kssy8ERHmEZ>j-Mp#*~e6jXWv$A6Oh6FIe%8KQSwTGIO70WjyfDu+! zEMKfW)U2#nz99jOu(D$LV(p=3Wi>qC=)X_W{@xvuA6P`*y1g%>fpCn5(Le&Itv8GY U5T7fdo+h0>M95eEC75=Jns^{;QcuPc zpMZE3?jGRF_%(2Lt?cM*hQnkJ(>x39KFoh+cAnpEN!z4dShztABAOsd>Xfj0&bLJ9 z8tXd8rg*X5k7s$qeO+UHHmT7x@9*%!DC=?7E3D5YLwW5@))W2wtk+~;UtxW|pVQ== zspLdH!)ewR`+A)9C2`zoaok1LS-%<18T~Yp>vya_ejcG=j(=nQqgSUU>wVU{y%Eah z&F=PkwcPnw9w2(aVNN;PH+Z!{J6GxGc7Zd0UL$%jmt|%@t<{b7c58XFo4#M)eA#W? zZ+Bm%8*f^jrEc2pw9#*r&H06gk7#@CVDk0B_T9hxY^YK>1`V5lT=j5{SS!729nq0zW=%jwJe?!fO7B`nbmW;?6Oa*4=ZLk^yVemMd1lrG zWW>{X@M>*GSOozP009sH0T2KI5C8!W0r@;!YrC_~myw9Ia(=BNI`Yh{3CM`2bHrNd zUF(RBJTq$oGUDkRu~vH5I-(=b%$k6VcsfU{mEN_E=*Tm(CLkl8&Jk;+cda8js%~bx zGgd(W1V8`;KmY_l00cn5LqIY?TCLkjb9aT58-5IMO00JNY z0w4eaAOHd&;2~gsyXZiEj^6x6ReR9{Enm@SZI&MMdG;!6ZNt`=!Bshx=2t|jJT7Py zbggsG|21q>MVk^;oXav*QXoQQ6-7)WmdGNnOqCRf5NHS(=DEkU@!w;^q$R0pU3Q%o fF`X|XMP8YbnOc`s6fvDIBY32Mh9n@heQo>(ch8Zw diff --git a/raster/test/regress/loader/Tiled10x10.select.expected b/raster/test/regress/loader/Tiled10x10.select.expected index 5f882d250..a66411e0a 100644 --- a/raster/test/regress/loader/Tiled10x10.select.expected +++ b/raster/test/regress/loader/Tiled10x10.select.expected @@ -1,4 +1,4 @@ -0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -90,0 0,90 0,90 -90,0 -90)) +0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50)) POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255 -POLYGON((0 -80,1 -80,1 -81,0 -81,0 -80))|255 -POLYGON((80 -80,81 -80,81 -81,80 -81,80 -80))|255 +POLYGON((40 -20,41 -20,41 -21,40 -21,40 -20))|0 +POLYGON((80 -40,81 -40,81 -41,80 -41,80 -40))|198 diff --git a/raster/test/regress/loader/Tiled10x10.select.sql b/raster/test/regress/loader/Tiled10x10.select.sql index e29fd3dc9..3d8cc6b7d 100644 --- a/raster/test/regress/loader/Tiled10x10.select.sql +++ b/raster/test/regress/loader/Tiled10x10.select.sql @@ -1,4 +1,4 @@ SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 73) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 81) foo WHERE x = 1 AND y = 1; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 23) foo WHERE x = 1 AND y = 1; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 45) foo WHERE x = 1 AND y = 1; diff --git a/raster/test/regress/loader/Tiled10x10Copy.select.expected b/raster/test/regress/loader/Tiled10x10Copy.select.expected index 5f882d250..a66411e0a 100644 --- a/raster/test/regress/loader/Tiled10x10Copy.select.expected +++ b/raster/test/regress/loader/Tiled10x10Copy.select.expected @@ -1,4 +1,4 @@ -0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -90,0 0,90 0,90 -90,0 -90)) +0|1.0000000000|-1.0000000000|10|10|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|POLYGON((0 -50,0 0,90 0,90 -50,0 -50)) POLYGON((0 0,1 0,1 -1,0 -1,0 0))|255 -POLYGON((0 -80,1 -80,1 -81,0 -81,0 -80))|255 -POLYGON((80 -80,81 -80,81 -81,80 -81,80 -80))|255 +POLYGON((40 -20,41 -20,41 -21,40 -21,40 -20))|0 +POLYGON((80 -40,81 -40,81 -41,80 -41,80 -40))|198 diff --git a/raster/test/regress/loader/Tiled10x10Copy.select.sql b/raster/test/regress/loader/Tiled10x10Copy.select.sql index e29fd3dc9..3d8cc6b7d 100644 --- a/raster/test/regress/loader/Tiled10x10Copy.select.sql +++ b/raster/test/regress/loader/Tiled10x10Copy.select.sql @@ -1,4 +1,4 @@ SELECT srid, scale_x::numeric(16, 10), scale_y::numeric(16, 10), blocksize_x, blocksize_y, same_alignment, regular_blocking, num_bands, pixel_types, nodata_values::numeric(16,10)[], out_db, ST_AsEWKT(extent) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 1) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 73) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 81) foo WHERE x = 1 AND y = 1; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 23) foo WHERE x = 1 AND y = 1; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 45) foo WHERE x = 1 AND y = 1; diff --git a/raster/test/regress/loader/Tiled8x8.select.expected b/raster/test/regress/loader/Tiled8x8.select.expected index 5dac56954..a62918f1e 100644 --- a/raster/test/regress/loader/Tiled8x8.select.expected +++ b/raster/test/regress/loader/Tiled8x8.select.expected @@ -1,5 +1,5 @@ 0|1.0000000000|-1.0000000000|8|8|t|f|3|{8BUI,8BUI,8BUI}|{NULL,NULL,NULL}|{f,f,f}|t -POLYGON((88 0,89 0,89 -1,88 -1,88 0))|255 -POLYGON((88 0,89 0,89 -1,88 -1,88 0))|255 -POLYGON((0 -88,1 -88,1 -89,0 -89,0 -88))|255 -POLYGON((88 -88,89 -88,89 -89,88 -89,88 -88))|255 +POLYGON((88 0,89 0,89 -1,88 -1,88 0))|0 +POLYGON((88 0,89 0,89 -1,88 -1,88 0))|90 +POLYGON((56 -24,57 -24,57 -25,56 -25,56 -24))|255 +POLYGON((88 -48,89 -48,89 -49,88 -49,88 -48))|198 diff --git a/raster/test/regress/loader/Tiled8x8.select.sql b/raster/test/regress/loader/Tiled8x8.select.sql index 25c943490..59d614245 100644 --- a/raster/test/regress/loader/Tiled8x8.select.sql +++ b/raster/test/regress/loader/Tiled8x8.select.sql @@ -10,11 +10,11 @@ SELECT pixel_types, nodata_values::numeric(16,10)[], out_db, - ST_Equals(extent, 'POLYGON((16 -90,8 -90,0 -90,0 -88,0 -80,0 -72,0 -64,0 -56,0 -48,0 -40,0 -32,0 -24,0 -16,0 -8,0 0,8 0,16 0,24 0,32 0,40 0,48 0,56 0,64 0,72 0,80 0,88 0,90 0,90 -8,90 -16,90 -24,90 -32,90 -40,90 -48,90 -56,90 -64,90 -72,90 -80,90 -88,90 -90,88 -90,80 -90,72 -90,64 -90,56 -90,48 -90,40 -90,32 -90,24 -90,16 -90))'::geometry) + ST_Equals(extent, 'POLYGON((0 -50,0 0,90 0,90 -50,0 -50))'::geometry) FROM raster_columns WHERE r_table_name = 'loadedrast' AND r_raster_column = 'rast'; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 1)).* FROM loadedrast WHERE rid = 12) foo WHERE x = 1 AND y = 1; SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 12) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 133) foo WHERE x = 1 AND y = 1; -SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 144) foo WHERE x = 1 AND y = 1; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 2)).* FROM loadedrast WHERE rid = 44) foo WHERE x = 1 AND y = 1; +SELECT ST_AsEWKT(geom), val FROM (SELECT (ST_PixelAsPolygons(rast, 3)).* FROM loadedrast WHERE rid = 84) foo WHERE x = 1 AND y = 1; diff --git a/raster/test/regress/loader/testraster.tif b/raster/test/regress/loader/testraster.tif index 3c3a74293be032891ec4ff518a0f2c0038e94396..2a90b092b602d62a3fd2abaf710beabdf9046b8b 100644 GIT binary patch literal 13674 zcmeI2u};H45JcArLXoH_0u%_SDfx@E(B-qJC@CnY_zZr_>_sjfTIEtC(MZg~GANiR}g4;RtSpE=f3z1?#& z>4(&}(={Kd@9~_s)a}~u9Bo_e_OHi?yLH4*R$iYn(QY3jddE1oEw*Fl=%GkZv)ei- za>_Kw$23fX1gPB`ra=PK?hVr*0c!WgKN?4TU$yVt{o4@_K5*-P&o*=5=Ce(!QmK6V zAXTYUzNXP9z**HhQu%W2RjX2|d@BJ~RH;CQmK3^0ajG0RK8q$)v8qI^X>k9Qucdy mC4aI?{Eqt%(;ytvFbxu*c5j#l2~fK?OoIfd-5aJs0@Q!ocrm8{ literal 24614 zcmeI4L2J}t5QZnawRo}6f)%VtkHv%e3ql3mgV3`Fwa{pbmdYkYym|DOdGhD<>^cdN zzR4`p!w_(mH{EvMZ@zCP^FH~uqzm1};+fpM6IuC>m3N4Hc$q6bt#?e9t7rBeq=9@$ zgEWu;YVHlvKmw?_H%J2spyu8n4J0to{(T>3Nq_`MfCNZ@1W14cNMI@g-n*0fCyaY+ zUhd{OaxdT=?@p73PXK2loHOR4cdIixiu7y=U?fsGV=j8PI-{dV&z1m2B9$}dqIat^ zI*Rmc31B2rdGm68N1P=A5+DH*AOR8}0TLjA2m!ngx7x34*JC7OF7|JAMn{pJEdh)~ zDrd|^?^b7Y6zSO#z(}NW#$5Dnbw)>#o-F~4L@H;@MekN;bQI~?62M5La>iWrZgoaS z)Aj6E<}3-2011!)36KB@kN^op2-v%EjQEvtrPUd8tqY7~bQI|sy;~iroH5rDz(__% zk)F}J)se~>b1eakWONki8NFK_shly_62M4CN0FYnYDm8n<-4Yp=gGd{nn()~N9n9gf!|KxnvjJc5O5mCB&s5Jf z_UpaKypOjz+r6Hteo)NhNS}Y}njO`9s&7>97F*KJZ+{TkgWQL`ZtL#%`i1I8{rVkU z|G2o<^|P<~pw~}TKY=<&y>8FZ9{0Pi^8D(uD$lO#=KJOKr@DMu)t{TIujTTzZmMP3 uRCV*bx%eo@%j&eL&JMp_H0Ot}7H>{8Tjb}l$PfMga?q80tv_44-Sc0bt#?NN diff --git a/raster/test/regress/rt_addband.sql b/raster/test/regress/rt_addband.sql index 17df1cde3..9c46a70f3 100644 --- a/raster/test/regress/rt_addband.sql +++ b/raster/test/regress/rt_addband.sql @@ -223,3 +223,38 @@ SELECT ELSE NULL END FROM ST_BandMetadata((SELECT rast FROM raster_outdb_template WHERE rid = 4), ARRAY[]::int[]); + +-- #3020 +SET postgis.gdal_enabled_drivers = 'GTiff'; +SET postgis.enable_outdb_rasters = true; +WITH foo AS ( + SELECT + path + FROM ST_BandMetadata( + (SELECT rast FROM raster_outdb_template WHERE rid = 1), + ARRAY[]::int[] + ) + LIMIT 1 +), raster as ( +SELECT + ST_AddBand( + ST_MakeEmptyRaster(90, 90, 0., 0., 1, -1, 0, 0, 0), + 1, foo.path, NULL::int[] + ) AS rast +FROM foo +) +SELECT + ST_Value(rast, 1, 1) +FROM raster +UNION ALL +SELECT + ST_Value(rast, 6, 45) +FROM raster +UNION ALL +SELECT + ST_Value(rast, 90, 50) +FROM raster +UNION ALL +SELECT + ST_Value(rast, 100, 100) +FROM raster diff --git a/raster/test/regress/rt_addband_expected b/raster/test/regress/rt_addband_expected index 08d765db9..347fdf91c 100644 --- a/raster/test/regress/rt_addband_expected +++ b/raster/test/regress/rt_addband_expected @@ -118,3 +118,7 @@ NOTICE: RASTER_copyBand: Could not add band to raster. Returning original raste 3|2|t|t 4|1|t|t 4|2|f| +NOTICE: Attempting to get pixel value with out of range raster coordinates: (99, 99) +255 +90 +255 diff --git a/raster/test/regress/rt_utility_expected b/raster/test/regress/rt_utility_expected index 589989e26..2eb99e50b 100644 --- a/raster/test/regress/rt_utility_expected +++ b/raster/test/regress/rt_utility_expected @@ -37,18 +37,18 @@ Raster of 10x10 pixels has 3 bands and extent of BOX(0 -10,10 0) band 3 of pixtype 16BSI is in-db with no NODATA value Skewed raster of 10x10 pixels has 1 band and extent of BOX(0 -10,10 0.0001) band 1 of pixtype 8BUI is in-db with NODATA value of 0 -1|Raster of 90x90 pixels has 3 bands and extent of BOX(0 -90,90 0) +1|Raster of 90x50 pixels has 3 bands and extent of BOX(0 -50,90 0) band 1 of pixtype 8BUI is out-db with no NODATA value band 2 of pixtype 8BUI is out-db with no NODATA value band 3 of pixtype 8BUI is out-db with no NODATA value -2|Raster of 90x90 pixels has 3 bands and extent of BOX(0 -90,90 0) +2|Raster of 90x50 pixels has 3 bands and extent of BOX(0 -50,90 0) band 1 of pixtype 8BUI is out-db with no NODATA value band 2 of pixtype 8BUI is out-db with no NODATA value band 3 of pixtype 8BUI is out-db with no NODATA value -3|Raster of 90x90 pixels has 2 bands and extent of BOX(0 -90,90 0) +3|Raster of 90x50 pixels has 2 bands and extent of BOX(0 -50,90 0) band 1 of pixtype 8BUI is in-db with NODATA value of 0 band 2 of pixtype 8BUI is out-db with no NODATA value -4|Raster of 90x90 pixels has 2 bands and extent of BOX(0 -90,90 0) +4|Raster of 90x50 pixels has 2 bands and extent of BOX(0 -50,90 0) band 1 of pixtype 8BUI is out-db with NODATA value of 255 band 2 of pixtype 8BUI is in-db with NODATA value of 0 ms1|64 -- 2.50.1