[postgis-tickets] [PostGIS] #3501: [raster] add raster constraint max extent exceeds array size limit

PostGIS trac at osgeo.org
Fri Mar 11 09:59:55 PST 2016


#3501: [raster] add raster constraint max extent exceeds array size limit
-----------------------+---------------------------
 Reporter:  hypostase  |      Owner:  dustymugs
     Type:  defect     |     Status:  new
 Priority:  medium     |  Milestone:  PostGIS 2.2.2
Component:  raster     |    Version:  2.2.x
 Keywords:             |
-----------------------+---------------------------
 When adding raster constraints the maximum extent constrain appears to
 require an array exceeding the limit
 ERROR:  array size exceeds the maximum allowed (1073741823)
 CONTEXT:  SQL statement "SELECT
 st_ashexewkb(st_envelope(st_collect(st_envelope(rast)))) FROM
 cjsmith.dtm2015_50x50"

 The max extent is calculated successfully for the same raster when using
 64x64 tiles (in a 8M row table), but fails are 50x50 (13M rows) and at
 32x32 (32M)

 Postgres Version
 select version();
                                                  version

 --------------------------------------------------------------------------------
 -------------------------
  PostgreSQL 9.5.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5
 20150623 (
 Red Hat 4.8.5-4), 64-bit
 (1 row)



 PostGIS version
 select postgis_full_version();
 post
 gis_full_version

 --------------------------------------------------------------------------------
 --------------------------------------------------------------------------------
 ------------
  POSTGIS="2.2.1 r14555" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.8.0, 6
 March
 2012" GDAL="GDAL 1.11.4, released 2016/01/25" LIBXML="2.9.1"
 LIBJSON="0.11" TOPO
 LOGY RASTER
 (1 row)



 hmdb=> select count(*) from dtm2015_50x50;
   count
 ----------
  13360464
 (1 row)

 hmdb=> select count(*) from dtm2015;
   count
 ---------
  8152320
 (1 row)

 Driver: GTiff/GeoTIFF
 Files: dtm2015.27700.tif
 Size is 135168, 247040
 Coordinate System is:
 PROJCS["OSGB 1936 / British National Grid",
     GEOGCS["OSGB 1936",
         DATUM["OSGB_1936",
             SPHEROID["Airy 1830",6377563.396,299.3249646000044,
                 AUTHORITY["EPSG","7001"]],
             AUTHORITY["EPSG","6277"]],
         PRIMEM["Greenwich",0],
         UNIT["degree",0.0174532925199433],
         AUTHORITY["EPSG","4277"]],
     PROJECTION["Transverse_Mercator"],
     PARAMETER["latitude_of_origin",49],
     PARAMETER["central_meridian",-2],
     PARAMETER["scale_factor",0.9996012717],
     PARAMETER["false_easting",400000],
     PARAMETER["false_northing",-100000],
     UNIT["metre",1,
         AUTHORITY["EPSG","9001"]],
     AUTHORITY["EPSG","27700"]]
 Origin = (-4000.000000000000000,1235005.000000000000000)
 Pixel Size = (5.000000000000000,-5.000000000000000)
 Metadata:
   AREA_OR_POINT=Area
 Image Structure Metadata:
   INTERLEAVE=BAND
 Corner Coordinates:
 Upper Left  (   -4000.000, 1235005.000) (  9d25'58.40"W, 60d47'32.38"N)
 Lower Left  (   -4000.000,    -195.000) (  7d36'41.51"W, 49d45'42.36"N)
 Upper Right (  671840.000, 1235005.000) (  3d 0'53.82"E, 60d54'16.94"N)
 Lower Right (  671840.000,    -195.000) (  1d46'51.89"E, 49d50'10.01"N)
 Center      (  333920.000,  617405.000) (  3d 2'41.10"W, 55d26'45.71"N)
 Band 1 Block=135168x1 Type=Float32, ColorInterp=Gray
   NoData Value=-3.40282306073709653e+38


 hmdb=> select addrasterconstraints('dtm2015_50x50'::name, 'rast'::name);

 NOTICE:  Adding maximum extent constraint
 CONTEXT:  PL/pgSQL function
 addrasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
 line 53 at RETURN
 ERROR:  array size exceeds the maximum allowed (1073741823)
 CONTEXT:  SQL statement "SELECT
 st_ashexewkb(st_envelope(st_collect(st_envelope(rast)))) FROM
 cjsmith.dtm2015_50x50"
 PL/pgSQL function _add_raster_constraint_extent(name,name,name) line 20 at
 EXECUTE
 PL/pgSQL function addrasterconstraints(name,name,name,text[]) line 104 at
 assignment
 PL/pgSQL function
 addrasterconstraints(name,name,name,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean,boolean)
 line 53 at RETURN

--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/3501>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list