Branch Coverage

blib/lib/DBIx/Perlish/Parse.pm
Criterion Covered Total %
branch 694 1018 68.1


line true false branch
13 0 0 $_[0]->can('name') ? :
18 0 57 if ($DEVEL) { }
22 0 57 unless $args
25 55 2 unless substr($args, length($args) - 1) eq "\n"
36 38085 17298 unless ref $op eq $optype
37 1885 15413 unless $name
45 350 0 unless "DBIx::Perlish::Parse"->can("is_$optype")
66 577 976 unless is_svop($op, "const")
68 0 976 unless ($$sv)
71 124 852 if (wantarray) { }
83 50 75 if (not $return) { }
50 25 elsif ($return =~ /^\w+$/u) { }
88 125 0 unless "DBIx::Perlish::Parse"->can("want_$optype")
0 0 unless $n
0 6 unless (is_listop($op, $n))
0 0 unless $n
0 380 unless (is_null($op, $n))
0 0 unless $n
0 0 unless (is_op($op, $n))
0 0 unless $n
0 8 unless (is_svop($op, $n))
0 0 unless $n
0 1035 unless (is_unop($op, $n))
115 0 380 unless (is_pushmark_or_padrange($op))
124 0 8 unless ($$sv)
133 0 2 unless is_unop($op, "method") or is_methop($op, "method")
135 0 2 unless is_null($op->sibling)
137 0 2 unless $ok
145 593 2 if (is_methop($op, 'method_named')) { }
0 2 elsif (is_svop($op, 'method_named')) { }
151 0 2 unless $r
154 0 593 unless ($$sv)
167 0 553 unless $c
180 595 0 if ($padname and not $padname->isa('B::SPECIAL')) { }
181 1 594 if $p{'no_fakes'} and $padname->FLAGS & 16777216
182 2 592 unless defined $padname->PVX
195 0 34 if $n[$k]->isa("B::SPECIAL")
196 0 34 if $n[$k]->isa("B::NULL")
197 6 28 if (($n[$k]->PVX // "") eq $n)
199 3 3 unless ($v->isa("B::SPECIAL"))
202 3 0 if ($n[$k]->FLAGS & 16777216)
204 0 3 unless $S->{'gen_args'}{'prev_S'}
218 0 51 unless $v
219 3 48 if ($v->isa("B::SPECIAL"))
221 3 0 if ($n->FLAGS & 16777216) { }
228 7 44 if $ref_only
260 62 0 unless (defined $store->{'padlist'}[$index])
262 3 59 if ($padname->FLAGS & 16777216 and $store->{'inner'}->outid > 1) { }
263 3 0 unless ($store->{'outer_padlist'})
265 1 2 unless ($store->{'outer_padlist'})
269 0 14 unless my $sub = caller_cv($id++)
272 13 1 unless $padlist->id == $store->{'inner'}->outid
277 0 3 unless $store->{'outer_padlist'}
302 0 54 unless my $sv = shift @items
307 0 73 if ($access == 0)
311 55 18 unless ($ref)
312 50 5 if ($access == 12 or $access == 5 or $access == 10 or $access == 3) { }
3 2 elsif ($access == 8 or $access == 11 or $access == 13) { }
2 0 elsif ($access == 1 or $access == 4 or $access == 6) { }
0 0 elsif ($access == 2 or $access == 9) { }
319 4 46 if not $ref or ref $ref eq "SCALAR" and not $$ref
326 1 2 unless ref $sv
333 0 2 unless ref $sv
340 0 0 if not $ref or ref $ref eq "SCALAR" and not $$ref
349 48 20 $access == 12 || $access == 9 || $access == 10 || $access == 8 || $access == 11 || $access == 13 ? :
360 68 0 if ($index != 0)
361 56 12 if ($index == 16) { }
12 0 elsif ($index == 32) { }
0 0 elsif ($index == 48) { }
362 44 12 ref $ptr ? :
366 0 0 ref $ptr ? :
369 37 31 if ref($ref) =~ /REF|SCALAR/u
370 56 12 if ref($key) =~ /REF|SCALAR/u
372 20 48 if ($reftype eq 'ARRAY') { }
378 2 1 if (not defined $ref and $access == 2 || $access == 3 || $access == 4 || $access == 9 || $access == 10 || $access == 11)
390 0 66 if ($index == 0 or $index & 64)
397 47 0 unless @ret
400 0 49 unless 1 == @ret
411 2 2 if ($rv = is_const($S, $op)) { }
414 0 2 unless $ok
426 44 236 if (is_op($op, 'padsv')) { }
0 236 elsif (is_binop($op, 'helem')) { }
0 236 elsif (is_binop($op, 'aelem')) { }
1 235 elsif (is_svop($op, 'gvsv') or is_padop($op, 'gvsv')) { }
1 234 elsif (is_unop($op, 'null') and is_svop($op->first, 'gvsv') || is_padop($op->first, 'gvsv')) { }
13 221 elsif (is_unop($op, 'null') and is_unop_aux($op->first, 'multideref')) { }
2 219 elsif ($p{'eval'} and is_binop($op, 'concat')) { }
0 219 elsif ($p{'eval'} and is_unop_aux($op, 'multiconcat')) { }
0 219 elsif (is_op($op, 'aelemfast_lex')) { }
2 217 elsif (is_svop($op, 'aelemfast') or is_padop($op, 'aelemfast')) { }
427 0 44 if (find_aliased_tab($S, $op))
434 0 0 unless (@key)
436 0 0 if (is_op($xop, 'padsv')) { }
437 0 0 if (find_aliased_tab($S, $xop))
448 0 0 if (is_op($op, 'padhv')) { }
0 0 elsif (is_unop($op, 'rv2hv')) { }
452 0 0 if (is_op($op, 'padsv')) { }
0 0 elsif (is_svop($op, 'gv') or is_padop($op, 'gv')) { }
0 0 elsif (is_binop($op, 'helem') or is_binop($op, 'aelem')) { }
453 0 0 if (find_aliased_tab($S, $op))
462 0 0 if $ok
469 0 0 unless (@key)
471 0 0 if (is_op($xop, 'padsv')) { }
472 0 0 if (find_aliased_tab($S, $xop))
483 0 0 if (is_op($op, 'padav')) { }
0 0 elsif (is_unop($op, 'rv2av')) { }
487 0 0 if (is_op($op, 'padsv')) { }
0 0 elsif (is_svop($op, 'gv') or is_padop($op, 'gv')) { }
0 0 elsif (is_binop($op, 'helem') or is_binop($op, 'aelem')) { }
488 0 0 if (find_aliased_tab($S, $op))
497 0 0 if $ok
514 0 0 unless my(@terms) = parse_multiconcat($S, $op, "eval", 1)
518 0 0 unless $sv
523 0 2 is_padop($op, 'aelemfast') ? :
0 2 unless my $sv = is_padop($op, "aelemfast") ? $S->{'padlist'}[1]->ARRAYelt($op->padix) : $op->sv
525 0 2 unless $sv = $sv->object_2svref
526 0 2 unless $sv = ${$sv;}
530 217 0 if $p{'soft'}
539 5 0 if (is_op($op, 'padsv') or is_unop($op, 'padsv_store')) { }
0 0 elsif (is_unop($op, 'null')) { }
560 2 369 unless defined $var
565 417 0 if ($ss->{'operation'} eq 'select') { }
570 321 96 if $tab
580 0 380 if is_unop($op, "null")
584 150 230 if ($tab) { }
230 0 elsif (is_op($op, 'padsv')) { }
589 0 380 unless ($tab)
595 0 380 if ($p{'lvalue'} and is_unop($op, "rv2cv"))
600 86 294 if ($S->{'parsing_return'} and not $S->{'inside_aggregate'})
601 86 0 $S->{'operation'} eq 'select' ? :
602 85 1 unless $S->{'autogroup_fields'}{$ff}++
612 328 27 if $S->{'operation'} eq "select"
613 0 27 if ($S->{'tabs'} and keys %{$$S{"tabs"};} or $S->{'vars'} and keys %{$$S{"vars"};})
630 137 13 unless ($S->{'tabs'}{$tab})
644 0 218 if $S->{'vars'}{$var}
655 0 225 unless is_unop($op, "entersub")
657 9 216 unless is_pushmark_or_padrange($op)
660 1 215 unless $c and $c eq "attributes"
662 0 215 unless is_const($S, $op)
664 0 215 unless is_unop($op, "srefgen")
666 215 0 if is_unop($op1, "null")
667 0 215 unless is_op($op1, "padsv")
671 0 215 unless $attr
673 0 215 unless @attr
675 0 215 unless is_methop($op, "method_named") or is_svop($op, "method_named")
676 0 215 unless want_method($S, $op, "import")
677 12 203 if ($realname) { }
678 12 0 if (lc $attr[0] eq 'table') { }
684 1 202 if lc $attr[0] eq "table" and @attr > 1
705 0 103 unless $S->{'operation'} eq "select"
706 3 100 if $S->{'returns'}
711 15 225 if (exists $rv{'table'}) { }
109 116 elsif (exists $rv{'field'}) { }
16 100 elsif (exists $rv{'alias'}) { }
712 0 15 if defined $last_alias
717 9 100 if (defined $last_alias) { }
718 1 8 if $rv{'key_field'}
722 11 89 if ($rv{'key_field'}) { }
724 0 11 if ($S->{'gen_args'}{'kf_convert'})
735 3 13 if (defined $last_alias)
743 0 13 unless $rv{'alias'} =~ /^\w+$/u
744 1 12 if (lc $rv{'alias'} eq "distinct")
745 0 1 if @{$S->{'returns'};}
758 16 249 if (is_op($op, 'padsv')) { }
17 232 elsif (my $const = is_const($S, $op)) { }
100 132 elsif (is_pushmark_or_padrange($op)) { }
14 118 elsif (is_unop($op, 'ftsvtx')) { }
767 2 12 unless $r{'field'}
768 12 0 unless $S->{'gen_args'}{'prev_S'}
788 383 311 if (is_unop($op, 'entersub')) { }
0 311 elsif (is_unop($op, 'lc')) { }
0 311 elsif (is_unop($op, 'uc')) { }
1 310 elsif (is_unop($op, 'abs')) { }
55 255 elsif (is_unop($op, 'null')) { }
8 247 elsif (is_op($op, 'null')) { }
4 243 elsif (is_op($op, 'undef')) { }
15 228 elsif (is_unop($op, 'not')) { }
4 224 elsif (is_unop($op, 'defined')) { }
28 196 elsif (($placeholder) = get_value($S, $op, 'soft', 1)) { }
4 192 elsif (is_unop($op, 'backtick')) { }
36 156 elsif (is_binop($op)) { }
2 154 elsif (is_logop($op, 'or')) { }
2 152 elsif (is_logop($op, 'and')) { }
98 54 elsif (my($const, $sv) = is_const($S, $op)) { }
12 42 elsif (is_pvop($op, 'next')) { }
2 40 elsif (is_pmop($op, 'match')) { }
39 1 elsif (is_unop_aux($op, 'multideref')) { }
0 1 elsif (is_unop_aux($op, 'multiconcat')) { }
790 35 347 if defined $funcall
792 7 340 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
814 2 13 if (is_pmop($subop, 'match')) { }
818 7 6 if ($p{'not_after'}) { }
2 4 elsif ($with_not) { }
829 2 2 wantarray ? :
832 4 0 if not defined $placeholder and $S->{'gen_args'}{'inline'}
838 4 0 if $sql
844 0 2 unless $or
849 0 2 unless $and
853 55 43 if ($sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')) { }
869 5 7 if ($flavor eq 'oracle') { }
6 1 elsif ($flavor eq 'pg' or $flavor eq 'pglite') { }
870 1 4 unless $seq =~ /^\w+$/u
873 1 5 if $seq =~ /'/u
885 0 0 if ($c)
897 4 99 if ($p{'inline_placeholder'}) { }
898 0 4 unless defined $placeholder
918 9 7 if (my($const, $sv) = is_const($S, $op)) { }
4 3 elsif (my($val, $ok) = get_value($S, $op, 'soft', 1)) { }
931 5 1 if (my($const, $sv) = is_const($S, $op)) { }
1 0 elsif (my($val, $ok) = get_value($S, $op, 'eval', 1)) { }
946 83 0 if (is_svop($op, 'gv') or is_svop($op, 'gvsv')) { }
0 0 elsif (is_padop($op, 'gv') or is_padop($op, 'gvsv')) { }
954 0 83 unless is_null($op->sibling)
956 0 83 $gv_on_pad ? :
957 0 83 unless ($gv and $$gv)
960 81 2 if ($p{'get_name'} and $gv->isa("B::IV"))
962 0 81 if (ref $subref eq "REF" and ref $$subref eq "CODE")
967 0 83 unless $gv->isa("B::GV")
968 81 2 $p{'get_name'} ? :
970 0 0 if $p{'bailout'}
980 0 44 unless is_unop($sub, "entersub")
981 44 0 if is_unop($sub->first, "null")
982 0 44 unless is_pushmark_or_padrange($sub->first)
985 0 44 if is_null($rg)
987 1 43 if is_null($dbfetch)
988 0 43 unless is_null($dbfetch->sibling)
991 43 0 if ($] < 5.037) { }
992 6 37 unless is_unop($rg, "refgen") or is_unop($rg, "srefgen")
993 37 0 if is_unop($rg->first, "null")
998 0 37 if is_pushmark_or_padrange($codeop)
999 0 37 unless is_svop($codeop, "anoncode")
1001 0 37 if is_unop($dbfetch->first, "null")
1003 0 37 unless (get_gv_name($S, $dbfetch) // "") eq "subselect"
1014 0 6 unless $sql
1015 3 3 if (($S->{'gen_args'}{'flavor'} || '') eq 'oracle') { }
2 1 elsif ($opt{'select'}) { }
1017 0 3 if ($cast = $S->{'gen_args'}{'quirks'}{'oracle_table_func_cast'}{$fn})
1021 2 1 if $opt{'select'}
1036 0 10 unless @$list
1040 0 10 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' ? :
1045 7 23 if ((ref $val // '') =~ /SCALAR/u) { }
1052 0 0 $left =~ / not$/u ? :
0 10 if length $sql
1067 6 13 if (is_op($sub, 'padav')) { }
1 12 elsif (is_unop($sub, 'rv2av') and is_op($sub->first, 'padsv')) { }
3 9 elsif (is_listop($sub, 'anonlist') or is_unop($sub, 'srefgen') and is_unop($sub->first, 'null') and is_listop($sub->first->first, 'anonlist')) { }
1079 3 0 is_listop($sub, 'anonlist') ? :
1081 3 9 if is_pushmark_or_padrange($v)
1082 7 2 if (my($const, $sv) = is_const($S, $v)) { }
1083 7 0 if ($sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')) { }
1099 5 4 if ($codeop) { }
1104 0 7 unless $sql
1117 10 0 unless ($$cv)
1124 0 10 if ($gen_args{'prefix'}) { }
1132 2 5 if ($nret != 1 and not $p{'returns_dont_care'} and not $flags{'returns_dont_care'})
1143 12 0 if ($op->name eq "sassign" and is_listop($op->last, "list") and is_pushmark_or_padrange($op->last->first) and is_unop($op->last->first->sibling, "entersub"))
1150 6 6 if ($ok) { }
1 5 elsif ($val = is_const($S, $op->first)) { }
3 2 elsif (my $codeop = try_get_subselect($S, $op->first)) { }
2 0 elsif (is_unop($op->first, 'entersub') and my $sql = try_parse_funcall($S, $op->first, 'select', 0)) { }
1153 6 0 if $tab
1157 1 0 if $tab
1162 3 0 if $tab
1170 2 0 if ($tab)
1178 2 13 unless $S->{'operation'} eq "update"
1179 6 7 if (is_unop($op->first, 'srefgen') or is_listop($op->first, 'anonhash')) { }
1202 45 1130 if is_unop($op, "null")
1203 1 1174 if not is_null($op) and is_op($op, "null")
1204 391 784 if is_pushmark_or_padrange($op)
1212 11 0 if ($] < 5.037) { }
1214 0 11 unless is_unop($rg, "refgen") or is_unop($rg, "srefgen")
1215 11 0 if is_unop($rg->first, "null")
1220 0 11 if is_pushmark_or_padrange($codeop)
1221 0 11 unless is_svop($codeop, "anoncode")
1229 391 0 if (is_unop($op, "entersub"))
1231 44 347 if is_unop($op, "null")
1233 391 1175 if is_null($op)
1237 0 391 unless @args
1239 347 44 unless is_svop($op, "gv") or is_padop($op, "gv")
1241 0 44 unless defined $func
1242 6 38 if $p{'func_name_return'}
1243 9 35 if ($func =~ /^(union|intersect|except)$/u)
1244 0 9 if $p{'only_normal_funcs'}
1245 0 9 unless @args == 1 or @args == 2
1246 0 9 unless my $codeop = get_codeop($args[0])
1247 0 9 unless $S->{'operation'} eq "select"
1249 9 0 unless ($$cv)
1259 0 9 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' && $func eq 'except' ? :
1264 2 7 if (@args > 1)
1268 0 1 unless defined $r and $r eq ""
1272 1 34 if ($p{'union_or_friends'})
1275 2 32 if ($func eq 'subselect') { }
6 26 elsif ($func eq 'sql') { }
1276 0 2 if $p{'only_normal_funcs'}
1277 0 2 unless @args == 1
1278 0 2 unless my $codeop = get_codeop($args[0])
1282 0 6 if $p{'only_normal_funcs'}
1283 0 6 unless @args == 1
1286 0 6 unless $sql = parse_simple_eval($S, $args[0])
1289 4 22 if ($S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1293 1 25 if (not $S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1300 4 22 if ($S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1305 1 3 if ($S->{'gen_args'}{'flavor'} || '') eq "oracle" and lc $func eq "sysdate" and not @terms
1307 3 22 if (lc $func eq "extract" and @terms == 2)
1308 2 1 if (UNIVERSAL::isa($terms[0], "DBIx::Perlish::Placeholder"))
1313 2 23 if (lc $func eq "cast" and @terms == 2)
1314 2 0 if UNIVERSAL::isa($terms[1], "DBIx::Perlish::Placeholder")
1326 0 6 unless (is_listop($hashop, "anonhash"))
1339 6 16 if is_pushmark_or_padrange($c)
1341 10 6 if ($want_const) { }
1343 2 8 if (is_op($c, 'padhv')) { }
2 12 elsif (is_unop($c, 'rv2hv') and is_op($c->first, 'padsv')) { }
1349 4 6 if ($hash) { }
1369 6 0 unless (is_unop($op, "padsv_store"))
1374 5 1 if (is_op($op, 'padsv') or is_unop($op, 'padsv_store')) { }
0 1 elsif (is_unop($op, 'entersub')) { }
1379 0 0 if is_unop($op, "null")
1380 0 0 if is_pushmark_or_padrange($op)
1381 0 0 if is_unop($op, "rv2cv")
1383 0 0 if defined $gv
1385 2 4 unless $tab
1421 11 27 if ($op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name} and is_unop($op->first, "entersub"))
1429 11 0 if ($op->first->private & 128) { }
1436 11 0 if ($is_lvalue)
1439 1 10 unless $S->{'operation'} eq "update"
1441 1 9 if $S->{'in_term'}
1445 0 9 if (is_unop_aux($op, 'multiconcat')) { }
1448 0 0 unless $set
1455 0 9 if ($op->name eq 'pow') { }
1457 0 0 if ($flavor eq 'pg' or $flavor eq 'pglite') { }
1468 13 227 if (is_binop($op, "concat") or is_unop_aux($op, "multiconcat"))
1470 11 0 if ($c)
1475 175 52 if ($sqlop = $binop_map{$op->name}) { }
24 28 elsif ($op->name eq 'lt') { }
27 1 elsif ($op->name eq 'sassign' or $op->name eq 'padsv_store') { }
1478 146 27 if ($sqlop eq "=" or $sqlop eq "<>")
1479 8 138 $sqlop eq '<>' ? :
1480 4 142 if ($right eq 'null') { }
4 138 elsif ($left eq 'null') { }
1486 2 163 if ($op->name eq "pow")
1488 1 1 if ($flavor eq 'pg' or $flavor eq 'pglite') { }
1496 19 5 if (is_unop($op->last, "negate"))
1498 17 0 if $r
1521 0 0 if $opt{'skip_first'}
1525 0 0 if ($l >= 0)
1529 0 0 unless my $op = shift @args
1530 0 0 if ($opt{'eval'}) { }
1532 0 0 unless $ok
1547 33 50 if (is_binop($op, 'concat')) { }
26 24 elsif ($str = is_const($S, $op)) { }
4 20 elsif (is_unop($op, 'null')) { }
2 18 elsif (is_op($op, 'null')) { }
0 18 elsif (is_binop($op, 'helem')) { }
6 12 elsif (is_unop($op, 'entersub')) { }
10 2 elsif (is_op($op, 'padsv')) { }
0 2 elsif (is_unop_aux($op, 'multiconcat')) { }
2 0 elsif (is_unop_aux($op, 'multideref')) { }
1549 0 31 unless @t
1552 0 29 unless @t
1560 0 4 unless @t
1568 0 0 unless $f
1570 0 0 unless is_unop($op, "rv2hv")
1572 0 0 unless is_op($op, "padsv")
1574 0 0 unless $tab
1578 0 6 unless $f
1582 0 10 unless $tab
1586 0 0 unless @subterms
1588 0 0 if (defined $st->{'str'}) { }
1592 0 0 unless @t
1601 62 11 if $opt{'terms_only'}
1608 14 16 if (exists $t->{'str'}) { }
6 10 elsif (exists $t->{'field'}) { }
1611 4 2 if (length $str)
1615 0 6 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
1623 0 10 unless $t2
1624 0 10 unless defined $t2->{'str'}
1625 0 10 unless $t2->{'str'} =~ s/^->(\w+)//u
1627 9 1 if (length $str)
1631 0 10 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
1639 10 1 if (length $str)
1644 5 6 if (lc($S->{'gen_args'}{'flavor'} || '') eq 'mysql') { }
1656 203 10 if $tab
1664 0 8 if (is_unop($op, 'regcreset')) { }
0 8 elsif (is_binop($op, 'concat')) { }
2 6 elsif (is_svop($op, 'const')) { }
4 2 elsif (my($rx, $ok) = get_value($S, $op, 'soft', 1)) { }
2 0 elsif (is_unop($op, 'null')) { }
1665 0 0 if (is_unop($op->first, 'null')) { }
1669 0 0 unless is_pushmark_or_padrange($rxop)
1686 1 3 unless $rx
1693 4 2 unless is_pushmark_or_padrange($rxop)
1708 4 16 unless (defined $like)
1710 0 4 unless $logop and is_logop($logop, "regcomp")
1713 1 3 unless defined $like
1725 0 19 if ($flavor eq 'mysql') { }
18 1 elsif ($flavor eq 'pg' or $flavor eq 'pglite') { }
0 1 elsif ($flavor eq 'sqlite') { }
1727 0 0 if not $case and $can_like
1731 0 0 $neg ? :
0 0 $case ? :
1739 18 0 if ($can_like)
1740 2 16 if $case
1745 0 0 $neg ? :
0 0 $case ? :
1766 0 0 if ($case) { }
1780 0 0 $neg ? :
1783 1 0 if ($case)
1787 0 1 if $like =~ /(?
1793 19 0 if ($flavor eq 'pg' or $flavor eq 'oracle') { }
1796 3 16 if $like =~ s/!/!!/gu
1797 4 15 if $like =~ s/%/!%/gu
1798 3 16 if $like =~ s/_/!_/gu
1799 6 13 if $need_esc
1807 5 14 unless $like =~ s/^\^//u
1808 18 1 unless $like =~ s/\$$//u
1809 2 17 $neg ? :
1836 0 37 unless 2 <= @op and 3 >= @op and is_pushmark_or_padrange($op[0]) and is_binop($op[1])
1842 6 31 if ($op[1]->name eq "le")
1844 1 5 unless @op == 2
1847 0 5 unless is_binop($op[1])
1851 4 32 if (2 == @op) { }
1855 1 3 unless exists $join_map{$op[1]->name} and $join_map{$op[1]->name} eq "inner"
1859 1 31 unless exists $join_map{$op[1]->name}
1860 1 30 unless is_unop($op[2]) and $op[2]->name eq "entersub"
1867 1 32 unless $tab[0] = find_aliased_tab($S, $op[1]->first)
1869 1 31 unless $tab[1] = find_aliased_tab($S, $op[1]->last)
1874 30 1 if ($op[2])
1876 1 29 unless $codeop
1880 29 0 unless ($$cv)
1898 4 25 if scalar grep({@{$S2->{$_};};} "group_by", "order_by", "autogroup_by", "ret_values", "joins") or $S2->{'alias'} ne $S->{'alias'}
1900 0 25 unless $S2->{'where'}
22 3 if (@{[] unless $S2->{'where'};}) { }
1901 1 2 unless $jointype eq "inner"
1918 6 7 if is_unop($op, "null")
1919 1 6 unless is_unop($op, "flop")
1921 0 6 unless is_unop($op, "flip")
1923 0 6 unless is_logop($op, "range")
1931 9 10 if (is_op($op->first->sibling, 'last')) { }
4 6 elsif (my($val, $ok) = get_value($S, $op->first, 'soft', 1)) { }
1933 2 7 unless $S->{'operation'} eq "select"
1935 1 4 unless defined $to
1951 10 4 if (my($val, $ok) = get_value($S, $op->first, 'soft', 1)) { }
1963 9 5 if ($val) { }
1967 1 8 if (is_binop($op) or $op->name eq 'sassign') { }
6 2 elsif (is_listop($op, 'return')) { }
2 0 elsif (is_listop($op, 'leave') or is_listop($op, 'scope')) { }
1989 1 2 if (is_listop($op, 'list')) { }
1995 1 4 if is_pushmark_or_padrange($op)
1998 0 4 $S->{'operation'} eq 'delete' || $S->{'operation'} eq 'update' ? :
2015 6 3 ref $label ? :
2018 6 3 if (is_listop($op, 'list') or is_listop($op, 'sort')) { }
1 2 elsif (is_unop($op, 'null')) { }
2031 6 20 if is_pushmark_or_padrange($op)
2034 14 6 unless $term = is_const($S, $op)
2036 2 18 if ($term =~ /^asc/iu) { }
7 11 elsif ($term =~ /^desc/iu) { }
2042 6 5 if ($order) { }
2059 6 5 if (not $sv and is_op($op, "padsv"))
2060 2 4 if (find_aliased_tab($S, $op))
2066 2 7 unless $sv and $const and $const =~ /^\d+$/u and $const > 0
2082 0 6 if ($] >= 5.037) { }
2083 0 0 unless $op->name eq "padsv_store"
2086 1 5 unless $op->name eq "sassign"
2091 0 4 if ($] >= 5.037) { }
2093 0 0 unless defined $varn
2096 1 3 unless is_op($op->last, "padsv") and $varn = padname($S, $op->last, "no_fakes", 1)
2153 6 22 if (not $label and lc $lop->label eq "table")
2156 1 27 unless $label
2159 27 0 if ($label->{'handler'}) { }
2172 1 4 unless $S->{'operation'} eq "update"
2179 1 446 $S->{'this_is_having'} ? :
2187 0 2546 if $S->{'seen'}{$$op}++
2189 19 2527 if ($S->{'skipnext'})
2193 9 2518 if (is_listop($op, 'list')) { }
369 2149 elsif (is_listop($op, 'lineseq')) { }
8 2141 elsif (is_binop($op, 'leaveloop') and is_loop($op->first, 'enterloop') and is_listop($op->last, 'lineseq')) { }
97 2044 elsif (is_listop($op, 'return')) { }
214 1830 elsif (is_binop($op) or is_unop($op, 'padsv_store')) { }
6 1824 elsif (is_unop($op, 'not')) { }
17 1807 elsif (is_logop($op, 'or')) { }
12 1795 elsif (is_logop($op, 'and')) { }
375 1420 elsif (is_unop($op, 'leavesub')) { }
224 1196 elsif (is_unop($op, 'null')) { }
2 1194 elsif (is_unop($op, 'defined')) { }
8 1186 elsif (is_op($op, 'padsv')) { }
2 1184 elsif (is_op($op, 'last')) { }
9 1175 elsif (is_pushmark_or_padrange($op)) { }
2 1173 elsif (is_op($op, 'enter')) { }
195 978 elsif (is_op($op, 'null')) { }
684 294 elsif (is_cop($op, 'nextstate')) { }
0 294 elsif (is_cop($op)) { }
213 81 elsif (is_unop($op, 'entersub')) { }
16 65 elsif (is_pmop($op, 'match')) { }
40 25 elsif ($op->name eq 'join') { }
3 22 elsif ($op->name eq 'sort') { }
1 21 elsif (is_unop($op, 'postinc')) { }
0 21 elsif (is_unop($op, 'postdec')) { }
2 19 elsif (is_unop($op, 'preinc')) { }
2 17 elsif (is_unop($op, 'predec')) { }
17 0 elsif (is_listop($op, 'exec')) { }
0 0 elsif (is_unop_aux($op, 'multiconcat')) { }
2210 4 7 if $or
2214 3 8 if $and
2228 2 0 unless $S->{'operation'} eq "select"
2241 28 656 if ($op->label)
2277 0 375 if ($DEVEL)
2289 375 0 if $root->PADLIST->can("id")
2324 48 327 $args{'prev_S'} ? :
2325 11 364 $args{'prefix'} ? :