id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc 3501,[raster] add raster constraint max extent exceeds array size limit,hypostase,robe,"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 ",defect,closed,medium,PostGIS 2.2.4,raster,2.2.x,fixed,,