ensure ident no longer uses the old code
Matt S Trout [Tue, 11 Sep 2018 22:24:13 +0000 (22:24 +0000)]
lib/SQL/Abstract.pm

index f187516..0f412aa 100644 (file)
@@ -39,7 +39,7 @@ our $AUTOLOAD;
 my @BUILTIN_SPECIAL_OPS = (
   {regex => qr/^ (?: not \s )? between $/ix, handler => sub { die "NOPE" }},
   {regex => qr/^ (?: not \s )? in      $/ix, handler => sub { die "NOPE" }},
-  {regex => qr/^ ident                 $/ix, handler => '_where_op_IDENT'},
+  {regex => qr/^ ident                 $/ix, handler => sub { die "NOPE" }},
   {regex => qr/^ value                 $/ix, handler => '_where_op_VALUE'},
   {regex => qr/^ is (?: \s+ not )?     $/ix, handler => '_where_field_IS'},
 );
@@ -691,6 +691,16 @@ sub _expand_expr_hashpair {
           \@rhs
         ] };
       }
+      if ($vk eq 'ident') {
+        if (! defined $vv or ref $vv) {
+          puke "-$vk requires a single plain scalar argument (a quotable identifier)";
+        }
+        return +{ -op => [
+          $self->{cmp},
+          { -ident => $k },
+          { -ident => $vv }
+        ] };
+      }
     }
     if (ref($v) eq 'ARRAY') {
       return $self->{sqlfalse} unless @$v;