Branch Coverage

dbdimp_virtual_table.inc
Criterion Covered Total %
branch 0 468 0.0


line true false branch
34 0 0 PUSHMARK(SP);
35 0 0 XPUSHs(((perl_vtab *) pVTab)->perl_vtab_obj);
36 0 0 XPUSHs(sv_2mortal(newSViv(i)));
43 0 0 FREETMPS;
66 0 0 if( vt==NULL ) return SQLITE_NOMEM;
74 0 0 PUSHMARK(SP);
75 0 0 XPUSHs(sv_2mortal(newSVpv(init_data->perl_class, 0)));
76 0 0 XPUSHs(init_data->dbh);
77 0 0 for(i = 0; i < argc; i++) {
78 0 0 XPUSHs(newSVpvn_flags(argv[i], strlen(argv[i]), SVs_TEMP|SVf_UTF8));
85 0 0 if ( count != 1 ) {
94 0 0 if ( !sv_isobject(perl_vtab_obj) ) {
101 0 0 PUSHMARK(SP);
102 0 0 XPUSHs(perl_vtab_obj);
108 0 0 if (count != 1 ) {
118 0 0 rc = sqlite3_declare_vtab(db, SvPVutf8_nolen(sql));
121 0 0 if (rc == SQLITE_OK) {
131 0 0 FREETMPS;
233 0 0 for (i=0; inConstraint; i++){
239 0 0 hv_stores(constraint, "usable", pCons->usable ? &PL_sv_yes : &PL_sv_no);
245 0 0 for (i=0; inOrderBy; i++){
249 0 0 hv_stores(order, "desc", pOrder->desc ? &PL_sv_yes : &PL_sv_no);
254 0 0 PUSHMARK(SP);
255 0 0 XPUSHs( ((perl_vtab *) pVTab)->perl_vtab_obj);
256 0 0 XPUSHs( sv_2mortal( newRV_noinc((SV*) constraints)));
257 0 0 XPUSHs( sv_2mortal( newRV_noinc((SV*) order_by)));
263 0 0 if (count != 1)
266 0 0 if (!(hashref && SvROK(hashref) && SvTYPE(SvRV(hashref)) == SVt_PVHV))
0 0 if (!(hashref && SvROK(hashref) && SvTYPE(SvRV(hashref)) == SVt_PVHV))
0 0 if (!(hashref && SvROK(hashref) && SvTYPE(SvRV(hashref)) == SVt_PVHV))
270 0 0 pIdxInfo->idxNum = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->idxNum = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->idxNum = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->idxNum = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->idxNum = (val && SvOK(*val)) ? SvIV(*val) : 0;
272 0 0 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
274 0 0 char *str = SvPVutf8(*val, len);
281 0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pIdxInfo->orderByConsumed = (val && SvTRUE(*val)) ? 1 : 0;
283 0 0 pIdxInfo->estimatedCost = (val && SvOK(*val)) ? SvNV(*val) : 0;
0 0 pIdxInfo->estimatedCost = (val && SvOK(*val)) ? SvNV(*val) : 0;
0 0 pIdxInfo->estimatedCost = (val && SvOK(*val)) ? SvNV(*val) : 0;
0 0 pIdxInfo->estimatedCost = (val && SvOK(*val)) ? SvNV(*val) : 0;
0 0 pIdxInfo->estimatedCost = (val && SvOK(*val)) ? SvNV(*val) : 0;
286 0 0 pIdxInfo->estimatedRows = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->estimatedRows = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->estimatedRows = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->estimatedRows = (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 pIdxInfo->estimatedRows = (val && SvOK(*val)) ? SvIV(*val) : 0;
291 0 0 for (i=0; inConstraint; i++){
293 0 0 if (!(rv && SvROK(*rv) && SvTYPE(SvRV(*rv)) == SVt_PVHV))
0 0 if (!(rv && SvROK(*rv) && SvTYPE(SvRV(*rv)) == SVt_PVHV))
0 0 if (!(rv && SvROK(*rv) && SvTYPE(SvRV(*rv)) == SVt_PVHV))
297 0 0 argvIndex = (val && SvOK(*val)) ? SvIV(*val) + 1: 0;
0 0 argvIndex = (val && SvOK(*val)) ? SvIV(*val) + 1: 0;
0 0 argvIndex = (val && SvOK(*val)) ? SvIV(*val) + 1: 0;
0 0 argvIndex = (val && SvOK(*val)) ? SvIV(*val) + 1: 0;
0 0 argvIndex = (val && SvOK(*val)) ? SvIV(*val) + 1: 0;
302 0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
0 0 pConsUsage->omit = (val && SvTRUE(*val)) ? 1 : 0;
306 0 0 FREETMPS;
327 0 0 if( cursor==NULL ) return SQLITE_NOMEM;
331 0 0 PUSHMARK(SP);
332 0 0 XPUSHs( ((perl_vtab *) pVTab)->perl_vtab_obj);
336 0 0 if (count != 1) {
343 0 0 if ( !sv_isobject(perl_cursor) ) {
353 0 0 if (rc == SQLITE_OK) {
362 0 0 FREETMPS;
384 0 0 FREETMPS;
403 0 0 PUSHMARK(SP);
404 0 0 XPUSHs(((perl_vtab_cursor *) pVtabCursor)->perl_cursor_obj);
405 0 0 XPUSHs(sv_2mortal(newSViv(idxNum)));
406 0 0 XPUSHs(sv_2mortal(newSVpv(idxStr, 0)));
407 0 0 for(i = 0; i < argc; i++) {
408 0 0 XPUSHs(stacked_sv_from_sqlite3_value(aTHX_ argv[i], is_unicode));
416 0 0 FREETMPS;
432 0 0 PUSHMARK(SP);
433 0 0 XPUSHs(((perl_vtab_cursor *) pVtabCursor)->perl_cursor_obj);
440 0 0 FREETMPS;
455 0 0 PUSHMARK(SP);
456 0 0 XPUSHs(((perl_vtab_cursor *) pVtabCursor)->perl_cursor_obj);
460 0 0 if (count != 1) {
466 0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
0 0 eof = SvTRUE(sv); /* eof = SvTRUE(POPs); # I don't understand why :-( */
470 0 0 FREETMPS;
489 0 0 PUSHMARK(SP);
490 0 0 XPUSHs(((perl_vtab_cursor *) pVtabCursor)->perl_cursor_obj);
491 0 0 XPUSHs(sv_2mortal(newSViv(col)));
495 0 0 if (count != 1) {
507 0 0 FREETMPS;
524 0 0 PUSHMARK(SP);
525 0 0 XPUSHs(((perl_vtab_cursor *) pVtabCursor)->perl_cursor_obj);
529 0 0 if (count != 1) {
534 0 0 *pRowid =POPi;
539 0 0 FREETMPS;
560 0 0 PUSHMARK(SP);
561 0 0 XPUSHs(((perl_vtab *) pVTab)->perl_vtab_obj);
562 0 0 for(i = 0; i < argc; i++) {
563 0 0 XPUSHs(stacked_sv_from_sqlite3_value(aTHX_ argv[i], is_unicode));
568 0 0 if (count != 1) {
573 0 0 if (argc > 1 && sqlite3_value_type(argv[0]) == SQLITE_NULL
0 0 if (argc > 1 && sqlite3_value_type(argv[0]) == SQLITE_NULL
574 0 0 && sqlite3_value_type(argv[1]) == SQLITE_NULL) {
578 0 0 if (!SvOK(rowidsv))
0 0 if (!SvOK(rowidsv))
0 0 if (!SvOK(rowidsv))
580 0 0 else if (SvUOK(rowidsv))
581 0 0 *pRowid = SvUV(rowidsv);
582 0 0 else if (SvIOK(rowidsv))
583 0 0 *pRowid = SvIV(rowidsv);
585 0 0 *pRowid = (sqlite3_int64)SvNV(rowidsv);
592 0 0 FREETMPS;
634 0 0 if (hv_exists(functions, func_name, len)) {
636 0 0 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
0 0 if (val && SvOK(*val)) {
642 0 0 PUSHMARK(SP);
643 0 0 XPUSHs(((perl_vtab *) pVTab)->perl_vtab_obj);
644 0 0 XPUSHs(sv_2mortal(newSViv(nArg)));
645 0 0 XPUSHs(sv_2mortal(newSVpv(zName, 0)));
649 0 0 if (count != 1) {
655 0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
0 0 if (SvTRUE(result)) {
662 0 0 hv_store(functions, func_name, len, coderef ? coderef : &PL_sv_undef, 0);
666 0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
0 0 is_overloaded = coderef && SvTRUE(coderef);
667 0 0 if (is_overloaded) {
669 0 0 : sqlite_db_func_dispatcher_no_unicode;
675 0 0 FREETMPS;
691 0 0 PUSHMARK(SP);
692 0 0 XPUSHs(((perl_vtab *) pVTab)->perl_vtab_obj);
693 0 0 XPUSHs(sv_2mortal(newSVpv(zNew, 0)));
697 0 0 if (count != 1) {
702 0 0 rc = POPi;
706 0 0 FREETMPS;
768 0 0 PUSHMARK(SP);
769 0 0 XPUSHs(sv_2mortal(newSVpv(init_data->perl_class, 0)));
780 0 0 FREETMPS;
799 0 0 if (!DBIc_ACTIVE(imp_dbh)) {
806 0 0 if (!get_av(module_ISA, 0)) {
826 0 0 if ( rc != SQLITE_OK ) {
834 0 0 PUSHMARK(SP);
835 0 0 XPUSHs(sv_2mortal(newSVpv(perl_class, 0)));
836 0 0 XPUSHs(sv_2mortal(newSVpv(name, 0)));
843 0 0 FREETMPS;