]> git.openstreetmap.org Git - nominatim.git/commitdiff
replace ST_Line_Interpolate_Point with ST_LineInterpolatePoint (DB adaption needed)
authorSarah Hoffmann <lonvia@denofr.de>
Thu, 6 Feb 2014 07:04:42 +0000 (08:04 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 7 Feb 2014 19:10:14 +0000 (20:10 +0100)
Name of function was changed in postgis 2.1 and now prints ugly
deprecation warnings. For older versions of postgis, function
will be renamed to the new name during the setup of the DB.

To update existing databases with postgis < 2.1 run:

ALTER FUNCTION st_line_interpolate_point(geometry, double precision) RENAME TO ST_LineInterpolatePoint

and then reinstall the SQL functions:

./utils/setup.php --create-functions --enable-diff-updates --create-partition-functions

sql/functions.sql
sql/partition-functions.src.sql
sql/tiger_import_start.sql
utils/setup.php

index 1883d99867f08008c103a48c92793bfccd24ef6c..f219e70e0fe312f572585079cfc083970fe00d0f 100644 (file)
@@ -895,7 +895,7 @@ BEGIN
                 insert into placex (osm_type, osm_id, class, type, admin_level, housenumber, street, addr_place, isin, postcode,
                   country_code, parent_place_id, rank_address, rank_search, indexed_status, geometry)
                   values ('N',prevnode.osm_id, 'place', 'house', prevnode.admin_level, housenum, prevnode.street, prevnode.addr_place, prevnode.isin, coalesce(prevnode.postcode, defpostalcode),
-                  prevnode.country_code, prevnode.parent_place_id, prevnode.rank_address, prevnode.rank_search, 1, ST_Line_Interpolate_Point(linegeo, (housenum::float-orginalstartnumber::float)/originalnumberrange::float));
+                  prevnode.country_code, prevnode.parent_place_id, prevnode.rank_address, prevnode.rank_search, 1, ST_LineInterpolatePoint(linegeo, (housenum::float-orginalstartnumber::float)/originalnumberrange::float));
                 newpoints := newpoints + 1;
 --RAISE WARNING 'interpolation number % % ',prevnode.place_id,housenum;
               END LOOP;
@@ -1484,9 +1484,9 @@ BEGIN
             FOR relation IN SELECT place_id FROM placex
               WHERE ST_DWithin(location.geometry, placex.geometry, 0.001) and placex.rank_search = 26
                 and st_geometrytype(location.geometry) in ('ST_LineString')
-              ORDER BY (ST_distance(placex.geometry, ST_Line_Interpolate_Point(location.geometry,0))+
-                        ST_distance(placex.geometry, ST_Line_Interpolate_Point(location.geometry,0.5))+
-                        ST_distance(placex.geometry, ST_Line_Interpolate_Point(location.geometry,1))) ASC limit 1
+              ORDER BY (ST_distance(placex.geometry, ST_LineInterpolatePoint(location.geometry,0))+
+                        ST_distance(placex.geometry, ST_LineInterpolatePoint(location.geometry,0.5))+
+                        ST_distance(placex.geometry, ST_LineInterpolatePoint(location.geometry,1))) ASC limit 1
             LOOP
 --RAISE WARNING 'using nearest street to address interpolation line,0.001 %',relation;
               NEW.parent_place_id := relation.place_id;
index d9da9b4258b803db620cca07106cb682eec35ecc..235e21a216088d4a06951279ad460277e03ca3df 100644 (file)
@@ -327,9 +327,9 @@ BEGIN
     RETURN;
   END IF;
 
-  p1 := ST_Line_Interpolate_Point(line,0);
-  p2 := ST_Line_Interpolate_Point(line,0.5);
-  p3 := ST_Line_Interpolate_Point(line,1);
+  p1 := ST_LineInterpolatePoint(line,0);
+  p2 := ST_LineInterpolatePoint(line,0.5);
+  p3 := ST_LineInterpolatePoint(line,1);
 
 -- start
   IF in_partition = -partition- THEN
index f40f544bd2a74d6937dffa753d369766d9a634b2..d9def2b43a1c428c044a9f8cee505df921a3107e 100644 (file)
@@ -79,7 +79,7 @@ BEGIN
   FOR housenum IN startnumber..endnumber BY stepsize LOOP
     insert into location_property_tiger_import (place_id, partition, parent_place_id, housenumber, postcode, centroid)
     values (nextval('seq_place'), out_partition, out_parent_place_id, housenum, in_postcode,
-      ST_Line_Interpolate_Point(linegeo, (housenum::float-rangestartnumber::float)/numberrange::float));
+      ST_LineInterpolatePoint(linegeo, (housenum::float-rangestartnumber::float)/numberrange::float));
     newpoints := newpoints + 1;
   END LOOP;
 
index fb16254dba4066acad970d3e93a763b75d598c2f..99d9e52628527643a332bb42dcfb1d3d9e980bfc 100755 (executable)
                } else {
                        pgsqlRunScript('CREATE EXTENSION postgis');
                }
+               if ($fPostgisVersion < 2.1) {
+                       // Function was renamed in 2.1 and throws an annoying deprecation warning
+                       pgsqlRunScript('ALTER FUNCTION st_line_interpolate_point(geometry, double precision) RENAME TO ST_LineInterpolatePoint');
+               }
                $sVersionString = $oDB->getOne('select postgis_full_version()');
                preg_match('#POSTGIS="([0-9]+)[.]([0-9]+)[.]([0-9]+)( r([0-9]+))?"#', $sVersionString, $aMatches);
                if (CONST_Postgis_Version != $aMatches[1].'.'.$aMatches[2])