From: Joshua Keroes Date: Thu, 26 Apr 2012 00:02:31 +0000 (-0700) Subject: Check truth of preserve_case not definedness X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-Schema-Loader.git;a=commitdiff_plain;h=bugfix-permit-preserve-case%3D0 Check truth of preserve_case not definedness --- diff --git a/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm b/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm index 4319d30..4254de3 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/DB2.pm @@ -44,7 +44,7 @@ sub _setup { SELECT CURRENT_SCHEMA FROM sysibm${ns}sysdummy1 EOF - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } elsif ($self->preserve_case) { @@ -82,7 +82,7 @@ EOF } $sth->finish; - + return \@uniqs; } diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Informix.pm b/lib/DBIx/Class/Schema/Loader/DBI/Informix.pm index 4c7237b..b59eead 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Informix.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Informix.pm @@ -65,7 +65,7 @@ sub _setup { $self->next::method(@_); - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } elsif ($self->preserve_case) { @@ -464,7 +464,7 @@ EOF # if (lc($data_type) eq 'varchar') { # $result->{$col}{size}[1] = $info->{colmin}; # } - + my ($default_type, $default) = @{$info}{qw/deflt_type deflt/}; next unless $default_type; diff --git a/lib/DBIx/Class/Schema/Loader/DBI/InterBase.pm b/lib/DBIx/Class/Schema/Loader/DBI/InterBase.pm index 930a1ab..fbcf8af 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/InterBase.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/InterBase.pm @@ -25,7 +25,7 @@ See L and L. =head1 COLUMN NAME CASE ISSUES By default column names from unquoted DDL will be generated in lowercase, for -consistency with other backends. +consistency with other backends. Set the L option to true if you would like to have column names in the internal case, which is @@ -50,7 +50,7 @@ sub _setup { $self->next::method(@_); - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } elsif ($self->preserve_case) { diff --git a/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm b/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm index 9a27254..35d1621 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm @@ -169,7 +169,7 @@ EOF } } - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { foreach my $db (keys %{ $self->db_schema }) { # We use the sys.databases query for the general case, and fallback to # databasepropertyex() if for some reason sys.databases is not available, @@ -281,7 +281,7 @@ JOIN [$db].INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc JOIN [$db].INFORMATION_SCHEMA.KEY_COLUMN_USAGE fk_kcu ON fk_kcu.constraint_name = fk_tc.constraint_name AND fk_kcu.table_name = fk_tc.table_name - AND fk_kcu.table_schema = fk_tc.table_schema + AND fk_kcu.table_schema = fk_tc.table_schema JOIN [$db].INFORMATION_SCHEMA.TABLE_CONSTRAINTS uk_tc ON uk_tc.constraint_name = rc.unique_constraint_name AND uk_tc.table_schema = rc.unique_constraint_schema @@ -302,7 +302,7 @@ EOF while (my ($fk, $remote_schema, $remote_table, $col, $remote_col) = $sth->fetchrow_array) { push @{ $rels{$fk}{local_columns} }, $self->_lc($col); push @{ $rels{$fk}{remote_columns} }, $self->_lc($remote_col); - + $rels{$fk}{remote_table} = DBIx::Class::Schema::Loader::Table::Sybase->new( loader => $self, name => $remote_table, diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm b/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm index 4d044cd..610d959 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm @@ -11,7 +11,7 @@ our $VERSION = '0.07022'; =head1 NAME -DBIx::Class::Schema::Loader::DBI::Oracle - DBIx::Class::Schema::Loader::DBI +DBIx::Class::Schema::Loader::DBI::Oracle - DBIx::Class::Schema::Loader::DBI Oracle Implementation. =head1 DESCRIPTION @@ -34,7 +34,7 @@ sub _setup { $self->dbh->do('ALTER SESSION SET current_schema=' . $self->db_schema->[0]); } - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } elsif ($self->preserve_case) { @@ -100,7 +100,7 @@ EOF my $constr_col = $self->_lc($constr->[1]); push @{$constr_names{$constr_name}}, $constr_col; } - + my @uniqs = map { [ $_ => $constr_names{$_} ] } keys %constr_names; return \@uniqs; } @@ -115,7 +115,7 @@ sub _table_comment { ($table_comment) = $self->dbh->selectrow_array(<<'EOF', {}, $table->schema, $table->name); SELECT comments FROM all_tab_comments -WHERE owner = ? +WHERE owner = ? AND table_name = ? AND (table_type = 'TABLE' OR table_type = 'VIEW') EOF @@ -133,7 +133,7 @@ sub _column_comment { ($column_comment) = $self->dbh->selectrow_array(<<'EOF', {}, $table->schema, $table->name, $self->_uc($column_name)); SELECT comments FROM all_col_comments -WHERE owner = ? +WHERE owner = ? AND table_name = ? AND column_name = ? EOF @@ -315,7 +315,7 @@ EOF elsif (lc($info->{data_type}) eq 'binary_float') { $info->{data_type} = 'real'; $info->{original}{data_type} = 'binary_float'; - } + } elsif (lc($info->{data_type}) eq 'binary_double') { $info->{data_type} = 'double precision'; $info->{original}{data_type} = 'binary_double'; diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm b/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm index aff1807..4b035ab 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm @@ -25,7 +25,7 @@ sub _setup { $self->{db_schema} ||= ['public']; - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } elsif ($self->preserve_case) { @@ -108,8 +108,8 @@ sub _table_comment { return $table_comment if $table_comment; ($table_comment) = $self->dbh->selectrow_array(<<'EOF', {}, $table->name, $table->schema); -SELECT obj_description(oid) -FROM pg_class +SELECT obj_description(oid) +FROM pg_class WHERE relname=? AND relnamespace=(SELECT oid FROM pg_namespace WHERE nspname=?) EOF @@ -127,7 +127,7 @@ sub _column_comment { my ($table_oid) = $self->dbh->selectrow_array(<<'EOF', {}, $table->name, $table->schema); SELECT oid -FROM pg_class +FROM pg_class WHERE relname=? AND relnamespace=(SELECT oid FROM pg_namespace WHERE nspname=?) EOF @@ -248,7 +248,7 @@ EOF $info->{extra}{custom_type_name} = $info->{data_type}; $info->{data_type} = 'enum'; - + delete $info->{size}; } } diff --git a/lib/DBIx/Class/Schema/Loader/DBI/SQLAnywhere.pm b/lib/DBIx/Class/Schema/Loader/DBI/SQLAnywhere.pm index 4def615..8f980fd 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/SQLAnywhere.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/SQLAnywhere.pm @@ -31,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('.'); @@ -180,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 diff --git a/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm b/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm index f3146c2..8a9d7fa 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/SQLite.pm @@ -33,10 +33,10 @@ sub _setup { $self->next::method(@_); - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } - + if ($self->db_schema) { warn <<'EOF'; db_schema is not supported on SQLite, the option is implemented only for qualify_objects testing. diff --git a/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm b/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm index 705bc02..3ce83c0 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/mysql.pm @@ -32,7 +32,7 @@ sub _setup { $self->next::method(@_); - if (not defined $self->preserve_case) { + if (not $self->preserve_case) { $self->preserve_case(0); } @@ -65,7 +65,7 @@ sub _system_schemas { return ($self->next::method(@_), 'mysql'); } -sub _tables_list { +sub _tables_list { my ($self, $opts) = @_; return $self->next::method($opts, undef, undef);