[Jifty-commit] r1511 - in Jifty-DBI/trunk: . lib/Jifty/DBI
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Jul 7 19:58:56 EDT 2006
Author: zev
Date: Fri Jul 7 19:58:55 2006
New Revision: 1511
Modified:
Jifty-DBI/trunk/ (props changed)
Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm
Jifty-DBI/trunk/lib/Jifty/DBI/Handle/Pg.pm
Log:
r11412 at galvatron: zev | 2006-07-07 19:58:48 -0400
* abstract out checking whether it's possible to make a clause case
insensitive so that subclasses of Handle can use those tests
Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm (original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Handle.pm Fri Jul 7 19:58:55 2006
@@ -597,20 +597,28 @@
=cut
+sub _case_insensitivity_valid {
+ my $self = shift;
+ my $column = shift;
+ my $operator = shift;
+ my $value = shift;
+
+ return $value ne ''
+ && $value ne "''"
+ && ( $operator !~ /IS/ && $value !~ /^null$/i )
+ # don't downcase integer values
+ && $value !~ /^['"]?\d+['"]?$/;
+}
+
sub _make_clause_case_insensitive {
my $self = shift;
my $column = shift;
my $operator = shift;
my $value = shift;
- if ($value ne ''
- && $value ne "''"
- && ($operator !~ /IS/ && $value !~ /^null$/i)
- # don't downcase integer values
- && $value !~ /^['"]?\d+['"]?$/) {
+ if ($self->_case_insensitivity_valid($column, $operator, $value)) {
$column = "lower($column)";
$value = "lower($value)";
-
}
return ( $column, $operator, $value );
}
Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Handle/Pg.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Handle/Pg.pm (original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Handle/Pg.pm Fri Jul 7 19:58:55 2006
@@ -171,20 +171,15 @@
my $operator = shift;
my $value = shift;
- if ( $value =~ /^['"]?\d+['"]?$/ )
- { # we don't need to downcase numeric values
- return ( $column, $operator, $value );
- }
-
- if ( $operator =~ /LIKE/i ) {
- $operator =~ s/LIKE/ILIKE/ig;
- return ( $column, $operator, $value );
- } elsif ( $operator =~ /=/ ) {
- return ( "LOWER($column)", $operator, "LOWER($value)" );
- } else {
- $self->SUPER::_make_clause_case_insensitive( $column, $operator,
- $value );
+ if (! $self->_case_insensitivity_valid($column, $operator, $value)) {
+ if ( $operator =~ /LIKE/i ) {
+ $operator =~ s/LIKE/ILIKE/ig;
+ } elsif ( $operator =~ /=/ ) {
+ $column = "LOWER($column)";
+ $value = "LOWER($value)";
+ }
}
+ return ( $column, $operator, $value );
}
=head2 distinct_query STATEMENTREF
More information about the Jifty-commit
mailing list