2 * increase minimum required Python to 3.9
3 * index and output entrances of buildings and areas (thanks @emlove)
4 * name tags used for creating display names are now configurable
6 * new pattern-replacement query preprocessor (thanks @TuringVerified)
7 * special phrases can now be filtered by presence of tags (thanks @anqixxx)
8 * lua import style now always includes tags required by Nominatim
9 * improved query time reporting and logging
10 * improve word matching for languages with no word boundaries
11 * POIs with addresses inherited from surrounding building are no
12 longer returned in the address layer
13 * avoid creating a directory for the tokenizer when not needed
14 * replace behave with pytest-bdd for BDD testing
15 * refactoring and performance improvements to query parsing
16 * various smaller updates to styles
17 * remove English as default language for South Korea
18 * remove Japanese word variants
19 * updated country names for Norwegians (thanks @Johannes-Andersen)
20 * remove support for deprecated osm2pgsql gazetteer style
21 * fix updating of importances (also needs to update search_name table)
22 * fix query for deletable endpoint to use index again
23 * fix reindexing of contained places when a boundary is deleted and reinstated
24 * fix difference computation error when updating postcodes
25 * bracket handling sanitizer no longer strips bracket terms in the middle of
27 * reduce precision of stored coordinates to 7-digits everywhere
28 * avoid ST_Relate as it seems buggy on some systems
29 * remove setting for logging queries in DB, no longer functional
30 * postcode updates no longer require a project directory (needed for tests)
31 * refactor locale handling code (thanks @anqixxx)
32 * code updates for newer Python (thanks @emmanuel-ferdman)
33 * better test coverage (thanks @asharmalik19)
34 * various fixes and improvements to documentation
35 (thanks @anqixxx, @dave-meyer, @hasandiwan)
38 * replace datrie with simple internal trie implementation
39 * add pattern-based postcode parser for queries,
40 postcodes no longer need to be present in OSM to be found
41 * take variants into account when computing token similarity
42 * add extratags output to geocodejson format
43 * fix default layer setting used for structured queries
44 * update abbreviation lists for Russian and English
45 (thanks @shoorick, @IvanShift, @mhsrn21)
46 * fix variant generation for Norwegian
47 * fix normalization around space-like characters
48 * improve postcode search and handling of postcodes in queries
49 * reorganise internal query structure and get rid of slow enums
50 * enable code linting for tests
51 * various code moderinsations in test code (thanks @eumiro)
52 * remove setting osm2pgsql location via config.lib_dir
53 * make SQL functions parallel save as far as possible (thanks @otbutz)
54 * various fixes and improvements to documentation (thanks @TuringVerified)
57 * increase required versions for PostgreSQL (12+), PostGIS (3.0+)
58 * remove installation via cmake and debundle osm2pgsql
59 * remove deprecated PHP frontend
60 * remove deprecated legacy tokenizer
61 * add configurable pre-processing of queries
62 * add query pre-processor to split up Japanese addresses
63 * rewrite of osm2pgsql style implementation
64 (also adds support for osm2pgsql-themepark)
65 * reduce the number of SQL queries needed to complete a 'lookup' call
66 * improve computation of centroid for lines with only two points
67 * improve bbox output for postcode areas
68 * improve result order by returning the largest object when other things are
70 * add fallback for reverse geocoding to default country tables
71 * exclude postcode areas from reverse geocoding
72 * disable search endpoint when database is reverse-only (regression)
73 * minor performance improvements to area split algorithm
74 * switch table and index creation to use autocommit mode to avoid deadlocks
75 * drop overly long ways during import
76 * restrict automatic migrations to versions 4.3+
77 * switch linting from pylint to flake8
78 * switch tests to use a wikimedia test file in the new CSV style
79 * various fixes and improvements to documentation
82 * allow building Nominatim as a pip package
83 * make osm2pgsql building optional
84 * switch importer to psycopg3
85 * allow output format of web search to be customized in self-installations
86 * look up potential postcode areas for postcode results
87 * add word usage statistics for address terms
88 * implement more light-weight CSV format for wiki importance tables
89 * rewrite SQL for place search to use window functions
90 * increase search radius when filtering by postcode
91 * prefer POI points over POI areas
92 * reintroduce full terms for address terms in search_name table
93 * reindex postcodes when their parent is deleted
94 * indexing: precompute counts of affected rows
95 * ensure consistent country assignments for overlapping countries
96 * make Nominatim[Async]API context manager to ensure proper calling of
98 * make usage of project dir optional for library
99 * drop interpolations when no parent can be found
100 * style tweaks to reflect OSM usage (man_made, highway and others)
101 * deprecation of: bundled osm2pgsql, legacy tokenizer, PHP frontend
102 * make documentation buildable without CMake
103 * various fixes and improvements to documentation
106 * fix geocodejson output: admin level output should only print boundaries
107 * updating: restrict invalidation of child objects on large street features
108 * restrict valid interpolation house numbers to 0-999999
109 * fix import error when SQLAlchemy 1.4 and psycopg3 are installed
110 * various typo fixes in the documentation
113 * add export to SQLite database and SQLite support for the frontend
114 * switch to Python frontend as the default frontend
115 * update to osm2pgsql 1.11.0
116 * add support for new osm2pgsql middle table format
117 * simplify geometry for large polygon objects not used in addresses
118 * various performance tweaks for search in Python frontend
119 * fix regression in search with categories where it was confused with near
121 * partially roll back use of SQLAlchemy lambda statements due to bugs
123 * fix handling of timezones for timestamps from the database
124 * fix handling of full address searches in connection with a viewbox
125 * fix postcode computation of highway areas
126 * fix handling of timeout errors for Python <= 3.10
127 * fix address computation for postcode areas
128 * fix variable shadowing in osm2pgsql flex script, causing bugs with LuaJIT
129 * make sure extratags are always null when empty
130 * reduce importance of places without wikipedia reference
131 * improve performance of word count computations
132 * drop support for wikipedia tags with full URLs
133 * replace get_addressdata() SQL implementation with a Python function
134 * improve display name for non-address features
135 * fix postcode validation for postcodes with country code
136 (thanks @pawel-wroniszewski)
137 * add possibility to run imports without superuser database rights
138 (thanks @robbe-haesendonck)
139 * new CLI command for cleaning deleted relations (thanks @lujoh)
140 * add check for database version in the CLI check command
141 * updates to import styles ignoring more unused objects
142 * various typo fixes (thanks @kumarUjjawal)
145 * fix potential SQL injection issue for 'nominatim admin --collect-os-info'
146 * PHP frontend: fix on-the-fly lookup of postcode areas near boundaries
147 * Python frontend: improve handling of viewbox
148 * Python frontend: correct deployment instructions
151 * reintroduce result rematching
152 * improve search of multi-part names
153 * fix accidentally switched meaning of --reverse-only and --search-only in
157 * fix failing importance recalculation command
158 * fix merging of linked names into unnamed boundaries
159 * fix a number of corner cases with interpolation splitting resulting in
161 * fix failure in website generation when password contains curly brackets
162 * fix broken use of ST_Project in PostGIS 3.4
163 * new NOMINATIM_SEARCH_WITHIN_COUNTRIES setting to restrict reverse lookups
164 to known countries (thanks @alfmarcua)
165 * allow negative OSM IDs (thanks @alfmarcua)
166 * disallow import of Tiger data in a frozen DB
167 * avoid UPDATE to change settings to be compatible with r/o DBs (thanks @t-tomek)
168 * update bundled osm2pgsql to 1.9.2
169 * reorganise osm2pgsql flex style and make it the default
170 * exclude names ending in :wikipedia from indexing
171 * no longer accept comma as a list separator in name tags
172 * process forward dependencies on update to catch updates in geometries
173 of ways and relations
174 * fix handling of isolated silent letters during transliteration
175 * no longer assign postcodes to large linear features like rivers
176 * introduce nominatim.paths module for finding data and libraries
177 * documentation layout changed to material theme
178 * new documentation section for library
179 * various smaller fixes to existing documentation
180 (thanks @woodpeck, @bloom256, @biswajit-k)
181 * updates to vagrant install scripts, drop support for Ubuntu 18
183 * removed obsolete configuration variables from env.defaults
184 * add script for generating a taginfo description (thanks @biswajit-k)
185 * modernize Python code around BDD test and add testing of Python frontend
186 * lots of new BDD tests for API output
190 * fix deletion handling for 'nominatim add-data'
191 * adapt place_force_delete() to new deletion handling
192 * flex style: avoid dropping of postcode areas
193 * fix update errors on address interpolation handling
197 * extend flex-style library to fully support all default styles
198 * fix handling of Hebrew aleph
199 * do not assign postcodes to rivers
200 * fix string matching in PHP code
201 * update osm2pgsql (various updates to flex)
202 * fix slow query when deleting places on update
203 * fix CLI details query
204 * fix recalculation of importance values
205 * fix polygon simplification in reverse results
206 * add class/type information to reverse geocodejson result
207 * minor improvements to default tokenizer configuration
208 * various smaller fixes to documentation
212 * fix XSS vulnerability in debug view
216 * add experimental support for osm2pgsql flex style
217 * introduce secondary importance value to be retrieved from a raster data file
218 (currently still unused, to replace address importance, thanks to @tareqpi)
219 * add new report tool `nominatim admin --collect-os-info`
220 (thanks @micahcochran, @tareqpi)
221 * reorganise index to improve lookup performance and size
222 * run index creation after import in parallel
223 * run ANALYZE more selectively to speed up continuation of indexing
224 * fix crash on update when addr:interpolation receives an illegal value
225 * fix minimum number of retrieved results to be at least 10
226 * fix search for combinations of special term + name (e.g Hotel Bellevue)
227 * do not return interpolations without a parent street on reverse search
228 * improve invalidation of linked places on updates
229 * fix address parsing for interpolation lines
230 * make sure socket timeouts are respected during replication
231 (working around a bug in some versions of pyosmium)
232 * update bundled osm2pgsql to 1.7.1
233 * add support for PostgreSQL 15
234 * typing fixes to work with latest type annotations from typeshed
235 * smaller improvements to documentation (thanks to @mausch)
239 * fix XSS vulnerability in debug view
243 * switch to ICU tokenizer as default
244 * add housenumber normalization and support optional spaces during search
245 * add postcode format checking and support optional spaces during search
246 * add function for cleaning housenumbers in word table
247 * add updates/deletion of country names imported from OSM
248 * linked places no longer overwrite names from a place permanently
249 * move default country name configuration into yaml file (thanks @tareqpi)
250 * more compact layout for interpolation and TIGER tables
251 * introduce mutations to ICU tokenizer (used for German umlauts)
252 * support reinitializing a full project directory with refresh --website
253 * fix various issues with linked places on updates
254 * add support for external sanitizers and token analyzers
255 * add CLI commands for forced indexing
256 * add CLI command for version report
257 * add offline import mode
258 * change geocodejson to return a feature class in the 'type' field
259 * add ISO3166-2 to address output (thanks @I70l0teN4ik)
260 * improve parsing and matching of addr: tags
261 * support relations as street members of associatedStreet
262 * better ranking for address results from TIGER data
263 * adapt rank classification to changed tag usage in OSM
264 * update bundled osm2pgsql to 1.6.0
265 * add typing information to Python code
266 * improve unit test coverage
267 * reorganise and speed up code for BDD tests, drop support for scenes
268 * move PHP unit tests to PHP 9.5
269 * extensive typo fixes in documentation (thanks @woodpeck,@StephanGeorg,
270 @amandasaurus, @nslxndr, @stefkiourk, @Luflosi, @kianmeng)
271 * drop official support for installation on CentOS
272 * add installation instructions for Ubuntu 22.04
273 * add support for PHP8
274 * add setup instructions for updates and systemd
275 * drop support for PostgreSQL 9.5
279 * fix XSS vulnerability in debug view
283 * fix initialisation error in replication script
284 * ICU tokenizer: avoid any special characters in word tokens
285 * better error message when API php script does not exist
286 * fix quoting of house numbers in SQL queries
287 * small fixes and improvements in search query parsing
288 * add documentation for moving the database to a different machine
292 * refactor name token computation and introduce ICU tokenizer
293 * name processing now happens in the indexer outside the DB
294 * reorganizes abbreviation handling and moves it to the indexing phases
295 * adds preprocessing of names
296 * add country-specific ranking for Spain, Slovakia
297 * partially switch to using SP-GIST indexes
298 * better updating of dependent addresses for name changes in streets
299 * remove unused/broken tables for external housenumbers
300 * move external postcodes to CSV format and no longer save them in tables
301 (adds support for postcodes for arbitrary countries)
302 * remove postcode helper entries from placex (thanks @AntoJvlt)
303 * change required format for TIGER data to CSV
304 * move configuration of default languages from wiki into config file
305 * expect customized configuration files in project directory by default
306 * disable search API for reverse-only import (thanks @darkshredder)
307 * port most of maintenance/import code to Python and remove PHP utils
308 * add catch-up mode for replication
309 * add updating of special phrases (thanks @AntoJvlt)
310 * add support for special phrases in CSV files (thanks @AntoJvlt)
311 * switch to case-independent matching between place and boundary names
312 * remove disabling of reverse query parsing
313 * minor tweaks to search algorithm to avoid more false positives
314 * major overhaul of the administrator and developer documentation
315 * add security disclosure policy
316 * add testing of installation scripts via CI
317 * drop support for Python < 3.6 and Postgresql < 9.5
321 * fix XSS vulnerability in debug view
325 * fix database check for reverse-only imports
326 * do not error out in status API result when import date is missing
327 * add array_key_last function for PHP < 7.3 (thanks to @woodpeck)
328 * fix more url when server name is unknown (thanks to @mogita)
329 * commit changes to replication log table
333 * fix smaller issues with special phrases import (thanks @AntoJvlt)
334 * add index to speed up continued indexing during import
335 * fix index on location_property_tiger(parent_place_id) (thanks @changpingc)
336 * make sure Python code is backward-compatible with Python 3.5
337 * various documentation fixes
341 * switch to dotenv for configuration file
342 * introduce 'make install' (reorganising most of the code)
343 * introduce nominatim tool as replacement for various php scripts
344 * introduce project directories and allow multiple installations from same build
345 * clean up BDD tests: drop nose, reorganise step code
346 * simplify test database for API BDD tests and autoinstall database
347 * port most of the code for command-line tools to Python
348 (thanks to @darkshredder and @AntoJvlt)
349 * add tests for all tooling
350 * replace pyosmium-get-changes with custom internal implementation using
352 * improve search for queries with housenumber and partial terms
353 * add database versioning
354 * use jinja2 for preprocessing SQL files
355 * introduce automatic migrations
356 * reverse fix preference of interpolations over housenumbers
357 * parallelize indexing of postcodes
358 * add non-key indexes to speed up housenumber + street searches
359 * switch housenumber field in placex to save transliterated names
363 * add full support for searching by and displaying of addr:* tags
364 * improve address output for large-area objects
365 * better use of country names from OSM data for search and display
366 * better debug output for reverse call
367 * add support for addr:place links without an place equivalent in OSM
368 * improve finding postcodes with normalisation artefacts
369 * batch object to index for rank 30, avoiding a wrap-around of transaction
371 * introduce dynamic address rank computation for administrative boundaries
372 depending on linked objects and their place in the admin level hierarchy
373 * add country-specific address ranking for Indonesia, Russia, Belgium and
374 the Netherlands (thanks @hendrikmoree)
375 * make sure wikidata/wikipedia tags are imported for all styles
376 * make POIs searchable by name and housenumber (thanks @joy-yyd)
377 * reverse geocoding now ignores places without an address rank (rivers etc.)
378 * installation of a webserver is no longer mandatory, for development
379 use the php internal webserver via 'make serve
380 * reduce the influence of place nodes in addresses
381 * drop support for the unspecific is_in tag
382 * various minor tweaks to supplied styles
383 * move HTML web frontend into its own project
384 * move scripts for processing external data sources into separate directories
385 * introduce separate configuration for website (thanks @krahulreddy)
386 * update documentation, in particular, clean up development docs
387 * update osm2pgsql to 1.4.0
391 * ensure that wikipedia tags are imported for all styles
392 * reinstate verbosity for indexing during updates
393 * make house number reappear in display name on named POIs
394 * introduce batch processing in indexer to avoid transaction ID overrun
395 * increase splitting for large geometries to improve indexing speed
396 * remove deprecated get_magic_quotes_gpc() function
397 * make sure that all postcodes have an entry in word and are thus searchable
398 * remove use of ST_Covers in conjunction with ST_Intersects,
399 causes bad query planning and slow updates in Postgis3
404 * disable jit and parallel processing in PostgreSQL for osm2pgsql
405 * update libosmium to 2.15.6 (fixes an issue with processing hanging
406 on large multipolygons)
410 * structured select on HTML search page
411 * new PHP Nominatim\Shell class to wrap shell escaping
412 * remove polygon parameter from all API calls
413 * improve handling of postcode areas
414 * reorganise place linking algorithm, now using wikidata tag as well
415 * remove linkees from search_name and larger_area tables
416 * introduce country-specific address ranks
417 * reorganise rank address computation
418 * cleanup of partition function
419 * improve parenting for large POIs
420 * add support for Postgresql 12 and Postgis 3
421 * add earlier cleanup when --drop is given, to reduce memory usage
422 * remove use of place_id in URLs
423 * replace C nominatim indexer with a simpler Python implementation
424 * split up the huge sql/functions.sql file
425 * move osm2pgsql tests to osm2pgsql
426 * add new extratags style which imports all tags from OSM
427 * add new script for checking the import after completion
428 * update osm2pgsql, reducing memory usage
429 * use new wikipedia importance and add processing of wikidata tags
430 * add search form for details page
431 * use ExtraDataPath for country_grid table
432 * remove short_name from list of names to be displayed
433 * split up CMakeFile, so that all parts can be built separately
434 * update installation instructions for CentOS and Ubuntu
435 * add script for importing/updating multiple country extracts
436 * various documentation improvements
440 * fix security bug in /details endpoint where user input was not
445 * update osm2pgsql to fix hans during updates and lost address numbers
450 * increase required version for PostgreSQL(9.3), PostGIS(2.2) and PHP(7.0)
451 * better error reporting for out-of-memory errors
452 * exclude postcode ranges separated by colon from centre point calculation
453 * update osm2pgsql, better handling of imports without flatnode file
454 * switch to more efficient algorithm for word set computation
455 * use only boundaries for country and state parts of addresses
456 * improve updates of addresses with housenumbers and interpolations
457 * remove country from place_addressline table and use country_code instead
458 * optimise indexes on search_name partition tables
459 * improve searching of attached streets for large objects like airports
460 * drop support for python 2
461 * new scripts for importing Wikidata for importance
462 * create and drop indexes concurrently to not clash with auto vacuum
463 * various documentation improvements
468 * zoom 17 in reverse now zooms in on minor streets
469 * fix use of postcode relations in address
470 * support for housenumber 0 on interpolations
471 * replace database abstraction DB with PDO and switch to using exceptions
472 * exclude line features at rank 30 from reverse geocoding
473 * remove self-reference and country from place_addressline
474 * make json output more readable (less escaping)
475 * update conversion scripts for postcodes
476 * scripts in utils/ are no longer executable (always use scripts in build dir)
477 * remove Natural Earth country fallback (OSM is complete enough)
478 * make rank assignments configurable
479 * allow accept languages with underscore
480 * new reverse-only import mode (without search index table)
481 * rely on boundaries only for states and countries
482 * update osm2pgsql, now using a configurable style
483 * provide multiple import styles
484 * improve search when house number and postcodes are dropped
485 * overhaul of setup code
486 * add support for PHPUnit 6
487 * update test database
488 * various documentation improvements
492 * complete rewrite of reverse search algorithm
493 * add new geojson and geocodejson output formats
494 * add simple export script to export addresses to CSV
495 * remove is_in terms from address computation
496 * remove unused search_name_country tables
497 * various smaller fixes to query parsing
498 * convert Tokens and token types to class types
499 * correctly handle update when boundary object type is changed
500 * improve debug output for /search endpoint
501 * update to latest osm2pgsql and leaflet.js
502 * overhaul of /details endpoint:
503 * new class parameter when using osmtype/osmid parameters
504 * permalink to instance-independent osmtype/osmid parameter format
505 * new json output format
506 * update CentOS vagrant machine to use SELinux
507 * add vagrant scripts for Ubuntu 18.04
508 * fix build process for BSD
509 * enable running the database on a different host than the setup scripts
510 * allow to configure use of custom PHP binaries (PHP_BIN)
511 * extensive coding style improvements to PHP code
512 * more PHP unit tests for new classes
513 * increase coverage for API tests
514 * add documentation for API
518 * rework postcode handling and introduce location_postcode table
519 * make setup less verbose and print a summary in the end
520 * setup: error out when web site user does not exist
521 * add more API tests to complete code coverage
522 * reinstate key-value amenity search (special term [key=value])
523 * fix detection of coordinates in query
524 * various smaller tweaks to ranking of search interpretations
525 * complete overhaul of PHP frontend code using OOP
526 * add address rank to details page
527 * update Tiger scripts for 2017 data and clean up unused code
528 * various bug fixes and improvements to UI
529 * improve reverse geocoding performance close to coasts
530 * more PHP style cleanup (quoting)
531 * allow unnamed road in reverse geocoding to avoid too far off results
532 * add function to recalculate counts for full-word search term
533 * add function to check if new updates are available
534 * update documentation and switch to mkdocs for generating HTML
538 * fix bug in geometry building algorithm in osm2pgsql
539 * fix typos in build instructions
543 * move to cmake build system
544 * various fixes to HTML output
545 * reverse endpoint now can return geometries
546 * add support for PHP7
547 * move to on-the-fly computation of interpolations
548 * improve handling of linked places (updating)
549 * improve test framework:
550 * replace lettuce with behave
551 * use smaller database for API tests
552 * drop support for postgres < 9.1, postgis < 2.0 and PHP < 5.4
553 * make external data use optional (useful for imports without US)
554 * detect postgres and postgis versions automatically
555 * clean up query logging and remove unused tables
556 * move installation documentation into this repo
557 * add self-documenting vagrant scripts
558 * remove --create-website, recommend to use website directory in build
559 * add accessor functions for URL parameters and improve error checking
560 * remove IP blocking and rate-limiting code
561 * enable CI via travis
562 * reformatting for more consistent coding style
563 * make country search term creation part of setup
564 * update country names and country grid
565 * handle roads that cross boundaries better
566 * keep full information on address tags
567 * update to refactored osm2pgsql which use libosmium based types
568 * switch from osmosis to pyosmium for updates
569 * be more strict when matching against special search terms
570 * handle postcode entries with multiple values correctly
574 * reverse geocoding includes looking up housenumbers from Tiger data
575 * added parameter to return simplified geometries
576 * new lookup call for getting address information for OSM objects
577 * new namedetails and extratags parameters that expose the name and extratags
578 fields of the placex table
584 * drop support for postgres 8.4
585 * rewrite address interpolation
586 * switch to C++ version of osm2pgsql and rewrite tag filtering
587 * support for bridge:name and tunnel:name, man_made, junction
588 * drop way-node index (reduces database size by about 15%)
589 * add support for configuring tablespaces and webserver user
590 * better evaluation of search queries in right-to-left notation
591 * improve house number search for streets with many duplicate entries
592 * code cleanup (remove unused functions and tables)
596 * further improve ordering of results
597 * support for more lat/lon formats in search-as-reverse
598 * fix handling of GB postcodes
599 * new functional test suite
600 * support for waterway relations
601 * inherit postcodes from street to poi
602 * fix housenumber normalisation to find non-latin house numbers
603 * take viewbox into account for ordering of results
604 * pois may now inherit address tags from surrounding buildings
605 * improve what objects may participate in an address
606 * clean up handled class/type combinations to current OSM usage
611 * correct database rights for www-data
612 * add timestamps for update output
613 * load postgis via extension for postgis >= 2.0
614 * remove non-admin boundaries from addresses
615 * further improve ordering of results with same importance
616 * merge addr:postcode tags into object addresses
617 * include rank and importance in reverse geocode output
618 * replace ST_Line_Interpolate_Point with ST_LineInterpolatePoint
620 * update osm2pgsql to latest version
621 * properly detect changes of admin_level
622 * remove landuses when name is removed
627 * update to openlayers 2.12 (now custom built)
628 * update fallback OSM boundaries
629 * add support for postgresql 9.2/9.3 and postgis 2.x
630 * add structured queries
631 * add options for polygon output in various formats
632 (geojson, svg, kml, postgis text)
633 * maintenance functions for deleting objects and updating regions
634 (plcae_force_update/place_force_delete)
635 * web view for polygons that need deleting
636 * rate limiting using memcache
637 * improve layout of details page
638 * add support for boundary:postal_code
640 * improve parenting of POIs
641 * support for extract daily diffs from Geofabrik
642 * support for addresses without a street
643 (addr:place and conscription number house numbers)
644 * improve layout of word and search_name_* tables
645 * support for US ZIP+4 codes
646 * refactoring of front-end PHP code
647 * lots of smaller bug fixes
651 * delete outdated entries from location_area_country
652 * remove remaining uses of INTEGER, to allow node ids larger than 2^31