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