X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FSQLite.pm;h=f3146c2dbfd6c9c927f1a682a93c7fc06e4af359;hb=refs%2Ftags%2F0.07022;hp=408534adb776aa7d275e8df405798533389efa22;hpb=c4a69b87bd3d3fdda08f05d363311a6e9d3fc0f7;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm b/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm index 408534a..f3146c2 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm @@ -2,14 +2,11 @@ package DBIx::Class::Schema::Loader::DBI::SQLite; use strict; use warnings; -use base qw/ - DBIx::Class::Schema::Loader::DBI::Component::QuotedDefault - DBIx::Class::Schema::Loader::DBI -/; +use base 'DBIx::Class::Schema::Loader::DBI::Component::QuotedDefault'; use mro 'c3'; use DBIx::Class::Schema::Loader::Table (); -our $VERSION = '0.07010'; +our $VERSION = '0.07022'; =head1 NAME @@ -71,15 +68,22 @@ sub _columns_info_for { $sth->execute; my $cols = $sth->fetchall_hashref('name'); + # copy and case according to preserve_case mode + # no need to check for collisions, SQLite does not allow them + my %cols; + while (my ($col, $info) = each %$cols) { + $cols{ $self->_lc($col) } = $info; + } + my ($num_pk, $pk_col) = (0); # SQLite doesn't give us the info we need to do this nicely :( # If there is exactly one column marked PK, and its type is integer, # set it is_auto_increment. This isn't 100%, but it's better than the # alternatives. while (my ($col_name, $info) = each %$result) { - if ($cols->{$col_name}{pk}) { - $num_pk ++; - if (lc($cols->{$col_name}{type}) eq 'integer') { + if ($cols{$col_name}{pk}) { + $num_pk++; + if (lc($cols{$col_name}{type}) eq 'integer') { $pk_col = $col_name; } }