Condition Coverage

File:blib/lib/Database/BI/Controller/Dashboard.pm
Coverage:57.7%

line%coveragecondition
13667
ABdec
000
011
1X1
$self->param("per_page") // $DEFAULT_PER_PAGE
139100
Adec
00
11
$self->param("page") // 1
18980
ABCDdec
00000
00011
001X1
01XX1
1XXX1
$host eq "localhost" or $host =~ /\A127\./u or $host eq "0.0.0.0" or $host eq "::1"
224100
ABdec
0X0
100
111
defined $url and length $url
27233
ABdec
000
011
1X1
$platform // $fallback
446100
ABdec
0X0
100
111
$c && $all{$c}
488100
Adec
00
11
$col // ""
100
ABCdec
0XX0
10X0
1100
1111
length($col // "") and defined $op and length $op
489100
Adec
00
11
$val //= ""
492100
Adec
00
11
$_->{$col} // ""
546100
Adec
00
11
$row->{$_} // ""
586100
ABdec
0X0
100
111
$source && $source->can('dbi_source') && $source->dbi_source
59650
Adec
00
11
$col // ""
25
ABCdec
0XX0
10X0
1100
1111
length($col // "") and defined $op and length $op
59750
Adec
00
11
$val //= ""
605100
ABdec
000
011
1X1
$op eq "eq" or $op eq "ne"
67467
ABdec
0X0
100
111
defined $v and length $v
67767
ABdec
0X0
100
111
$is_acct_neg and $n =~ /\A\d/u
69833
ABdec
0X0
100
111
$source and $source->can("aggregate")
69967
ABdec
000
011
1X1
$fn eq "count" or $fn eq "count_distinct"
71350
Adec
00
11
$records // []
71567
ABdec
0X0
100
111
defined $v and length $v
72933
ABdec
0X0
100
111
defined $str and length $str
73120
ABCDdec
0XXX0
10XX0
110X0
11100
11111
defined $fn and defined $as and length $fn and length $as
100550
Adec
00
11
$row->{$_} // ""
1022100
Adec
00
11
$_ // ""
163867
ABdec
0X0
100
111
defined $table and $table =~ /$TABLE_NAME_RE/u
164950
ABCdec
0XX0
10X0
1100
1111
$source and $source->sqlite_tables and @{$source->sqlite_tables;} > 1
167350
Adec
00
11
$records //= []
1683100
Adec
00
11
$self->param("back2_label") // "Back"
175350
Adec
00
11
($self->param("path") // $ENV{'HOME'}) // "/"
67
ABdec
000
011
1X1
$self->param("path") // $ENV{'HOME'}
1755100
ABdec
0X0
100
111
defined $dir and -d $dir
19090
Adec
00
11
$records //= []
19140
Adec
00
11
$self->param("back2_label") // "Back"
0
Adec
00
11
_safe_back_url($self->param("back")) // "/"
0
Adec
00
11
$self->param("back_label") // "Home"
196950
Adec
00
11
$records //= []
197450
Adec
00
11
$self->param("back2_label") // "Back"
2004100
ABCdec
0XX0
10X0
1100
1111
defined $file and -f $file and $file->basename =~ /$EXT_RE/u
202050
Adec
00
11
$self->param("back_label") // "Back"
202880
ABCDdec
0XXX0
10XX0
110X0
11100
11111
not defined $it and $source and $source->sqlite_tables and @{$source->sqlite_tables;} > 1
204550
Adec
00
11
$self->param("back2_label") // "Back"
206450
Adec
00
11
$records //= []
2071100
Adec
00
11
$self->param("back2_label") // "Back"
2140100
Adec
00
11
$self->param("url") // ""
2141100
Adec
00
11
$self->param("table_index") // 0
216267
ABdec
000
011
1X1
$@ or not $source
50
Adec
00
11
$@ // "unknown error"
216550
Adec
00
11
$@ // "empty result"
2177100
Adec
00
11
$self->param("back2_label") // "Back"
2251100
ABdec
000
011
1X1
defined $table_name or defined $path
2252100
Adec
00
11
$self->param("spec") // ""
2261100
ABdec
0X0
100
111
defined $table_name and $table_name =~ /$TABLE_NAME_RE/u
226250
Adec
00
11
$self->app->config->{'data_dir'} // "data"
226950
Adec
00
11
$2 // ""
227850
ABCdec
0XX0
10X0
1100
1111
defined $file and -f $file and $file->basename =~ /$EXT_RE/u
22890
Adec
00
11
eval {         do {         $source->fetch_all } } // []
2349100
Adec
00
11
$self->param("l") // ""
235833
ABdec
000
011
1X1
$self->app->config("join_max_rows") // $DEFAULT_JOIN_MAX_ROWS
235950
Adec
00
11
$self->param("jtype") // "left"
236525
ABCdec
0XX0
10X0
1100
1111
defined $right_spec and defined $left_key and defined $right_key
2395100
Adec
00
11
$self->param("dir") // "asc"
241450
Adec
00
11
$records //= []
241767
ABdec
0X0
100
111
defined $sort and not grep({$_ eq $sort;} @columns)
2431100
Adec
00
11
$self->param("back2_label") // "Back"
2514100
Adec
00
11
$self->param("l") // ""
252950
Adec
00
11
$left_recs //= []
254050
Adec
00
11
eval {         do {         $csrc->fetch_all } } // []
255350
Adec
00
11
$self->every_param("f") // []
2561100
Adec
00
11
$self->param("dir") // "asc"
256267
ABdec
0X0
100
111
defined $sort and grep {$_ eq $sort;} @columns
256450
Adec
00
11
$Database::BI::Controller::Dashboard::b->{$sort} // ""
50
Adec
00
11
$Database::BI::Controller::Dashboard::a->{$sort} // ""
2587100
Adec
00
11
$self->param("back2_label") // "Back"
268050
Adec
00
11
$self->stash("schema_warnings") // []
2686100
Adec
00
11
$self->param("format") // "csv"
276650
Adec
00
11
$self->param("dir") // ""
276750
Adec
00
11
$self->param("filename") // ""
2770100
ABdec
0X0
100
111
defined $dest_dir and -d $dest_dir
278067
ABdec
0X0
100
111
$filename and $filename =~ /\.json\z/iu
100
ABdec
0X0
100
111
$filename and $filename =~ /\.csv\z/iu
100
ABdec
0X0
100
111
$filename and $filename =~ /\.sql\z/iu
285550
Adec
00
11
($self->param("path") // $ENV{'HOME'}) // "/"
67
ABdec
000
011
1X1
$self->param("path") // $ENV{'HOME'}
2857100
ABdec
0X0
100
111
defined $dir and -d $dir
2923100
ABdec
0X0
100
111
defined $path and length $path
2933100
ABCdec
0XX0
10X0
1100
1111
defined $file and -f $file and $file->basename =~ /$EXT_RE/u
295350
Adec
00
11
$tbls // []
302967
ABdec
0X0
100
111
$upload and $upload->filename
304167
ABdec
000
011
1X1
$self->req->is_limit_exceeded or $upload->size > $MAX_UPLOAD_BYTES
305167
ABdec
0X0
100
111
$filename and $filename =~ /$EXT_RE/u
3074100
ABdec
0X0
100
111
$ok and -f $dest
310450
Adec
00
11
-s $file // 0
31090
Adec
00
11
-s $entry // 0
3133100
Adec
00
11
$self->param("x") // ""
3134100
Adec
00
11
$self->param("y") // ""
3135100
Adec
00
11
$self->param("series") // ""
3136100
Adec
00
11
_safe_back_url($self->param("back")) // "/"
313850
Adec
00
11
$self->param("back2_label") // ""
3140100
ABdec
0X0
100
111
length $x_col and length $y_col
317050
Adec
00
11
$row->{$x_col} // ""
317150
Adec
00
11
$row->{$y_col} // ""
317250
Adec
00
11
$row->{$series_col} // ""
317325
ABCdec
0XX0
10X0
1100
1111
length $x and length $y and length $grp
320450
Adec
00
11
$row->{$x_col} // ""
3205100
Adec
00
11
$row->{$y_col} // ""
320667
ABdec
0X0
100
111
length $x and length $y
322450
Adec
00
11
$self->every_param("f") // []
322660
ABCDdec
0XXX0
10XX0
110X0
11100
11111
not $ENV{'BI_FORCE_PERL_AGG'} and $src and not $has_filter and _measure_pushable($src, "avg", $y_col, $records)
323825
ABCdec
0XX0
10X0
1100
1111
not $@ and $ref and @$ref
32620
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
3281100
Adec
00
11
$self->param("cat") // ""
3282100
Adec
00
11
$self->param("val") // ""
3284100
Adec
00
11
_safe_back_url($self->param("back")) // "/"
328650
Adec
00
11
$self->param("back2_label") // ""
3288100
ABdec
0X0
100
111
length $cat_col and length $val_col
331067
ABdec
000
011
1X1
$count_mode or $col_set{$val_col}
331850
Adec
00
11
$row->{$val_col} // ""
333950
Adec
00
11
$self->param("topn") // 0
334033
ABdec
0X0
100
111
$topn_n > 0 and @$agg_rows > $topn_n
33410
Adec
00
11
$Database::BI::Controller::Dashboard::a->{'value'} // 0
0
Adec
00
11
$Database::BI::Controller::Dashboard::b->{'value'} // 0
33430
Adec
00
11
$_->{$cat_col} // ""
33450
Adec
00
11
$_->{$cat_col} // ""
33540
ABdec
0X0
100
111
@$other and defined $other->[0]{'value'}
336950
Adec
00
11
$self->param("scheme") // "tableau10"
33850
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
3458100
Adec
00
11
$self->param("x") // ""
3459100
Adec
00
11
$self->param("y") // ""
3460100
Adec
00
11
$self->param("val") // ""
346150
Adec
00
11
$self->param("scheme") // "YlOrRd"
346350
Adec
00
11
_safe_back_url($self->param("back")) // "/"
346550
Adec
00
11
$self->param("back2_label") // ""
3467100
ABdec
0X0
100
111
length $x_col and length $y_col
348867
ABdec
0X0
100
111
length $val_col and not $col_set{$val_col}
3496100
Adec
00
11
$row->{$x_col} // (next)
349750
Adec
00
11
$row->{$y_col} // (next)
349833
ABdec
0X0
100
111
length $x and length $y
3522100
Adec
00
11
$grid{$raw_x}{$_} // 0
35490
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
3619100
Adec
00
11
$self->param("cat") // ""
3620100
Adec
00
11
$self->param("val") // ""
3621100
Adec
00
11
$self->param("orient") // "vertical"
3622100
Adec
00
11
$self->param("sort") // "none"
362350
Adec
00
11
$self->param("max") // 0
362450
Adec
00
11
_safe_back_url($self->param("back")) // "/"
362650
Adec
00
11
$self->param("back2_label") // ""
3648100
ABdec
000
011
1X1
$val_col eq '__count__' || !length($val_col)
3650100
ABdec
000
011
1X1
$count_mode or $col_set{$val_col}
3664100
Adec
00
11
$self->param("topn") // 0
366567
ABdec
0X0
100
111
$topn_n > 0 and @$agg_rows > $topn_n
366650
Adec
00
11
$Database::BI::Controller::Dashboard::a->{'value'} // 0
50
Adec
00
11
$Database::BI::Controller::Dashboard::b->{'value'} // 0
366850
Adec
00
11
$_->{$cat_col} // ""
367050
Adec
00
11
$_->{$cat_col} // ""
367933
ABdec
0X0
100
111
@$other and defined $other->[0]{'value'}
369267
ABdec
000
011
1X1
$sort eq 'value' || $sort eq 'label'
37150
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
3794100
Adec
00
11
$self->param("col") // ""
3795100
Adec
00
11
$self->param("prefix") // ""
3796100
Adec
00
11
$self->param("l") // ""
380833
ABdec
000
011
1X1
_safe_back_url($self->param('back')) || $self->_spec_to_url($left_spec)
382150
Adec
00
11
$row->{$col} // ""
382767
ABdec
000
011
1X1
$key_col ||= $columns->[0] // ""
3834100
Adec
00
11
$row->{$key_col} // ""
3911100
Adec
00
11
$prefix_to_rows{$prefix} // []
391550
Adec
00
11
$Database::BI::Controller::Dashboard::a->{$key_col} // ""
391650
Adec
00
11
$Database::BI::Controller::Dashboard::b->{$key_col} // ""
391850
Adec
00
11
$bn // 0
0
Adec
00
11
$Database::BI::Controller::Dashboard::a->{$key_col} // ""
0
Adec
00
11
$Database::BI::Controller::Dashboard::b->{$key_col} // ""
50
Adec
00
11
$an // 0
3970100
ABdec
0X0
100
111
defined $spec and length $spec
397850
Adec
00
11
$self->app->config->{'data_dir'} // "data"
399375
ABCdec
0XX0
10X0
1100
1111
defined $file and -f $file and $file->basename =~ /\.(?:sql|sqlite|sqlite3|db)\z/iu
40060
Adec
00
11
$hostport //= "localhost:6379"
40280
ABdec
0X0
100
111
defined $password and length $password
40290
ABdec
0X0
100
111
defined $db_idx and int $db_idx > 0
40340
ABdec
0X0
100
111
$cursor ne 0 and @all_keys < 200
40370
Adec
00
11
$batch // []
406250
Adec
00
11
$tnames // []
411250
Adec
00
11
$self->param("l") // ""
411650
Adec
00
11
_safe_back_url($self->param("back")) // "/"
411850
Adec
00
11
$self->param("back2_label") // ""
4120100
Adec
00
11
$self->param("rows") // ""
412450
Adec
00
11
$self->every_param("m") // []
4131100
Adec
00
11
$self->param("cols") // ""
4144100
Adec
00
11
$self->param("totals") // ""
414550
Adec
00
11
$self->param("scheme") // ""
414650
Adec
00
11
$self->param("max_cols") // 0
4147100
Adec
00
11
$self->param("format") // ""
417667
ABdec
0X0
100
111
defined $m->{'col'} and length $m->{'col'}
419467
ABdec
0X0
100
111
defined $m->{'col'} && length $m->{'col'}
420250
Adec
00
11
$row->{$_} // ""
420350
Adec
00
11
$row->{$_} // ""
420650
Adec
00
11
$row->{$_} // ""
421050
Adec
00
11
$row->{$_} // ""
422050
Adec
00
11
$self->every_param("h") // []
4253100
Adec
00
11
$self->param("topn") // 0
4254100
Adec
00
11
$self->param("topn_col") // ""
425667
ABdec
0X0
100
111
$topn_n > 0 and @row_key_order > $topn_n
425867
ABdec
0X0
100
111
length $topn_col and not $m_aliases{$topn_col}
426850
Adec
00
11
$cells{$b}{$_}{$sort_as} // 0
427050
Adec
00
11
$cells{$a}{$_}{$sort_as} // 0
428150
Adec
00
11
$r->{$_} // ""
428833
ABdec
0X0
100
111
defined $m->{'col'} && length $m->{'col'}
42940
Adec
00
11
$row->{$_} // ""
431633
ABdec
0X0
100
111
defined $m->{'col'} && length $m->{'col'}
432650
Adec
00
11
$r->{$_} // ""
433950
Adec
00
11
$c->{$_} // ""
435933
ABdec
0X0
100
111
$max_cols_n > 0 and @col_key_order > $max_cols_n
43640
Adec
00
11
$cells{$_}{$b}{$first_as} // 0
43690
Adec
00
11
$cells{$_}{$a}{$first_as} // 0
0
Adec
00
11
$col_subtotals{$b}{$first_as} // 0
0
Adec
00
11
$col_subtotals{$a}{$first_as} // 0
439667
ABdec
0X0
100
111
$format and $format =~ /\A(?:csv|sqlite|sql|json|xlsx)\z/u
440150
Adec
00
11
$row_combos{$rk}{$_} // ""
44020
Adec
00
11
$col_combos{$ck}{$_} // ""
440350
Adec
00
11
$cells{$rk}{$ck}{$_->{'as'}} // ""
44100
ABdec
000
011
1X1
$format eq "sqlite" or $format eq "sql"
44240
Adec
00
11
$rec->{$_} // ""
446050
Adec
00
11
$col_combos{$ck}{$_} // ""
446850
Adec
00
11
$cells{$rk}{$ck} // {}
447350
Adec
00
11
$row_subtotals{$rk} // {}
44800
Adec
00
11
$self->param("back_label") // "Back to table"
33
ABdec
000
011
1X1
$back2 // $back
0
Adec
00
11
$back2_lbl || 'Back'
50
Adec
00
11
$self->param("back_label") // "Back to table"
4521100
Adec
00
11
$self->param("l") // ""
452550
Adec
00
11
_safe_back_url($self->param("back")) // "/"
452750
Adec
00
11
$self->param("back2_label") // ""
45900
Adec
00
11
$self->param("back_label") // "Back to table"
33
ABdec
000
011
1X1
$back2 // $back
0
Adec
00
11
$back2_lbl || 'Back'
50
Adec
00
11
$self->param("back_label") // "Back to table"
4613100
Adec
00
11
$self->param("l") // ""
461450
Adec
00
11
$self->param("name") // ""
4615100
Adec
00
11
$self->param("expr") // ""
463350
Adec
00
11
$self->param("l") // ""
463450
Adec
00
11
$self->param("name") // ""
4646100
Adec
00
11
$self->param("l") // ""
4651100
Adec
00
11
$models->{'fields'}{$spec} // {}
465950
Adec
00
11
$self->param("l") // ""
466050
Adec
00
11
$self->param("col") // ""
466150
Adec
00
11
$self->param("group") // ""
466250
Adec
00
11
$self->every_param("values") // []
467850
Adec
00
11
$self->param("l") // ""
467950
Adec
00
11
$self->param("col") // ""
468050
Adec
00
11
$self->param("group") // ""
468633
ABdec
0X0
100
111
length $col and length $group_name
469850
Adec
00
11
$self->param("l") // ""
470350
Adec
00
11
$models->{'groups'}{$spec} // {}
4714100
Adec
00
11
$self->param("l") // ""
471550
Adec
00
11
$self->param("col") // ""
471650
Adec
00
11
$self->param("pattern") // ""
473650
Adec
00
11
$self->param("l") // ""
4737100
Adec
00
11
$self->param("col") // ""
4755100
Adec
00
11
$self->param("l") // ""
4760100
Adec
00
11
$models->{'date_patterns'}{$spec} // {}
4768100
Adec
00
11
$self->param("x") // ""
4769100
Adec
00
11
$self->param("y") // ""
477050
Adec
00
11
_safe_back_url($self->param("back")) // "/"
477250
Adec
00
11
$self->param("back2_label") // ""
479350
Adec
00
11
$row->{$x_col} // ""
479450
Adec
00
11
$row->{$y_col} // ""
479533
ABdec
0X0
100
111
defined $xv and defined $yv
47960
Adec
00
11
$row->{$_} // ""
48210
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
4843100
Adec
00
11
$self->param("cat") // ""
4844100
Adec
00
11
$self->param("seg") // ""
4845100
Adec
00
11
$self->param("val") // ""
484650
Adec
00
11
$self->param("orient") // "v"
484750
Adec
00
11
_safe_back_url($self->param("back")) // "/"
484950
Adec
00
11
$self->param("back2_label") // ""
486867
ABdec
000
011
1X1
!length($val_col) || $val_col eq '__count__'
487067
ABdec
000
011
1X1
$count_mode or $col_set{$val_col}
487550
Adec
00
11
$row->{$cat_col} // ""
487650
Adec
00
11
$row->{$seg_col} // ""
487733
ABdec
0X0
100
111
length $cat and length $seg
488350
Adec
00
11
$row->{$val_col} // ""
488450
Adec
00
11
$v // 0
489150
Adec
00
11
$totals{$cat}{$seg} // 0
49150
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
4935100
Adec
00
11
$self->param("x") // ""
4936100
Adec
00
11
$self->param("bar") // ""
4937100
Adec
00
11
$self->param("line") // ""
493850
Adec
00
11
$self->param("bar_label") // ""
493950
Adec
00
11
$self->param("line_label") // ""
494050
Adec
00
11
_safe_back_url($self->param("back")) // "/"
494250
Adec
00
11
$self->param("back2_label") // ""
496650
Adec
00
11
$row->{$x_col} // ""
496950
Adec
00
11
$row->{$bar_col} // ""
497050
Adec
00
11
$row->{$line_col} // ""
497150
Adec
00
11
$bv // 0
497250
Adec
00
11
$lv // 0
497850
Adec
00
11
$line_sum{$_} // 0
50
Adec
00
11
$bar_sum{$_} // 0
498933
ABdec
000
011
1X1
$bar_label || $bar_col
499033
ABdec
000
011
1X1
$line_label || $line_col
50020
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
5022100
Adec
00
11
$self->param("cat") // ""
502350
Adec
00
11
$self->param("val") // ""
502450
Adec
00
11
$self->param("scheme") // "tableau10"
502550
Adec
00
11
_safe_back_url($self->param("back")) // "/"
502750
Adec
00
11
$self->param("back2_label") // ""
504433
ABdec
000
011
1X1
!length($val_col) || $val_col eq '__count__'
504633
ABdec
000
011
1X1
$count_mode or $col_set{$val_col}
505950
Adec
00
11
$self->param("topn") // 0
506033
ABdec
0X0
100
111
$topn_n > 0 and @$agg_rows > $topn_n
50610
Adec
00
11
$Database::BI::Controller::Dashboard::a->{'value'} // 0
0
Adec
00
11
$Database::BI::Controller::Dashboard::b->{'value'} // 0
50630
Adec
00
11
$_->{$cat_col} // ""
50650
Adec
00
11
$_->{$cat_col} // ""
50740
ABdec
0X0
100
111
@$other and defined $other->[0]{'value'}
51010
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back
5123100
Adec
00
11
$self->param("col") // ""
5124100
Adec
00
11
$self->param("bins") // 20
512550
Adec
00
11
_safe_back_url($self->param("back")) // "/"
512750
Adec
00
11
$self->param("back2_label") // ""
514650
Adec
00
11
$row->{$col} // ""
51730
Adec
00
11
$back2_lbl || 'Back'
33
ABdec
000
011
1X1
$back2 // $back