X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FFilterColumn.pm;fp=lib%2FDBIx%2FClass%2FFilterColumn.pm;h=6fdf1adee8d692c181a55c1e7d7d345aba7a5ed3;hb=a524980e87f8d0063f051a4f949e0a4a20cd4a8f;hp=6d7e48c97c2eb507dd08f65c1def9c2d05160d7a;hpb=dc6dadae6312ce97e6d85c343805ce940671d6e9;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/FilterColumn.pm b/lib/DBIx/Class/FilterColumn.pm index 6d7e48c..6fdf1ad 100644 --- a/lib/DBIx/Class/FilterColumn.pm +++ b/lib/DBIx/Class/FilterColumn.pm @@ -2,7 +2,9 @@ package DBIx::Class::FilterColumn; use strict; use warnings; -use base qw/DBIx::Class::Row/; +use base 'DBIx::Class::Row'; +use DBIx::Class::_Util 'is_literal_value'; +use namespace::clean; sub filter_column { my ($self, $col, $attrs) = @_; @@ -30,7 +32,11 @@ sub filter_column { sub _column_from_storage { my ($self, $col, $value) = @_; - return $value unless defined $value; + return $value if ( + ! defined $value + or + is_literal_value($value) + ); my $info = $self->column_info($col) or $self->throw_exception("No column info for $col"); @@ -45,6 +51,8 @@ sub _column_from_storage { sub _column_to_storage { my ($self, $col, $value) = @_; + return $value if is_literal_value($value); + my $info = $self->column_info($col) or $self->throw_exception("No column info for $col");