]> granicus.if.org Git - postgis/commitdiff
Add support for extension sequences in create_unpackaged.pl
authorSandro Santilli <strk@kbt.io>
Thu, 22 Aug 2019 14:59:53 +0000 (14:59 +0000)
committerSandro Santilli <strk@kbt.io>
Thu, 22 Aug 2019 14:59:53 +0000 (14:59 +0000)
Should fix topology dump-restore
References #4488

git-svn-id: http://svn.osgeo.org/postgis/trunk@17759 b70326c6-7e19-0410-871a-916f4a2858ee

utils/create_unpackaged.pl

index 84f7aeeb992d46eb7c1bfadfc5a91dd838f26fc0..aee76a9af08c456acc7fe13ba4ba5378312244c8 100755 (executable)
@@ -44,6 +44,7 @@ my @ops = ();
 my @opcs = ();
 my @views = ();
 my @tables = ();
+my @sequences = ();
 my @schemas = ();
 
 sub strip_default {
@@ -68,7 +69,19 @@ while( my $line = <>)
                push (@views, $1);
        }
        elsif ($line =~ /^create table \s*([\w\.]+)/i) {
-               push (@tables, $1);
+               #print STDERR "XXX table $1\n";
+               my $fqtn = $1;
+               push (@tables, $fqtn);
+               my $defn = $line;
+               while( not $defn =~ /\)/ ) {
+                       #print STDERR "XXX defn $defn\n";
+                       if ($defn =~ /([\w]+) serial\b/i) {
+                               my $seq = "${fqtn}_$1_seq";
+                               #print STDERR "XXX serial field [$seq]\n";
+                               push (@sequences, $seq);
+                       }
+                       $defn = <>;
+               }
        }
        elsif ($line =~ /^create schema \s*([\w\.]+)/i) {
                push (@schemas, $1);
@@ -186,6 +199,12 @@ foreach my $table (@tables)
        add_if_not_exists("TABLE $table");
 }
 
+print "-- Register all sequences.\n";
+foreach my $seq (@sequences)
+{
+       add_if_not_exists("SEQUENCE $seq");
+}
+
 
 print "-- Register all aggregates.\n";
 foreach my $agg (@aggs)