[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#986572: unblock: osm2pgsql/1.4.1+ds-2 (pre-approval)



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

To fix two important issues affecting the version in bullseye,
I would like to upload these changes to unstable.

Do you agree that these changes are appropriate for a freeze exception?

[ Reason ]
Fixes important issues.

[ Impact ]
Poor performance and errors.

[ Tests ]
Upstream CI.

[ Risks ]
Low.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
N/A

unblock osm2pgsql/1.4.1+ds-2

Kind Regards,

Bas
diff -Nru osm2pgsql-1.4.1+ds/debian/changelog osm2pgsql-1.4.1+ds/debian/changelog
--- osm2pgsql-1.4.1+ds/debian/changelog	2021-02-04 05:23:03.000000000 +0100
+++ osm2pgsql-1.4.1+ds/debian/changelog	2021-04-07 15:59:14.000000000 +0200
@@ -1,3 +1,14 @@
+osm2pgsql (1.4.1+ds-2) unstable; urgency=medium
+
+  * Update watch file for GitHub URL changes.
+  * Add upstream patches:
+    - 0001-Bugfix-Disable-expire-in-flex-output-when-not-used.patch
+      Important performance fix.
+    - 0001-Bug-fix-Remove-schema-name-from-CREATE-INDEX.patch
+      Fix CREATE INDEX failure.
+
+ -- Bas Couwenberg <sebastic@debian.org>  Wed, 07 Apr 2021 15:59:14 +0200
+
 osm2pgsql (1.4.1+ds-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru osm2pgsql-1.4.1+ds/debian/patches/0001-Bugfix-Disable-expire-in-flex-output-when-not-used.patch osm2pgsql-1.4.1+ds/debian/patches/0001-Bugfix-Disable-expire-in-flex-output-when-not-used.patch
--- osm2pgsql-1.4.1+ds/debian/patches/0001-Bugfix-Disable-expire-in-flex-output-when-not-used.patch	1970-01-01 01:00:00.000000000 +0100
+++ osm2pgsql-1.4.1+ds/debian/patches/0001-Bugfix-Disable-expire-in-flex-output-when-not-used.patch	2021-04-07 15:56:01.000000000 +0200
@@ -0,0 +1,31 @@
+Description: Bugfix: Disable expire in flex output when not used
+ If we don't have expire enabled we never need to create an expire list.
+ But as a side effect of the two-stage processing we created such a list
+ which costs a lot of time and RAM. This commit disables this which
+ speeds up processing considerably.
+Author: Jochen Topf <jochen@topf.org>
+Origin: https://github.com/openstreetmap/osm2pgsql/issues/1436
+Bug: https://github.com/openstreetmap/osm2pgsql/issues/1436
+
+--- a/src/expire-tiles.hpp
++++ b/src/expire-tiles.hpp
+@@ -60,6 +60,8 @@ struct expire_tiles
+     expire_tiles(uint32_t maxzoom, double maxbbox,
+                  const std::shared_ptr<reprojection> &projection);
+ 
++    bool enabled() const noexcept { return maxzoom != 0; }
++
+     int from_bbox(double min_lon, double min_lat, double max_lon,
+                   double max_lat);
+     void from_wkb(char const *wkb, osmid_t osm_id);
+--- a/src/output-flex.cpp
++++ b/src/output-flex.cpp
+@@ -1289,7 +1289,7 @@ void output_flex_t::delete_from_table(ta
+     assert(table_connection);
+     auto const id = table_connection->table().map_id(type, osm_id);
+ 
+-    if (table_connection->table().has_geom_column()) {
++    if (m_expire.enabled() && table_connection->table().has_geom_column()) {
+         auto const result = table_connection->get_geom_by_id(type, id);
+ 
+         if (result.num_tuples() == 0) {
diff -Nru osm2pgsql-1.4.1+ds/debian/patches/0001-Bug-fix-Remove-schema-name-from-CREATE-INDEX.patch osm2pgsql-1.4.1+ds/debian/patches/0001-Bug-fix-Remove-schema-name-from-CREATE-INDEX.patch
--- osm2pgsql-1.4.1+ds/debian/patches/0001-Bug-fix-Remove-schema-name-from-CREATE-INDEX.patch	1970-01-01 01:00:00.000000000 +0100
+++ osm2pgsql-1.4.1+ds/debian/patches/0001-Bug-fix-Remove-schema-name-from-CREATE-INDEX.patch	2021-04-07 15:56:19.000000000 +0200
@@ -0,0 +1,21 @@
+Description: Bug fix: Remove schema name from CREATE INDEX
+ Indexes are always created in the same schema as the table.
+Author: Jochen Topf <jochen@topf.org>
+Origin: https://github.com/openstreetmap/osm2pgsql/issues/1436
+Bug: https://github.com/openstreetmap/osm2pgsql/issues/1447
+
+--- a/src/middle-pgsql.cpp
++++ b/src/middle-pgsql.cpp
+@@ -714,9 +714,9 @@ static table_sql sql_for_ways(bool has_b
+             "  SELECT ARRAY(SELECT DISTINCT"
+             "    unnest($1) >> {way_node_index_id_shift})\n"
+             "$$ LANGUAGE SQL IMMUTABLE;\n"
+-            "CREATE INDEX {schema}{prefix}_ways_nodes_bucket_idx"
+-            "  ON {schema}{prefix}_ways"
+-            "  USING GIN ({schema}{prefix}_index_bucket(nodes))"
++            "CREATE INDEX \"{prefix}_ways_nodes_bucket_idx\""
++            "  ON {schema}\"{prefix}_ways\""
++            "  USING GIN ({schema}\"{prefix}_index_bucket\"(nodes))"
+             "  WITH (fastupdate = off) {index_tablespace};\n";
+     }
+ 
diff -Nru osm2pgsql-1.4.1+ds/debian/patches/series osm2pgsql-1.4.1+ds/debian/patches/series
--- osm2pgsql-1.4.1+ds/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ osm2pgsql-1.4.1+ds/debian/patches/series	2021-04-07 15:52:06.000000000 +0200
@@ -0,0 +1,2 @@
+0001-Bugfix-Disable-expire-in-flex-output-when-not-used.patch
+0001-Bug-fix-Remove-schema-name-from-CREATE-INDEX.patch
diff -Nru osm2pgsql-1.4.1+ds/debian/watch osm2pgsql-1.4.1+ds/debian/watch
--- osm2pgsql-1.4.1+ds/debian/watch	2020-12-12 07:13:52.000000000 +0100
+++ osm2pgsql-1.4.1+ds/debian/watch	2021-04-07 15:31:29.000000000 +0200
@@ -5,4 +5,4 @@
 filenamemangle=s/(?:.*?\/)?(?:rel|v|osm2pgsql)?[\-\_]?(\d\S+)\.(tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))/osm2pgsql-$1.$2/,\
 repacksuffix=+ds \
 https://github.com/openstreetmap/osm2pgsql/releases \
-(?:.*?/archive/)?(?:rel|v|osm2pgsql)?[\-\_]?(\d\S+)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
+(?:.*?/archive/(?:.*?/)?)?(?:rel|v|osm2pgsql)?[\-\_]?(\d\S+)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))

Reply to: