X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FMSSQL.pm;h=a2cc9166975aaaa9fbb83053f02221e8de575165;hb=6b1d4f76b756e4b4119153a1f1e8a7bd59ad4e87;hp=d2847c3b3645da23f8dd62d51288f2f7eb3209bd;hpb=6e566cc4a06b1661597200611a03320f969e2566;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm b/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm index d2847c3..a2cc916 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm @@ -6,7 +6,7 @@ use base 'DBIx::Class::Schema::Loader::DBI::Sybase::Common'; use Carp::Clan qw/^DBIx::Class/; use Class::C3; -our $VERSION = '0.07000'; +our $VERSION = '0.07001'; =head1 NAME @@ -91,9 +91,9 @@ sub _tables_list { my $sth = $dbh->prepare(<<'EOF'); SELECT t.table_name FROM INFORMATION_SCHEMA.TABLES t -WHERE lower(t.table_schema) = ? +WHERE t.table_schema = ? EOF - $sth->execute(lc $self->db_schema); + $sth->execute($self->db_schema); my @tables = map @$_, @{ $sth->fetchall_arrayref }; @@ -154,7 +154,7 @@ SELECT ccu.constraint_name, ccu.column_name FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc on (ccu.constraint_name = tc.constraint_name) JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu on (ccu.constraint_name = kcu.constraint_name and ccu.column_name = kcu.column_name) -wHERE lower(ccu.table_name) = @{[ $dbh->quote(lc $table) ]} AND constraint_type = 'UNIQUE' ORDER BY kcu.ordinal_position +wHERE ccu.table_name = @{[ $dbh->quote($table) ]} AND constraint_type = 'UNIQUE' ORDER BY kcu.ordinal_position }); $sth->execute; my $constraints; @@ -181,8 +181,8 @@ sub _columns_info_for { my $sth = $dbh->prepare(qq{ SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS -WHERE columnproperty(object_id(@{[ $dbh->quote(lc $table) ]}, 'U'), @{[ $dbh->quote(lc $col) ]}, 'IsIdentity') = 1 -AND lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = @{[ $dbh->quote(lc $col) ]} +WHERE columnproperty(object_id(@{[ $dbh->quote($table) ]}, 'U'), @{[ $dbh->quote($col) ]}, 'IsIdentity') = 1 +AND table_name = @{[ $dbh->quote($table) ]} AND column_name = @{[ $dbh->quote($col) ]} }); if (eval { $sth->execute; $sth->fetchrow_array }) { $info->{is_auto_increment} = 1; @@ -202,10 +202,6 @@ AND lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = @ delete $info->{size}; } } - elsif ($info->{data_type} eq 'real') { - $info->{data_type} = 'float'; - $info->{size} = 24; - } elsif ($info->{data_type} eq 'float') { $info->{data_type} = 'double precision'; } @@ -266,7 +262,7 @@ AND lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = @ $sth = $dbh->prepare(qq{ SELECT column_default FROM INFORMATION_SCHEMA.COLUMNS -wHERE lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = @{[ $dbh->quote(lc $col) ]} +wHERE table_name = @{[ $dbh->quote($table) ]} AND column_name = @{[ $dbh->quote($col) ]} }); my ($default) = eval { $sth->execute; $sth->fetchrow_array }; @@ -280,8 +276,11 @@ wHERE lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = $default =~ /^['(] (.*) [)']\z/x ? $1 : $default =~ /^\d/ ? $default : \$default; - if (eval { lc ${ $info->{default_value} } }||'' eq 'getdate()') { + if ((eval { lc ${ $info->{default_value} } }||'') eq 'getdate()') { ${ $info->{default_value} } = 'current_timestamp'; + + my $getdate = 'getdate()'; + $info->{original}{default_value} = \$getdate; } } }