[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