X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FOracle.pm;h=b9f230440d8408379cdf026a1927cdaa199b36b0;hb=242c152546ea957bee6a11f50568db056c4d2df9;hp=965c49823e2ea362a27e4dc6cc51deac51c7d229;hpb=2f01b5e3e1ba77316270cb2d7feac4330fd2ff7e;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm b/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm index 965c498..b9f2304 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm @@ -8,7 +8,7 @@ use Try::Tiny; use DBIx::Class::Schema::Loader::Utils qw/sigwarn_silencer/; use namespace::clean; -our $VERSION = '0.07036_04'; +our $VERSION = '0.07038'; =head1 NAME @@ -185,7 +185,7 @@ EOF $sth->execute($table->name, $table->schema); while (my ($trigger_body) = $sth->fetchrow_array) { - if (my ($seq_schema, $seq_name) = $trigger_body =~ /(?:\."?(\w+)"?)?"?(\w+)"?\.nextval/i) { + if (my ($seq_schema, $seq_name) = $trigger_body =~ /(?:"?(\w+)"?\.)?"?(\w+)"?\.nextval/i) { if (my ($col_name) = $trigger_body =~ /:new\.(\w+)/i) { $col_name = $self->_lc($col_name); @@ -199,6 +199,9 @@ EOF } } + # Old DBD::Oracle report the size in (UTF-16) bytes, not characters + my $nchar_size_factor = $DBD::Oracle::VERSION >= 1.52 ? 1 : 2; + while (my ($col, $info) = each %$result) { no warnings 'uninitialized'; @@ -229,7 +232,7 @@ EOF $info->{size} = $info->{size}[0] / 8; } else { - $info->{size} = $info->{size} / 2; + $info->{size} = $info->{size} / $nchar_size_factor; } } elsif ($info->{data_type} =~ /^(?:var)?char2?\z/i) {