restore _order_by exception on nonsense asc+desc input
Matt S Trout [Wed, 17 Oct 2018 22:44:29 +0000 (22:44 +0000)]
lib/SQL/Abstract.pm
t/06order_by.t

index 2c0034b..b101747 100644 (file)
@@ -1056,6 +1056,14 @@ sub _order_by {
     return (@exp > 1 ? { -op => [ ',', @exp ] } : $exp[0]);
   };
 
+  if (
+    ref($arg) eq 'HASH'
+    and keys %$arg > 1
+    and grep /^-(asc|desc)$/, keys %$arg
+  ) {
+    puke "ordering direction hash passed to order by must have exactly one key (-asc or -desc)";
+  }
+
   local @{$self->{expand_unary}}{qw(-asc -desc)} = (
     sub { shift->$expander(asc => @_) },
     sub { shift->$expander(desc => @_) },
index 1095862..7d1213e 100644 (file)
@@ -127,12 +127,6 @@ for my $case (@cases) {
   );
 }
 
-# meh
-
-done_testing;
-
-exit;
-
 throws_ok (
   sub { $sql->_order_by({-desc => 'colA', -asc => 'colB' }) },
   qr/hash passed .+ must have exactly one key/,