X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FDBI%2FDB2.pm;h=2017928becdddd1eb002f406531c335659128456;hb=0c04c5a2210135419771878dc7e341a1cba52cca;hp=cf859d1cf8dfc0b5f3580956a2bd7228b7f51a43;hpb=da06ac74ada30aacf656943306679a28605ad5c8;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Parser/DBI/DB2.pm b/lib/SQL/Translator/Parser/DBI/DB2.pm index cf859d1..2017928 100644 --- a/lib/SQL/Translator/Parser/DBI/DB2.pm +++ b/lib/SQL/Translator/Parser/DBI/DB2.pm @@ -10,22 +10,22 @@ See SQL::Translator::Parser::DBI. =head1 DESCRIPTION -Uses DBI methods to determine schema structure. DBI, of course, +Uses DBI methods to determine schema structure. DBI, of course, delegates to DBD::DB2. =cut use strict; +use warnings; use DBI; use Data::Dumper; use SQL::Translator::Parser::DB2; use SQL::Translator::Schema::Constants; -use vars qw[ $DEBUG $VERSION @EXPORT_OK ]; -# $VERSION = '1.99'; +our ($DEBUG, $VERSION, @EXPORT_OK ); +# $VERSION = '1.59'; $DEBUG = 0 unless defined $DEBUG; -# ------------------------------------------------------------------- sub parse { my ( $tr, $dbh ) = @_; @@ -86,17 +86,17 @@ WHERE tc.TABSCHEMA NOT LIKE 'SYS%' AND SQL my $indsth = $dbh->prepare(< 'P' AND i.TABNAME = ? SQL @@ -104,7 +104,7 @@ SQL my $trigsth = $dbh->prepare(<execute($table_info->{TABNAME}); my $cols = $colsth->fetchall_hashref("COLNAME"); - + foreach my $c (values %{$cols}) { print Dumper($c) if $DEBUG; print $c->{COLNAME} if($DEBUG); @@ -147,7 +147,7 @@ SQL size => $c->{LENGTH}, ) || die $table->error; - + $f->is_nullable($c->{NULLS} eq 'Y'); } @@ -157,7 +157,7 @@ SQL my @fields = map { $_->{COLNAME} } (values %{$cons}); my $c = $cons->{$fields[0]}; - + print $c->{CONSTNAME} if($DEBUG); my $con = $table->add_constraint( name => $c->{CONSTNAME}, @@ -167,9 +167,9 @@ SQL FOREIGN_KEY : UNIQUE ) || die $table->error; - + $con->deferrable($c->{CHECKEXISTINGDATA} eq 'D'); - + $indsth->execute($table_info->{TABNAME}); my $inds = $indsth->fetchall_hashref("INDNAME"); print Dumper($inds) if($DEBUG); @@ -195,8 +195,8 @@ SQL type => $index->{UNIQUERULE} eq 'U' ? UNIQUE : NORMAL ) || die $table->error; - - + + } $trigsth->execute($table_info->{TABNAME}); @@ -205,7 +205,7 @@ SQL next if(!%$trigs); foreach my $t (values %$trigs) - { + { print $t->{TRIGNAME} if($DEBUG); my $trig = $schema->add_trigger( name => $t->{TRIGNAME}, @@ -214,12 +214,12 @@ SQL $t->{TRIGTIME} eq 'B' ? 'before': 'instead', database_event => $t->{TRIGEVENT} eq 'I' ? 'insert' - : $t->{TRIGEVENT} eq 'D' ? 'delete' + : $t->{TRIGEVENT} eq 'D' ? 'delete' : 'update', action => $t->{TEXT}, - on_table => $t->{TABNAME} + on_table => $t->{TABNAME} ) || die $schema->error; - + # $trig->extra( reference => $def->{'reference'}, # condition => $def->{'condition'}, # granularity => $def->{'granularity'} );