]> granicus.if.org Git - postgis/commitdiff
Work on upgrade script.
authorPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 8 Jun 2009 23:21:55 +0000 (23:21 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Mon, 8 Jun 2009 23:21:55 +0000 (23:21 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@4156 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/postgis.sql.in.c
utils/postgis_proc_upgrade.pl

index 1b6dd896f6b7603fadb18d24dee93a761ea91b08..ed19ce30f3de9a4d93a7f7b62827746c9c5e8b74 100644 (file)
@@ -4053,12 +4053,12 @@ CREATE AGGREGATE ST_MemUnion (
 -- Container type to hold the ArrayBuildState pointer as it passes through
 -- the geometry array accumulation aggregate.
 --
-CREATE FUNCTION pgis_abs_in(cstring)
+CREATEFUNCTION pgis_abs_in(cstring)
     RETURNS pgis_abs
     AS 'MODULE_PATHNAME'
     LANGUAGE 'C' IMMUTABLE STRICT;
 
-CREATE FUNCTION pgis_abs_out(pgis_abs)
+CREATEFUNCTION pgis_abs_out(pgis_abs)
     RETURNS cstring
     AS 'MODULE_PATHNAME'
     LANGUAGE 'C' IMMUTABLE STRICT;
@@ -4071,49 +4071,49 @@ CREATE TYPE pgis_abs (
 );
 
 -- Availability: 1.4.0
-CREATE FUNCTION pgis_geometry_accum_transfn(pgis_abs, geometry)
+CREATEFUNCTION pgis_geometry_accum_transfn(pgis_abs, geometry)
     RETURNS pgis_abs
     AS 'MODULE_PATHNAME' LANGUAGE 'C';
     
 -- Availability: 1.4.0
-CREATE FUNCTION pgis_geometry_accum_finalfn(pgis_abs)
+CREATEFUNCTION pgis_geometry_accum_finalfn(pgis_abs)
     RETURNS geometry[]
     AS 'MODULE_PATHNAME' LANGUAGE 'C';
 
 -- Availability: 1.4.0
-CREATE FUNCTION pgis_geometry_union_finalfn(pgis_abs)
+CREATEFUNCTION pgis_geometry_union_finalfn(pgis_abs)
     RETURNS geometry
     AS 'MODULE_PATHNAME' LANGUAGE 'C';
     
 -- Availability: 1.4.0
-CREATE FUNCTION pgis_geometry_collect_finalfn(pgis_abs)
+CREATEFUNCTION pgis_geometry_collect_finalfn(pgis_abs)
     RETURNS geometry
     AS 'MODULE_PATHNAME' LANGUAGE 'C';
     
 -- Availability: 1.4.0
-CREATE FUNCTION pgis_geometry_polygonize_finalfn(pgis_abs)
+CREATEFUNCTION pgis_geometry_polygonize_finalfn(pgis_abs)
     RETURNS geometry
     AS 'MODULE_PATHNAME' LANGUAGE 'C';
     
 -- Availability: 1.4.0
-CREATE FUNCTION pgis_geometry_makeline_finalfn(pgis_abs)
+CREATEFUNCTION pgis_geometry_makeline_finalfn(pgis_abs)
     RETURNS geometry
     AS 'MODULE_PATHNAME' LANGUAGE 'C';
     
 -- Deprecation in: 1.2.3
 CREATE AGGREGATE accum (
-    BASETYPE = geometry,
-    SFUNC = pgis_geometry_accum_transfn,
-    STYPE = pgis_abs,
-    FINALFUNC = pgis_geometry_accum_finalfn
+    sfunc = pgis_geometry_accum_transfn,
+    basetype = geometry,
+    stype = pgis_abs,
+    finalfunc = pgis_geometry_accum_finalfn
     );
 
 -- Availability: 1.2.2
 CREATE AGGREGATE ST_Accum (
-    BASETYPE = geometry,
-    SFUNC = pgis_geometry_accum_transfn,
-    STYPE = pgis_abs,
-    FINALFUNC = pgis_geometry_accum_finalfn
+    sfunc = pgis_geometry_accum_transfn,
+    basetype = geometry,
+    stype = pgis_abs,
+    finalfunct = pgis_geometry_accum_finalfn
     );
 
 -- TO BE REMOVED BEFORE RELEASE
index 4df930726be8943d327f866029178ac01e48664b..1c02ad38be0571f307381366535aef35d4a99434 100755 (executable)
@@ -25,6 +25,7 @@ die "Usage: perl postgis_proc_upgrade.pl <postgis.sql> [<schema>]\nCreates a new
        if ( @ARGV < 1 || @ARGV > 2 );
 
 my $NEWVERSION = "UNDEF";
+my %newtypes = ( "box3d_extent", 1, "pgis_abs", 1 );
 
 print "BEGIN;\n";
 
@@ -51,13 +52,17 @@ while(<INPUT>)
        }
 }
 
+print "-- $NEWVERSION\n";
+
 while(<DATA>)
 {
        s/NEWVERSION/$NEWVERSION/g;
        print;
 }
 
-close(INPUT); open( INPUT, $ARGV[0] ) || die "Couldn't open file: $ARGV[0]\n";
+close(INPUT); 
+
+open( INPUT, $ARGV[0] ) || die "Couldn't open file: $ARGV[0]\n";
 while(<INPUT>)
 {
        my $checkit = 0;
@@ -76,6 +81,18 @@ while(<INPUT>)
                }
        }
 
+       if (m/^create type (\S+)/i)
+       {
+               my $newtype = $1;
+               print $_ if $newtypes{$newtype};
+               while(<INPUT>)
+               {
+                       print $_ if $newtypes{$newtype};
+                       last if m/\)/;
+               }
+       }
+
+
        # This code handles aggregates by dropping and recreating them.
        # The DROP would fail on aggregates as they would not exist
        # in old postgis installations, thus we avoid this until we