Release 1.5.0
This release brings quite a lot of improvements. The most important one: The
flex output which we introduced in version 1.3.0 almost a year ago as a new
experimental feature is now ready for prime time: We are removing the
“experimental” label. There are some small changes you might have to make
to your flex configurations, see the
Upgrading chapter of the
manual for details. We have also introduced a new cluster
table
option in
the flex config file which allows you to disable clustering of the table data
by geometry.
This release brings a complete rewrite of the code used to temporarily store
OSM data in memory while processing the data in non-slim mode, i.e. when you
import data without --slim
. The new code needs far less memory, this will
speed up imports of smaller extracts and make imports of medium sized extracts
possible that you couldn’t do before. Memory requirements are now about 2.5
times the size of the PBF input file, which means most country sized extracts
can quickly be imported on reasonably sized servers. When running with
--log-level=debug
osm2pgsql will report how much memory it uses for this.
When running in slim mode, memory use for the cache has also been reduced.
Again this release contains a huge amount of internal cleanups and restructurings of the code. This makes the code more robust, easier to understand and change. It also gave us a more solid base for some of the new features in this release and for more features in the future.
The multi output which was marked as deprecated in the last versions has now been removed.
This is the first release that needs a C++14 compiler.
There are some further smaller changes:
- Do not try to create indexes for flex output tables without id.
- Added a warning if
--flat-nodes/-F
is used in non-slim mode. - Added flex config example (
attributes.lua
) showing how to access OSM object attributes (such as timestamp, user name, etc.) from Lua. - Report thread number in all log lines when
--log-level=debug
is set. - Use trigger to check geometry validity on first import instead of only doing this when copying the data for clustering. In the flex output this validity check is not used any more for point geometries because they are always valid anyway.
- The RapidJSON library is now used and included in the source.
- Now needs libosmium 2.17.0 which is included in the source.