From: Sarah Hoffmann Date: Mon, 16 Apr 2012 20:26:44 +0000 (+0200) Subject: change code to work with a 64-bit node size osm2pgsql X-Git-Tag: v2.0.0~77^2~3 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/cb01226f2959ee074b7e68ddd1321b320958f8ae change code to work with a 64-bit node size osm2pgsql This breaks the 32-bit node size version. --- diff --git a/sql/functions.sql b/sql/functions.sql index 806e1566..2c81af32 100644 --- a/sql/functions.sql +++ b/sql/functions.sql @@ -742,7 +742,7 @@ $$ LANGUAGE plpgsql; -CREATE OR REPLACE FUNCTION create_interpolation(wayid INTEGER, interpolationtype TEXT) RETURNS INTEGER +CREATE OR REPLACE FUNCTION create_interpolation(wayid BIGINT, interpolationtype TEXT) RETURNS INTEGER AS $$ DECLARE @@ -1323,7 +1323,7 @@ BEGIN IF NEW.parent_place_id IS NULL AND NEW.osm_type = 'N' THEN -- Is this node part of a relation? - FOR relation IN select * from planet_osm_rels where parts @> ARRAY[NEW.osm_id::integer] and members @> ARRAY['n'||NEW.osm_id] + FOR relation IN select * from planet_osm_rels where parts @> ARRAY[NEW.osm_id] and members @> ARRAY['n'||NEW.osm_id] LOOP -- At the moment we only process one type of relation - associatedStreet IF relation.tags @> ARRAY['associatedStreet'] AND array_upper(relation.members, 1) IS NOT NULL THEN @@ -1339,7 +1339,7 @@ BEGIN --RAISE WARNING 'x1'; -- Is this node part of a way? - FOR way IN select id from planet_osm_ways where nodes @> ARRAY[NEW.osm_id::integer] LOOP + FOR way IN select id from planet_osm_ways where nodes @> ARRAY[NEW.osm_id] LOOP --RAISE WARNING '%', way; FOR location IN select * from placex where osm_type = 'W' and osm_id = way.id LOOP @@ -1352,7 +1352,7 @@ BEGIN -- Is the WAY part of a relation IF NEW.parent_place_id IS NULL THEN - FOR relation IN select * from planet_osm_rels where parts @> ARRAY[location.osm_id::integer] and members @> ARRAY['w'||location.osm_id] + FOR relation IN select * from planet_osm_rels where parts @> ARRAY[location.osm_id] and members @> ARRAY['w'||location.osm_id] LOOP -- At the moment we only process one type of relation - associatedStreet IF relation.tags @> ARRAY['associatedStreet'] AND array_upper(relation.members, 1) IS NOT NULL THEN @@ -1397,7 +1397,7 @@ BEGIN IF NEW.parent_place_id IS NULL AND NEW.osm_type = 'W' THEN -- Is this way part of a relation? - FOR relation IN select * from planet_osm_rels where parts @> ARRAY[NEW.osm_id::integer] and members @> ARRAY['w'||NEW.osm_id] + FOR relation IN select * from planet_osm_rels where parts @> ARRAY[NEW.osm_id] and members @> ARRAY['w'||NEW.osm_id] LOOP -- At the moment we only process one type of relation - associatedStreet IF relation.tags @> ARRAY['associatedStreet'] AND array_upper(relation.members, 1) IS NOT NULL THEN diff --git a/sql/tables.sql b/sql/tables.sql index 51690ae0..385e1fc9 100644 --- a/sql/tables.sql +++ b/sql/tables.sql @@ -192,7 +192,7 @@ CREATE TABLE placex ( place_id BIGINT NOT NULL, partition integer, osm_type char(1), - osm_id INTEGER, + osm_id BIGINT, class TEXT NOT NULL, type TEXT NOT NULL, name HSTORE,