Branch Coverage

blib/lib/SQL/Yapp.pm
Criterion Covered Total %
branch 715 1112 64.3


line true false branch
323 20 0 if scalar @_
335 1 0 if ($get_dbh) { }
375 0 0 if ($s eq 'all') { }
381 0 0 unless $dialect{$s}
390 0 0 if (not ref $s) { }
0 0 elsif (ref $s eq 'ARRAY') { }
406 0 9 unless $dialect{$s}
619 5 0 $read_dialect{'mysql'} ? :
5 0 $read_dialect{'postgresql'} ? :
5 0 $read_dialect{'oracle'} ? :
685 1 0 if length $s <= 400
1138 372 2884 unless defined $s
1139 0 2884 $s =~ /[\x00-\x1f\x7f\']/ ? :
1148 433 5855 if ($$s =~ /\G\n/cg)
1152 2278 3577 if $$s =~ /\G[^\n\S]+/cg
1153 19 3558 if $$s =~ /\G\#[^\n]*/cg
1161 0 3223 unless $kind
1186 1 2 if (defined $t->{$key})
1191 1 1 if ($t->{$key})
1196 1 0 if (scalar keys %opt) { }
1244 0 62 if $@
1258 0 170 if $@
1271 0 50 if $@
1292 681 73 if ($reserved{$name}) { }
1315 172 754 if (my $tree = $multi_token{$name}) { }
1320 140 187 unless $$s =~ /\G ([A-Z][A-Z_0-9]*)\b /cgsx
1325 32 155 unless ($tree)
1354 926 2305 if $$s =~ /\G ([A-Z][A-Z_0-9]*)\b /cgsx
1355 538 1767 if $$s =~ /\G ([a-z][a-z_0-9]*)\b /cgsx
1356 0 1767 if $$s =~ /\G \`([^\n\\\`]+)\` /cgsx
1358 8 1759 if ($$s =~ /\G ([A-Z][a-z][A-Za-z0-9]*)\b /cgsx)
1361 0 8 unless &good_interpol_type($interpol_new)
1364 0 8 if $interpol
1368 0 8 if $tok->{'error'}
1372 0 8 unless $tok->{'kind'} =~ /^interpol/
1377 0 1759 if $$s =~ /\G ([A-Za-z_][A-Za-z_0-9]*) /cgsx
1388 1 1758 if $$s =~ /\G 0x([0-9a-f_]+)\b /cgisx
1389 1 1757 if $$s =~ /\G (0b[0-1_]+)\b /cgsx
1390 216 1541 if $$s =~ /\G ([1-9][0-9_]*)\b /cgsx
1391 17 1524 if $$s =~ /\G ([0][0-7_]*)\b /cgsx
1394 0 1524 if $$s =~ /\G ([1-9][0-9_]*)(?=[KMG]\b) /cgsx
1398 0 1524 if $$s =~ /\G( (?= [1-9] # not empty, but numeric | [.][0-9] ) (?: [1-9] [0-9_]* )? (?: [.] [0-9_]+ )? (?: e[-+] [0-9_]+ )?\b )/cgisx
1406 0 1524 if $$s =~ /\G ([0-9][a-z_0-9]*) /cgisx
1410 71 1453 if $$s =~ /\G (?= \$\S ) /cgsx
1411 71 1382 if $$s =~ /\G (?= \@\S ) /cgsx
1412 28 1354 if $$s =~ /\G (?= \%[^\s\d] ) /cgsx
1413 62 1292 if $$s =~ /\G (?= \{ ) /cgsx
1414 50 1242 if $$s =~ /\G (?= [\'\"] ) /cgsx
1417 1201 41 if $$s =~ m(\G( == | != | <= | >= | \&\& | \|\| | \! | \^\^ | \*\* | \^ | [-+*/;:,.()\[\]{}<=>?\%\&\|] ))cgsx
1426 1 40 if $$s =~ /\G(.)/cgs
1470 11264 892 unless ref $x
1473 892 0 if ref $x eq 'ARRAY'
1476 0 0 if ref $x eq 'HASH'
1492 1129 8407 unless $kind
1496 1442 6965 if $kind{$lx->{'token'}{'kind'}}
1506 1442 8094 if (my $x = &looking_at_raw($lx, $kind))
1507 1349 93 if $do_shift
1516 1 0 if ref $_[0] eq 'CODE'
1521 1 0 if $map
1524 0 1 if scalar @l == 0
1525 1 0 if scalar @l == 1
1526 0 0 if scalar @l == 2
1534 789 1 if (my $x = &looking_at($lx, $kind, $do_shift)) { }
0 1 elsif (my $err = &lx_token_error($lx)) { }
1585 249 2373 ref $kind ? :
1624 0 1511 if $pos{$p}++
1627 9 1502 if &looking_at($lx, $end)
1628 1 1501 if &looking_at($lx, '')
1635 2 1490 unless my(@result1) = &$parse_elem($lx)
1660 0 159 if $lx->{'error'}
1672 7601 2072 if (exists $hash->{$key}) { }
1099 973 elsif (exists $hash->{'-default'}) { }
1684 0 405 unless exists $hash->{$result}
1694 8369 0 if (my $code = &find_ref(\%case, $value))
1704 1 1 if ($lx->{'token'}{'error'})
1717 1 0 if (my $err = &lx_token_error($lx)) { }
0 0 elsif (scalar keys %opt > 10) { }
1753 0 49 if ($r->{'type'} eq 'num')
1823 0 330 unless &parse_ident_chain($lx, $arr)
1825 0 330 if scalar @$arr < 1
1826 0 330 if (scalar @$arr > 4)
1847 0 190 unless &parse_ident_chain($lx, $arr)
1849 0 190 if scalar @$arr < 1
1850 0 190 if (scalar @$arr > 3)
1942 0 49 if $lx->{'error'}
1954 0 2 unless $r->{'name'} = &parse_column_name($lx)
1956 1 1 if (&looking_at($lx, '(', 1))
1958 0 1 unless $r->{'length'} = &parse_limit_expr($lx) and &expect($lx, ')', 1)
1962 1 1 if (&looking_at($lx, 'DESC', 1)) { }
0 1 elsif (&looking_at($lx, 'ASC', 1)) { }
1992 0 5 if $lx->{'error'}
2003 2 126 if (&looking_at($lx, '(', 1)) { }
2006 0 2 unless $stmt = &parse_select_stmt($lx) and &expect($lx, ')', 1)
2017 0 126 unless $r->{'table'} = &parse_table($lx)
2020 5 123 if (&looking_at($lx, 'AS', 1))
2022 0 5 unless $r->{'as'} = &parse_table_name($lx)
2036 9 164 if (&looking_at($lx, '.')) { }
2058 0 0 defined $sg ? :
0 0 defined $pl ? :
0 0 $cnt == 1 ? :
2065 0 24 unless my $limit = &parse_limit_num($lx)
2086 0 59 unless &expect($lx, '(', 1) and my $list = &parse_list([], $lx, $func, ',', ')') and &expect($lx, ')', 1)
2100 27 46 if (my $spec = &find_ref(\%type_spec, $lx->{'token'}{'kind'}))
2101 1 26 if ($spec->{'value_list'}) { }
2105 0 1 unless my $value_list = &parse_list_delim($lx, \&SQL::Yapp::parse_expr)
2154 0 4 unless my $arg = &parse_charset($lx)
2167 0 1 unless my $arg = &parse_collate($lx)
2193 0 23 unless my $list = &parse_list([], $lx, \&SQL::Yapp::parse_limit_expr, ',', ')')
2199 0 1 if (scalar @$list > 1)
2209 0 1 if (&looking_at($lx, ')')) { }
2214 0 1 unless my $unit = &parse_char_unit($lx)
2221 0 0 if (scalar @$list > 1)
2232 0 22 if (scalar @$list > 2)
2241 0 23 if $lx->{'error'}
2242 0 23 unless &expect($lx, ')', 1)
2258 0 86 if $lx->{'error'}
2261 30 56 unless defined $r->{'functor'}
2271 8 22 if (&looking_at($lx, ['interpol', 'interpolType'])) { }
2277 0 22 unless ($type_spec{$lx->{'token'}{'kind'}})
2293 0 1 unless my $arg = &parse_list([], $lx, \&SQL::Yapp::parse_type, ',', ')')
2309 0 1 unless my $r = &parse_type_list($lx) and &expect($lx, ')', 1)
2339 0 3 unless $r->{'table'} = &parse_table($lx) and $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_name)
2341 1 2 if (&looking_at($lx, 'MATCH', 1))
2350 0 1 unless $r->{'on_delete'} = &parse_on_action($lx)
2355 0 0 unless $r->{'on_update'} = &parse_on_action($lx)
2360 0 3 if $lx->{'error'}
2373 2 36 if (&looking_at($lx, 'CONSTRAINT', 1))
2375 0 2 unless $constraint = &parse_constraint($lx)
2380 0 20 if ($constraint) { }
2385 4 16 if ($func)
2444 0 6 unless my $val = &parse_expr($lx)
2457 0 0 unless my $val = &parse_expr($lx)
2472 0 0 unless my $val = &parse_expr($lx)
2499 0 1 unless my $ref = &parse_references($lx)
2508 38 0 $read_dialect{'mysql'} ? :
2524 0 38 if $lx->{'error'}
2527 16 22 unless defined $r->{'functor'}
2549 0 9 unless $r->{'datatype'} = &parse_type($lx)
2552 0 16 if $lx->{'error'}
2562 3 6 if (&looking_at($lx, [@SELECT_INITIAL, 'interpolStmt'])) { }
2564 0 3 unless my $q = &parse_select_stmt($lx)
2575 0 6 unless my $arg = &parse_list([], $lx, \&SQL::Yapp::parse_expr, ',', ')')
2591 0 9 unless my $r = &parse_expr_list($lx) and &expect($lx, ')', 1)
2638 14 20 if (not ref $e) { }
13 7 elsif (ref $e eq 'SCALAR') { }
7 0 elsif (ref $e eq 'ARRAY') { }
2640 0 14 unless &expect($lx, $e, 1)
2645 0 13 unless my $arg = &parse_thing($lx, $$e)
2649 2 5 if (&looking_at($lx, $e->[0]))
2651 0 2 unless &parse_funcsep($lx, $r, $e)
2667 0 9 unless $cond
2678 22 20 unless &looking_at($lx, 'WHEN', 1)
2683 9 11 if ($functor and $functor->{'allow_when'}) { }
2691 0 20 unless $cond and &expect($lx, 'THEN', 1) and my $expr = &parse_expr($lx)
2705 0 10 unless &looking_at($lx, 'WHEN', 1) and my $cond = &parse_expr($lx) and &expect($lx, 'THEN', 1) and my $expr = &parse_expr($lx)
2721 1 182 if ($right_mark || '') eq 'string' and $right->{'value'} eq 'IN'
2724 178 4 unless $left
2730 1 3 if $left->{'value'} eq $right->{'value'} and $left->{'read_type'} eq 'infix()'
2733 0 3 if ($do_prec) { }
2735 0 0 if ($left->{'prec'} and $right->{'prec'})
2737 0 0 if $left->{'prec'} > $right->{'prec'}
2740 0 0 if $left->{'prec'} < $right->{'prec'}
2743 0 0 if ($left->{'assoc'} and $right->{'assoc'} and $left->{'assoc'} == $right->{'assoc'})
2746 0 0 if ($left->{'assoc'} == -1 and $right_mark) { }
2758 3 0 if (defined $left->{'value2'})
2771 0 183 unless ($result)
2783 860 263 unless my $functor = &find_ref(\%$map, $kind)
2785 3 260 if (my $accept = $functor->{'accept'})
2787 3 0 if ($read_dialect{$a})
2800 0 260 if $r->{'arg'}
2815 183 838 if (my $right = &find_functor(\%functor_suffix, $kind))
2817 0 183 unless my $action = &shift_or_reduce($lx, $left, $right, $right_mark)
2819 178 5 if ($action == 1)
2829 1 90 unless my $arg2 = &parse_thing($lx, scalar &get_rhs($right, 0), $right, 1)
2837 0 64 unless my $argi = &parse_thing($lx, scalar &get_rhs($right, $i++), $right, 1)
2844 0 2 unless my $arg2 = &parse_thing($lx, scalar &get_rhs($right, 0), $right, 1)
2848 0 2 if (&looking_at($lx, $right->{'value2'}, 1))
2850 0 0 unless my $arg3 = &parse_thing($lx, scalar &get_rhs($right, 1), $right, 1)
2858 0 2 unless my $arg2 = &parse_thing($lx, scalar &get_rhs($right, 0), $right, 1) and &expect($lx, $right->{'value2'}, 1) and my $arg3 = &parse_thing($lx, scalar &get_rhs($right, 1), $right, 1)
2867 1 177 if $lx->{'error'}
2927 1 6 if (&looking_at($lx, '(', 1) and my $functor = &find_functor(\%functor_special, $r->{'token'}{'kind'}))
2933 0 1 unless my $arg = &parse_column_name($lx) and &expect($lx, ')', 1)
2944 12 22 if (&looking_at($lx, ['WHEN', 'ELSE', 'END'])) { }
2946 0 12 unless $r->{'arg'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_when)
2951 0 22 unless $r->{'switchval'} = &parse_expr($lx) and $r->{'arg'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_when_post)
2954 24 10 if (&looking_at($lx, 'ELSE', 1))
2956 0 24 unless $r->{'otherwise'} = &parse_expr($lx)
2960 0 34 unless &expect($lx, 'END', 1)
2972 0 2 unless ($functor2)
2979 1 1 if (&looking_at($lx, '(')) { }
2981 0 1 unless &expect($lx, '(', 1) and my $q = &parse_select_stmt($lx) and &expect($lx, ')', 1)
2999 2 11 if (&looking_at($lx, [@SELECT_INITIAL, 'interpolStmt'])) { }
3001 0 2 unless my $q = &parse_select_stmt($lx)
3007 0 11 unless my $arg = &parse_expr($lx)
3012 0 13 unless &expect($lx, ')', 1)
3017 11 68 if (not $functor2 and $lx->{'token'}{'type'} eq 'keyword')
3022 79 0 if ($functor2) { }
0 0 elsif (not $lx->{'error'}) { }
3029 16 29 if (&looking_at($lx, '(', 0)) { }
3031 0 16 unless $r->{'arg'} = &parse_list_delim($lx, \&SQL::Yapp::parse_expr)
3035 0 29 unless my $arg = &parse_thing($lx, scalar &get_rhs($functor2, 0), $functor2, 0)
3041 0 27 unless $r->{'arg'} = &parse_list_delim($lx, \&SQL::Yapp::parse_expr)
3045 0 1 unless &expect($lx, '(', 1) and my $arg1 = &parse_column_name($lx) and &expect($lx, ')', 1)
3053 0 6 unless &expect($lx, '(', 1) and &parse_funcsep($lx, $r, $functor2->{'rhs'})
3056 0 79 if $lx->{'error'}
3066 0 826 if $lx->{'error'}
3068 0 826 unless $r
3096 1 230 unless $r->{'expr'} = &parse_expr($lx)
3098 4 226 if (&looking_at($lx, 'AS', 1))
3100 0 4 unless $r->{'as'} = &parse_column_name($lx)
3117 0 14 unless $r->{'expr'} = &parse_expr($lx)
3122 3 18 if ($lx->{'token'}{'type'} eq 'string') { }
3128 0 3 unless $r->{'expr'} = &parse_expr($lx)
3137 0 35 if $lx->{'error'}
3167 3 125 if (&looking_at($lx, 'NATURAL', 1))
3186 0 3 if ($r->{'natural'})
3204 0 128 if $lx->{'error'}
3206 117 11 unless (&looking_at($lx, 'JOIN', 1))
3207 0 117 if ($shifted)
3215 0 11 unless $r->{'table'} = &parse_list([], $lx, \&SQL::Yapp::parse_table_as, ',')
3217 5 6 if ($want_condition)
3226 0 2 unless $r->{'using'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_name)
3232 0 133 if $lx->{'error'}
3233 117 16 unless $r
3242 5 498 if (my $x = &looking_at($lx, $words, 1))
3283 0 185 unless &expect($lx, 'SELECT', 1)
3303 185 0 $read_dialect{'mysql'} ? :
3311 185 0 $read_dialect{'mysql'} ? :
3320 1 184 unless $r->{'expr_list'} = &parse_list([], $lx, \&SQL::Yapp::parse_expr_as, ',')
3322 99 85 if (&looking_at($lx, 'FROM', 1))
3325 0 99 unless $r->{'from'} = &parse_list([], $lx, \&SQL::Yapp::parse_table_as, ',') and $r->{'join'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_join)
3327 44 55 if (&looking_at($lx, 'WHERE', 1))
3329 0 44 unless $r->{'where'} = &parse_where($lx)
3331 6 93 if (&looking_at($lx, 'GROUP BY', 1))
3333 0 6 unless $r->{'group_by'} = &parse_list([], $lx, \&SQL::Yapp::parse_order, ',')
3337 1 98 if (&looking_at($lx, 'HAVING', 1))
3339 0 1 unless $r->{'having'} = &parse_expr($lx)
3341 8 91 if (&looking_at($lx, 'ORDER BY', 1))
3343 0 8 unless $r->{'order_by'} = &parse_list([], $lx, \&SQL::Yapp::parse_order, ',')
3346 4 95 if (&looking_at($lx, 'LIMIT', 1))
3347 4 0 unless (&looking_at($lx, 'ALL', 1))
3349 2 2 if (&looking_at($lx, ',', 1)) { }
3358 1 98 if (not $r->{'limit_offset'} and &looking_at($lx, 'OFFSET', 1))
3378 99 0 $read_dialect{'mysql'} || $read_dialect{'postgresql'} ? :
99 0 $read_dialect{'mysql'} ? :
99 0 $read_dialect{'postgresql'} ? :
3407 0 13 unless &expect($lx, 'INSERT', 1)
3416 13 0 $read_dialect{'mysql'} ? :
3428 0 13 unless $r->{'into'} = &parse_table($lx)
3430 5 8 if (&looking_at($lx, '('))
3432 0 5 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_name)
3450 0 8 if ($r->{'column'})
3464 0 13 if $lx->{'error'}
3466 1 12 if ($read_dialect{'mysql'} and &looking_at($lx, 'ON DUPLICATE KEY UPDATE', 1))
3470 0 1 unless $r->{'duplicate_update'} = &parse_list([], $lx, \&SQL::Yapp::parse_expr, ',')
3494 0 9 unless &expect($lx, 'UPDATE', 1)
3510 9 0 $read_dialect{'mysql'} ? :
9 0 $read_dialect{'postgresql'} ? :
3519 0 9 unless $r->{'table'} = &parse_list([], $lx, \&SQL::Yapp::parse_table_as, ',') and &expect($lx, 'SET', 1) and $r->{'set'} = &parse_list([], $lx, \&SQL::Yapp::parse_expr, ',')
3521 1 8 if (&looking_at($lx, 'FROM', 1))
3523 0 1 unless $r->{'from'} = &parse_list([], $lx, \&SQL::Yapp::parse_table_as, ',')
3526 0 9 unless $r->{'join'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_join)
3528 9 0 if (&looking_at($lx, 'WHERE', 1))
3530 0 9 unless $r->{'where'} = &parse_where($lx)
3532 1 8 if (&looking_at($lx, 'ORDER BY', 1))
3534 0 1 unless $r->{'order_by'} = &parse_list([], $lx, \&SQL::Yapp::parse_order, ',')
3536 1 8 if (&looking_at($lx, 'LIMIT', 1))
3561 0 4 unless &expect($lx, 'DELETE', 1)
3570 4 0 $read_dialect{'mysql'} ? :
3578 0 4 unless &expect($lx, 'FROM', 1)
3583 4 0 $read_dialect{'postgresql'} ? :
3589 0 4 unless $r->{'from'} = &parse_list([], $lx, \&SQL::Yapp::parse_table_as, ',')
3591 2 2 if (&looking_at($lx, 'USING', 1))
3593 0 2 unless $r->{'using'} = &parse_list([], $lx, \&SQL::Yapp::parse_table_as, ',')
3597 0 4 unless $r->{'join'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_join)
3599 3 1 if (&looking_at($lx, 'WHERE', 1))
3601 0 3 unless $r->{'where'} = &parse_where($lx)
3603 0 4 if (&looking_at($lx, 'ORDER BY', 1))
3605 0 0 unless $r->{'order_by'} = &parse_list([], $lx, \&SQL::Yapp::parse_order, ',')
3607 0 4 if (&looking_at($lx, 'LIMIT', 1))
3619 0 1 unless $keyword
3621 0 1 if ref $keyword
3650 1 0 unless $r
3651 0 0 if $lx->{'error'}
3660 1 2 if (&looking_at($lx, 'USING', 1))
3672 3 0 if (&looking_at($lx, 'CONSTRAINT', 1))
3674 0 3 unless $r->{'constraint'} = &parse_constraint($lx)
3684 0 0 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_index) and $r->{'index_option'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_index_option)
3692 0 1 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_index) and $r->{'index_option'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_index_option)
3700 0 0 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_index) and $r->{'index_option'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_index_option)
3708 0 0 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_index) and $r->{'index_option'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_index_option)
3716 0 2 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_name) and $r->{'reference'} = &parse_references($lx)
3727 0 0 unless $r->{'column'} = &parse_list_delim($lx, \&SQL::Yapp::parse_column_index)
3731 3 0 $read_dialect{'mysql'} ? :
3734 0 3 if $lx->{'error'}
3748 0 6 unless $r->{'value'} = &$parse($lx)
3763 1 0 $read_dialect{'postgresql'} ? :
3822 12 0 $read_dialect{'mysql'} ? :
3823 4 8 unless $r
3824 0 8 if $lx->{'error'}
3835 0 6 unless $r->{'name'} = &parse_column_name($lx) and $r->{'column_spec'} = &parse_column_spec($lx)
3858 0 2 unless &expect($lx, \@CREATE_TABLE_INITIAL)
3864 1 1 if ($read_dialect{'mysql'} and &looking_at($lx, 'IF NOT EXISTS', 1))
3871 0 2 unless $r->{'table'} = &parse_table($lx)
3875 2 0 if (&looking_at($lx, '('))
3877 0 2 unless my $spec = &parse_list_delim($lx, \&SQL::Yapp::parse_column_def_or_option)
3884 0 2 unless $r->{'tableopt'} = &parse_try_list([], $lx, \&SQL::Yapp::parse_table_option)
3886 1 1 if (&looking_at($lx, 'AS', 1) or &looking_at($lx, \@SELECT_INITIAL))
3890 0 1 unless $r->{'select'} = &parse_select($lx)
3893 0 0 unless (scalar @{$r->{'column_def'};} or $r->{'select'})
3906 0 1 unless &expect($lx, \@DROP_TABLE_INITIAL)
3912 1 0 if ($read_dialect{'mysql'} and &looking_at($lx, 'IF EXISTS', 1))
3919 0 1 unless $r->{'table'} = &parse_list([], $lx, \&SQL::Yapp::parse_table, ',')
3948 0 20 unless &expect($lx, \@ALTER_TABLE_INITIAL)
3956 0 20 unless $r->{'table'} = &parse_table($lx)
3964 0 1 unless my $constraint = &parse_constraint($lx)
3971 0 3 unless my $column = &parse_column_name($lx)
3979 0 1 unless my $column = &parse_column_name($lx) and &expect($lx, 'TO', 1) and my $column2 = &parse_column_name($lx)
3993 0 6 if $lx->{'error'}
4012 0 2 if $lx->{'error'}
4013 1 1 if (my $x = &looking_at($lx, 'USING', 1))
4018 6 0 $read_dialect{'postgresql'} ? :
4030 1 1 if (&looking_at($lx, '(', 1)) { }
4032 0 1 if $lx->{'error'}
4037 0 1 unless my $col1 = &parse_column_name($lx) and my $spec = &parse_column_spec($lx)
4053 0 1 unless my $col1 = &parse_column_name($lx) and my $spec = &parse_column_spec($lx)
4060 0 1 unless my $col1 = &parse_column_name($lx) and my $col2 = &parse_column_name($lx) and my $spec = &parse_column_spec($lx)
4068 0 1 unless my $constraint = &parse_constraint($lx)
4074 0 1 unless my $index = &parse_index($lx)
4078 20 0 $read_dialect{'mysql'} ? :
4081 0 20 if $lx->{'error'}
4093 0 3 if ($lx->{'token'}{'type'} eq 'num' or $lx->{'token'}{'type'} eq 'string')
4100 0 3 unless ($lx->{'token'}{'type'})
4105 0 3 if ($lx->{'token'}{'perltype'} eq 'hash')
4259 0 2885 unless defined $n
4266 3877 3676 if ($s->{'need_comma'})
4275 4435 0 if ($perl ne '')
4298 94 689 if ($opt{'joinfunc'}) { }
262 427 elsif ($opt{'prefix'} eq '' and $opt{'suffix'} eq '' and $opt{'never_empty'} || defined $opt{'result0'} && $opt{'result0'} eq '') { }
21 406 elsif ($opt{'sep'} eq '' and $opt{'never_empty'} || defined $opt{'result0'} && $opt{'result0'} eq $opt{'prefix'} . $opt{'suffix'}) { }
4327 21 0 if ($opt{'prefix'} ne '')
4369 280 252 if ($in_list) { }
4382 280 252 if ($in_list)
4404 18 1465 if (defined $end_str)
4414 0 275 if $s->{'buff'} eq ''
4430 365 0 if (scalar @$list)
4440 2 363 defined $opt{'sep'} ? :
4443 1 364 if (my $x = $opt{'map'})
4467 0 1068 if $allow and scalar grep({$token->{'kind'} eq $_;} &flatten($allow)) == 0
4479 515 0 if ($token->{'kind'} =~ /^interpol/) { }
4494 9 37 if ($token->{'perltype'} eq 'hash') { }
4519 3 867 if $token->{'perltype'} eq 'array' or $token->{'perltype'} eq 'hash'
4527 360 116 if (not $in_list or $thing->{'token'}{'perltype'} eq 'scalar') { }
19 97 elsif ($thing->{'token'}{'perltype'} eq 'hash') { }
4534 16 3 if ($opt{'hash'}) { }
3 0 elsif ($opt{'hashkeys'}) { }
4562 93 77 if ($thing->{'type'} eq 'column')
4604 477 42 if (not $in_list or scalar @non_scalar_i == 0) { }
38 4 elsif (scalar @non_scalar_i == 1) { }
4620 5 38 $token[$_]{'perltype'} eq 'scalar' ? :
4634 0 8 $_->{'perltype'} eq 'scalar' ? :
4639 0 8 $token[$_]{'perltype'} eq 'scalar' ? :
4655 5 106 if (defined $limit_cnt or defined $limit_offset)
4657 5 0 if ($limit_cnt)
4662 3 2 if ($limit_offset)
4673 0 18 if ($in_list) { }
4689 3 0 if (my $x = $thing->{'constraint'})
4694 1 2 if (my $x = $thing->{'index_type'})
4701 2 1 if (my $x = $thing->{'reference'})
4734 16 2848 unless (defined $thing)
4738 384 2464 unless (ref $thing)
4742 1 2463 if (ref $thing eq 'ARRAY')
4756 170 13 if (scalar @{$thing->{'expr_list'};} == 1)
4757 151 19 unless (&is_multicol($thing->{'expr_list'}[0]))
4772 99 82 if (my $x = $thing->{'from'})
4775 99 0 if (my $x = $thing->{'join'})
4776 5 94 if (@$x)
4784 44 55 if (my $x = $thing->{'where'})
4789 6 92 if (my $x = $thing->{'group_by'})
4791 1 5 if ($thing->{'group_by_with_rollup'})
4800 1 97 if (my $x = $thing->{'having'})
4805 8 90 if (my $x = $thing->{'order_by'})
4833 2 2 if (my $x = $thing->{'using'})
4840 4 0 if (my $x = $thing->{'join'})
4841 2 2 if (@$x)
4849 3 1 if (my $x = $thing->{'where'})
4854 0 4 if (my $x = $thing->{'order_by'})
4879 5 8 if (my $col = $thing->{'column'})
4883 5 8 if (my $val = $thing->{'value'}) { }
8 0 elsif (my $set = $thing->{'set'}) { }
0 0 elsif (my $sel = $thing->{'select'}) { }
0 0 elsif ($thing->{'default_values'}) { }
4905 1 12 if (my $x = $thing->{'duplicate_update'})
4923 1 8 if (my $x = $thing->{'from'})
4929 9 0 if (my $x = $thing->{'join'})
4930 0 9 if (@$x)
4938 9 0 if (my $x = $thing->{'set'})
4944 9 0 if (my $x = $thing->{'where'})
4949 1 8 if (my $x = $thing->{'order_by'})
4965 1 1 if ($thing->{'if_not_exists'})
4986 1 1 if (my $x = $thing->{'select'})
4999 1 0 if ($thing->{'if_exists'})
5004 1 0 if (my $x = $thing->{'cascade'})
5015 0 20 if ($thing->{'only'})
5054 5 11 if ($thing->{'type'} eq 'interpol') { }
5060 3 8 if ($thing->{'natural'}) { }
5061 3 0 if ($thing->{'type'} eq 'INNER') { }
5074 3 8 if (my $on = $thing->{'on'}) { }
2 6 elsif (my $using = $thing->{'using'}) { }
5101 5 123 if (my $x = $thing->{'as'}) { }
5106 0 5 if ($write_dialect eq 'oracle') { }
5122 4 225 if (my $x = $thing->{'as'}) { }
5135 5 13 if ($thing->{'desc'}) { }
5143 5 12 if ($thing->{'desc'}) { }
5177 0 56 if $parens
5208 0 22 if $parens
5267 1 2 $thing->{'match'} ? :
1 2 $thing->{'on_delete'} ? :
0 3 $thing->{'on_update'} ? :
5314 292 74 $thing->{'token'}{'type'} eq 'num' || $thing->{'token'}{'type'} eq 'string' || !$parens ? :
9 366 $thing->{'maybe_check'} ? :
5333 0 2 if $parens
5335 0 2 unless scalar @{$thing->{'arg'};} == 1
5346 0 2 unless scalar @{$thing->{'arg'};} == 1
5348 1 1 if ($in_list) { }
5363 4 85 if $parens
5377 1 4 if $parens
5385 2 2 if (scalar @{$thing->{'arg'};} == 3)
5399 20 43 if ($thing->{'type'} eq 'prefix()')
5403 0 63 unless my $fk = $functor_kind{$f->{'type'} or ''}
5405 27 36 if ($in_list) { }
5407 17 10 $parens ? :
5416 8 28 $parens ? :
5431 0 97 unless my $fk = $functor_kind{$f->{'type'} or ''}
5436 11 86 $parens ? :
5460 13 34 if $parens
5464 22 12 if ($sw) { }
5472 24 10 if (my $e = $thing->{'otherwise'}) { }
5480 30 0 if (ref $wh eq 'ARRAY') { }
5507 2 0 if (defined $thing->{'length'} or $thing->{'desc'}) { }
5510 1 1 if (defined $thing->{'length'})
5515 1 1 if ($thing->{'desc'})
5560 280 279 if (scalar @_)
5562 1 279 unless (defined $check_val)
5568 2 557 if ($lx->{'error'})
5692 0 22 unless $func
5693 0 22 if &looking_at($lx, '')
5720 0 258 unless ($func)
5734 0 258 unless defined $end and $start < $end
5743 0 258 if $debug
5754 0 258 if $line_cnt_new > $line_cnt_old
5757 101 157 if (my $line_cnt_less = $line_cnt_old - $line_cnt_new)
5844 159 731 if &blessed($x) and $x->isa('SQL::Yapp::Obj1')
5959 0 0 unless $aref
5978 0 0 unless $sth->execute
5981 0 0 unless scalar @$a == 1
6163 9 9 if (ref $_[1] eq $_[0]) { }
7 2 elsif (ref $_[1]) { }
6212 14 0 if ($self->op eq '=')
6231 7 0 if &blessed($x) and $x->isa('SQL::Yapp::Obj')
6289 1 2 unless ($spec->{$o})
6301 0 13 unless $self->{'spec'}{$key}
6343 18 20 unless $self->{'base'}
6345 19 1 if ($self->{'spec'}{'prec1'} and defined $self->{'option'}{'prec1'})
6348 0 19 if ($self->{'spec'}{'prec2'} and defined $self->{'option'}{'prec2'}) { }
6352 0 0 if ($self->{'spec'}{'prec_mul'} and $self->{'option'}{'prec_mul'})
6355 0 0 if ($self->{'spec'}{'prec_unit'} and $self->{'option'}{'prec_unit'})
6361 0 20 if (my $value_list = $self->{'spec'}{'value_list'} && $self->{'option'}{'value_list'})
6364 3 17 if (my $x = $self->{'spec'}{'charset'} && $self->{'option'}{'charset'})
6367 0 20 if (my $x = $self->{'spec'}{'collate'} && $self->{'option'}{'collate'})
6371 0 60 if (my $x = $self->{'spec'}{$key} && $self->{'option'}{$key})
6424 0 6 if (my $x = $self->{'name'}{$key})
6436 4 16 if (my $x = $self->{'option'}{$key})
6442 2 10 if (my $x = $self->{'option'}{$key})
6448 0 4 if (my $x = $self->{'option'}{$key})
6454 0 4 if (my $x = $self->{'option'}{$key})
6504 97 9 if (my $dialect = $functor->{'dialect'})
6505 28 69 if (my $f2 = &find_ref(\%$dialect, $write_dialect))
6523 6 0 defined $functor->{'result0'} ? :
46 6 scalar @arg ? :
6531 1 25 unless scalar @arg == 1
6537 0 7 unless scalar @arg == 1
6541 35 70 $parens ? :
6559 1 218 unless (defined wantarray)
6560 0 1 if scalar @_ == 0
6565 27 191 if wantarray
6568 1 190 if scalar @_ > 1
6575 0 0 if scalar @_ == 0
6582 0 0 if scalar @_ == 1
6589 1 212 if (scalar @_ == 5)
6590 1 0 if defined $_[1]
6600 14 0 if (ref $x) { }
6610 0 7 if scalar @_ == 0
6622 0 7 unless ref $x eq 'ARRAY'
6624 0 7 unless scalar @$x >= 1
6635 7 0 if (ref $x) { }
6648 0 11 unless my $spec = &find_ref(\%type_spec, $base)
6650 0 11 unless $self
6658 0 0 unless my $spec = &find_ref(\%type_spec, $base)
6660 0 0 unless $self
6671 0 11 if defined $prec2
6680 0 0 if defined $mul
6681 0 0 if defined $unit
6699 2 0 if (ref $x) { }
6762 0 1 if (ref $x) { }
1 0 elsif (defined $x) { }
6777 122 0 if (defined $x) { }
6789 1 1 if (ref $x)
6790 0 1 if (ref $y)
6791 0 1 unless defined $y
6794 1 0 defined $x ? :
6804 0 3 if (ref $x)
6805 0 3 if (ref $y)
6806 0 3 if (ref $z)
6807 0 3 unless defined $z
6810 3 0 defined $x ? :
3 0 defined $y ? :
6822 5 119 ref $x ? :
6842 0 0 ref $x ? :
6862 0 2 ref $x ? :
6882 0 0 ref $x ? :
6902 0 0 ref $x ? :
6922 0 0 ref $x ? :
6942 0 0 ref $x ? :
6962 0 1 ref $x ? :
6982 0 10 if (ref $x) { }
10 0 elsif (defined $x) { }
6996 4 205 if (ref $x) { }
205 0 elsif (defined $x) { }
7010 1 24 if (ref $x) { }
24 0 elsif (defined $x) { }
7085 3 0 if (ref $x) { }
7106 5 65 if (ref $x) { }
7107 0 5 if ref $x eq 'HASH'
7108 0 5 if ref $x eq 'ARRAY'
7109 0 5 if ref $x eq 'CODE'
7110 0 5 if ref $x eq 'SCALAR'
7121 21 132 if (ref $x) { }
7122 0 21 unless &blessed($x)
7136 3 2 if (ref $x) { }
7150 3 3 &blessed($e) && $e->isa('SQL::Yapp::Check') ? :
7164 0 7 &blessed($e) && $e->isa('SQL::Yapp::Check') ? :
7178 4 5 if (ref $x) { }
5 0 elsif (defined $x) { }
7192 6 4 if (ref $x) { }
4 0 elsif (defined $x) { }
7209 2 0 if (ref $x) { }
7223 4 0 if (ref $x) { }
7237 0 14 if (ref $x) { }
14 0 elsif (&looks_like_number($x)) { }
7254 1 1 if (defined $cnt) { }
7255 1 0 if (defined $offset) { }
7263 1 0 if (defined $offset) { }
7264 0 1 if ($write_dialect eq 'postgresql') { }
7289 2 6 if (scalar @_ == 2)
7306 0 0 if (scalar @_ == 1)