id summary reporter owner description type status priority milestone component version resolution keywords cc 883 [raster] Make every rtpostgis.sql function immutable strict when possible pracine pracine "The only exception to this should be when a default parameter can not be determined when calling the function. We must make sure that EVERY functions accepting NULL parameter check for null with if (PG_ARGISNULL(0)) in rt_pg.c. STRICT functions do not have to do such a check. Exceptions: -ST_AddBand(torast raster, fromrast raster, fromband int, toband int) because a default value for toband can not be determined before calling the function. Could be replaced by ""ST_NumBands(rast) + 1"" though... -ST_AddBand(rast raster, index int, pixeltype text, initialvalue float8, nodataval float8) because nodataval can be NULL meaning do not set a nodata value. -Every ST_Intersects functions -Every ST_SetValue functions because NULL means set to nodata Changed to STRICT: -ST_MakeEmptyRaster series -ST_AddBand plpgsql variants -ST_HasNoBand(rast raster) -ST_BandIsNodata SQL variants -ST_BandPath(raster) -ST_BandPixeltype(raster) -All ST_Value fucntions -ST_BandNodataValue(raster) -ST_BandMetadata SQL variant -ST_PixelAsPolygon Still to review: -ST_MapAlgebra(rast raster, band integer, expression text, nodatavalueexpr text, pixeltype text) nodatavalueexpr could be replaced by """" in the variants and pixeltype by ST_BandPixelType(rast, band). I don't know if this is bad in terms of performance. " task closed medium PostGIS Fund Me raster master fixed