[osm2pgsql] 01/02: Add upstream patches from 0.92.x branch to fix two important issues.

Bas Couwenberg sebastic at debian.org
Thu Apr 13 21:15:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository osm2pgsql.

commit 445b06cd1a2ebfbba643d39cb14da23f1f53bdf1
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Thu Apr 13 22:59:30 2017 +0200

    Add upstream patches from 0.92.x branch to fix two important issues.
    
    - Ignore relations with more than 32k members.
      There is a hard restriction in the pgsql middle tables, where
      relation members are indexed using a smallint. To remain
      consistent, drop all relations which exceed this size.
      https://github.com/openstreetmap/osm2pgsql/issues/713
    - Use the same logic for queuing pending ways with multi and pgsql.
      Fixes ways disappearing from the output table.
      https://github.com/openstreetmap/osm2pgsql/issues/735
---
 debian/changelog                                   | 15 ++++++++++++
 ...e-logic-for-queuing-pending-ways-with-mul.patch | 27 ++++++++++++++++++++++
 ...nore-relations-with-more-than-32k-members.patch | 20 ++++++++++++++++
 debian/patches/series                              |  2 ++
 4 files changed, 64 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 39af702..7a8ad05 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+osm2pgsql (0.92.0+ds-2) UNRELEASED; urgency=medium
+
+  * Add upstream patches from 0.92.x branch to fix two important issues:
+    - Ignore relations with more than 32k members.
+      There is a hard restriction in the pgsql middle tables, where
+      relation members are indexed using a smallint. To remain
+      consistent, drop all relations which exceed this size.
+      https://github.com/openstreetmap/osm2pgsql/issues/713
+    - Use the same logic for queuing pending ways with multi and pgsql.
+      Fixes ways disappearing from the output table.
+      https://github.com/openstreetmap/osm2pgsql/issues/735
+    (closes: #860273)
+
+ -- Bas Couwenberg <sebastic at debian.org>  Thu, 13 Apr 2017 22:56:15 +0200
+
 osm2pgsql (0.92.0+ds-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/0001-Use-the-same-logic-for-queuing-pending-ways-with-mul.patch b/debian/patches/0001-Use-the-same-logic-for-queuing-pending-ways-with-mul.patch
new file mode 100644
index 0000000..ec4676b
--- /dev/null
+++ b/debian/patches/0001-Use-the-same-logic-for-queuing-pending-ways-with-mul.patch
@@ -0,0 +1,27 @@
+Description: Use the same logic for queuing pending ways with multi and pgsql
+ Fixes ways disappearing from the output table.
+Author: Paul Norman <penorman at mac.com>
+Origin: https://github.com/openstreetmap/osm2pgsql/commit/8ffe16e67da43fd531a5e73b10d31465324f4a91
+Bug: https://github.com/openstreetmap/osm2pgsql/issues/735
+Bug-Debian: https://bugs.debian.org/860273
+
+--- a/output-multi.cpp
++++ b/output-multi.cpp
+@@ -92,7 +92,7 @@ void output_multi_t::enqueue_ways(pendin
+     }
+ 
+     //make sure to get this one as well and move to the next
+-    if(popped == id) {
++    if (popped > id) {
+         if (!ways_done_tracker->is_marked(popped) && id_tracker::is_valid(popped)) {
+             job_queue.push(pending_job_t(popped, output_id));
+             added++;
+@@ -143,7 +143,7 @@ void output_multi_t::enqueue_relations(p
+     }
+ 
+     //make sure to get this one as well and move to the next
+-    if(popped == id) {
++    if (popped > id) {
+         if(id_tracker::is_valid(popped)) {
+             job_queue.push(pending_job_t(popped, output_id));
+             added++;
diff --git a/debian/patches/0001-ignore-relations-with-more-than-32k-members.patch b/debian/patches/0001-ignore-relations-with-more-than-32k-members.patch
new file mode 100644
index 0000000..53b4767
--- /dev/null
+++ b/debian/patches/0001-ignore-relations-with-more-than-32k-members.patch
@@ -0,0 +1,20 @@
+Description: ignore relations with more than 32k members
+ There is a hard restriction in the pgsql middle tables, where
+ relation members are indexed using a smallint. To remain
+ consistent, drop all relations which exceed this size.
+Author: Sarah Hoffmann <lonvia at denofr.de>
+Origin: https://github.com/openstreetmap/osm2pgsql/commit/ec9c84edbcbd0dafab6d6c30290083e75c023890
+Bug: https://github.com/openstreetmap/osm2pgsql/issues/713
+
+--- a/parse-osmium.cpp
++++ b/parse-osmium.cpp
+@@ -176,6 +176,9 @@ void parse_osmium_t::relation(osmium::Re
+     if (rel.deleted()) {
+         m_data->relation_delete(rel.id());
+     } else {
++        if (rel.members().size() > 32767) {
++            return;
++        }
+         convert_tags(rel);
+         convert_members(rel.members());
+         if (m_append) {
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..acaf7fc
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+0001-ignore-relations-with-more-than-32k-members.patch
+0001-Use-the-same-logic-for-queuing-pending-ways-with-mul.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/osm2pgsql.git



More information about the Pkg-grass-devel mailing list