Upstream changes:
1.3.0:
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
Lua scripts.
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.
Further changes:
The multi output now looks for lua script relative to the style.json file.
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::format and 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_GeoHash for 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
removed.
1.2.2:
This release only updates the bundled version of libosmium. The new
version 2.15.6 fixes an issue where complicated multipolygons make
osm2pgsql hang.
Upstream psudo-NEWS:
1.2.1 and 1.2.0 are bugfix releases.
1.0.0:
This release finally drops support for old-style multipolygons.
Doing so allowed a major overhaul of the processing pipeline.
Imports are now entirely done in the first processing stage. The second,
much slower processing stage is only needed when updating existing
databases. Data is entirely streamed into the database using COPY, which
reduces the number of database connections needed.
Other major changes include
- better error handling in Lua backend
- process all OSM objects again when extra attributes are requested
- enable running tests in pg_virtualenv
- add support for configurable Gazetteer style
- allow to disable RAM node cache with -C 0
Release 0.94.0, a new stable branch
This is the last release which will support old-style
multipolygons.
Upgrading to this version requires a reimport for the slim
table changes.
Major changes since 0.92.0 are
- Coordinates are now stored unprojected in slim tables, and an
osmium dense file array is used for flat nodes. This dense
file array can be read by other libosmium-based programs.
- Libosmium is used for geometry building instead of GEOS
This offers speed increases, improves code, and avoids relying
on a large library for a small portion of its functionality.
Other changes are
- Tile expiry has been rewritten, fixing bugs, including one
that dropped large portions of expiry lists.
- Node tags are no longer stored in slim tables, consistent with
flat-nodes. THis reduces space required for --slim imports
without --flat-nodes.
- A default database name of gis is no longer assumed. An
explicit -d option is recommended if compatibility with 0.92
and earlier.
Release 0.92.1
This fixes two important bugs which impacted relations with
excessive members and consuming updates with the multi backend
Release 0.92.0, a new stable branch
Major changes since 0.90.0 are
- PostgreSQL 9.1 + PostGIS 2.0 or later are now required, which has
allowed performance improvements and cleanups
- EPSG 3857 is now default. You can get the old behavior by manually
specifying 900913
- Invlid geometries are re-checked for validity after buffering, instead
of assuming GEOS returns a valid geom
Other changes are
- A new option to change the max bbox size at which polygons will expire
all the tiles in them, not just the boundary
- Behavior fixes for C transforms and tables with no columns
- More numeric datatypes are allowed for table columns in C tagtransforms
- Lua is now required by default
- Code fixes, particularly replacement of C memory management
One mismatched digest found in geography/libmemphis02:
# package libmemphis02
recorded SHA1 (memphis-0.2.3.tar.gz) = dbc2f61e49b996dc9ca91df0de9a08eb7adbfa9b
calculated SHA1 (memphis-0.2.3.tar.gz) = 85993bce12c3616fcf6e7682a70b9605883edec2
No changes were made to the libmemphis02 distinfo file
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Release 0.88.1
This maintainance release fixes duplicates in the job
queues for pending ways and relations, minor compiler
errors, and updates memory usage documentation.
The duplicates in job queues (#419) only impacted
multithreaded updates and was not observed in most
cases.
Release 0.88.0, a new stable branch
If upgrading and using a database created with 0.86.0 or earlier,
the schema migrations in docs/migrations.md are required.
Major changes since 0.86.0
- Osm2pgsql is now C++ and requires the Boost libraries
- 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 docs/multi.md
- In-database pending way tracking has been replaced with in-memory
tracking, offering 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.
- 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
Changes since 0.87.3 include
- C++ cleanups
- default.style cleanups to improve ease of modification
- Remove the lockfree queue pending implementation and default
to what was --without-lockfree, which uses less RAM
- RAM node storage cleanups
- Better node storage test coverage
Converts OSM planet.osm data to a PostgreSQL / PostGIS database suitable
for specific applications like rendering into map tiles by Mapnik
or geocoding with Nominatim.