Branch Coverage

blib/lib/DBIx/Perlish/Parse.pm
Criterion Covered Total %
branch 690 1006 68.5


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 36694 16472 unless ref $op eq $optype
37 1885 14587 unless $name
45 364 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 52 78 if (not $return) { }
52 26 elsif ($return =~ /^\w+$/u) { }
88 130 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')) { }
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
583 150 230 if ($tab) { }
230 0 elsif (is_op($op, 'padsv')) { }
588 0 380 unless ($tab)
594 0 380 if ($p{'lvalue'} and is_unop($op, 'rv2cv'))
599 86 294 if ($S->{'parsing_return'} and not $S->{'inside_aggregate'})
600 86 0 $S->{'operation'} eq 'select' ? :
601 85 1 unless $S->{'autogroup_fields'}{$ff}++
611 328 27 if $S->{'operation'} eq 'select'
612 0 27 if ($S->{'tabs'} and keys %{$$S{'tabs'};} or $S->{'vars'} and keys %{$$S{'vars'};})
629 137 13 unless ($S->{'tabs'}{$tab})
643 0 218 if $S->{'vars'}{$var}
654 0 225 unless is_unop($op, 'entersub')
656 9 216 unless is_pushmark_or_padrange($op)
659 1 215 unless $c and $c eq 'attributes'
661 0 215 unless is_const($S, $op)
663 0 215 unless is_unop($op, 'srefgen')
665 215 0 if is_unop($op1, 'null')
666 0 215 unless is_op($op1, 'padsv')
670 0 215 unless $attr
672 0 215 unless @attr
674 0 215 unless is_methop($op, 'method_named') or is_svop($op, 'method_named')
675 0 215 unless want_method($S, $op, 'import')
676 12 203 if ($realname) { }
677 12 0 if (lc $attr[0] eq 'table') { }
683 1 202 if lc $attr[0] eq 'table' and @attr > 1
704 0 103 unless $S->{'operation'} eq 'select'
705 3 100 if $S->{'returns'}
710 15 225 if (exists $rv{'table'}) { }
109 116 elsif (exists $rv{'field'}) { }
16 100 elsif (exists $rv{'alias'}) { }
711 0 15 if defined $last_alias
716 9 100 if (defined $last_alias) { }
717 1 8 if $rv{'key_field'}
721 11 89 if ($rv{'key_field'}) { }
723 0 11 if ($S->{'gen_args'}{'kf_convert'})
734 3 13 if (defined $last_alias)
742 0 13 unless $rv{'alias'} =~ /^\w+$/u
743 1 12 if (lc $rv{'alias'} eq 'distinct')
744 0 1 if @{$S->{'returns'};}
757 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')) { }
766 2 12 unless $r{'field'}
767 12 0 unless $S->{'gen_args'}{'prev_S'}
787 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')) { }
789 35 347 if defined $funcall
791 7 340 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
813 2 13 if (is_pmop($subop, 'match')) { }
817 7 6 if ($p{'not_after'}) { }
2 4 elsif ($with_not) { }
828 2 2 wantarray ? :
831 4 0 if not defined $placeholder and $S->{'gen_args'}{'inline'}
837 4 0 if $sql
843 0 2 unless $or
848 0 2 unless $and
852 55 43 if ($sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')) { }
868 5 7 if ($flavor eq 'oracle') { }
6 1 elsif ($flavor eq 'pg' or $flavor eq 'pglite') { }
869 1 4 unless $seq =~ /^\w+$/u
872 1 5 if $seq =~ /'/u
884 0 0 if ($c)
896 4 99 if ($p{'inline_placeholder'}) { }
897 0 4 unless defined $placeholder
917 9 7 if (my($const, $sv) = is_const($S, $op)) { }
4 3 elsif (my($val, $ok) = get_value($S, $op, 'soft', 1)) { }
930 5 1 if (my($const, $sv) = is_const($S, $op)) { }
1 0 elsif (my($val, $ok) = get_value($S, $op, 'eval', 1)) { }
945 83 0 if (is_svop($op, 'gv') or is_svop($op, 'gvsv')) { }
0 0 elsif (is_padop($op, 'gv') or is_padop($op, 'gvsv')) { }
953 0 83 unless is_null($op->sibling)
955 0 83 $gv_on_pad ? :
956 0 83 unless ($gv and $$gv)
959 81 2 if ($p{'get_name'} and $gv->isa('B::IV'))
961 0 81 if (ref $subref eq 'REF' and ref $$subref eq 'CODE')
966 0 83 unless $gv->isa('B::GV')
967 81 2 $p{'get_name'} ? :
969 0 0 if $p{'bailout'}
979 0 44 unless is_unop($sub, 'entersub')
980 44 0 if is_unop($sub->first, 'null')
981 0 44 unless is_pushmark_or_padrange($sub->first)
984 0 44 if is_null($rg)
986 1 43 if is_null($dbfetch)
987 0 43 unless is_null($dbfetch->sibling)
989 6 37 unless is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
990 37 0 if is_unop($rg->first, 'null')
992 0 37 if is_pushmark_or_padrange($codeop)
993 0 37 unless is_svop($codeop, 'anoncode')
995 0 37 if is_unop($dbfetch->first, 'null')
997 0 37 unless (get_gv_name($S, $dbfetch) // '') eq 'subselect'
1008 0 6 unless $sql
1009 3 3 if (($S->{'gen_args'}{'flavor'} || '') eq 'oracle') { }
2 1 elsif ($opt{'select'}) { }
1011 0 3 if ($cast = $S->{'gen_args'}{'quirks'}{'oracle_table_func_cast'}{$fn})
1015 2 1 if $opt{'select'}
1030 0 10 unless @$list
1034 0 10 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' ? :
1039 7 23 if ((ref $val // '') =~ /SCALAR/u) { }
1046 0 0 $left =~ / not$/u ? :
0 10 if length $sql
1061 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')) { }
1073 3 0 is_listop($sub, 'anonlist') ? :
1075 3 9 if is_pushmark_or_padrange($v)
1076 7 2 if (my($const, $sv) = is_const($S, $v)) { }
1077 7 0 if ($sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')) { }
1093 5 4 if ($codeop) { }
1098 0 7 unless $sql
1111 10 0 unless ($$cv)
1118 0 10 if ($gen_args{'prefix'}) { }
1126 2 5 if ($nret != 1 and not $p{'returns_dont_care'} and not $flags{'returns_dont_care'})
1137 12 0 if (is_listop($op->last, 'list') and is_pushmark_or_padrange($op->last->first) and is_unop($op->last->first->sibling, 'entersub'))
1142 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)) { }
1145 6 0 if $tab
1149 1 0 if $tab
1154 3 0 if $tab
1162 2 0 if ($tab)
1170 2 13 unless $S->{'operation'} eq 'update'
1171 6 7 if (is_unop($op->first, 'srefgen') or is_listop($op->first, 'anonhash')) { }
1194 45 1130 if is_unop($op, 'null')
1195 1 1174 if not is_null($op) and is_op($op, 'null')
1196 391 784 if is_pushmark_or_padrange($op)
1204 391 0 if (is_unop($op, 'entersub'))
1206 44 347 if is_unop($op, 'null')
1208 391 1175 if is_null($op)
1212 0 391 unless @args
1214 347 44 unless is_svop($op, 'gv') or is_padop($op, 'gv')
1216 0 44 unless defined $func
1217 6 38 if $p{'func_name_return'}
1218 9 35 if ($func =~ /^(union|intersect|except)$/u)
1219 0 9 if $p{'only_normal_funcs'}
1220 0 9 unless @args == 1 or @args == 2
1222 0 9 unless is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1223 9 0 if is_unop($rg->first, 'null')
1225 0 9 if is_pushmark_or_padrange($codeop)
1226 0 9 unless is_svop($codeop, 'anoncode')
1227 0 9 unless $S->{'operation'} eq 'select'
1229 9 0 unless ($$cv)
1239 0 9 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' && $func eq 'except' ? :
1244 2 7 if (@args > 1)
1248 0 1 unless defined $r and $r eq ''
1252 1 34 if ($p{'union_or_friends'})
1255 2 32 if ($func eq 'subselect') { }
6 26 elsif ($func eq 'sql') { }
1256 0 2 if $p{'only_normal_funcs'}
1257 0 2 unless @args == 1
1259 0 2 unless is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1260 2 0 if is_unop($rg->first, 'null')
1262 0 2 if is_pushmark_or_padrange($codeop)
1263 0 2 unless is_svop($codeop, 'anoncode')
1267 0 6 if $p{'only_normal_funcs'}
1268 0 6 unless @args == 1
1271 0 6 unless $sql = parse_simple_eval($S, $args[0])
1274 4 22 if ($S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1278 1 25 if (not $S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1285 4 22 if ($S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1290 1 3 if ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' and lc $func eq 'sysdate' and not @terms
1292 3 22 if (lc $func eq 'extract' and @terms == 2)
1293 2 1 if (UNIVERSAL::isa($terms[0], 'DBIx::Perlish::Placeholder'))
1298 2 23 if (lc $func eq 'cast' and @terms == 2)
1299 2 0 if UNIVERSAL::isa($terms[1], 'DBIx::Perlish::Placeholder')
1311 0 6 unless (is_listop($hashop, 'anonhash'))
1324 6 16 if is_pushmark_or_padrange($c)
1326 10 6 if ($want_const) { }
1328 2 8 if (is_op($c, 'padhv')) { }
2 12 elsif (is_unop($c, 'rv2hv') and is_op($c->first, 'padsv')) { }
1334 4 6 if ($hash) { }
1358 5 1 if (is_op($op, 'padsv')) { }
0 1 elsif (is_unop($op, 'entersub')) { }
1363 0 0 if is_unop($op, 'null')
1364 0 0 if is_pushmark_or_padrange($op)
1365 0 0 if is_unop($op, 'rv2cv')
1367 0 0 if defined $gv
1369 2 4 unless $tab
1405 11 27 if ($op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name} and is_unop($op->first, 'entersub'))
1413 11 0 if ($op->first->private & 128) { }
1420 11 0 if ($is_lvalue)
1423 1 10 unless $S->{'operation'} eq 'update'
1425 1 9 if $S->{'in_term'}
1429 0 9 if (is_unop_aux($op, 'multiconcat')) { }
1432 0 0 unless $set
1439 0 9 if ($op->name eq 'pow') { }
1441 0 0 if ($flavor eq 'pg' or $flavor eq 'pglite') { }
1452 13 227 if (is_binop($op, 'concat') or is_unop_aux($op, 'multiconcat'))
1454 11 0 if ($c)
1459 175 52 if ($sqlop = $binop_map{$op->name}) { }
24 28 elsif ($op->name eq 'lt') { }
27 1 elsif ($op->name eq 'sassign') { }
1462 146 27 if ($sqlop eq '=' or $sqlop eq '<>')
1463 8 138 $sqlop eq '<>' ? :
1464 4 142 if ($right eq 'null') { }
4 138 elsif ($left eq 'null') { }
1470 2 163 if ($op->name eq 'pow')
1472 1 1 if ($flavor eq 'pg' or $flavor eq 'pglite') { }
1480 19 5 if (is_unop($op->last, 'negate'))
1482 17 0 if $r
1505 0 0 if $opt{'skip_first'}
1509 0 0 if ($l >= 0)
1513 0 0 unless my $op = shift @args
1514 0 0 if ($opt{'eval'}) { }
1516 0 0 unless $ok
1531 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')) { }
1533 0 31 unless @t
1536 0 29 unless @t
1544 0 4 unless @t
1552 0 0 unless $f
1554 0 0 unless is_unop($op, 'rv2hv')
1556 0 0 unless is_op($op, 'padsv')
1558 0 0 unless $tab
1562 0 6 unless $f
1566 0 10 unless $tab
1570 0 0 unless @subterms
1572 0 0 if (defined $st->{'str'}) { }
1576 0 0 unless @t
1585 62 11 if $opt{'terms_only'}
1592 14 16 if (exists $t->{'str'}) { }
6 10 elsif (exists $t->{'field'}) { }
1595 4 2 if (length $str)
1599 0 6 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
1607 0 10 unless $t2
1608 0 10 unless defined $t2->{'str'}
1609 0 10 unless $t2->{'str'} =~ s/^->(\w+)//u
1611 9 1 if (length $str)
1615 0 10 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
1623 10 1 if (length $str)
1628 5 6 if (lc($S->{'gen_args'}{'flavor'} || '') eq 'mysql') { }
1640 203 10 if $tab
1648 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')) { }
1649 0 0 if (is_unop($op->first, 'null')) { }
1653 0 0 unless is_pushmark_or_padrange($rxop)
1670 1 3 unless $rx
1677 4 2 unless is_pushmark_or_padrange($rxop)
1692 4 16 unless (defined $like)
1694 0 4 unless $logop and is_logop($logop, 'regcomp')
1697 1 3 unless defined $like
1709 0 19 if ($flavor eq 'mysql') { }
18 1 elsif ($flavor eq 'pg' or $flavor eq 'pglite') { }
0 1 elsif ($flavor eq 'sqlite') { }
1711 0 0 if not $case and $can_like
1715 0 0 $neg ? :
0 0 $case ? :
1723 18 0 if ($can_like)
1724 2 16 if $case
1729 0 0 $neg ? :
0 0 $case ? :
1750 0 0 if ($case) { }
1764 0 0 $neg ? :
1767 1 0 if ($case)
1771 0 1 if $like =~ /(?
1777 19 0 if ($flavor eq 'pg' or $flavor eq 'oracle') { }
1780 3 16 if $like =~ s/!/!!/gu
1781 4 15 if $like =~ s/%/!%/gu
1782 3 16 if $like =~ s/_/!_/gu
1783 6 13 if $need_esc
1791 5 14 unless $like =~ s/^\^//u
1792 18 1 unless $like =~ s/\$$//u
1793 2 17 $neg ? :
1820 0 37 unless 2 <= @op and 3 >= @op and is_pushmark_or_padrange($op[0]) and is_binop($op[1])
1826 6 31 if ($op[1]->name eq 'le')
1828 1 5 unless @op == 2
1831 0 5 unless is_binop($op[1])
1835 4 32 if (2 == @op) { }
1839 1 3 unless exists $join_map{$op[1]->name} and $join_map{$op[1]->name} eq 'inner'
1843 1 31 unless exists $join_map{$op[1]->name}
1844 1 30 unless is_unop($op[2]) and $op[2]->name eq 'entersub'
1851 1 32 unless $tab[0] = find_aliased_tab($S, $op[1]->first)
1853 1 31 unless $tab[1] = find_aliased_tab($S, $op[1]->last)
1858 30 1 if ($op[2])
1860 1 29 unless $codeop
1864 29 0 unless ($$cv)
1882 4 25 if scalar grep({@{$S2->{$_};};} 'group_by', 'order_by', 'autogroup_by', 'ret_values', 'joins') or $S2->{'alias'} ne $S->{'alias'}
1884 0 25 unless $S2->{'where'}
22 3 if (@{[] unless $S2->{'where'};}) { }
1885 1 2 unless $jointype eq 'inner'
1902 6 7 if is_unop($op, 'null')
1903 1 6 unless is_unop($op, 'flop')
1905 0 6 unless is_unop($op, 'flip')
1907 0 6 unless is_logop($op, 'range')
1915 9 10 if (is_op($op->first->sibling, 'last')) { }
4 6 elsif (my($val, $ok) = get_value($S, $op->first, 'soft', 1)) { }
1917 2 7 unless $S->{'operation'} eq 'select'
1919 1 4 unless defined $to
1935 10 4 if (my($val, $ok) = get_value($S, $op->first, 'soft', 1)) { }
1947 9 5 if ($val) { }
1951 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')) { }
1973 1 2 if (is_listop($op, 'list')) { }
1979 1 4 if is_pushmark_or_padrange($op)
1982 0 4 $S->{'operation'} eq 'delete' || $S->{'operation'} eq 'update' ? :
1999 6 3 ref $label ? :
2002 6 3 if (is_listop($op, 'list') or is_listop($op, 'sort')) { }
1 2 elsif (is_unop($op, 'null')) { }
2015 6 20 if is_pushmark_or_padrange($op)
2018 14 6 unless $term = is_const($S, $op)
2020 2 18 if ($term =~ /^asc/iu) { }
7 11 elsif ($term =~ /^desc/iu) { }
2026 6 5 if ($order) { }
2043 6 5 if (not $sv and is_op($op, 'padsv'))
2044 2 4 if (find_aliased_tab($S, $op))
2050 2 7 unless $sv and $const and $const =~ /^\d+$/u and $const > 0
2066 1 5 unless $op->name eq 'sassign'
2070 1 3 unless is_op($op->last, 'padsv') and $varn = padname($S, $op->last, 'no_fakes', 1)
2126 6 22 if (not $label and lc $lop->label eq 'table')
2129 1 27 unless $label
2132 27 0 if ($label->{'handler'}) { }
2145 1 4 unless $S->{'operation'} eq 'update'
2152 1 446 $S->{'this_is_having'} ? :
2160 0 2546 if $S->{'seen'}{$$op}++
2162 19 2527 if ($S->{'skipnext'})
2166 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)) { }
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')) { }
2183 4 7 if $or
2187 3 8 if $and
2201 2 0 unless $S->{'operation'} eq 'select'
2214 28 656 if ($op->label)
2250 0 375 if ($DEVEL)
2262 375 0 if $root->PADLIST->can('id')
2292 48 327 $args{'prev_S'} ? :
2293 11 364 $args{'prefix'} ? :