This release introduces the new "flex" output. It allows a more flexible
definition of output tables and columns. It also adds a second stage of
processing which makes it possible to get information from relations to
their members, allowing, for instance, to render tags from bicycle route
relations on their member ways. The "flex" output is configured through
The flex output is currently still marked as experimental, because it is new
and we want to collect feedback from the community before finalizing the API.
But it already works well and users are encouraged to try it out. Some new
features are only or will only be available in the flex output and we expect
that it will replace the other outputs in the long term.
Some features have been marked as deprecated:
- The "multi" output will be removed in a future version of osm2pgsql. If you
are using the multi output, switch to the flex output now and tell us if
you have any problems.
- When the input file uses negative OSM object IDs a warning is now generated.
Negative IDs never worked correctly for all use cases. Future versions of
osm2pgsql will not allow negative IDs at all. Use "osmium renumber"
to get rid of the negative IDs.
- Input files that are not ordered generate a warning. Future versions of
osm2pgsql will not work any more with unordered files. If you have unordered
files use "osmium sort" to order them.
- The multi output now looks for lua script relative to the
This is a breaking change. Users might have to change the file names of
their lua scripts in the style files.
- Use the fmt library for formatting strings now instead of a mixture of
boost::formatand hand-written mechanisms. A version of fmt is included
in the contrib directory.
- Make PROJ library optional. If the proj library cannot be found by cmake,
do not offer the option to use arbitrary projections. Only WGS84 and
WebMercator are supported then.
- Don't use
ST_GeoHashfor ordering tables by geometry on Postgis >= 2.4.
Instead use the default ordering which works better now.
- Fix: Always print correct relations count and more correct count per seconds
when showing processing stats.
- Fix: If a function run in the thread pool throws an exception, this exception
was never "collected", it was silently ignored. This meant that some errors,
especially in communication with the database, were not detected correctly.
- The dependency management, the part of the code which tracks which changes
in the OSM data trigger which changes in the outputs, was reorganized
making in much cleaner and removing the last remnants of code written to
support "old style" multipolygons.
- Tests have been moved to the Catch framework, extended and the regression
tests have been reorganised, so they can run independently of each other.
- A lot of code was cleaned up, modernized, made more robust, and sometimes