Check truth of preserve_case not definedness
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / DBI / SQLAnywhere.pm
index d5105bd..8f980fd 100644 (file)
@@ -2,16 +2,13 @@ package DBIx::Class::Schema::Loader::DBI::SQLAnywhere;
 
 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 List::MoreUtils 'any';
 use namespace::clean;
 use DBIx::Class::Schema::Loader::Table ();
 
-our $VERSION = '0.07011';
+our $VERSION = '0.07022';
 
 =head1 NAME
 
@@ -34,7 +31,7 @@ sub _setup {
     $self->next::method(@_);
 
     $self->preserve_case(1)
-        unless defined $self->preserve_case;
+        unless $self->preserve_case;
 
     $self->schema->storage->sql_maker->quote_char('"');
     $self->schema->storage->sql_maker->name_sep('.');
@@ -94,7 +91,7 @@ sub _columns_info_for {
             $info->{is_auto_increment} = 1;
         }
 
-        my ($user_type) = $dbh->selectrow_array(<<'EOF', {}, $table->schema, $table->name, $col);
+        my ($user_type) = $dbh->selectrow_array(<<'EOF', {}, $table->schema, $table->name, lc($col));
 SELECT ut.type_name
 FROM systabcol tc
 JOIN systab t
@@ -103,7 +100,7 @@ JOIN sysuser u
     ON t.creator = u.user_id
 JOIN sysusertype ut
     ON tc.user_type = ut.type_id
-WHERE u.user_name = ? AND t.table_name = ? AND tc.column_name = ?
+WHERE u.user_name = ? AND t.table_name = ? AND lower(tc.column_name) = ?
 EOF
         $info->{data_type} = $user_type if defined $user_type;
 
@@ -125,9 +122,9 @@ JOIN systab t
     ON t.table_id = tc.table_id
 JOIN sysuser u
     ON t.creator = u.user_id
-WHERE u.user_name = ? AND t.table_name = ? AND tc.column_name = ?
+WHERE u.user_name = ? AND t.table_name = ? AND lower(tc.column_name) = ?
 EOF
-        $sth->execute($table->schema, $table->name, $col);
+        $sth->execute($table->schema, $table->name, lc($col));
         my ($width, $scale) = $sth->fetchrow_array;
         $sth->finish;
 
@@ -183,9 +180,9 @@ JOIN systab    fkt
     ON fk.foreign_table_id = fkt.table_id
 JOIN sysuser   fku
     ON fkt.creator = fku.user_id
-JOIN sysidx    pki 
+JOIN sysidx    pki
     ON fk.primary_table_id = pki.table_id  AND fk.primary_index_id    = pki.index_id
-JOIN sysidx    fki 
+JOIN sysidx    fki
     ON fk.foreign_table_id = fki.table_id  AND fk.foreign_index_id    = fki.index_id
 JOIN sysidxcol fkic
     ON fkt.table_id        = fkic.table_id AND fki.index_id           = fkic.index_id