@@ -36,48 +36,48 @@ gen_tile_vector_union_t::gen_tile_vector_union_t(pg_conn_t *connection,
3636 }
3737
3838 if (with_group_by ()) {
39- dbexec ( R"(
40- PREPARE gen_geoms (int, int, int) AS
41- WITH gen_tile_input AS (
42- SELECT "{group_by_column}" AS col, "{ geom_column}" AS geom FROM {src}
43- WHERE "{geom_column}" && ST_TileEnvelope($1, $2, $3, margin => {margin})
44- ),
45- buffered AS (
46- SELECT col, ST_Buffer(geom, {buffer_size}) AS geom
47- FROM gen_tile_input
48- ),
49- merged AS (
50- SELECT col, ST_Union(geom) AS geom
51- FROM buffered GROUP BY col
52- ),
53- unbuffered AS (
54- SELECT col, ST_Buffer(ST_Buffer(geom, -2 * {buffer_size}), {buffer_size}) AS geom
55- FROM merged
56- )
57- INSERT INTO {dest} (x, y, "{group_by_column}", "{geom_column}")
58- SELECT $2, $3, col, (ST_Dump(geom)).geom FROM unbuffered
39+ dbprepare ( " gen_geoms " , R"(
40+ WITH gen_tile_input AS (
41+ SELECT "{group_by_column}" AS col, "{geom_column}" AS geom FROM {src}
42+ WHERE "{geom_column}" &&
43+ ST_TileEnvelope($1::int , $2::int , $3::int , margin => {margin})
44+ ),
45+ buffered AS (
46+ SELECT col, ST_Buffer(geom, {buffer_size}) AS geom
47+ FROM gen_tile_input
48+ ),
49+ merged AS (
50+ SELECT col, ST_Union(geom) AS geom
51+ FROM buffered GROUP BY col
52+ ),
53+ unbuffered AS (
54+ SELECT col, ST_Buffer(ST_Buffer(geom, -2 * {buffer_size}), {buffer_size}) AS geom
55+ FROM merged
56+ )
57+ INSERT INTO {dest} (x, y, "{group_by_column}", "{geom_column}")
58+ SELECT $2::int , $3::int , col, (ST_Dump(geom)).geom FROM unbuffered
5959)" );
6060 } else {
61- dbexec ( R"(
62- PREPARE gen_geoms (int, int, int) AS
63- WITH gen_tile_input AS (
64- SELECT "{geom_column}" AS geom FROM {src}
65- WHERE "{geom_column}" && ST_TileEnvelope($1, $2, $3, margin => {margin})
66- ),
67- buffered AS (
68- SELECT ST_Buffer(geom, {buffer_size}) AS geom
69- FROM gen_tile_input
70- ),
71- merged AS (
72- SELECT ST_Union(geom) AS geom
73- FROM buffered
74- ),
75- unbuffered AS (
76- SELECT ST_Buffer(ST_Buffer(geom, -2 * {buffer_size}), {buffer_size}) AS geom
77- FROM merged
78- )
79- INSERT INTO {dest} (x, y, "{geom_column}")
80- SELECT $2, $3, (ST_Dump(geom)).geom FROM unbuffered
61+ dbprepare ( " gen_geoms " , R"(
62+ WITH gen_tile_input AS (
63+ SELECT "{geom_column}" AS geom FROM {src}
64+ WHERE "{geom_column}" &&
65+ ST_TileEnvelope($1::int , $2::int , $3::int , margin => {margin})
66+ ),
67+ buffered AS (
68+ SELECT ST_Buffer(geom, {buffer_size}) AS geom
69+ FROM gen_tile_input
70+ ),
71+ merged AS (
72+ SELECT ST_Union(geom) AS geom
73+ FROM buffered
74+ ),
75+ unbuffered AS (
76+ SELECT ST_Buffer(ST_Buffer(geom, -2 * {buffer_size}), {buffer_size}) AS geom
77+ FROM merged
78+ )
79+ INSERT INTO {dest} (x, y, "{geom_column}")
80+ SELECT $2::int , $3::int , (ST_Dump(geom)).geom FROM unbuffered
8181)" );
8282 }
8383}
0 commit comments