Permalink
Browse files

replace ST_Line_Interpolate_Point with ST_LineInterpolatePoint (DB ad…

…aption needed)

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
  • Loading branch information...
1 parent edc5733 commit e0b1e3b66d54c4fe9907edb1ff993f33e6739d46 @lonvia lonvia committed Feb 6, 2014
Showing with 12 additions and 8 deletions.
  1. +4 −4 sql/functions.sql
  2. +3 −3 sql/partition-functions.src.sql
  3. +1 −1 sql/tiger_import_start.sql
  4. +4 −0 utils/setup.php
View
8 sql/functions.sql
@@ -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;
View
6 sql/partition-functions.src.sql
@@ -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
View
2 sql/tiger_import_start.sql
@@ -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;
View
4 utils/setup.php
@@ -132,6 +132,10 @@
} 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])

0 comments on commit e0b1e3b

Please sign in to comment.