From e78250df49857a2377da25f7dd38dcd9d99c1bcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Wed, 19 May 2021 22:57:46 +0300 Subject: [PATCH] more explicit intermediate steps --- Makefile | 4 ++++ aggregate-rivers.sql | 3 ++- tests-integration.sql | 4 +++- wm.sql | 24 ++++++++++++------------ 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 709e1ba..ed53810 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,10 @@ test: tests.sql .faux.db test-integration: .faux_filter-rivers ./db -f tests-integration.sql +clean: + -./db stop + -rm .faux_filter-rivers .faux_import-osm .faux.db + .faux_filter-rivers: .faux_import-osm ./db -v where="$(WHERE)" -f aggregate-rivers.sql touch $@ diff --git a/aggregate-rivers.sql b/aggregate-rivers.sql index 7d091f6..77ad483 100644 --- a/aggregate-rivers.sql +++ b/aggregate-rivers.sql @@ -24,7 +24,7 @@ begin end $$ language plpgsql; -create temporary table aggregate_rivers_tmp (osm_id bigint, name text, way geometry) on commit drop; +create temporary table aggregate_rivers_tmp (osm_id bigint, name text, way geometry); create index aggregate_rivers_tmp_id on aggregate_rivers_tmp(osm_id); create index aggregate_rivers_tmp_gix on aggregate_rivers_tmp using gist(way) include(name); @@ -34,3 +34,4 @@ insert into aggregate_rivers_tmp drop table if exists agg_rivers; create table agg_rivers as (select * from aggregate_rivers()); +drop table aggregate_rivers_tmp; diff --git a/tests-integration.sql b/tests-integration.sql index ab6310f..3d93e8b 100644 --- a/tests-integration.sql +++ b/tests-integration.sql @@ -1,3 +1,5 @@ \i wm.sql -select ST_SimplifyWM_DEBUG(way) from agg_rivers; +drop table if exists agg_rivers_wm; +create table agg_rivers_wm (name text, way geometry); +insert into agg_rivers_wm (name, way) select name, ST_SimplifyWM_DEBUG(way) from agg_rivers where name='VisinĨia'; diff --git a/wm.sql b/wm.sql index fddeb65..1541a13 100644 --- a/wm.sql +++ b/wm.sql @@ -328,23 +328,23 @@ begin mutated = true; foreach line in array lines loop while mutated loop - execute format('drop table if exists demo_%sfigures0', i); - execute format('create table demo_%sfigures0 (way geometry)', i); + execute format('drop table if exists demo_%safigures', i); + execute format('create table demo_%safigures (way geometry)', i); -- if anyone has suggestions how to insert a variable to a table without such -- hackery, I'll be glad to know - execute format('insert into demo_%sfigures0 select $1;', i) using (select unnest(array[line])); + execute format('insert into demo_%safigures select $1;', i) using (select unnest(array[line])); bends = detect_bends(line); - execute format('drop table if exists demo_%sbends1', i); - execute format('create table demo_%sbends1 (i bigint, way geometry)', i); - execute format('insert into demo_%sbends1 (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends; + execute format('drop table if exists demo_%sbbends', i); + execute format('create table demo_%sbbends (i bigint, way geometry)', i); + execute format('insert into demo_%sbbends (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends; bends = fix_gentle_inflections(bends); - execute format('drop table if exists demo_%sinflections2', i); - execute format('create table demo_%sinflections2 (i bigint, way geometry)', i); - execute format('insert into demo_%sinflections2 (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends; + execute format('drop table if exists demo_%scinflections', i); + execute format('create table demo_%scinflections (i bigint, way geometry)', i); + execute format('insert into demo_%scinflections (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends; select * from self_crossing(bends) into bends, mutated; - execute format('drop table if exists demo_%sselfcrossing3', i); - execute format('create table demo_%sselfcrossing3 (i bigint, way geometry)', i); - execute format('insert into demo_%sselfcrossing3 (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends; + execute format('drop table if exists demo_%sdselfcrossing', i); + execute format('create table demo_%sdselfcrossing (i bigint, way geometry)', i); + execute format('insert into demo_%sdselfcrossing (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends; line = st_linemerge(st_union(bends)); i = i + 1; end loop;