Fix some should_quote_data_type problems
Peter Rabbitson [Fri, 27 Feb 2009 01:24:37 +0000 (01:24 +0000)]
Changes
lib/DBIx/Class/Storage/DBI/NoBindVars.pm
lib/DBIx/Class/Storage/DBI/Sybase.pm
t/03podcoverage.t

diff --git a/Changes b/Changes
index 61f5831..02c6051 100644 (file)
--- a/Changes
+++ b/Changes
@@ -16,6 +16,8 @@ Revision history for DBIx::Class
           to make it more matpath-friendly
         - deploy_statements called ddl_filename with the $version and $dir arguments
           in the wrong order. (groditi)
+        - columns/+columns attributes now support { as => select } hahsrefs
+
 
 0.08099_06 2009-01-23 07:30:00 (UTC)
         - Allow a scalarref to be supplied to the 'from' resultset attribute
index 51ef7d5..9f81caf 100644 (file)
@@ -64,6 +64,19 @@ sub _prep_for_execute {
   return ($new_sql);
 }
 
+=head2 should_quote_data_type
+
+This method is called by L</_prep_for_execute> for every column in
+order to determine if its value should be quoted or not. The sole
+argument is the current column data type, and the return value is
+interpreted as: true - do quote, false - do not quote. You should
+override this in you Storage::DBI::<database> subclass, if your
+RDBMS does not like quotes around certain datatypes (e.g. Sybase
+and integer columns). The default method always returns true (do
+quote).
+
+=cut
+
 sub should_quote_data_type { 1 }
 
 =head1 AUTHORS
index f18de95..cb7408b 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use base qw/DBIx::Class::Storage::DBI::NoBindVars/;
 
-my %noquote = map ($_ => 1), qw(int integer);
+my %noquote = map { $_ => 1 } qw(int integer);
 
 sub should_quote_data_type {
   my $self = shift;
index 18c5292..175542b 100644 (file)
@@ -44,6 +44,11 @@ my $exceptions = {
             qw(setup_connection_class)
         ]
     },
+    'DBIx::Class::Storage::DBI::Sybase' => {
+        ignore => [
+            qw/should_quote_data_type/,
+        ]
+    },
     'DBIx::Class::CDBICompat::AccessorMapping'          => { skip => 1 },
     'DBIx::Class::CDBICompat::AbstractSearch' => {
         ignore => [qw(search_where)]