From: Rafael Kitover Date: Wed, 10 Jun 2009 11:46:37 +0000 (+0000) Subject: Sybase::NoBindVars now correctly quotes X-Git-Tag: v0.08112~14^2~140 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=17d750d79d6df0ba063f662aa732a1e7ec286a41;p=dbsrgits%2FDBIx-Class.git Sybase::NoBindVars now correctly quotes --- diff --git a/lib/DBIx/Class/Storage/DBI/NoBindVars.pm b/lib/DBIx/Class/Storage/DBI/NoBindVars.pm index 7a48105..d58ccae 100644 --- a/lib/DBIx/Class/Storage/DBI/NoBindVars.pm +++ b/lib/DBIx/Class/Storage/DBI/NoBindVars.pm @@ -53,10 +53,11 @@ sub _prep_for_execute { foreach my $bound (@$bind) { my $col = shift @$bound; - my $datatype = 'FIXME!!!'; + $col =~ s/^([^.]*)\.//; + my $alias = $1 || 'me'; -# this is what needs to happen: -# my $datatype = $rsrc->column_info($col)->{data_type}; + my $datatype = $self->_resolve_ident_sources($ident)->{$alias} + ->column_info($col)->{data_type}; foreach my $data (@$bound) { if(ref $data) { diff --git a/lib/DBIx/Class/Storage/DBI/Sybase/NoBindVars.pm b/lib/DBIx/Class/Storage/DBI/Sybase/NoBindVars.pm index f3a46f6..4ebb8cf 100644 --- a/lib/DBIx/Class/Storage/DBI/Sybase/NoBindVars.pm +++ b/lib/DBIx/Class/Storage/DBI/Sybase/NoBindVars.pm @@ -37,14 +37,9 @@ sub should_quote_data_type { return $self->next::method(@_) if not defined $value; -## this is the correct method, but we have no type yet -# if (my $key = List::Util::first { $type =~ /$_/i } keys %noquote) { -# return 0 if $noquote{$key}->($value); -# } - -# temporary hack - return 0 if Scalar::Util::looks_like_number($value) || - ($value =~ /^\$(\S*)\z/ && Scalar::Util::looks_like_number($1)); + if (my $key = List::Util::first { $type =~ /$_/i } keys %noquote) { + return 0 if $noquote{$key}->($value); + } return $self->next::method(@_); }