From d5e7d9582400e0490472b0df27c66b21e3cdb3d4 Mon Sep 17 00:00:00 2001 From: John Krauss Date: Thu, 9 Mar 2017 21:26:53 +0000 Subject: [PATCH] fix performance regression on getboundariesbygeometry, where pct overlap was being unnecessarily calculated --- src/pg/sql/41_observatory_augmentation.sql | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/pg/sql/41_observatory_augmentation.sql b/src/pg/sql/41_observatory_augmentation.sql index a4462f5..4e5044b 100644 --- a/src/pg/sql/41_observatory_augmentation.sql +++ b/src/pg/sql/41_observatory_augmentation.sql @@ -585,9 +585,9 @@ BEGIN SELECT String_Agg(DISTINCT CASE + WHEN numer_id IS NULL THEN '' WHEN $2 = 'ST_Point' THEN - '1 AS pct_' || geom_tablename || - ', ' || geom_tablename || '.' || geom_colname || ' AS geom_' || geom_tablename + '1 AS pct_' || geom_tablename || ', ' ELSE 'CASE WHEN ST_Within(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ') ' || ' THEN ST_Area(_geoms.geom) / Nullif(ST_Area(' || geom_tablename || '.' || geom_colname || '), 0)' || @@ -596,9 +596,8 @@ BEGIN ' ELSE ST_Area(cdb_observatory.safe_intersection(_geoms.geom, ' || geom_tablename || '.' || geom_colname || ')) / ' || 'Nullif(ST_Area(' || geom_tablename || '.' || geom_colname || '), 0) ' || - 'END pct_' || geom_tablename || - ', ' || geom_tablename || '.' || geom_colname || ' AS geom_' || geom_tablename - END + 'END pct_' || geom_tablename || ', ' + END || geom_tablename || '.' || geom_colname || ' AS geom_' || geom_tablename , ', ') AS geom_colspecs, String_Agg(DISTINCT 'observatory.' || geom_tablename, ', ') AS geom_tables, String_Agg(