X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FDB2.pm;h=18410e7af8e645ef26401a24fe414b2fea9e559b;hb=5223f24a6662ce33f7b60d2a3f6f83e83f5373cc;hp=5ec113fc89c3d7e90f51fd23403333e153379ad5;hpb=a5f0231beb8e65e56d498f0f3b17b6774815c0bf;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm b/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm index 5ec113f..18410e7 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm @@ -34,14 +34,14 @@ sub _table_uniq_info { my $dbh = $self->schema->storage->dbh; - my $sth = $dbh->prepare(<<'SQL') or die; -SELECT kcu.COLNAME, kcu.CONSTNAME, kcu.COLSEQ -FROM SYSCAT.TABCONST as tc -JOIN SYSCAT.KEYCOLUSE as kcu ON tc.CONSTNAME = kcu.CONSTNAME -WHERE tc.TABSCHEMA = ? and tc.TABNAME = ? and tc.TYPE = 'U' -SQL - - $sth->execute($self->db_schema, $table) or die; + my $sth = $self->{_cache}->{db2_uniq} ||= $dbh->prepare( + q{SELECT kcu.COLNAME, kcu.CONSTNAME, kcu.COLSEQ + FROM SYSCAT.TABCONST as tc + JOIN SYSCAT.KEYCOLUSE as kcu ON tc.CONSTNAME = kcu.CONSTNAME + WHERE tc.TABSCHEMA = ? and tc.TABNAME = ? and tc.TYPE = 'U'} + ); + + $sth->execute($self->db_schema, $table) or die $DBI::errstr; my %keydata; while(my $row = $sth->fetchrow_arrayref) {