From: maxious Date: Thu, 07 Apr 2011 04:04:02 +0000 Subject: Refactor to use PostGIS database instead of gtfs tools X-Git-Url: https://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=950188fdfa0f9d5eb652673ad12be7fb9345520f --- Refactor to use PostGIS database instead of gtfs tools --- --- a/about.php +++ b/about.php @@ -12,7 +12,7 @@ href="https://github.com/maxious/ACTBus-data">transit feed and this site available from github.
-Uses jQuery Mobile, PHP, Ruby, Python, Google Transit Feed Specification tools, OpenTripPlanner, OpenLayers, OpenStreetMap, Cloudmade Geocoder and Tile Service
+Uses jQuery Mobile, PHP, PostgreSQL, OpenTripPlanner, OpenLayers, OpenStreetMap, Cloudmade Geocoder and Tile Service

Feedback encouraged; contact maxious@lambdacomplex.org

--- a/aws/awsStartup.sh +++ /dev/null @@ -1,29 +1,1 @@ -#!/bin/bash -#this script should be run from a fresh git checkout from http://maxious.lambdacomplex.org -#ami base must have yum install lighttpd-fastcgi, git, tomcat6 -#screen php-cli php-gd tomcat6-webapps tomcat6-admin-webapps svn maven2 -#http://www.how2forge.org/installing-lighttpd-with-php5-and-mysql-support-on-fedora-12 -cp /root/aws.php /tmp/ -mkdir /var/www/lib/staticmaplite/cache -chcon -h system_u:object_r:httpd_sys_content_t /var/www -chcon -R -h root:object_r:httpd_sys_content_t /var/www/* -chcon -R -t httpd_sys_content_rw_t /var/www/lib/staticmaplite/cache -chmod -R 777 /var/www/lib/staticmaplite/cache -wget http://s3-ap-southeast-1.amazonaws.com/busresources/cbrfeed.zip \ --O /var/www/cbrfeed.zip -easy_install transitfeed -easy_install simplejson -screen -S viewsh -X quit -screen -S viewsh -d -m /var/www/view.sh - -wget http://s3-ap-southeast-1.amazonaws.com/busresources/Graph.obj \ --O /tmp/Graph.obj -rm -rfv /usr/share/tomcat6/webapps/opentripplanner* -wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-webapp.war \ --O /usr/share/tomcat6/webapps/opentripplanner-webapp.war -wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-api-webapp.war \ --O /usr/share/tomcat6/webapps/opentripplanner-api-webapp.war -/etc/init.d/tomcat6 restart - - --- /dev/null +++ b/include/common-db.php --- a/include/common-transit.inc.php +++ b/include/common-transit.inc.php @@ -35,39 +35,5 @@ return ""; } } -function viaPoints($tripid, $stopid, $timingPointsOnly = false) -{ - global $APIurl; - $url = $APIurl . "/json/tripstoptimes?trip=" . $tripid; - $json = json_decode(getPage($url)); - debug(print_r($json, true)); - $stops = $json[0]; - $times = $json[1]; - $foundStop = false; - $viaPoints = Array(); - foreach ($stops as $key => $row) { - if ($foundStop) { - if (!$timingPointsOnly || !startsWith($row[5], "Wj")) { - $viaPoints[] = Array( - "id" => $row[0], - "name" => $row[1], - "time" => $times[$key] - ); - } - } - else { - if ($row[0] == $stopid) $foundStop = true; - } - } - return $viaPoints; -} -function viaPointNames($tripid, $stopid) -{ - $points = viaPoints($tripid, $stopid, true); - $pointNames = Array(); - foreach ($points as $point) { - $pointNames[] = $point['name']; - } - return implode(", ", $pointNames); -} + ?> --- /dev/null +++ b/include/db/route-dao.inc.php @@ -1,1 +1,78 @@ + --- /dev/null +++ b/include/db/stop-dao.inc.php @@ -1,1 +1,97 @@ + requested_time and tripstarttime < (requested_time + time_range): + time, stoptime, tp = trip.GetTimeInterpolatedStops()[index] + if time > requested_time and time < (requested_time + time_range): + bisect.insort(filtered_time_trips, (time, (trip, index), tp)) + result = [] + for time, (trip, index), tp in filtered_time_trips: + if len(result) > limit: + break + route = schedule.GetRoute(trip.route_id) + trip_name = '' + if route.route_short_name: + trip_name += route.route_short_name + if route.route_long_name: + if len(trip_name): + trip_name += " - " + trip_name += route.route_long_name + if service_period == None or trip.service_id == service_period: + result.append((time, (trip.trip_id, trip_name, trip.service_id), tp)) + return result + */ +} +?> --- /dev/null +++ b/include/db/trip-dao.inc.php @@ -1,1 +1,132 @@ + $row) { + if ($foundStop) { + if (!$timingPointsOnly || !startsWith($row[5], "Wj")) { + $viaPoints[] = Array( + "id" => $row[0], + "name" => $row[1], + "time" => $times[$key] + ); + } + } + else { + if ($row[0] == $stopid) $foundStop = true; + } + } + return $viaPoints; +} +function viaPointNames($tripid, $stopid) +{ + $points = viaPoints($tripid, $stopid, true); + $pointNames = Array(); + foreach ($points as $point) { + $pointNames[] = $point['name']; + } + return implode(", ", $pointNames); +} +?> --- a/layar_api.php +++ b/layar_api.php @@ -9,29 +9,29 @@ $page_end = $max_page + filter_var($_REQUEST['pageKey'], FILTER_SANITIZE_NUMBER_INT); $lat = filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); $lon = filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); -$url = $APIurl . "/json/neareststops?lat=$lat&lon=$lon&limit=50"; -$contents = json_decode(getPage($url)); -debug(print_r($contents, true)); + +$contents = getStopsNearby($lat, $lon, 50); + $stopNum = 0; -foreach ($contents as $row) { +foreach ($contents as $stop) { $stopNum++; if ($stopNum > $page_start && $stopNum <= $page_end) { $hotspot = Array(); - $hotspot['id'] = $row[0]; - $hotspot['title'] = $row[1]; + $hotspot['id'] = $stop[id]; + $hotspot['title'] = $stop[name]; $hotspot['type'] = 0; - $hotspot['lat'] = floor($row[2] * 1000000); - $hotspot['lon'] = floor($row[3] * 1000000); - $hotspot['distance'] = distance($row[2], $row[3], $_REQUEST['lat'], $_REQUEST['lon']); + $hotspot['lat'] = floor($stop[lat] * 1000000); + $hotspot['lon'] = floor($stop[lon] * 1000000); + $hotspot['distance'] = distance($stop[lat], $stop[lon], $_REQUEST['lat'], $_REQUEST['lon']); $hotspot['actions'] = Array( Array( "label" => 'View more trips/information', - 'uri' => 'http://bus.lambdacomplex.org/' . 'stop.php?stopid=' . $row[0] + 'uri' => 'http://bus.lambdacomplex.org/' . 'stop.php?stopid=' . $stop[id] ) ); + $url = $APIurl . "/json/stoptrips?stop=" . $row[0] . "&time=" . midnight_seconds() . "&service_period=" . service_period() . "&limit=4&time_range=" . strval(90 * 60); - $trips = json_decode(getPage($url)); - debug(print_r($trips, true)); + $trips = getStopTrips($stopID); foreach ($trips as $key => $row) { if ($key < 3) { $hotspot['line' . strval($key + 2) ] = $row[1][1] . ' @ ' . midnight_seconds_to_time($row[0]); --- /dev/null +++ b/lib/postgis.sh @@ -1,1 +1,3 @@ +createlang -d dbname plpgsql +psql -d transitdata -f postgis.sql --- /dev/null +++ b/lib/postgis.sql @@ -1,1 +1,7788 @@ - +-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +-- +-- $Id: postgis.sql.in.c 5385 2010-03-09 00:22:41Z pramsey $ +-- +-- PostGIS - Spatial Types for PostgreSQL +-- http://postgis.refractions.net +-- Copyright 2001-2003 Refractions Research Inc. +-- +-- This is free software; you can redistribute and/or modify it under +-- the terms of the GNU General Public Licence. See the COPYING file. +-- +-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +-- +-- WARNING: Any change in this file must be evaluated for compatibility. +-- Changes cleanly handled by postgis_upgrade.sql are fine, +-- other changes will require a bump in Major version. +-- Currently only function replaceble by CREATE OR REPLACE +-- are cleanly handled. +-- +-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +-- INSTALL VERSION: 1.5.1 + +SET client_min_messages TO warning; + +BEGIN; + +------------------------------------------------------------------- +-- SPHEROID TYPE +------------------------------------------------------------------- + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_spheroid_in(cstring) + RETURNS spheroid + AS '$libdir/postgis-1.5','ellipsoid_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_spheroid_out(spheroid) + RETURNS cstring + AS '$libdir/postgis-1.5','ellipsoid_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION spheroid_in(cstring) + RETURNS spheroid + AS '$libdir/postgis-1.5','ellipsoid_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION spheroid_out(spheroid) + RETURNS cstring + AS '$libdir/postgis-1.5','ellipsoid_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE TYPE spheroid ( + alignment = double, + internallength = 65, + input = spheroid_in, + output = spheroid_out +); + +------------------------------------------------------------------- +-- GEOMETRY TYPE (lwgeom) +------------------------------------------------------------------- + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_in(cstring) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_out(geometry) + RETURNS cstring + AS '$libdir/postgis-1.5','LWGEOM_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_analyze(internal) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_analyze' + LANGUAGE 'C' VOLATILE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_recv(internal) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_recv' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_send(geometry) + RETURNS bytea + AS '$libdir/postgis-1.5','LWGEOM_send' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_in(cstring) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_out(geometry) + RETURNS cstring + AS '$libdir/postgis-1.5','LWGEOM_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_analyze(internal) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_analyze' + LANGUAGE 'C' VOLATILE STRICT; + +CREATE OR REPLACE FUNCTION geometry_recv(internal) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_recv' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_send(geometry) + RETURNS bytea + AS '$libdir/postgis-1.5','LWGEOM_send' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE TYPE geometry ( + internallength = variable, + input = geometry_in, + output = geometry_out, + send = geometry_send, + receive = geometry_recv, + delimiter = ':', + analyze = geometry_analyze, + storage = main +); + +------------------------------------------- +-- Affine transforms +------------------------------------------- + +-- Availability: 1.1.2 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_affine' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_affine' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.1.2 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.2 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION RotateZ(geometry,float8) + RETURNS geometry + AS 'SELECT affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8) + RETURNS geometry + AS 'SELECT affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.2 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Rotate(geometry,float8) + RETURNS geometry + AS 'SELECT rotateZ($1, $2)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8) + RETURNS geometry + AS 'SELECT rotateZ($1, $2)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.2 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION RotateX(geometry,float8) + RETURNS geometry + AS 'SELECT affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8) + RETURNS geometry + AS 'SELECT affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.2 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION RotateY(geometry,float8) + RETURNS geometry + AS 'SELECT affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8) + RETURNS geometry + AS 'SELECT affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Translate(geometry,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Translate(geometry,float8,float8) + RETURNS geometry + AS 'SELECT translate($1, $2, $3, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8) + RETURNS geometry + AS 'SELECT translate($1, $2, $3, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.0 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Scale(geometry,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.0 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION Scale(geometry,float8,float8) + RETURNS geometry + AS 'SELECT scale($1, $2, $3, 1)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8) + RETURNS geometry + AS 'SELECT scale($1, $2, $3, 1)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.0 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION transscale(geometry,float8,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, $4, 0, 0, 0, $5, 0, + 0, 0, 1, $2 * $4, $3 * $5, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_transscale(geometry,float8,float8,float8,float8) + RETURNS geometry + AS 'SELECT affine($1, $4, 0, 0, 0, $5, 0, + 0, 0, 1, $2 * $4, $3 * $5, 0)' + LANGUAGE 'SQL' IMMUTABLE STRICT; + +-- Availability: 1.1.0 +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION shift_longitude(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_longitude_shift' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_shift_longitude(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_longitude_shift' + LANGUAGE 'C' IMMUTABLE STRICT; + +------------------------------------------------------------------- +-- BOX3D TYPE +------------------------------------------------------------------- + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_box3d_in(cstring) + RETURNS box3d + AS '$libdir/postgis-1.5', 'BOX3D_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_box3d_out(box3d) + RETURNS cstring + AS '$libdir/postgis-1.5', 'BOX3D_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION box3d_in(cstring) + RETURNS box3d + AS '$libdir/postgis-1.5', 'BOX3D_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION box3d_out(box3d) + RETURNS cstring + AS '$libdir/postgis-1.5', 'BOX3D_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE TYPE box3d ( + alignment = double, + internallength = 48, + input = box3d_in, + output = box3d_out +); + +-- Temporary box3d aggregate type to retain full double precision +-- for ST_Extent(). Should be removed when we change the output +-- type of ST_Extent() to return something other than BOX2DFLOAT4. +CREATE OR REPLACE FUNCTION box3d_extent_in(cstring) + RETURNS box3d_extent + AS '$libdir/postgis-1.5', 'BOX3D_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION box3d_extent_out(box3d_extent) + RETURNS cstring + AS '$libdir/postgis-1.5', 'BOX3D_extent_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE TYPE box3d_extent ( + alignment = double, + internallength = 48, + input = box3d_extent_in, + output = box3d_extent_out +); + +-- Availability: 1.4.0 +CREATE OR REPLACE FUNCTION box3d_extent(box3d_extent) + RETURNS box3d + AS '$libdir/postgis-1.5', 'BOX3D_extent_to_BOX3D' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION box2d(box3d_extent) + RETURNS box2d + AS '$libdir/postgis-1.5', 'BOX3D_to_BOX2DFLOAT4' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry(box3d_extent) + RETURNS geometry + AS '$libdir/postgis-1.5','BOX3D_to_LWGEOM' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- End of temporary hack + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION xmin(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_xmin' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_XMin(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_xmin' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION ymin(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_ymin' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_YMin(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_ymin' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION zmin(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_zmin' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_ZMin(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_zmin' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION xmax(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_xmax' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_XMax(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_xmax' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION ymax(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_ymax' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_YMax(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_ymax' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION zmax(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_zmax' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_ZMax(box3d) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','BOX3D_zmax' + LANGUAGE 'C' IMMUTABLE STRICT; + +------------------------------------------------------------------- +-- CHIP TYPE +------------------------------------------------------------------- + +CREATE OR REPLACE FUNCTION chip_in(cstring) + RETURNS chip + AS '$libdir/postgis-1.5','CHIP_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION chip_out(chip) + RETURNS cstring + AS '$libdir/postgis-1.5','CHIP_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION ST_chip_in(cstring) + RETURNS chip + AS '$libdir/postgis-1.5','CHIP_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION ST_chip_out(chip) + RETURNS cstring + AS '$libdir/postgis-1.5','CHIP_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE TYPE chip ( + alignment = double, + internallength = variable, + input = chip_in, + output = chip_out, + storage = extended +); + +----------------------------------------------------------------------- +-- BOX2D +----------------------------------------------------------------------- + + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_box2d_in(cstring) + RETURNS box2d + AS '$libdir/postgis-1.5','BOX2DFLOAT4_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_box2d_out(box2d) + RETURNS cstring + AS '$libdir/postgis-1.5','BOX2DFLOAT4_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION box2d_in(cstring) + RETURNS box2d + AS '$libdir/postgis-1.5','BOX2DFLOAT4_in' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION box2d_out(box2d) + RETURNS cstring + AS '$libdir/postgis-1.5','BOX2DFLOAT4_out' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE TYPE box2d ( + internallength = 16, + input = box2d_in, + output = box2d_out, + storage = plain +); + + +------------------------------------------------------------------- +-- BTREE indexes +------------------------------------------------------------------- + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_lt(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_lt' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_le(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_le' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_gt(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_gt' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_ge(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_ge' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_eq(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_eq' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_cmp(geometry, geometry) + RETURNS integer + AS '$libdir/postgis-1.5', 'lwgeom_cmp' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_lt(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_lt' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_le(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_le' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_gt(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_gt' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_ge(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_ge' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_eq(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'lwgeom_eq' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_cmp(geometry, geometry) + RETURNS integer + AS '$libdir/postgis-1.5', 'lwgeom_cmp' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- +-- Sorting operators for Btree +-- + +CREATE OPERATOR < ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_lt, + COMMUTATOR = '>', NEGATOR = '>=', + RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR <= ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_le, + COMMUTATOR = '>=', NEGATOR = '>', + RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR = ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_eq, + COMMUTATOR = '=', -- we might implement a faster negator here + RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR >= ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_ge, + COMMUTATOR = '<=', NEGATOR = '<', + RESTRICT = contsel, JOIN = contjoinsel +); +CREATE OPERATOR > ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_gt, + COMMUTATOR = '<', NEGATOR = '<=', + RESTRICT = contsel, JOIN = contjoinsel +); + + +CREATE OPERATOR CLASS btree_geometry_ops + DEFAULT FOR TYPE geometry USING btree AS + OPERATOR 1 < , + OPERATOR 2 <= , + OPERATOR 3 = , + OPERATOR 4 >= , + OPERATOR 5 > , + FUNCTION 1 geometry_cmp (geometry, geometry); + + + +------------------------------------------------------------------- +-- GiST indexes +------------------------------------------------------------------- + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION postgis_gist_sel (internal, oid, internal, int4) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_gist_sel' + LANGUAGE 'C'; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION postgis_gist_joinsel(internal, oid, internal, smallint) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_gist_joinsel' + LANGUAGE 'C'; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_postgis_gist_sel (internal, oid, internal, int4) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_gist_sel' + LANGUAGE 'C'; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_postgis_gist_joinsel(internal, oid, internal, smallint) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_gist_joinsel' + LANGUAGE 'C'; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_overleft(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overleft' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_overright(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overright' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_overabove(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overabove' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_overbelow(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overbelow' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_left(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_left' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_right(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_right' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_above(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_above' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_below(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_below' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_contain(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_contain' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_contained(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_contained' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_overlap(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overlap' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION st_geometry_same(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_samebox' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION geometry_same(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_samebox' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_gist_sel (internal, oid, internal, int4) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_gist_sel' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION geometry_gist_joinsel(internal, oid, internal, smallint) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_gist_joinsel' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION geometry_overleft(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overleft' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_overright(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overright' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_overabove(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overabove' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_overbelow(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overbelow' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_left(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_left' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_right(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_right' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_above(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_above' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_below(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_below' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_contain(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_contain' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_contained(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_contained' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_overlap(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_overlap' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION geometry_samebox(geometry, geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_samebox' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OPERATOR << ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_left, + COMMUTATOR = '>>', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR &< ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overleft, + COMMUTATOR = '&>', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR <<| ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_below, + COMMUTATOR = '|>>', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR &<| ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overbelow, + COMMUTATOR = '|&>', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR && ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overlap, + COMMUTATOR = '&&', + RESTRICT = geometry_gist_sel, JOIN = geometry_gist_joinsel +); + +CREATE OPERATOR &> ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overright, + COMMUTATOR = '&<', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR >> ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_right, + COMMUTATOR = '<<', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR |&> ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overabove, + COMMUTATOR = '&<|', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR |>> ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_above, + COMMUTATOR = '<<|', + RESTRICT = positionsel, JOIN = positionjoinsel +); + +CREATE OPERATOR ~= ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_samebox, + COMMUTATOR = '~=', + RESTRICT = eqsel, JOIN = eqjoinsel +); + +CREATE OPERATOR @ ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_contained, + COMMUTATOR = '~', + RESTRICT = contsel, JOIN = contjoinsel +); + +CREATE OPERATOR ~ ( + LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_contain, + COMMUTATOR = '@', + RESTRICT = contsel, JOIN = contjoinsel +); + +-- gist support functions + +CREATE OR REPLACE FUNCTION LWGEOM_gist_consistent(internal,geometry,int4) + RETURNS bool + AS '$libdir/postgis-1.5' ,'LWGEOM_gist_consistent' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION LWGEOM_gist_compress(internal) + RETURNS internal + AS '$libdir/postgis-1.5','LWGEOM_gist_compress' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION LWGEOM_gist_penalty(internal,internal,internal) + RETURNS internal + AS '$libdir/postgis-1.5' ,'LWGEOM_gist_penalty' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION LWGEOM_gist_picksplit(internal, internal) + RETURNS internal + AS '$libdir/postgis-1.5' ,'LWGEOM_gist_picksplit' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION LWGEOM_gist_union(bytea, internal) + RETURNS internal + AS '$libdir/postgis-1.5' ,'LWGEOM_gist_union' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION LWGEOM_gist_same(box2d, box2d, internal) + RETURNS internal + AS '$libdir/postgis-1.5' ,'LWGEOM_gist_same' + LANGUAGE 'C'; + +CREATE OR REPLACE FUNCTION LWGEOM_gist_decompress(internal) + RETURNS internal + AS '$libdir/postgis-1.5' ,'LWGEOM_gist_decompress' + LANGUAGE 'C'; + +------------------------------------------- +-- GIST opclass index binding entries. +------------------------------------------- +-- +-- Create opclass index bindings for PG>=73 +-- + +CREATE OPERATOR CLASS gist_geometry_ops + DEFAULT FOR TYPE geometry USING gist AS + STORAGE box2d, + OPERATOR 1 << , + OPERATOR 2 &< , + OPERATOR 3 && , + OPERATOR 4 &> , + OPERATOR 5 >> , + OPERATOR 6 ~= , + OPERATOR 7 ~ , + OPERATOR 8 @ , + OPERATOR 9 &<| , + OPERATOR 10 <<| , + OPERATOR 11 |>> , + OPERATOR 12 |&> , + FUNCTION 1 LWGEOM_gist_consistent (internal, geometry, int4), + FUNCTION 2 LWGEOM_gist_union (bytea, internal), + FUNCTION 3 LWGEOM_gist_compress (internal), + FUNCTION 4 LWGEOM_gist_decompress (internal), + FUNCTION 5 LWGEOM_gist_penalty (internal, internal, internal), + FUNCTION 6 LWGEOM_gist_picksplit (internal, internal), + FUNCTION 7 LWGEOM_gist_same (box2d, box2d, internal); + +------------------------------------------- +-- other lwgeom functions +------------------------------------------- + +CREATE OR REPLACE FUNCTION addbbox(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_addBBOX' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION postgis_addbbox(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_addBBOX' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION dropbbox(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_dropBBOX' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION postgis_dropbbox(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOM_dropBBOX' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION getsrid(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5','LWGEOM_getSRID' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION getbbox(geometry) + RETURNS box2d + AS '$libdir/postgis-1.5','LWGEOM_to_BOX2DFLOAT4' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION postgis_getbbox(geometry) + RETURNS box2d + AS '$libdir/postgis-1.5','LWGEOM_to_BOX2DFLOAT4' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION hasbbox(geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_hasBBOX' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION postgis_hasbbox(geometry) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_hasBBOX' + LANGUAGE 'C' IMMUTABLE STRICT; + +------------------------------------------- +--- CHIP functions +------------------------------------------- + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION srid(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getSRID' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_srid(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getSRID' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION height(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getHeight' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_height(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getHeight' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION factor(chip) + RETURNS FLOAT4 + AS '$libdir/postgis-1.5','CHIP_getFactor' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_factor(chip) + RETURNS FLOAT4 + AS '$libdir/postgis-1.5','CHIP_getFactor' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION width(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getWidth' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_width(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getWidth' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION datatype(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getDatatype' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_datatype(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getDatatype' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION compression(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getCompression' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_compression(chip) + RETURNS int4 + AS '$libdir/postgis-1.5','CHIP_getCompression' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION setSRID(chip,int4) + RETURNS chip + AS '$libdir/postgis-1.5','CHIP_setSRID' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION setFactor(chip,float4) + RETURNS chip + AS '$libdir/postgis-1.5','CHIP_setFactor' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_setFactor(chip,float4) + RETURNS chip + AS '$libdir/postgis-1.5','CHIP_setFactor' + LANGUAGE 'C' IMMUTABLE STRICT; + +------------------------------------------------------------------------ +-- DEBUG +------------------------------------------------------------------------ + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION mem_size(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5', 'LWGEOM_mem_size' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_mem_size(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5', 'LWGEOM_mem_size' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION summary(geometry) + RETURNS text + AS '$libdir/postgis-1.5', 'LWGEOM_summary' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_summary(geometry) + RETURNS text + AS '$libdir/postgis-1.5', 'LWGEOM_summary' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION npoints(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5', 'LWGEOM_npoints' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_npoints(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5', 'LWGEOM_npoints' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION nrings(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5', 'LWGEOM_nrings' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_nrings(geometry) + RETURNS int4 + AS '$libdir/postgis-1.5', 'LWGEOM_nrings' + LANGUAGE 'C' IMMUTABLE STRICT; + +------------------------------------------------------------------------ +-- Misures +------------------------------------------------------------------------ + +-- this is a fake (for back-compatibility) +-- uses 3d if 3d is available, 2d otherwise +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION length3d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_length_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_length3d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_length_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION length2d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_length2d_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_length2d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_length2d_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION length(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_length_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: length2d(geometry) +CREATE OR REPLACE FUNCTION ST_Length(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_length2d_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- this is a fake (for back-compatibility) +-- uses 3d if 3d is available, 2d otherwise +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION length3d_spheroid(geometry, spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_length_ellipsoid_linestring' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_length3d_spheroid(geometry, spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_length_ellipsoid_linestring' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION length_spheroid(geometry, spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_length_ellipsoid_linestring' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_length_spheroid(geometry, spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_length_ellipsoid_linestring' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION length2d_spheroid(geometry, spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_length2d_ellipsoid' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_length2d_spheroid(geometry, spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_length2d_ellipsoid' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- this is a fake (for back-compatibility) +-- uses 3d if 3d is available, 2d otherwise +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION perimeter3d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_perimeter_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_perimeter3d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_perimeter_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION perimeter2d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_perimeter2d_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_perimeter2d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_perimeter2d_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION perimeter(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_perimeter_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: perimeter2d(geometry) +CREATE OR REPLACE FUNCTION ST_Perimeter(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_perimeter2d_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- this is an alias for 'area(geometry)' +-- there is nothing such an 'area3d'... +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION area2d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_area_polygon' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +-- Deprecation in 1.3.4 +CREATE OR REPLACE FUNCTION ST_area2d(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5', 'LWGEOM_area_polygon' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION area(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_area_polygon' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: area(geometry) +CREATE OR REPLACE FUNCTION ST_Area(geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_area_polygon' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION distance_spheroid(geometry,geometry,spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_distance_ellipsoid' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_distance_spheroid(geometry,geometry,spheroid) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_distance_ellipsoid' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION distance_sphere(geometry,geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_distance_sphere' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_distance_sphere(geometry,geometry) + RETURNS FLOAT8 + AS '$libdir/postgis-1.5','LWGEOM_distance_sphere' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Minimum distance. 2d only. +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION distance(geometry,geometry) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_mindistance2d' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- PostGIS equivalent function: distance(geometry,geometry) +CREATE OR REPLACE FUNCTION ST_Distance(geometry,geometry) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_mindistance2d' + LANGUAGE 'C' IMMUTABLE STRICT + COST 100; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION point_inside_circle(geometry,float8,float8,float8) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_inside_circle_point' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_point_inside_circle(geometry,float8,float8,float8) + RETURNS bool + AS '$libdir/postgis-1.5', 'LWGEOM_inside_circle_point' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION azimuth(geometry,geometry) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_azimuth' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_azimuth(geometry,geometry) + RETURNS float8 + AS '$libdir/postgis-1.5', 'LWGEOM_azimuth' + LANGUAGE 'C' IMMUTABLE STRICT; + +------------------------------------------------------------------------ +-- MISC +------------------------------------------------------------------------ + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION force_2d(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_2d' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_force_2d(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_2d' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION force_3dz(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_3dz' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_force_3dz(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_3dz' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- an alias for force_3dz +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION force_3d(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_3dz' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_force_3d(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_3dz' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION force_3dm(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_3dm' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_force_3dm(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_3dm' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION force_4d(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_4d' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_force_4d(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_4d' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION force_collection(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_collection' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_force_collection(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_collection' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION ST_CollectionExtract(geometry, integer) + RETURNS geometry + AS '$libdir/postgis-1.5', 'ST_CollectionExtract' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION multi(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_multi' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_multi(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_force_multi' + LANGUAGE 'C' IMMUTABLE STRICT; + + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION expand(box3d,float8) + RETURNS box3d + AS '$libdir/postgis-1.5', 'BOX3D_expand' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Expand(box3d,float8) + RETURNS box3d + AS '$libdir/postgis-1.5', 'BOX3D_expand' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION expand(box2d,float8) + RETURNS box2d + AS '$libdir/postgis-1.5', 'BOX2DFLOAT4_expand' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_expand(box2d,float8) + RETURNS box2d + AS '$libdir/postgis-1.5', 'BOX2DFLOAT4_expand' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION expand(geometry,float8) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_expand' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_expand(geometry,float8) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_expand' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION envelope(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_envelope' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: envelope(geometry) +CREATE OR REPLACE FUNCTION ST_Envelope(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_envelope' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION reverse(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_reverse' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_Reverse(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_reverse' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION ForceRHR(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_forceRHR_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_ForceRHR(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_forceRHR_poly' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION noop(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_noop' + LANGUAGE 'C' VOLATILE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION postgis_noop(geometry) + RETURNS geometry + AS '$libdir/postgis-1.5', 'LWGEOM_noop' + LANGUAGE 'C' VOLATILE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION zmflag(geometry) + RETURNS smallint + AS '$libdir/postgis-1.5', 'LWGEOM_zmflag' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.5.0 +CREATE OR REPLACE FUNCTION ST_zmflag(geometry) + RETURNS smallint + AS '$libdir/postgis-1.5', 'LWGEOM_zmflag' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION ndims(geometry) + RETURNS smallint + AS '$libdir/postgis-1.5', 'LWGEOM_ndims' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_NDims(geometry) + RETURNS smallint + AS '$libdir/postgis-1.5', 'LWGEOM_ndims' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION AsEWKT(geometry) + RETURNS TEXT + AS '$libdir/postgis-1.5','LWGEOM_asEWKT' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_AsEWKT(geometry) + RETURNS TEXT + AS '$libdir/postgis-1.5','LWGEOM_asEWKT' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION AsEWKB(geometry) + RETURNS BYTEA + AS '$libdir/postgis-1.5','WKBFromLWGEOM' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_AsEWKB(geometry) + RETURNS BYTEA + AS '$libdir/postgis-1.5','WKBFromLWGEOM' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION AsHEXEWKB(geometry) + RETURNS TEXT + AS '$libdir/postgis-1.5','LWGEOM_asHEXEWKB' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_AsHEXEWKB(geometry) + RETURNS TEXT + AS '$libdir/postgis-1.5','LWGEOM_asHEXEWKB' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION AsHEXEWKB(geometry, text) + RETURNS TEXT + AS '$libdir/postgis-1.5','LWGEOM_asHEXEWKB' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_AsHEXEWKB(geometry, text) + RETURNS TEXT + AS '$libdir/postgis-1.5','LWGEOM_asHEXEWKB' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION AsEWKB(geometry,text) + RETURNS bytea + AS '$libdir/postgis-1.5','WKBFromLWGEOM' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_AsEWKB(geometry,text) + RETURNS bytea + AS '$libdir/postgis-1.5','WKBFromLWGEOM' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION GeomFromEWKB(bytea) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOMFromWKB' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_GeomFromEWKB(bytea) + RETURNS geometry + AS '$libdir/postgis-1.5','LWGEOMFromWKB' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Deprecation in 1.2.3 +CREATE OR REPLACE FUNCTION GeomFromEWKT(text) + RETURNS geometry + AS '$libdir/postgis-1.5','parse_WKT_lwgeom' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.2.2 +CREATE OR REPLACE FUNCTION ST_GeomFromEWKT(text) + RETURNS geometry + AS '$libdir/postgis-1.5','parse