Öt évvel az 1.0.0 verzió után megérkezett az osm2pgsql 2.0.0, amely jelentős változásokat hoz a felhasználók és fejlesztők számára egyaránt. Ez a verzió új lehetőségeket és fejlesztéseket kínál, így most még könnyebben kezelhető és bővíthető az osm2pgsql. Az osm2pgsql 2.0.0 egy fontos lépés a program modernizálása felé, amely eltávolítja a több mint egy évtizedes fejlesztés során felhalmozott, elavult elemeket. Ezek a változtatások lehetővé teszik a fejlesztők számára a korábbi problémák megoldását, és egyben megkönnyítik a további fejlesztéseket is.
Jelentős változtatások
- A közbenső táblák régi formátuma és a régi, nem bucket típusú csomópontindex megszűnt.
- A „gazetteer” kimenet (amelyet a Nominatim használ) eltávolításra került.
- Több parancssori opció eltűnt, illetve szigorúbb ellenőrzést kapott.
- Új könyvtári követelmények jelentek meg, és a Lua használata most már kötelező.
- A flex Lua konfigurációban az add_row() függvény helyett az insert() függvényt kell használni.
- Ellenőrizni kell, hogy az OSM objektumokon használt Lua függvények helyesen, a kettőspont-szintaxissal hívódnak meg.
- A címkék nélküli objektumok és objektumattribútumok kezelése megváltozott.
A frissítési részletekért javasoljuk, hogy tekintsd meg a kézikönyv „Upgrading” függelékét. Ajánlatos először az 1.11.0 verzióra frissíteni, és az ott felmerülő esetleges problémákat megoldani, mielőtt a 2.0.0-ra váltasz.
Ez az első kiadás, amely a „pgsql” kimenet elavulását jelzi, ezért érdemes áttérni a „flex” kimenetre. Részletekért lásd az erre vonatkozó FAQ-bejegyzést.
Új funkciók a flex kimenetben
- A kétlépcsős feldolgozás már nemcsak az út (way), hanem a reláció (relation) tagjait is támogatja.
- Lehetőség van az azonosítóindex egyedi indexként történő megépítésére.
- Az adatbázisban az indexek nevei beállíthatók.
- Új after_nodes(), ways() és relations() feldolgozó függvények kerültek be a flex Lua konfigurációs fájlokba.
- Az osm2pgsql tulajdonságai elérhetők a Lua nyelvben az osm2pgsql.properties táblán keresztül.
- Új get_bbox() függvény adódott a geometriai elemekhez a Lua-ban.
- Üres konfigurációs fájl is használható flex kimenetben, ami bizonyos speciális esetekben hasznos lehet.
Változások az általánosítási kódban
- Csempéken alapuló generalizáló rendszer SQL-parancsokkal történő meghívása.
- Javítás: ANALYZE nem fut „append” módban, ezt helyette az autovacuum kezeli.
- Javítás: a hibák kezelése a szálakban most már helyesen leállítja a programot, ha szükséges.
Egyéb javítások és funkciók
- A –flat-nodes opció nem-slim módban is használható, ha kevés a memória.
- Javítás az egyel kevesebb lapkát generáló hiba esetén a „expire” kódban.
- A tulajdonságváltozások későbbi adatbázisba mentése, hogy hibás működés esetén ne változzon az adatbázis.
- Akár 100 hiányzó csomópont jelentése a bemeneti fájlban (debug logban).
- Egyszerűsített kód a többpoligon relációkból történő területösszeállításhoz.
- Replikáció: állapot becslése fájl alapján, ha az állapotinformáció nem elérhető.
- A másolási (COPY) műveletek lezárása és ürítése csomópontok, utak és relációk után a flex kimenetben, hogy elkerüljük a hosszú ideig nyitva lévő COPY műveleteket.
- Az új csomópontok és utak szülőinek keresésének elkerülése az adatbázis köztes táblájában, amely felgyorsítja a változásokat.