Branch Coverage

runtime.c
Criterion Covered Total %
branch 62 92 67.3


line true false branch
20 2127 11 if (num_rows > 0) {
21 0 2127 Newx(row_avs, num_rows, AV*);
24 463526 2132 for (r = 0; r < num_rows; r++) {
28 0 463526 if (!row_sv)
36 463523 3 if (!SvROK(*row_sv) || SvTYPE(SvRV(*row_sv)) != SVt_PVAV)
0 463523 if (!SvROK(*row_sv) || SvTYPE(SvRV(*row_sv)) != SVt_PVAV)
40 3 463520 if (row_cols != enc->num_columns)
51 5702 2076 for (c = 0; c < enc->num_columns; c++) {
55 732318 5702 for (r = 0; r < num_rows; r++) {
57 732318 0 if (val_sv) {
79 4 0 if (!mode || strcmp(mode, "none") == 0 || strcmp(mode, "raw") == 0)
4 0 if (!mode || strcmp(mode, "none") == 0 || strcmp(mode, "raw") == 0)
0 4 if (!mode || strcmp(mode, "none") == 0 || strcmp(mode, "raw") == 0)
84 0 4 PUSHMARK(SP);
85 0 4 XPUSHs(sv_2mortal(newSVpvs("ClickHouse::Encoder")));
86 0 4 XPUSHs(bytes);
87 0 4 XPUSHs(sv_2mortal(newSVpvs("mode")));
88 0 4 XPUSHs(sv_2mortal(newSVpv(mode, 0)));
89 1 3 if (hasher_sv) {
90 0 1 XPUSHs(sv_2mortal(newSVpvs("hasher")));
91 0 1 XPUSHs(hasher_sv);
97 4 0 if (n == 1) {
103 4 0 FREETMPS;
105 0 4 if (!out) croak("streamer: compress_native_block returned nothing");
120 0 77 PUSHMARK(SP);
121 0 77 XPUSHs(bytes);
125 74 0 FREETMPS;
130 6 28 if (av_len(s->buffer) < 0) return;
143 4 24 if (s->compress_mode) {
155 0 4 PUSHMARK(SP);
156 0 4 XPUSHs(out);
159 4 0 FREETMPS;
167 0 19 if (!s) return;
168 19 0 if (s->enc_sv) SvREFCNT_dec(s->enc_sv);
169 19 0 if (s->writer) SvREFCNT_dec(s->writer);
170 19 0 if (s->buffer) SvREFCNT_dec((SV *)s->buffer);
171 2 17 if (s->compress_mode) Safefree(s->compress_mode);
172 1 18 if (s->hasher_sv) SvREFCNT_dec(s->hasher_sv);
178 0 19 if (*slot) free_streamer(aTHX_ *slot);
183 0 1519 if (!enc) return;
184 1519 0 if (enc->columns) {
185 4205 1519 for (i = 0; i < enc->num_columns; i++) {
186 4203 2 if (enc->columns[i].name) Safefree(enc->columns[i].name);
187 4203 2 if (enc->columns[i].type_str) Safefree(enc->columns[i].type_str);
188 4177 28 if (enc->columns[i].type) free_typeinfo(aTHX_ enc->columns[i].type);
197 28 1491 if (*slot) free_encoder(aTHX_ *slot);