name
true
false
+ expr
/
};
}
my @output;
foreach ( @{$ast->{args}} ) {
- croak "invalid component in where clause: $_" unless is_ArrayRef($_);
- my $op = $_->[0];
+ croak "invalid component in where clause: $_" unless is_HashAST($_);
- if ($op =~ /^-(and|or)$/) {
+ if ($_->{-type} eq 'expr' && $_->{op} =~ /^-(and|or)$/) {
my $sub_prio = $SQL::Abstract::PRIO{$1};
if ($sub_prio <= $prio) {
croak "'$op' is not a valid clause in a where AST"
if $op =~ /^-/;
- croak "'$op' is not a valid operator";
+ use Devel::PartialDump qw/dump/;
+ croak "'$op' is not a valid operator in " . dump($ast);
}