X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FMSSQL.pm;h=7d65c44e87e383e8af6275f7373a7bf6409a6b35;hb=bc1cb85e84e6a30c75763edd478378a68009c722;hp=bdd321205b288ab79d92f081a793f9c8e81f9db1;hpb=81ade4d9da9b861849c51894b7e8f380e74192d4;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 bdd3212..7d65c44 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/MSSQL.pm @@ -6,11 +6,7 @@ use base 'DBIx::Class::Schema::Loader::DBI::Sybase::Common'; use Carp::Clan qw/^DBIx::Class/; use Class::C3; -__PACKAGE__->mk_group_accessors('simple', qw/ - case_sensitive_collation -/); - -our $VERSION = '0.06000'; +our $VERSION = '0.07000'; =head1 NAME @@ -39,24 +35,23 @@ case-sensitive databases. To manually control case-sensitive mode, put: - case_sensitive_collation => 1|0 + preserve_case => 1|0 in your Loader options. -=cut +See L. -sub _is_case_sensitive { - my $self = shift; +B this option used to be called C, but has +been renamed to a more generic option. - return $self->case_sensitive_collation ? 1 : 0; -} +=cut sub _setup { my $self = shift; - $self->next::method; + $self->next::method(@_); - return if defined $self->case_sensitive_collation; + return if defined $self->preserve_case; my $dbh = $self->schema->storage->dbh; @@ -75,22 +70,18 @@ sub _setup { warn <<'EOF'; WARNING: MSSQL Collation detection failed. Defaulting to case-insensitive mode. -Override the 'case_sensitive_collation' attribute in your Loader options if -needed. +Override the 'preserve_case' attribute in your Loader options if needed. + +See 'preserve_case' in +perldoc DBIx::Class::Schema::Loader::Base EOF - $self->case_sensitive_collation(0); + $self->preserve_case(0); return; } my $case_sensitive = $collation_name =~ /_(?:CS|BIN2?)(?:_|\z)/; - $self->case_sensitive_collation($case_sensitive ? 1 : 0); -} - -sub _lc { - my ($self, $name) = @_; - - return $self->case_sensitive_collation ? $name : lc($name); + $self->preserve_case($case_sensitive ? 1 : 0); } sub _tables_list { @@ -288,6 +279,10 @@ wHERE lower(table_name) = @{[ $dbh->quote(lc $table) ]} AND lower(column_name) = $info->{default_value} = $default =~ /^['(] (.*) [)']\z/x ? $1 : $default =~ /^\d/ ? $default : \$default; + + if (eval { lc ${ $info->{default_value} } }||'' eq 'getdate()') { + ${ $info->{default_value} } = 'CURRENT_TIMESTAMP'; + } } }