handle unknown rsrc in NoBindVars and Sybase::NoBindVars
Rafael Kitover [Wed, 10 Jun 2009 13:27:41 +0000 (13:27 +0000)]
lib/DBIx/Class/Storage/DBI/NoBindVars.pm
lib/DBIx/Class/Storage/DBI/Sybase/NoBindVars.pm

index eac8295..0c1a083 100644 (file)
@@ -62,7 +62,8 @@ sub _prep_for_execute {
 
     my $rsrc = $alias2src->{$alias};
 
-    my $datatype = $rsrc->column_info($col)->{data_type};
+    my $datatype = $rsrc ? $rsrc->column_info($col)->{data_type} :
+        '__UNKNOWN__';
 
     foreach my $data (@$bound) {
         if(ref $data) {
index 4ebb8cf..42c9018 100644 (file)
@@ -39,6 +39,9 @@ sub should_quote_data_type {
 
   if (my $key = List::Util::first { $type =~ /$_/i } keys %noquote) {
     return 0 if $noquote{$key}->($value);
+  } elsif ($type eq '__UNKNOWN__') {
+# try to guess based on value
+    return 0 if $number->($value) || $noquote->{money}->($value);
   }
 
   return $self->next::method(@_);