Branch Coverage

blib/lib/DBIx/Perlish/Parse.pm
Criterion Covered Total %
branch 691 1008 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 36498 16372 unless ref $op eq $optype
37 1871 14501 unless $name
45 364 0 unless 'DBIx::Perlish::Parse'->can("is_$optype")
66 573 970 unless is_svop($op, 'const')
68 0 970 unless ($$sv)
71 124 846 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 378 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 1027 unless (is_unop($op, $n))
115 0 378 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 589 2 if (is_methop($op, 'method_named')) { }
0 2 elsif (is_svop($op, 'method_named')) { }
151 0 2 unless $r
154 0 589 unless ($$sv)
167 0 551 unless $c
180 591 0 if ($padname and not $padname->isa('B::SPECIAL')) { }
181 1 590 if $p{'no_fakes'} and $padname->FLAGS & 16777216
182 2 588 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 58 0 unless (defined $store->{'padlist'}[$index])
262 3 55 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 50 unless my $sv = shift @items
307 0 69 if ($access == 0)
311 51 18 unless ($ref)
312 46 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 42 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 46 18 $access == 12 || $access == 9 || $access == 10 || $access == 8 || $access == 11 || $access == 13 ? :
360 64 0 if ($index != 0)
361 52 12 if ($index == 16) { }
12 0 elsif ($index == 32) { }
0 0 elsif ($index == 48) { }
362 42 10 ref $ptr ? :
366 0 0 ref $ptr ? :
369 33 31 if ref($ref) =~ /REF|SCALAR/u
370 54 10 if ref($key) =~ /REF|SCALAR/u
372 0 64 unless $reftype eq ref $ref
374 18 46 if ($reftype eq 'ARRAY') { }
380 2 1 if (not defined $ref and $access == 2 || $access == 3 || $access == 4 || $access == 9 || $access == 10 || $access == 11)
392 0 62 if ($index == 0 or $index & 64)
399 43 0 unless @ret
402 0 45 unless 1 == @ret
413 2 2 if ($rv = is_const($S, $op)) { }
416 0 2 unless $ok
428 44 232 if (is_op($op, 'padsv')) { }
0 232 elsif (is_binop($op, 'helem')) { }
0 232 elsif (is_binop($op, 'aelem')) { }
1 231 elsif (is_svop($op, 'gvsv') or is_padop($op, 'gvsv')) { }
1 230 elsif (is_unop($op, 'null') and is_svop($op->first, 'gvsv') || is_padop($op->first, 'gvsv')) { }
11 219 elsif (is_unop($op, 'null') and is_unop_aux($op->first, 'multideref')) { }
2 217 elsif ($p{'eval'} and is_binop($op, 'concat')) { }
0 217 elsif ($p{'eval'} and is_unop_aux($op, 'multiconcat')) { }
0 217 elsif (is_op($op, 'aelemfast_lex')) { }
2 215 elsif (is_svop($op, 'aelemfast') or is_padop($op, 'aelemfast')) { }
429 0 44 if (find_aliased_tab($S, $op))
436 0 0 unless (@key)
438 0 0 if (is_op($xop, 'padsv')) { }
439 0 0 if (find_aliased_tab($S, $xop))
450 0 0 if (is_op($op, 'padhv')) { }
0 0 elsif (is_unop($op, 'rv2hv')) { }
454 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')) { }
455 0 0 if (find_aliased_tab($S, $op))
464 0 0 if $ok
471 0 0 unless (@key)
473 0 0 if (is_op($xop, 'padsv')) { }
474 0 0 if (find_aliased_tab($S, $xop))
485 0 0 if (is_op($op, 'padav')) { }
0 0 elsif (is_unop($op, 'rv2av')) { }
489 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')) { }
490 0 0 if (find_aliased_tab($S, $op))
499 0 0 if $ok
516 0 0 unless my(@terms) = parse_multiconcat($S, $op, 'eval', 1)
520 0 0 unless $sv
525 0 2 is_padop($op, 'aelemfast') ? :
0 2 unless my $sv = is_padop($op, 'aelemfast') ? $S->{'padlist'}[1]->ARRAYelt($op->padix) : $op->sv
527 0 2 unless $sv = $sv->object_2svref
528 0 2 unless $sv = ${$sv;}
532 215 0 if $p{'soft'}
541 5 0 if (is_op($op, 'padsv')) { }
0 0 elsif (is_unop($op, 'null')) { }
562 2 367 unless defined $var
567 415 0 if ($ss->{'operation'} eq 'select') { }
572 319 96 if $tab
585 150 228 if ($tab) { }
228 0 elsif (is_op($op, 'padsv')) { }
590 0 378 unless ($tab)
596 0 378 if ($p{'lvalue'} and is_unop($op, 'rv2cv'))
601 86 292 if ($S->{'parsing_return'} and not $S->{'inside_aggregate'})
602 86 0 $S->{'operation'} eq 'select' ? :
603 85 1 unless $S->{'autogroup_fields'}{$ff}++
613 326 27 if $S->{'operation'} eq 'select'
614 0 27 if ($S->{'tabs'} and keys %{$$S{'tabs'};} or $S->{'vars'} and keys %{$$S{'vars'};})
631 137 13 unless ($S->{'tabs'}{$tab})
645 0 216 if $S->{'vars'}{$var}
656 0 223 unless is_unop($op, 'entersub')
658 9 214 unless is_pushmark_or_padrange($op)
661 1 213 unless $c and $c eq 'attributes'
663 0 213 unless is_const($S, $op)
665 0 213 unless is_unop($op, 'srefgen')
667 213 0 if is_unop($op1, 'null')
668 0 213 unless is_op($op1, 'padsv')
672 0 213 unless $attr
674 0 213 unless @attr
676 0 213 unless is_methop($op, 'method_named') or is_svop($op, 'method_named')
677 0 213 unless want_method($S, $op, 'import')
678 10 203 if ($realname) { }
679 10 0 if (lc $attr[0] eq 'table') { }
685 1 202 if lc $attr[0] eq 'table' and @attr > 1
706 0 103 unless $S->{'operation'} eq 'select'
707 3 100 if $S->{'returns'}
712 15 225 if (exists $rv{'table'}) { }
109 116 elsif (exists $rv{'field'}) { }
16 100 elsif (exists $rv{'alias'}) { }
713 0 15 if defined $last_alias
718 9 100 if (defined $last_alias) { }
719 1 8 if $rv{'key_field'}
723 11 89 if ($rv{'key_field'}) { }
725 0 11 if ($S->{'gen_args'}{'kf_convert'})
736 3 13 if (defined $last_alias)
744 0 13 unless $rv{'alias'} =~ /^\w+$/u
745 1 12 if (lc $rv{'alias'} eq 'distinct')
746 0 1 if @{$S->{'returns'};}
759 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')) { }
768 2 12 unless $r{'field'}
769 12 0 unless $S->{'gen_args'}{'prev_S'}
789 381 307 if (is_unop($op, 'entersub')) { }
0 307 elsif (is_unop($op, 'lc')) { }
0 307 elsif (is_unop($op, 'uc')) { }
1 306 elsif (is_unop($op, 'abs')) { }
53 253 elsif (is_unop($op, 'null')) { }
8 245 elsif (is_op($op, 'null')) { }
4 241 elsif (is_op($op, 'undef')) { }
15 226 elsif (is_unop($op, 'not')) { }
4 222 elsif (is_unop($op, 'defined')) { }
28 194 elsif (($placeholder) = get_value($S, $op, 'soft', 1)) { }
4 190 elsif (is_unop($op, 'backtick')) { }
36 154 elsif (is_binop($op)) { }
2 152 elsif (is_logop($op, 'or')) { }
2 150 elsif (is_logop($op, 'and')) { }
98 52 elsif (my($const, $sv) = is_const($S, $op)) { }
12 40 elsif (is_pvop($op, 'next')) { }
2 38 elsif (is_pmop($op, 'match')) { }
37 1 elsif (is_unop_aux($op, 'multideref')) { }
0 1 elsif (is_unop_aux($op, 'multiconcat')) { }
791 35 345 if defined $funcall
793 7 338 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
815 2 13 if (is_pmop($subop, 'match')) { }
819 7 6 if ($p{'not_after'}) { }
2 4 elsif ($with_not) { }
830 2 2 wantarray ? :
833 4 0 if not defined $placeholder and $S->{'gen_args'}{'inline'}
839 4 0 if $sql
845 0 2 unless $or
850 0 2 unless $and
854 55 43 if ($sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')) { }
870 5 7 if ($flavor eq 'oracle') { }
6 1 elsif ($flavor eq 'pg' or $flavor eq 'pglite') { }
871 1 4 unless $seq =~ /^\w+$/u
874 1 5 if $seq =~ /'/u
886 0 0 if ($c)
898 4 97 if ($p{'inline_placeholder'}) { }
899 0 4 unless defined $placeholder
919 9 7 if (my($const, $sv) = is_const($S, $op)) { }
4 3 elsif (my($val, $ok) = get_value($S, $op, 'soft', 1)) { }
932 5 1 if (my($const, $sv) = is_const($S, $op)) { }
1 0 elsif (my($val, $ok) = get_value($S, $op, 'eval', 1)) { }
947 83 0 if (is_svop($op, 'gv') or is_svop($op, 'gvsv')) { }
0 0 elsif (is_padop($op, 'gv') or is_padop($op, 'gvsv')) { }
955 0 83 unless is_null($op->sibling)
957 0 83 $gv_on_pad ? :
958 0 83 unless ($gv and $$gv)
961 81 2 if ($p{'get_name'} and $gv->isa('B::IV'))
963 0 81 if (ref $subref eq 'REF' and ref $$subref eq 'CODE')
968 0 83 unless $gv->isa('B::GV')
969 81 2 $p{'get_name'} ? :
971 0 0 if $p{'bailout'}
981 0 44 unless is_unop($sub, 'entersub')
982 44 0 if is_unop($sub->first, 'null')
983 0 44 unless is_pushmark_or_padrange($sub->first)
986 0 44 if is_null($rg)
988 1 43 if is_null($dbfetch)
989 0 43 unless is_null($dbfetch->sibling)
991 6 37 unless is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
992 37 0 if is_unop($rg->first, 'null')
994 0 37 if is_pushmark_or_padrange($codeop)
995 0 37 unless is_svop($codeop, 'anoncode')
997 0 37 if is_unop($dbfetch->first, 'null')
999 0 37 unless (get_gv_name($S, $dbfetch) // '') eq 'subselect'
1010 0 6 unless $sql
1011 3 3 if (($S->{'gen_args'}{'flavor'} || '') eq 'oracle') { }
2 1 elsif ($opt{'select'}) { }
1013 0 3 if ($cast = $S->{'gen_args'}{'quirks'}{'oracle_table_func_cast'}{$fn})
1017 2 1 if $opt{'select'}
1032 0 10 unless @$list
1036 0 10 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' ? :
1041 7 23 if ((ref $val // '') =~ /SCALAR/u) { }
1048 0 0 $left =~ / not$/u ? :
0 10 if length $sql
1063 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')) { }
1075 3 0 is_listop($sub, 'anonlist') ? :
1077 3 9 if is_pushmark_or_padrange($v)
1078 7 2 if (my($const, $sv) = is_const($S, $v)) { }
1079 7 0 if ($sv->isa('B::IV') and not $sv->isa('B::PVIV') or $sv->isa('B::NV') and not $sv->isa('B::PVNV')) { }
1095 5 4 if ($codeop) { }
1100 0 7 unless $sql
1113 10 0 unless ($$cv)
1120 0 10 if ($gen_args{'prefix'}) { }
1128 2 5 if ($nret != 1 and not $p{'returns_dont_care'} and not $flags{'returns_dont_care'})
1139 10 0 if (is_listop($op->last, 'list') and is_pushmark_or_padrange($op->last->first) and is_unop($op->last->first->sibling, 'entersub'))
1144 4 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)) { }
1147 4 0 if $tab
1151 1 0 if $tab
1156 3 0 if $tab
1164 2 0 if ($tab)
1172 2 13 unless $S->{'operation'} eq 'update'
1173 6 7 if (is_unop($op->first, 'srefgen') or is_listop($op->first, 'anonhash')) { }
1196 45 1124 if is_unop($op, 'null')
1197 1 1168 if not is_null($op) and is_op($op, 'null')
1198 389 780 if is_pushmark_or_padrange($op)
1206 389 0 if (is_unop($op, 'entersub'))
1208 44 345 if is_unop($op, 'null')
1210 389 1169 if is_null($op)
1214 0 389 unless @args
1216 345 44 unless is_svop($op, 'gv') or is_padop($op, 'gv')
1218 0 44 unless defined $func
1219 6 38 if $p{'func_name_return'}
1220 9 35 if ($func =~ /^(union|intersect|except)$/u)
1221 0 9 if $p{'only_normal_funcs'}
1222 0 9 unless @args == 1 or @args == 2
1224 0 9 unless is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1225 9 0 if is_unop($rg->first, 'null')
1227 0 9 if is_pushmark_or_padrange($codeop)
1228 0 9 unless is_svop($codeop, 'anoncode')
1229 0 9 unless $S->{'operation'} eq 'select'
1231 9 0 unless ($$cv)
1241 0 9 ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' && $func eq 'except' ? :
1246 2 7 if (@args > 1)
1250 0 1 unless defined $r and $r eq ''
1254 1 34 if ($p{'union_or_friends'})
1257 2 32 if ($func eq 'subselect') { }
6 26 elsif ($func eq 'sql') { }
1258 0 2 if $p{'only_normal_funcs'}
1259 0 2 unless @args == 1
1261 0 2 unless is_unop($rg, 'refgen') or is_unop($rg, 'srefgen')
1262 2 0 if is_unop($rg->first, 'null')
1264 0 2 if is_pushmark_or_padrange($codeop)
1265 0 2 unless is_svop($codeop, 'anoncode')
1269 0 6 if $p{'only_normal_funcs'}
1270 0 6 unless @args == 1
1273 0 6 unless $sql = parse_simple_eval($S, $args[0])
1276 4 22 if ($S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1280 1 25 if (not $S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1287 4 22 if ($S->{'parsing_return'} and $S->{'aggregates'}{lc $func})
1292 1 3 if ($S->{'gen_args'}{'flavor'} || '') eq 'oracle' and lc $func eq 'sysdate' and not @terms
1294 3 22 if (lc $func eq 'extract' and @terms == 2)
1295 2 1 if (UNIVERSAL::isa($terms[0], 'DBIx::Perlish::Placeholder'))
1300 2 23 if (lc $func eq 'cast' and @terms == 2)
1301 2 0 if UNIVERSAL::isa($terms[1], 'DBIx::Perlish::Placeholder')
1313 0 6 unless (is_listop($hashop, 'anonhash'))
1326 6 16 if is_pushmark_or_padrange($c)
1328 10 6 if ($want_const) { }
1330 2 8 if (is_op($c, 'padhv')) { }
2 12 elsif (is_unop($c, 'rv2hv') and is_op($c->first, 'padsv')) { }
1336 4 6 if ($hash) { }
1360 5 1 if (is_op($op, 'padsv')) { }
0 1 elsif (is_unop($op, 'entersub')) { }
1365 0 0 if is_unop($op, 'null')
1366 0 0 if is_pushmark_or_padrange($op)
1367 0 0 if is_unop($op, 'rv2cv')
1369 0 0 if defined $gv
1371 2 4 unless $tab
1407 11 25 if ($op->flags & 64 and not $S->{'parsing_return'} and $binop2_map{$op->name} and is_unop($op->first, 'entersub'))
1415 11 0 if ($op->first->private & 128) { }
1422 11 0 if ($is_lvalue)
1425 1 10 unless $S->{'operation'} eq 'update'
1427 1 9 if $S->{'in_term'}
1431 0 9 if (is_unop_aux($op, 'multiconcat')) { }
1434 0 0 unless $set
1441 0 9 if ($op->name eq 'pow') { }
1443 0 0 if ($flavor eq 'pg' or $flavor eq 'pglite') { }
1454 13 223 if (is_binop($op, 'concat') or is_unop_aux($op, 'multiconcat'))
1456 11 0 if ($c)
1461 173 50 if ($sqlop = $binop_map{$op->name}) { }
24 26 elsif ($op->name eq 'lt') { }
25 1 elsif ($op->name eq 'sassign') { }
1464 144 27 if ($sqlop eq '=' or $sqlop eq '<>')
1465 8 136 $sqlop eq '<>' ? :
1466 4 140 if ($right eq 'null') { }
4 136 elsif ($left eq 'null') { }
1472 2 161 if ($op->name eq 'pow')
1474 1 1 if ($flavor eq 'pg' or $flavor eq 'pglite') { }
1482 19 5 if (is_unop($op->last, 'negate'))
1484 17 0 if $r
1507 0 0 if $opt{'skip_first'}
1511 0 0 if ($l >= 0)
1515 0 0 unless my $op = shift @args
1516 0 0 if ($opt{'eval'}) { }
1518 0 0 unless $ok
1533 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')) { }
1535 0 31 unless @t
1538 0 29 unless @t
1546 0 4 unless @t
1554 0 0 unless $f
1556 0 0 unless is_unop($op, 'rv2hv')
1558 0 0 unless is_op($op, 'padsv')
1560 0 0 unless $tab
1564 0 6 unless $f
1568 0 10 unless $tab
1572 0 0 unless @subterms
1574 0 0 if (defined $st->{'str'}) { }
1578 0 0 unless @t
1587 62 11 if $opt{'terms_only'}
1594 14 16 if (exists $t->{'str'}) { }
6 10 elsif (exists $t->{'field'}) { }
1597 4 2 if (length $str)
1601 0 6 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
1609 0 10 unless $t2
1610 0 10 unless defined $t2->{'str'}
1611 0 10 unless $t2->{'str'} =~ s/^->(\w+)//u
1613 9 1 if (length $str)
1617 0 10 if ($S->{'operation'} eq 'delete' or $S->{'operation'} eq 'update') { }
1625 10 1 if (length $str)
1630 5 6 if (lc($S->{'gen_args'}{'flavor'} || '') eq 'mysql') { }
1642 203 10 if $tab
1650 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')) { }
1651 0 0 if (is_unop($op->first, 'null')) { }
1655 0 0 unless is_pushmark_or_padrange($rxop)
1672 1 3 unless $rx
1679 4 2 unless is_pushmark_or_padrange($rxop)
1694 4 16 unless (defined $like)
1696 0 4 unless $logop and is_logop($logop, 'regcomp')
1699 1 3 unless defined $like
1711 0 19 if ($flavor eq 'mysql') { }
18 1 elsif ($flavor eq 'pg' or $flavor eq 'pglite') { }
0 1 elsif ($flavor eq 'sqlite') { }
1713 0 0 if not $case and $can_like
1717 0 0 $neg ? :
0 0 $case ? :
1725 18 0 if ($can_like)
1726 2 16 if $case
1731 0 0 $neg ? :
0 0 $case ? :
1752 0 0 if ($case) { }
1766 0 0 $neg ? :
1769 1 0 if ($case)
1773 0 1 if $like =~ /(?
1779 19 0 if ($flavor eq 'pg' or $flavor eq 'oracle') { }
1782 3 16 if $like =~ s/!/!!/gu
1783 4 15 if $like =~ s/%/!%/gu
1784 3 16 if $like =~ s/_/!_/gu
1785 6 13 if $need_esc
1793 5 14 unless $like =~ s/^\^//u
1794 18 1 unless $like =~ s/\$$//u
1795 2 17 $neg ? :
1822 0 37 unless 2 <= @op and 3 >= @op and is_pushmark_or_padrange($op[0]) and is_binop($op[1])
1828 6 31 if ($op[1]->name eq 'le')
1830 1 5 unless @op == 2
1833 0 5 unless is_binop($op[1])
1837 4 32 if (2 == @op) { }
1841 1 3 unless exists $join_map{$op[1]->name} and $join_map{$op[1]->name} eq 'inner'
1845 1 31 unless exists $join_map{$op[1]->name}
1846 1 30 unless is_unop($op[2]) and $op[2]->name eq 'entersub'
1853 1 32 unless $tab[0] = find_aliased_tab($S, $op[1]->first)
1855 1 31 unless $tab[1] = find_aliased_tab($S, $op[1]->last)
1860 30 1 if ($op[2])
1862 1 29 unless $codeop
1866 29 0 unless ($$cv)
1884 4 25 if scalar grep({@{$S2->{$_};};} 'group_by', 'order_by', 'autogroup_by', 'ret_values', 'joins') or $S2->{'alias'} ne $S->{'alias'}
1886 0 25 unless $S2->{'where'}
22 3 if (@{[] unless $S2->{'where'};}) { }
1887 1 2 unless $jointype eq 'inner'
1904 6 7 if is_unop($op, 'null')
1905 1 6 unless is_unop($op, 'flop')
1907 0 6 unless is_unop($op, 'flip')
1909 0 6 unless is_logop($op, 'range')
1917 9 10 if (is_op($op->first->sibling, 'last')) { }
4 6 elsif (my($val, $ok) = get_value($S, $op->first, 'soft', 1)) { }
1919 2 7 unless $S->{'operation'} eq 'select'
1921 1 4 unless defined $to
1937 10 4 if (my($val, $ok) = get_value($S, $op->first, 'soft', 1)) { }
1949 9 5 if ($val) { }
1953 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')) { }
1975 1 2 if (is_listop($op, 'list')) { }
1981 1 4 if is_pushmark_or_padrange($op)
1984 0 4 $S->{'operation'} eq 'delete' || $S->{'operation'} eq 'update' ? :
2001 6 3 ref $label ? :
2004 6 3 if (is_listop($op, 'list') or is_listop($op, 'sort')) { }
1 2 elsif (is_unop($op, 'null')) { }
2017 6 20 if is_pushmark_or_padrange($op)
2020 14 6 unless $term = is_const($S, $op)
2022 2 18 if ($term =~ /^asc/iu) { }
7 11 elsif ($term =~ /^desc/iu) { }
2028 6 5 if ($order) { }
2045 6 5 if (not $sv and is_op($op, 'padsv'))
2046 2 4 if (find_aliased_tab($S, $op))
2052 2 7 unless $sv and $const and $const =~ /^\d+$/u and $const > 0
2068 1 5 unless $op->name eq 'sassign'
2072 1 3 unless is_op($op->last, 'padsv') and $varn = padname($S, $op->last, 'no_fakes', 1)
2128 6 22 if (not $label and lc $lop->label eq 'table')
2131 1 27 unless $label
2134 27 0 if ($label->{'handler'}) { }
2147 1 4 unless $S->{'operation'} eq 'update'
2154 1 442 $S->{'this_is_having'} ? :
2162 0 2534 if $S->{'seen'}{$$op}++
2164 19 2515 if ($S->{'skipnext'})
2168 9 2506 if (is_listop($op, 'list')) { }
367 2139 elsif (is_listop($op, 'lineseq')) { }
8 2131 elsif (is_binop($op, 'leaveloop') and is_loop($op->first, 'enterloop') and is_listop($op->last, 'lineseq')) { }
97 2034 elsif (is_listop($op, 'return')) { }
210 1824 elsif (is_binop($op)) { }
6 1818 elsif (is_unop($op, 'not')) { }
17 1801 elsif (is_logop($op, 'or')) { }
12 1789 elsif (is_logop($op, 'and')) { }
373 1416 elsif (is_unop($op, 'leavesub')) { }
224 1192 elsif (is_unop($op, 'null')) { }
2 1190 elsif (is_unop($op, 'defined')) { }
8 1182 elsif (is_op($op, 'padsv')) { }
2 1180 elsif (is_op($op, 'last')) { }
9 1171 elsif (is_pushmark_or_padrange($op)) { }
2 1169 elsif (is_op($op, 'enter')) { }
195 974 elsif (is_op($op, 'null')) { }
680 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')) { }
2185 4 7 if $or
2189 3 8 if $and
2203 2 0 unless $S->{'operation'} eq 'select'
2216 28 652 if ($op->label)
2252 0 373 if ($DEVEL)
2264 373 0 if $root->PADLIST->can('id')
2294 48 325 $args{'prev_S'} ? :
2295 11 362 $args{'prefix'} ? :