$out->{index}->{$2}->{$table} = $1;
}
- if (/\s*inherits\s*\(\s*(\S+)\s*\)/) {
+ if (/\s*inherits\s*\(\s*(\S+)\s*\)/i) {
$out->{inherits}->{$table} = $1;
}
- if (s/^\s*(\S+)(.+?)references\s+(\S+)\s*\((\S+)\)/$1$2/i) {
- @{ $out->{references}->{$table}->{$1} } = ( $3, $4 );
+ if (s/^\s*(\S+)(.+?)references\s+(\S+)\s*\((\S+)\)([^,]*)([,\s]*)$/\t$1$2$6/i) {
+# if (/^\s*(\S+)(.+?)references\s+(\S+)\s*\((\S+)\)/) {
+ @{ $out->{references}->{$table}->{$1} } = ( $3, $4, $5 );
}
print "$_\n";
print STDERR Dumper($out);
foreach my $table (keys %{ $out->{inherits} }) {
- my $parent = $out->{inherits}->{$table} || die;
- my $pk = $out->{table_pk}->{$parent} || die;
+ my $parent = $out->{inherits}->{$table} || die "$table doesn't inherit anything";
+ my $pk = $out->{table_pk}->{$parent} || die "$parent doesn't have primary key";
my $seq = $parent . '_' . $pk . '_seq';
print qq{alter table $table alter column $pk set default nextval('$seq');\n};
}
END IF;
END;
\$\$ language 'plpgsql';
+CREATE TRIGGER $func BEFORE INSERT ON $table FOR EACH ROW EXECUTE PROCEDURE $func();
};
}
}