ILIKE is common enough to be in core
Peter Rabbitson [Tue, 23 Mar 2010 21:50:09 +0000 (21:50 +0000)]
Changes
lib/SQL/Abstract.pm
t/01generate.t

diff --git a/Changes b/Changes
index 5e1e236..0377b38 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for SQL::Abstract
 
+    - Add ILIKE to the core list of comparision ops
+
 revision 1.62  2010-03-15 11:06 (UTC)
 ----------------------------
     - Fixed open outer parens for a multi-line literal
index 060e601..646cc23 100644 (file)
@@ -84,7 +84,7 @@ sub new {
 
   # generic SQL comparison operators
   my $anchored_cmp_ops = join ('|', map { '^' . $_ . '$' } (
-    '(?:is \s+)? (?:not \s+)? like',
+    '(?:is \s+)? (?:not \s+)? i? like',
     'is',
     (map { quotemeta($_) } (qw/ < > != <> = <= >= /) ),
   ));
index 9dbc504..8033c97 100644 (file)
@@ -262,13 +262,13 @@ my @tests = (
       #29            
       {              
               func   => 'select',
-              args   => ['jeff', '*', { name => {'like', '%smith%', -not_in => ['Nate','Jim','Bob','Sally']},
+              args   => ['jeff', '*', { name => {'ilike', '%smith%', -not_in => ['Nate','Jim','Bob','Sally']},
                                        -nest => [ -or => [ -and => [age => { -between => [20,30] }, age => {'!=', 25} ],
                                                                    yob => {'<', 1976} ] ] } ],
               stmt   => 'SELECT * FROM jeff WHERE ( ( ( ( ( ( ( age BETWEEN ? AND ? ) AND ( age != ? ) ) ) OR ( yob < ? ) ) ) )'
-                      . ' AND name NOT IN ( ?, ?, ?, ? ) AND name LIKE ? )',
+                      . ' AND name NOT IN ( ?, ?, ?, ? ) AND name ILIKE ? )',
               stmt_q => 'SELECT * FROM `jeff` WHERE ( ( ( ( ( ( ( `age` BETWEEN ? AND ? ) AND ( `age` != ? ) ) ) OR ( `yob` < ? ) ) ) )'
-                      . ' AND `name` NOT IN ( ?, ?, ?, ? ) AND `name` LIKE ? )',
+                      . ' AND `name` NOT IN ( ?, ?, ?, ? ) AND `name` ILIKE ? )',
               bind   => [qw(20 30 25 1976 Nate Jim Bob Sally %smith%)]
       },             
       #30