A new long-term version of osm2pgsql has been released, 0.88.0. This includes the work done in the 0.87.x development series and the porting to C++.
Like all versions, 0.88.0 can be obtained from https://github.com/openstreetmap/osm2pgsql
Potentially breaking changes
-
A database reload is recommended. If not, the schema migrations in https://github.com/openstreetmap/osm2pgsql/blob/master/docs/migrations.md are required.
-
Osm2pgsql is now C++ and requires the Boost libraries. Build scripts and package dependencies may need adjustment
Major new features
-
A new backend has been added, the “multi” backend. This allows multiple tables which can each contain different types of features. More documentation is available at https://github.com/openstreetmap/osm2pgsql/blob/master/docs/multi.md.
One potential use for this feature is matching an existing schema for data, to allow OSM data to be a drop-in replacement.
-
In-memory pending tracking instead of in-database, with significant performance gains.
-
Rendering tables are ordered by GeoHash when created, resulting in significant performance improvements.
-
z_logic has been improved, taking into account more recent work across multiple styles. https://github.com/openstreetmap/osm2pgsql/pull/374 has more information.
Other changes
-
The node storage has been improved, and out of order nodes and nodes at 0,0 should now always be handled correctly
-
A new test suite with unit tests
-
Many bug-fixes and cleanups
Known issues
- Append mode is not supported with non-slim. This is suported in 0.89.0-dev, but is frequently a user error. Typically, when a user does this they should instead merge input files with osmosis/osmconvert and use –create
What’s next?
osm2pgsql is switching to libosmium for parsing and will require a C++11 compiler. These changes are already in 0.89.0-dev. Beyond this, it depends on contributor time and interest and if anyone decides to pay for development.
Mailing list post: https://lists.openstreetmap.org/pipermail/dev/2015-July/028641.html