@@ -822,13 +822,15 @@ void middle_pgsql_t::get_node_parents(
822822
823823 send_id_list (m_db_connection, " osm2pgsql_changed_nodes" , changed_nodes);
824824
825- m_db_connection.exec (" ANALYZE osm2pgsql_changed_nodes" );
825+ std::vector<std::string> queries;
826+
827+ queries.emplace_back (" ANALYZE osm2pgsql_changed_nodes" );
826828
827829 bool const has_bucket_index =
828830 check_bucket_index (&m_db_connection, m_options->prefix );
829831
830832 if (has_bucket_index) {
831- m_db_connection. exec ( build_sql (*m_options, R"(
833+ queries. emplace_back ( R"(
832834WITH changed_buckets AS (
833835 SELECT array_agg(id) AS node_ids, id >> {way_node_index_id_shift} AS bucket
834836 FROM osm2pgsql_changed_nodes GROUP BY id >> {way_node_index_id_shift}
@@ -839,31 +841,35 @@ INSERT INTO osm2pgsql_changed_ways
839841 WHERE w.nodes && b.node_ids
840842 AND {schema}"{prefix}_index_bucket"(w.nodes)
841843 && ARRAY[b.bucket];
842- )" )) ;
844+ )" );
843845 } else {
844- m_db_connection. exec ( build_sql (*m_options, R"(
846+ queries. emplace_back ( R"(
845847INSERT INTO osm2pgsql_changed_ways
846848 SELECT DISTINCT w.id
847849 FROM {schema}"{prefix}_ways" w, osm2pgsql_changed_nodes n
848850 WHERE w.nodes && ARRAY[n.id]
849- )" )) ;
851+ )" );
850852 }
851853
852854 if (m_options->middle_database_format == 1 ) {
853- m_db_connection. exec ( build_sql (*m_options, R"(
855+ queries. emplace_back ( R"(
854856INSERT INTO osm2pgsql_changed_relations
855857 SELECT DISTINCT r.id
856858 FROM {schema}"{prefix}_rels" r, osm2pgsql_changed_nodes n
857859 WHERE r.parts && ARRAY[n.id]
858860 AND r.parts[1:way_off] && ARRAY[n.id]
859- )" )) ;
861+ )" );
860862 } else {
861- m_db_connection. exec ( build_sql (*m_options, R"(
863+ queries. emplace_back ( R"(
862864INSERT INTO osm2pgsql_changed_relations
863865 SELECT DISTINCT r.id
864866 FROM {schema}"{prefix}_rels" r, osm2pgsql_changed_nodes c
865867 WHERE {schema}"{prefix}_member_ids"(r.members, 'N'::char) && ARRAY[c.id];
866- )" ));
868+ )" );
869+ }
870+
871+ for (auto const &query : queries) {
872+ m_db_connection.exec (build_sql (*m_options, query));
867873 }
868874
869875 load_id_list (m_db_connection, " osm2pgsql_changed_ways" , parent_ways);
0 commit comments