Branch Coverage

dbdimp.c
Criterion Covered Total %
branch 996 2102 47.3


line true false branch
10 116 0 DBISTATE_DECLARE;
0 116 DBISTATE_DECLARE;
55 0 2259 ((sql[0] == 'B' || sql[0] == 'b') &&
0 25 ((sql[0] == 'B' || sql[0] == 'b') &&
56 0 0 (sql[1] == 'E' || sql[1] == 'e') &&
0 25 (sql[1] == 'E' || sql[1] == 'e') &&
57 0 0 (sql[2] == 'G' || sql[2] == 'g') &&
0 25 (sql[2] == 'G' || sql[2] == 'g') &&
58 0 0 (sql[3] == 'I' || sql[3] == 'i') &&
0 25 (sql[3] == 'I' || sql[3] == 'i') &&
59 0 0 (sql[4] == 'N' || sql[4] == 'n')
61 87 1301 (sql[0] == 'S' || sql[0] == 's') &&
945 13 (sql[0] == 'S' || sql[0] == 's') &&
62 0 945 (sql[1] == 'A' || sql[1] == 'a') &&
0 13 (sql[1] == 'A' || sql[1] == 'a') &&
63 0 0 (sql[2] == 'V' || sql[2] == 'v') &&
0 13 (sql[2] == 'V' || sql[2] == 'v') &&
64 0 0 (sql[3] == 'E' || sql[3] == 'e') &&
0 13 (sql[3] == 'E' || sql[3] == 'e') &&
65 0 0 (sql[4] == 'P' || sql[4] == 'p') &&
0 13 (sql[4] == 'P' || sql[4] == 'p') &&
66 0 0 (sql[5] == 'O' || sql[5] == 'o') &&
0 13 (sql[5] == 'O' || sql[5] == 'o') &&
67 0 0 (sql[6] == 'I' || sql[6] == 'i') &&
0 13 (sql[6] == 'I' || sql[6] == 'i') &&
68 0 0 (sql[7] == 'N' || sql[7] == 'n') &&
0 13 (sql[7] == 'N' || sql[7] == 'n') &&
69 0 0 (sql[8] == 'T' || sql[8] == 't')
71 2259 25 ) ? TRUE : FALSE;
1388 871 ) ? TRUE : FALSE;
84 1032 120 for(i = 0; c == 0 && i < 18; i++){
984 48 for(i = 0; c == 0 && i < 18; i++){
87 48 120 if(c == 0){
100 785 218 while(zNum < zEnd && _isspace(*zNum)) zNum++;
1 784 while(zNum < zEnd && _isspace(*zNum)) zNum++;
0 784 while(zNum < zEnd && _isspace(*zNum)) zNum++;
0 784 while(zNum < zEnd && _isspace(*zNum)) zNum++;
0 784 while(zNum < zEnd && _isspace(*zNum)) zNum++;
0 784 while(zNum < zEnd && _isspace(*zNum)) zNum++;
0 784 while(zNum < zEnd && _isspace(*zNum)) zNum++;
101 784 218 if (zNum < zEnd) {
102 188 596 if (*zNum == '-') {
105 0 596 } else if (*zNum == '+') {
110 784 280 while(zNum < zEnd && zNum[0] == '0') zNum++;
62 722 while(zNum < zEnd && zNum[0] == '0') zNum++;
111 5364 958 for(i = 0; &zNum[i] < zEnd && (c = zNum[i]) >= '0' && c <= '9'; i++) {
5346 18 for(i = 0; &zNum[i] < zEnd && (c = zNum[i]) >= '0' && c <= '9'; i++) {
5320 26 for(i = 0; &zNum[i] < zEnd && (c = zNum[i]) >= '0' && c <= '9'; i++) {
114 12 990 if (u > LARGEST_INT64) {
115 12 0 *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;
116 176 814 } else if (neg) {
121 722 280 if ((c != 0 && &zNum[i] < zEnd) || (i == 0 && zStart == zNum) || i > 19) {
678 44 if ((c != 0 && &zNum[i] < zEnd) || (i == 0 && zStart == zNum) || i > 19) {
280 678 if ((c != 0 && &zNum[i] < zEnd) || (i == 0 && zStart == zNum) || i > 19) {
62 218 if ((c != 0 && &zNum[i] < zEnd) || (i == 0 && zStart == zNum) || i > 19) {
0 740 if ((c != 0 && &zNum[i] < zEnd) || (i == 0 && zStart == zNum) || i > 19) {
123 572 168 } else if (i < 19) {
127 156 12 if (c < 0) {
129 0 12 } else if (c > 0) {
132 12 0 return neg ? 0 : 2;
155 0 208 if ( DBIc_TRACE_LEVEL(imp_xxh) >= 3 ) {
171 44 2989 if ( rc != SQLITE_OK ) {
173 44 0 if (errmsg) sqlite3_free(errmsg);
182 20 297 if (flags) {
187 6 311 if ( rc != SQLITE_OK ) {
189 0 6 if (extended)
193 6 0 if (*db) sqlite3_close(*db);
274 0 799 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv, string_mode);
0 799 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv, string_mode);
0 0 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv, string_mode);
336 463 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv, string_mode);
336 0 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv, string_mode);
299 6 616 if ( is_error ) {
300 6 0 s = SvPV(result, len);
306 146 470 if ( !SvOK(result) ) {
146 0 if ( !SvOK(result) ) {
146 0 if ( !SvOK(result) ) {
308 12 458 } else if( SvROK(result) && SvTYPE(SvRV(result)) == SVt_PVAV ) {
12 0 } else if( SvROK(result) && SvTYPE(SvRV(result)) == SVt_PVAV ) {
310 12 0 if ( av_len(av) == 1 ) {
313 12 0 result2 = presult2 ? *presult2 : &PL_sv_undef;
314 12 0 type = ptype ? *ptype : &PL_sv_undef;
315 12 0 if ( SvIOK(type) ) {
316 12 0 switch(sqlite_type_from_odbc_type(SvIV(type))) {
318 0 0 sqlite3_result_int64( context, SvIV(result2) );
321 0 0 sqlite3_result_double( context, SvNV(result2) );
324 12 0 s = SvPV(result2, len);
328 0 0 s = SvPV(result2, len);
335 0 458 } else if( SvIOK_UV(result) ) {
337 0 0 sqlite3_result_int64( context, (sqlite3_int64)SvUV(result));
342 308 150 } else if ( !_sqlite_atoi64(SvPV(result, len), &iv) ) {
196 262 } else if ( !_sqlite_atoi64(SvPV(result, len), &iv) ) {
344 218 44 } else if ( SvNOK(result) && ( sizeof(NV) == sizeof(double) || SvNVX(result) == (double) SvNVX(result) ) ) {
345 218 0 sqlite3_result_double( context, SvNV(result));
347 44 0 s = SvPV(result, len);
369 207 17 if (sql_type != SQLITE_NULL) {
370 1 207 while (*z == ' ') { z++; v++; d++; }
373 94 130 if (*z == '-') { neg = 1; z++; d++; }
374 0 130 else if (*z == '+') { neg = 0; z++; d++; has_plus = TRUE; }
376 2 222 if (!isdigit(*z)) return 0;
377 2450 222 while (isdigit(*z)) { digit++; z++; }
378 0 222 if (digit > 19) maybe_int = FALSE; /* too large for i64 */
379 84 138 if (digit == 19) {
384 24 60 if (c == 0) {
387 0 84 if (c > 0) maybe_int = FALSE;
389 6 216 if (*z == '.') {
392 0 6 if (!isdigit(*z)) return 0;
393 10 6 while (isdigit(*z)) { precision++; z++; }
395 218 4 if (*z == 'e' || *z == 'E') {
0 218 if (*z == 'e' || *z == 'E') {
398 4 0 if (*z == '+' || *z == '-') { z++; }
0 4 if (*z == '+' || *z == '-') { z++; }
399 0 4 if (!isdigit(*z)) return 0;
400 16 4 while (isdigit(*z)) { z++; }
402 0 222 if (*z && !isdigit(*z)) return 0;
0 0 if (*z && !isdigit(*z)) return 0;
404 214 8 if (maybe_int && digit) {
214 0 if (maybe_int && digit) {
405 214 0 if (!_sqlite_atoi64(v, &iv)) return 1;
407 6 2 if (sql_type != SQLITE_INTEGER) {
411 0 6 sprintf(format, (has_plus ? "+%%.%df" : "%%.%df" ), precision);
413 2 4 if (strEQ(form(format, atof(v)), v)) return 2;
426 0 116 DBISTATE_INIT; /* Initialize the DBI macros */
443 0 68 if (SvUOK(input)) {
444 0 0 return SvUV(input);
447 36 32 const char* pv = SvPVbyte_nolen(input);
453 0 68 if (numtype != IS_NUMBER_IN_UV) _croak_invalid_value(name, pv);
461 0 68 if (SvOK(input)) {
0 0 if (SvOK(input)) {
0 0 if (SvOK(input)) {
464 0 68 if (val >= _DBD_SQLITE_STRING_MODE_COUNT) {
465 0 0 _croak_invalid_value("sqlite_string_mode", SvPVbyte_nolen(input));
485 0 313 sqlite_trace(dbh, imp_dbh, 3, form("login '%s' (version %s)", dbname, sqlite3_version));
487 313 0 if (SvROK(attr)) {
489 0 313 if (hv_exists(hv, "sqlite_extended_result_codes", 28)) {
491 0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
0 0 extended = (val && SvOK(*val)) ? !(!SvTRUE(*val)) : 0;
493 1 312 if (hv_exists(hv, "ReadOnly", 8)) {
495 1 0 if ((val && SvOK(*val)) ? SvIV(*val) : 0) {
0 1 if ((val && SvOK(*val)) ? SvIV(*val) : 0) {
0 0 if ((val && SvOK(*val)) ? SvIV(*val) : 0) {
0 0 if ((val && SvOK(*val)) ? SvIV(*val) : 0) {
1 0 if ((val && SvOK(*val)) ? SvIV(*val) : 0) {
1 0 if ((val && SvOK(*val)) ? SvIV(*val) : 0) {
499 19 294 if (hv_exists(hv, "sqlite_open_flags", 17)) {
501 19 0 flag |= (val && SvOK(*val)) ? SvIV(*val) : 0;
0 19 flag |= (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 flag |= (val && SvOK(*val)) ? SvIV(*val) : 0;
0 0 flag |= (val && SvOK(*val)) ? SvIV(*val) : 0;
19 0 flag |= (val && SvOK(*val)) ? SvIV(*val) : 0;
502 3 16 if (flag & SQLITE_OPEN_READONLY) {
510 34 279 if (string_mode_svp != NULL && SvOK(*string_mode_svp)) {
0 34 if (string_mode_svp != NULL && SvOK(*string_mode_svp)) {
0 0 if (string_mode_svp != NULL && SvOK(*string_mode_svp)) {
0 0 if (string_mode_svp != NULL && SvOK(*string_mode_svp)) {
514 0 279 } else if (hv_exists(hv, "sqlite_unicode", 14)) {
516 0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
519 0 279 } else if (hv_exists(hv, "unicode", 7)) {
521 0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
0 0 if ( (val && SvOK(*val)) ? SvIV(*val) : 0 ) {
527 6 307 if ( rc != SQLITE_OK ) {
548 307 0 if (SvROK(attr)) {
550 1 306 if (hv_exists(hv, "sqlite_defensive", 16)) {
552 1 0 if (val && SvIOK(*val)) {
1 0 if (val && SvIOK(*val)) {
553 1 0 sqlite3_db_config(imp_dbh->db, SQLITE_DBCONFIG_DEFENSIVE, (int)SvIV(*val), 0);
581 307 0 DBIc_ACTIVE_on(imp_dbh);
307 0 DBIc_ACTIVE_on(imp_dbh);
307 0 DBIc_ACTIVE_on(imp_dbh);
0 307 DBIc_ACTIVE_on(imp_dbh);
594 0 2847 if (!DBIc_ACTIVE(imp_dbh)) {
600 106 2741 DBD_SQLITE_PREP_SV_FOR_SQLITE(sv_statement, imp_dbh->string_mode);
76 2665 DBD_SQLITE_PREP_SV_FOR_SQLITE(sv_statement, imp_dbh->string_mode);
602 2847 0 statement = SvPV_nolen(sv_statement);
604 0 2847 sqlite_trace(dbh, imp_dbh, 3, form("do statement: %s", statement));
608 607 2240 if (sqlite3_get_autocommit(imp_dbh->db)) {
610 9 22 _skip_whitespaces(sql);
8 1 _skip_whitespaces(sql);
3 5 _skip_whitespaces(sql);
3 0 _skip_whitespaces(sql);
3 0 _skip_whitespaces(sql);
0 3 _skip_whitespaces(sql);
81 34 _skip_whitespaces(sql);
1 33 _skip_whitespaces(sql);
5 28 _skip_whitespaces(sql);
0 28 _skip_whitespaces(sql);
0 28 _skip_whitespaces(sql);
0 28 _skip_whitespaces(sql);
3 0 _skip_whitespaces(sql);
57 1 _skip_whitespaces(sql);
55 2 _skip_whitespaces(sql);
22 616 _skip_whitespaces(sql);
1 615 _skip_whitespaces(sql);
5 610 _skip_whitespaces(sql);
0 610 _skip_whitespaces(sql);
0 610 _skip_whitespaces(sql);
0 610 _skip_whitespaces(sql);
3 607 _skip_whitespaces(sql);
3 0 _skip_whitespaces(sql);
611 32 575 if (_starts_with_begin(sql)) {
612 17 15 if (DBIc_is(imp_dbh, DBIcf_AutoCommit)) {
613 17 0 if (!DBIc_is(imp_dbh, DBIcf_BegunWork)) {
620 74 501 else if (!DBIc_is(imp_dbh, DBIcf_AutoCommit)) {
621 0 74 sqlite_trace(dbh, imp_dbh, 3, "BEGIN TRAN");
622 74 0 if (imp_dbh->use_immediate_transaction) {
627 5 69 if (rc != SQLITE_OK) {
634 33 2809 if (rc != SQLITE_OK) {
639 2242 567 if (DBIc_is(imp_dbh, DBIcf_BegunWork) && sqlite3_get_autocommit(imp_dbh->db)) {
17 2225 if (DBIc_is(imp_dbh, DBIcf_BegunWork) && sqlite3_get_autocommit(imp_dbh->db)) {
640 16 1 if (imp_dbh->began_transaction) {
655 2 80 if (!DBIc_ACTIVE(imp_dbh)) {
660 1 79 if (DBIc_is(imp_dbh, DBIcf_AutoCommit)) {
665 32 47 if (DBIc_is(imp_dbh, DBIcf_BegunWork)) {
675 77 2 if (!sqlite3_get_autocommit(imp_dbh->db)) {
676 0 77 sqlite_trace(dbh, imp_dbh, 3, "COMMIT TRAN");
679 4 73 if (rc != SQLITE_OK) {
693 2 50 if (!DBIc_ACTIVE(imp_dbh)) {
698 7 43 if (DBIc_is(imp_dbh, DBIcf_BegunWork)) {
708 18 32 if (!sqlite3_get_autocommit(imp_dbh->db)) {
710 0 18 sqlite_trace(dbh, imp_dbh, 3, "ROLLBACK TRAN");
713 0 18 if (rc != SQLITE_OK) {
728 24 281 if (DBIc_is(imp_dbh, DBIcf_AutoCommit) == FALSE) {
731 305 0 DBIc_ACTIVE_off(imp_dbh);
305 0 DBIc_ACTIVE_off(imp_dbh);
304 1 DBIc_ACTIVE_off(imp_dbh);
304 0 DBIc_ACTIVE_off(imp_dbh);
0 304 DBIc_ACTIVE_off(imp_dbh);
735 0 305 sqlite_trace( dbh, imp_dbh, 1, "Closing DB" );
737 0 305 sqlite_trace( dbh, imp_dbh, 1, form("rc = %d", rc) );
738 11 294 if ( SQLITE_BUSY == rc ) { /* We have unfinalized statements */
740 11 11 while ( (s = imp_dbh->stmt_list) ) {
741 0 11 sqlite_trace( dbh, imp_dbh, 1, form("Finalizing statement (%p)", s->stmt) );
747 0 11 sqlite_trace( dbh, imp_dbh, 1, "Trying to close DB again" );
750 0 305 if ( SQLITE_OK != rc ) {
755 4 305 while( (s = imp_dbh->stmt_list) ) {
780 0 307 if (DBIc_ACTIVE(imp_dbh)) {
795 1633 0 char *key = SvPV_nolen(keysv);
800 388 1245 if (strEQ(key, "AutoCommit")) {
801 388 0 if (SvTRUE(valuesv)) {
0 388 if (SvTRUE(valuesv)) {
2 386 if (SvTRUE(valuesv)) {
2 0 if (SvTRUE(valuesv)) {
0 2 if (SvTRUE(valuesv)) {
4 382 if (SvTRUE(valuesv)) {
4 0 if (SvTRUE(valuesv)) {
4 0 if (SvTRUE(valuesv)) {
1 3 if (SvTRUE(valuesv)) {
1 0 if (SvTRUE(valuesv)) {
382 0 if (SvTRUE(valuesv)) {
382 0 if (SvTRUE(valuesv)) {
79 303 if (SvTRUE(valuesv)) {
0 79 if (SvTRUE(valuesv)) {
0 0 if (SvTRUE(valuesv)) {
304 84 if (SvTRUE(valuesv)) {
803 303 1 if ( DBIc_ACTIVE(imp_dbh) && (!DBIc_is(imp_dbh, DBIcf_AutoCommit)) && (!sqlite3_get_autocommit(imp_dbh->db)) ) {
298 5 if ( DBIc_ACTIVE(imp_dbh) && (!DBIc_is(imp_dbh, DBIcf_AutoCommit)) && (!sqlite3_get_autocommit(imp_dbh->db)) ) {
2 296 if ( DBIc_ACTIVE(imp_dbh) && (!DBIc_is(imp_dbh, DBIcf_AutoCommit)) && (!sqlite3_get_autocommit(imp_dbh->db)) ) {
804 0 2 sqlite_trace(dbh, imp_dbh, 3, "COMMIT TRAN");
806 0 2 if (rc != SQLITE_OK) {
811 388 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
0 388 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
0 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
2 386 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
2 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
0 2 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
4 382 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
4 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
4 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
1 3 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
1 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
1 3 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
382 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
382 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
79 303 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
0 79 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
0 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
303 79 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
0 0 DBIc_set(imp_dbh, DBIcf_AutoCommit, SvTRUE(valuesv));
815 4 1241 if (strEQ(key, "ReadOnly")) {
816 4 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 4 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 4 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 4 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
4 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
4 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 4 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
0 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
4 0 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
1 3 if (SvTRUE(valuesv) && !sqlite3_db_readonly(imp_dbh->db, "main")) {
822 4 1237 if (strEQ(key, "sqlite_allow_multiple_statements")) {
823 4 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 4 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 4 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 4 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
4 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
4 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 4 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
4 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
0 0 imp_dbh->allow_multiple_statements = !(! SvTRUE(valuesv));
826 1 1236 if (strEQ(key, "sqlite_use_immediate_transaction")) {
827 1 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 1 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 1 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 1 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
1 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
1 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
1 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 1 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 1 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
0 0 imp_dbh->use_immediate_transaction = !(! SvTRUE(valuesv));
830 7 1229 if (strEQ(key, "sqlite_see_if_its_a_number")) {
831 7 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 7 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 7 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 7 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
7 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
7 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
3 4 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 3 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
4 3 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
0 0 imp_dbh->see_if_its_a_number = !(! SvTRUE(valuesv));
834 0 1229 if (strEQ(key, "sqlite_extended_result_codes")) {
835 0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
0 0 imp_dbh->extended_result_codes = !(! SvTRUE(valuesv));
839 1 1228 if (strEQ(key, "sqlite_prefer_numeric_type")) {
840 1 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 1 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 1 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 1 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
1 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
1 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 1 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
1 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
0 0 imp_dbh->prefer_numeric_type = !(! SvTRUE(valuesv));
844 34 1194 if (strEQ(key, "sqlite_string_mode")) {
859 0 1194 if (strEQ(key, "sqlite_unicode")) {
865 0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
870 0 1194 if (strEQ(key, "unicode")) {
871 0 0 _warn_deprecated_if_possible(key, "sqlite_string_mode");
876 0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
0 0 imp_dbh->string_mode = SvTRUE(valuesv) ? DBD_SQLITE_STRING_MODE_UNICODE_NAIVE : DBD_SQLITE_STRING_MODE_PV;
888 3302 0 char *key = SvPV_nolen(keysv);
890 4 3298 if (strEQ(key, "sqlite_version")) {
893 2982 316 if (strEQ(key, "sqlite_allow_multiple_statements")) {
896 2 314 if (strEQ(key, "sqlite_use_immediate_transaction")) {
899 4 310 if (strEQ(key, "sqlite_see_if_its_a_number")) {
902 0 310 if (strEQ(key, "sqlite_extended_result_codes")) {
905 0 310 if (strEQ(key, "sqlite_prefer_numeric_type")) {
909 6 304 if (strEQ(key, "sqlite_string_mode")) {
913 304 0 if (strEQ(key, "sqlite_unicode") || strEQ(key, "unicode")) {
0 304 if (strEQ(key, "sqlite_unicode") || strEQ(key, "unicode")) {
914 0 0 _warn_deprecated_if_possible(key, "sqlite_string_mode");
931 2 210 if (!DBIc_ACTIVE(imp_dbh)) {
954 4 1376 if (!DBIc_ACTIVE(imp_dbh)) {
960 142 1234 DBD_SQLITE_PREP_SV_FOR_SQLITE(sv_statement, imp_dbh->string_mode);
94 1140 DBD_SQLITE_PREP_SV_FOR_SQLITE(sv_statement, imp_dbh->string_mode);
962 1376 0 statement = SvPV_nolen(sv_statement);
971 0 1376 sqlite_trace(sth, imp_sth, 3, form("prepare statement: %s", statement));
981 17 1359 if (rc != SQLITE_OK) {
983 0 17 if (imp_sth->stmt) {
986 0 0 if (rc != SQLITE_OK) {
992 20 1339 if (imp_dbh->allow_multiple_statements) {
996 0 1339 if (imp_dbh->allow_multiple_statements)
1030 1 1739 if (!DBIc_ACTIVE(imp_dbh)) {
1035 4 1735 if (!imp_sth->stmt) return 0;
1041 0 1735 sqlite_trace(sth, imp_sth, 3, form("executing %s", sqlite3_sql(imp_sth->stmt)));
1043 4 1731 if (DBIc_ACTIVE(imp_sth)) {
1044 0 4 sqlite_trace(sth, imp_sth, 3, "execute still active, reset");
1046 0 4 if (imp_sth->retval != SQLITE_OK) {
1052 1159 1735 for (i = 0; i < num_params; i++) {
1055 1159 0 SV *value = pvalue ? *pvalue : &PL_sv_undef;
1056 232 927 int sql_type = sqlite_type_from_odbc_type(sql_type_sv ? SvIV(*sql_type_sv) : SQL_UNKNOWN_TYPE);
232 0 int sql_type = sqlite_type_from_odbc_type(sql_type_sv ? SvIV(*sql_type_sv) : SQL_UNKNOWN_TYPE);
1058 0 1159 sqlite_trace(sth, imp_sth, 4, form("bind %d type %d as %s", i, sql_type, SvPV_nolen_undef_ok(value)));
0 0 sqlite_trace(sth, imp_sth, 4, form("bind %d type %d as %s", i, sql_type, SvPV_nolen_undef_ok(value)));
0 0 sqlite_trace(sth, imp_sth, 4, form("bind %d type %d as %s", i, sql_type, SvPV_nolen_undef_ok(value)));
0 0 sqlite_trace(sth, imp_sth, 4, form("bind %d type %d as %s", i, sql_type, SvPV_nolen_undef_ok(value)));
0 0 sqlite_trace(sth, imp_sth, 4, form("bind %d type %d as %s", i, sql_type, SvPV_nolen_undef_ok(value)));
1060 14 1145 if (!SvOK(value)) {
14 0 if (!SvOK(value)) {
14 0 if (!SvOK(value)) {
1061 0 14 sqlite_trace(sth, imp_sth, 5, "binding null");
1064 12 1133 else if (sql_type == SQLITE_BLOB) {
1066 11 1 char * data = SvPVbyte(value, len);
1074 92 1041 if (imp_dbh->string_mode & DBD_SQLITE_STRING_MODE_UNICODE_ANY) {
1075 13 79 data = SvPVutf8(value, len);
1077 62 979 else if (imp_dbh->string_mode == DBD_SQLITE_STRING_MODE_BYTES) {
1078 50 12 data = SvPVbyte(value, len);
1081 667 312 data = SvPV(value, len);
1094 914 219 if (sql_type == SQLITE_NULL && imp_dbh->see_if_its_a_number) {
17 897 if (sql_type == SQLITE_NULL && imp_dbh->see_if_its_a_number) {
1097 909 207 else if (sql_type == SQLITE_INTEGER || sql_type == SQLITE_FLOAT) {
0 909 else if (sql_type == SQLITE_INTEGER || sql_type == SQLITE_FLOAT) {
1101 214 919 if (numtype == 1 && !_sqlite_atoi64(data, &iv)) {
214 0 if (numtype == 1 && !_sqlite_atoi64(data, &iv)) {
1104 2 917 else if (numtype == 2 && sql_type != SQLITE_INTEGER) {
2 0 else if (numtype == 2 && sql_type != SQLITE_INTEGER) {
1108 913 4 if (sql_type == SQLITE_INTEGER || sql_type == SQLITE_FLOAT) {
0 913 if (sql_type == SQLITE_INTEGER || sql_type == SQLITE_FLOAT) {
1114 0 4 if (DBIc_has(imp_dbh, DBIcf_PrintWarn))
1115 0 0 warn(
0 0 warn(
1117 0 0 i, SvPV_nolen_undef_ok(value),
0 0 i, SvPV_nolen_undef_ok(value),
0 0 i, SvPV_nolen_undef_ok(value),
1125 0 1159 if (rc != SQLITE_OK) {
1131 1677 58 if (sqlite3_get_autocommit(imp_dbh->db)) {
1134 15 38 _skip_whitespaces(sql);
9 6 _skip_whitespaces(sql);
0 9 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
264 92 _skip_whitespaces(sql);
30 62 _skip_whitespaces(sql);
9 53 _skip_whitespaces(sql);
0 53 _skip_whitespaces(sql);
0 53 _skip_whitespaces(sql);
0 53 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
38 1692 _skip_whitespaces(sql);
6 1686 _skip_whitespaces(sql);
9 1677 _skip_whitespaces(sql);
0 1677 _skip_whitespaces(sql);
0 1677 _skip_whitespaces(sql);
0 1677 _skip_whitespaces(sql);
0 1677 _skip_whitespaces(sql);
0 0 _skip_whitespaces(sql);
1135 6 1671 if (_starts_with_begin(sql)) {
1136 6 0 if (DBIc_is(imp_dbh, DBIcf_AutoCommit)) {
1137 6 0 if (!DBIc_is(imp_dbh, DBIcf_BegunWork)) {
1144 20 1651 else if (!DBIc_is(imp_dbh, DBIcf_AutoCommit)) {
1145 0 20 sqlite_trace(sth, imp_sth, 3, "BEGIN TRAN");
1146 20 0 if (imp_dbh->use_immediate_transaction) {
1151 2 18 if (rc != SQLITE_OK) {
1159 0 1733 sqlite_trace(sth, imp_sth, 3, form("Execute returned %d cols", DBIc_NUM_FIELDS(imp_sth)));
1160 582 1151 if (DBIc_NUM_FIELDS(imp_sth) == 0) {
1161 8 574 while ((imp_sth->retval = sqlite3_step(imp_sth->stmt)) != SQLITE_DONE) {
1162 0 8 if (imp_sth->retval == SQLITE_ROW) {
1166 8 0 if (sqlite3_reset(imp_sth->stmt) != SQLITE_OK) {
1173 34 540 if (DBIc_is(imp_dbh, DBIcf_BegunWork) && sqlite3_get_autocommit(imp_dbh->db)) {
5 29 if (DBIc_is(imp_dbh, DBIcf_BegunWork) && sqlite3_get_autocommit(imp_dbh->db)) {
1174 5 0 if (imp_dbh->began_transaction) {
1189 1145 6 switch (imp_sth->retval) {
1192 1141 4 DBIc_ACTIVE_on(imp_sth);
1141 0 DBIc_ACTIVE_on(imp_sth);
1141 0 DBIc_ACTIVE_on(imp_sth);
0 1141 DBIc_ACTIVE_on(imp_sth);
1193 0 1145 sqlite_trace(sth, imp_sth, 5, form("exec ok - %d rows, %d cols", imp_sth->nrow, DBIc_NUM_FIELDS(imp_sth)));
1194 1113 32 if (DBIc_is(imp_dbh, DBIcf_AutoCommit) && !sqlite3_get_autocommit(imp_dbh->db)) {
0 1113 if (DBIc_is(imp_dbh, DBIcf_AutoCommit) && !sqlite3_get_autocommit(imp_dbh->db)) {
1206 6 0 if (sqlite3_reset(imp_sth->stmt) != SQLITE_OK) {
1225 0 2626 if (!DBIc_ACTIVE(imp_dbh)) {
1233 0 2626 sqlite_trace(sth, imp_sth, 6, form("numFields == %d, nrow == %d", numFields, imp_sth->nrow));
1235 2 2624 if (!DBIc_ACTIVE(imp_sth)) {
1239 752 1872 if (imp_sth->retval == SQLITE_DONE) {
1244 0 1872 if (imp_sth->retval != SQLITE_ROW) {
1254 3832 1872 for (i = 0; i < numFields; i++) {
1259 1374 2458 if (sql_type && SvOK(*sql_type)) {
0 1374 if (sql_type && SvOK(*sql_type)) {
0 0 if (sql_type && SvOK(*sql_type)) {
0 0 if (sql_type && SvOK(*sql_type)) {
1260 1374 0 if (SvIV(*sql_type)) {
12 1362 if (SvIV(*sql_type)) {
1261 12 0 col_type = sqlite_type_from_odbc_type(SvIV(*sql_type));
1266 0 1429 sqlite_trace(sth, imp_sth, 5, form("fetch column %d as integer", i));
1279 0 8 sqlite_trace(sth, imp_sth, 5, form("fetch column %d as float", i));
1283 0 2067 sqlite_trace(sth, imp_sth, 5, form("fetch column %d as text", i));
1287 3 2064 if (chopBlanks) {
1288 4 1 while((len > 0) && (val[len-1] == ' ')) {
2 2 while((len > 0) && (val[len-1] == ' ')) {
1294 6 2061 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(AvARRAY(av)[i], imp_dbh->string_mode);
0 2061 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(AvARRAY(av)[i], imp_dbh->string_mode);
0 0 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(AvARRAY(av)[i], imp_dbh->string_mode);
329 1732 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(AvARRAY(av)[i], imp_dbh->string_mode);
329 0 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(AvARRAY(av)[i], imp_dbh->string_mode);
1298 0 34 sqlite_trace(sth, imp_sth, 5, form("fetch column %d as blob", i));
1301 32 2 sv_setpvn(AvARRAY(av)[i], len ? val : "", len);
1305 0 294 sqlite_trace(sth, imp_sth, 5, form("fetch column %d as default", i));
1310 0 3832 SvSETMAGIC(AvARRAY(av)[i]);
1329 4 1140 if (!DBIc_ACTIVE(imp_sth))
1332 1140 0 DBIc_ACTIVE_off(imp_sth);
1140 0 DBIc_ACTIVE_off(imp_sth);
1140 0 DBIc_ACTIVE_off(imp_sth);
1140 0 DBIc_ACTIVE_off(imp_sth);
0 1140 DBIc_ACTIVE_off(imp_sth);
1336 0 1140 if (!DBIc_ACTIVE(imp_dbh)) /* no longer connected */
1339 114 1026 if (is_destroy) {
1343 0 1026 if ((imp_sth->retval = sqlite3_reset(imp_sth->stmt)) != SQLITE_OK) {
1367 0 1359 DBIc_ACTIVE_off(imp_sth);
0 0 DBIc_ACTIVE_off(imp_sth);
0 0 DBIc_ACTIVE_off(imp_sth);
0 0 DBIc_ACTIVE_off(imp_sth);
0 0 DBIc_ACTIVE_off(imp_sth);
1368 1348 11 if (DBIc_ACTIVE(imp_dbh)) {
1369 1344 4 if (imp_sth->stmt) {
1371 0 1344 sqlite_trace(sth, imp_sth, 4, form("destroy statement: %s", sqlite3_sql(imp_sth->stmt)));
1377 0 1344 sqlite_trace( sth, imp_sth, 1, form("Finalizing statement: %p", imp_sth->stmt) );
1379 0 1344 if (rc != SQLITE_OK) {
1386 1370 0 while( i ) {
1387 1344 26 if ( i->stmt == imp_sth->stmt ) {
1388 26 1318 if ( temp != i ) temp->prev = i->prev;
1389 1318 26 if ( i == imp_dbh->stmt_list ) imp_dbh->stmt_list = i->prev;
1390 0 1344 sqlite_trace( sth, imp_sth, 1, form("Removing statement from list: %p", imp_sth->stmt) );
1402 20 1339 if (imp_dbh->allow_multiple_statements)
1429 962 0 char *key = SvPV_nolen(keysv);
1436 1 961 if (!DBIc_ACTIVE(imp_dbh)) {
1441 16 945 if (strEQ(key, "sqlite_unprepared_statements")) {
1453 528 417 if (strEQ(key, "NAME")) {
1458 2215 528 for (n = 0; n < i; n++) {
1461 2215 0 if (fieldname) {
1468 0 2215 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv_fieldname, imp_dbh->string_mode);
0 2215 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv_fieldname, imp_dbh->string_mode);
0 0 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv_fieldname, imp_dbh->string_mode);
216 1999 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv_fieldname, imp_dbh->string_mode);
216 0 DBD_SQLITE_UTF8_DECODE_IF_NEEDED(sv_fieldname, imp_dbh->string_mode);
1474 0 417 else if (strEQ(key, "PRECISION")) {
1478 1 416 else if (strEQ(key, "TYPE")) {
1482 2 1 for (n = 0; n < i; n++) {
1483 2 0 if (imp_dbh->prefer_numeric_type) {
1490 0 0 if (fieldtype)
1497 1 415 else if (strEQ(key, "NULLABLE")) {
1502 4 1 for (n = 0; n < i; n++) {
1509 0 4 if (rc != SQLITE_OK) {
1519 0 415 else if (strEQ(key, "SCALE")) {
1523 84 331 else if (strEQ(key, "NUM_OF_FIELDS")) {
1526 128 203 else if (strEQ(key, "NUM_OF_PARAMS")) {
1529 4 199 else if (strEQ(key, "ParamValues")) {
1532 4 0 if (num_params) {
1533 4 4 for (n = 0; n < num_params; n++) {
1535 3 1 SV *value = pvalue ? *pvalue : &PL_sv_undef;
1537 1 3 SV *sv_name = pname ? newSVpv(pname, 0) : newSViv(n + 1);
1562 0 1167 if (is_inout) {
1567 7 1160 if (!looks_like_number(param)) {
1570 7 0 paramstring = SvPV(param, len);
1571 7 0 if(paramstring[len] == 0 && strlen(paramstring) == len) {
7 0 if(paramstring[len] == 0 && strlen(paramstring) == len) {
1573 1 6 if (pos == 0) {
1585 1160 0 pos = 2 * (SvIV(param) - 1);
1587 0 1166 sqlite_trace(sth, imp_sth, 3, form("bind into 0x%p: %"IVdf" => %s (%"IVdf") pos %d", imp_sth->params, SvIV(param), SvPV_nolen_undef_ok(value), sql_type, pos));
0 0 sqlite_trace(sth, imp_sth, 3, form("bind into 0x%p: %"IVdf" => %s (%"IVdf") pos %d", imp_sth->params, SvIV(param), SvPV_nolen_undef_ok(value), sql_type, pos));
0 0 sqlite_trace(sth, imp_sth, 3, form("bind into 0x%p: %"IVdf" => %s (%"IVdf") pos %d", imp_sth->params, SvIV(param), SvPV_nolen_undef_ok(value), sql_type, pos));
0 0 sqlite_trace(sth, imp_sth, 3, form("bind into 0x%p: %"IVdf" => %s (%"IVdf") pos %d", imp_sth->params, SvIV(param), SvPV_nolen_undef_ok(value), sql_type, pos));
0 0 sqlite_trace(sth, imp_sth, 3, form("bind into 0x%p: %"IVdf" => %s (%"IVdf") pos %d", imp_sth->params, SvIV(param), SvPV_nolen_undef_ok(value), sql_type, pos));
0 0 sqlite_trace(sth, imp_sth, 3, form("bind into 0x%p: %"IVdf" => %s (%"IVdf") pos %d", imp_sth->params, SvIV(param), SvPV_nolen_undef_ok(value), sql_type, pos));
1589 165 1001 if (sql_type) {
1602 450 0 av_store(imp_sth->col_types, SvIV(col)-1, newSViv(sql_type));
1622 688 16 while((option = sqlite3_compileoption_get(i++))) {
1658 1 0 _stores_status(SQLITE_STATUS_MEMORY_USED, "memory_used");
1659 1 0 _stores_status(SQLITE_STATUS_PAGECACHE_USED, "pagecache_used");
1660 1 0 _stores_status(SQLITE_STATUS_PAGECACHE_OVERFLOW, "pagecache_overflow");
1661 1 0 _stores_status(SQLITE_STATUS_SCRATCH_USED, "scratch_used");
1663 1 0 _stores_status(SQLITE_STATUS_SCRATCH_OVERFLOW, "scratch_overflow");
1665 1 0 _stores_status(SQLITE_STATUS_MALLOC_SIZE, "malloc_size");
1666 1 0 _stores_status(SQLITE_STATUS_PARSER_STACK, "parser_stack");
1667 1 0 _stores_status(SQLITE_STATUS_PAGECACHE_SIZE, "pagecache_size");
1668 1 0 _stores_status(SQLITE_STATUS_SCRATCH_SIZE, "scratch_size");
1670 1 0 _stores_status(SQLITE_STATUS_MALLOC_COUNT, "malloc_count");
1672 1 0 _stores_status(SQLITE_STATUS_SCRATCH_OVERFLOW, "scratch_overflow");
1685 2 0 _stores_dbstatus(SQLITE_DBSTATUS_LOOKASIDE_USED, "lookaside_used");
1687 2 0 _stores_dbstatus(SQLITE_DBSTATUS_CACHE_USED, "cache_used");
1690 2 0 _stores_dbstatus(SQLITE_DBSTATUS_SCHEMA_USED, "schema_used");
1691 2 0 _stores_dbstatus(SQLITE_DBSTATUS_STMT_USED, "stmt_used");
1694 2 0 _stores_dbstatus(SQLITE_DBSTATUS_LOOKASIDE_HIT, "lookaside_hit");
1695 2 0 _stores_dbstatus(SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, "lookaside_miss_size");
1696 2 0 _stores_dbstatus(SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL, "lookaside_miss_full");
1699 2 0 _stores_dbstatus(SQLITE_DBSTATUS_CACHE_HIT, "cache_hit");
1700 2 0 _stores_dbstatus(SQLITE_DBSTATUS_CACHE_MISS, "cache_miss");
1703 2 0 _stores_dbstatus(SQLITE_DBSTATUS_CACHE_WRITE, "cache_write");
1732 2 9 if (!imp_dbh->db) {
1741 9 0 return filename ? newSVpv(filename, 0) : &PL_sv_undef;
1751 20 6 if (timeout && SvIOK(timeout)) {
20 0 if (timeout && SvIOK(timeout)) {
1752 20 0 imp_dbh->timeout = SvIV(timeout);
1753 4 16 if (!DBIc_ACTIVE(imp_dbh)) {
1776 0 556 PUSHMARK(SP);
1777 978 556 for ( i=0; i < argc; i++ ) {
1778 0 978 XPUSHs(stacked_sv_from_sqlite3_value(aTHX_ value[i], string_mode));
1787 556 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
0 556 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
0 556 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
556 0 if (SvTRUE(ERRSV) ) {
550 6 if (SvTRUE(ERRSV) ) {
550 0 if (SvTRUE(ERRSV) ) {
0 550 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
6 550 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
1788 6 0 sqlite_set_result(aTHX_ context, ERRSV, 1);
1790 0 550 } else if ( count != 1 ) {
1796 0 0 for ( i=0; i < count; i++ ) {
1804 556 0 FREETMPS;
1856 4 381 if (!DBIc_ACTIVE(imp_dbh)) {
1862 6 375 if (SvOK(func)) {
6 0 if (SvOK(func)) {
0 6 if (SvOK(func)) {
1870 6 375 if (SvOK(func)) {
6 0 if (SvOK(func)) {
0 6 if (SvOK(func)) {
1876 0 381 if ( rc != SQLITE_OK ) {
1891 4 0 if (!DBIc_ACTIVE(imp_dbh)) {
1900 0 0 if ( rc != SQLITE_OK ) {
1913 0 0 if (!DBIc_ACTIVE(imp_dbh)) {
1922 0 0 if ( rc != SQLITE_OK ) {
1934 2 0 if (SvPOK(sv)) {
1935 2 0 pv = SvPV_nolen(sv);
1937 14 2 for(i = 0; i < l; i++) {
1938 14 0 if (pv[i] >= 'A' && pv[i] <= 'Z') {
14 0 if (pv[i] >= 'A' && pv[i] <= 'Z') {
1955 2 12 if (!DBIc_ACTIVE(imp_dbh)) {
1963 12 0 if (!tablename || !SvPOK(tablename)) {
2 10 if (!tablename || !SvPOK(tablename)) {
1967 10 0 if (!columnname || !SvPOK(columnname)) {
2 8 if (!columnname || !SvPOK(columnname)) {
1973 8 0 rc = sqlite3_table_column_metadata(
8 0 rc = sqlite3_table_column_metadata(
8 0 rc = sqlite3_table_column_metadata(
0 0 rc = sqlite3_table_column_metadata(
1975 0 8 (dbname && SvPOK(dbname)) ? SvPV_nolen(dbname) : NULL,
1981 4 4 if (rc == SQLITE_OK) {
1982 2 2 hv_stores(metadata, "data_type", datatype ? _lc(aTHX_ newSVpv(datatype, 0)) : newSV(0));
1983 4 0 hv_stores(metadata, "collation_name", collseq ? newSVpv(collseq, 0) : newSV(0));
2003 0 102 if ( !pkg )
2009 0 102 PUSHMARK(SP);
2010 0 102 XPUSHs( sv_2mortal( newSVsv(pkg) ) );
2018 102 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
0 102 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
0 102 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
102 0 if ( SvTRUE( ERRSV ) ) {
90 12 if ( SvTRUE( ERRSV ) ) {
90 0 if ( SvTRUE( ERRSV ) ) {
0 90 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
12 90 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
0 0 if ( SvTRUE( ERRSV ) ) {
2019 12 0 aggr_info->err = newSVpvf("error during aggregator's new(): %s",
2020 12 0 SvPV_nolen (ERRSV));
12 0 SvPV_nolen (ERRSV));
0 0 SvPV_nolen (ERRSV));
2022 0 90 } else if ( count != 1 ) {
2028 0 0 for ( i=0; i < count; i++ ) {
2033 84 6 if ( SvROK(aggr) ) {
2042 102 0 FREETMPS;
2058 0 156 if ( !aggr )
2065 66 90 if ( !aggr->inited ) {
2069 108 48 if ( aggr->err || !aggr->aggr_inst )
108 0 if ( aggr->err || !aggr->aggr_inst )
2073 0 108 PUSHMARK(SP);
2074 0 108 XPUSHs( sv_2mortal( newSVsv( aggr->aggr_inst ) ));
2075 48 108 for ( i=0; i < argc; i++ ) {
2076 0 48 XPUSHs(stacked_sv_from_sqlite3_value(aTHX_ value[i], string_mode));
2083 108 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
0 108 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
0 108 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
108 0 if (SvTRUE(ERRSV) ) {
102 6 if (SvTRUE(ERRSV) ) {
102 0 if (SvTRUE(ERRSV) ) {
0 102 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
0 0 if (SvTRUE(ERRSV) ) {
6 102 if (SvTRUE(ERRSV) ) {
2084 6 0 aggr->err = newSVpvf("error during aggregator's step(): %s",
2085 6 0 SvPV_nolen(ERRSV));
6 0 SvPV_nolen(ERRSV));
0 0 SvPV_nolen(ERRSV));
2090 108 48 FREETMPS;
2107 36 66 if ( !aggr ) {
2116 78 24 if ( ! aggr->err && aggr->aggr_inst ) {
78 0 if ( ! aggr->err && aggr->aggr_inst ) {
2117 0 78 PUSHMARK(SP);
2118 0 78 XPUSHs( sv_2mortal( newSVsv( aggr->aggr_inst )) );
2124 78 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
0 78 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
0 78 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
78 0 if ( SvTRUE(ERRSV) ) {
66 12 if ( SvTRUE(ERRSV) ) {
66 0 if ( SvTRUE(ERRSV) ) {
0 66 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
12 66 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
0 0 if ( SvTRUE(ERRSV) ) {
2125 12 0 aggr->err = newSVpvf("error during aggregator's finalize(): %s",
2126 12 0 SvPV_nolen(ERRSV) ) ;
12 0 SvPV_nolen(ERRSV) ) ;
0 0 SvPV_nolen(ERRSV) ) ;
2128 0 66 } else if ( count != 1 ) {
2133 0 0 for ( i=0; i<count; i++ ) {
2142 36 66 if ( aggr->err ) {
2143 36 0 warn( "DBD::SQLite: error in aggregator cannot be reported to SQLite: %s",
2151 84 18 if ( aggr->aggr_inst ) {
2156 102 0 FREETMPS;
2167 4 42 if (!DBIc_ACTIVE(imp_dbh)) {
2185 0 42 if ( rc != SQLITE_OK ) {
2224 0 382 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
0 382 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
0 382 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
0 382 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
382 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
382 382 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
382 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn( string1, len1), newSVpvn( string2, len2));
2234 0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
0 0 SQLITE_DB_COLLATION_BASE(func, newSVpvn_flags( string1, len1, SVf_UTF8), newSVpvn_flags( string2, len2, SVf_UTF8));
2247 334 0 DBD_SQLITE_UTF8_DECODE_WITH_FALLBACK(sv1);
2248 334 0 DBD_SQLITE_UTF8_DECODE_WITH_FALLBACK(sv2);
2250 0 334 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
0 334 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
0 334 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
0 334 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
334 0 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
334 334 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
334 0 SQLITE_DB_COLLATION_BASE(func, sv1, sv2);
2274 8 16 if (!DBIc_ACTIVE(imp_dbh)) {
2283 0 16 if (rv != 0) {
2284 0 0 sqlite_trace(dbh, imp_dbh, 3, form("improper collation function: %s(aa, aa) returns %d!", name, rv));
2288 0 16 if (rv2 != (rv * -1)) {
2289 0 0 sqlite_trace(dbh, imp_dbh, 3, form("improper collation function: '%s' is not symmetric", name));
2302 0 16 if ( rv != SQLITE_OK ) {
2324 0 12 PUSHMARK(SP);
2325 0 12 XPUSHs( dbh );
2326 0 12 XPUSHs( sv_2mortal( newSVpv( collation_name, 0) ) );
2333 12 0 FREETMPS;
2342 4 307 if (!DBIc_ACTIVE(imp_dbh)) {
2353 0 307 (void) sqlite3_collation_needed( imp_dbh->db,
2354 0 0 (void*) (SvOK(callback) ? dbh : NULL),
0 0 (void*) (SvOK(callback) ? dbh : NULL),
2368 0 332 PUSHMARK(SP);
2371 0 332 if ( n_retval != 1 ) {
2374 332 332 for(i = 0; i < n_retval; i++) {
2375 332 0 retval = POPi;
2378 332 0 FREETMPS;
2389 4 4 if (!DBIc_ACTIVE(imp_dbh)) {
2396 2 2 if (!SvOK(handler)) {
2 0 if (!SvOK(handler)) {
2 0 if (!SvOK(handler)) {
2420 4 8 if (!DBIc_ACTIVE(imp_dbh)) {
2427 4 4 if (!SvOK(hook)) {
4 0 if (!SvOK(hook)) {
4 0 if (!SvOK(hook)) {
2443 4 4 return retval ? newSVsv(retval) : &PL_sv_undef;
2452 4 4 if (!DBIc_ACTIVE(imp_dbh)) {
2459 2 2 if (!SvOK(hook)) {
2 0 if (!SvOK(hook)) {
2 0 if (!SvOK(hook)) {
2476 2 2 return retval ? newSVsv(retval) : &PL_sv_undef;
2489 0 60 PUSHMARK(SP);
2491 0 60 XPUSHs( sv_2mortal( newSViv( op ) ) );
2492 0 60 XPUSHs( sv_2mortal( newSVpv( database, 0 ) ) );
2493 0 60 XPUSHs( sv_2mortal( newSVpv( table, 0 ) ) );
2494 0 60 XPUSHs( sv_2mortal( newSViv( (IV)rowid ) ) );
2501 60 0 FREETMPS;
2511 4 4 if (!DBIc_ACTIVE(imp_dbh)) {
2518 2 2 if (!SvOK(hook)) {
2 0 if (!SvOK(hook)) {
2 0 if (!SvOK(hook)) {
2534 2 2 return retval ? newSVsv(retval) : &PL_sv_undef;
2554 0 4 PUSHMARK(SP);
2556 0 4 XPUSHs( sv_2mortal ( newSViv ( action_code ) ) );
2559 0 4 XPUSHs( sv_2mortal( details_1 ? newSVpv( details_1, 0 ) : &PL_sv_undef ) );
4 0 XPUSHs( sv_2mortal( details_1 ? newSVpv( details_1, 0 ) : &PL_sv_undef ) );
2560 0 4 XPUSHs( sv_2mortal( details_2 ? newSVpv( details_2, 0 ) : &PL_sv_undef ) );
0 4 XPUSHs( sv_2mortal( details_2 ? newSVpv( details_2, 0 ) : &PL_sv_undef ) );
2561 0 4 XPUSHs( sv_2mortal( details_3 ? newSVpv( details_3, 0 ) : &PL_sv_undef ) );
4 0 XPUSHs( sv_2mortal( details_3 ? newSVpv( details_3, 0 ) : &PL_sv_undef ) );
2562 0 4 XPUSHs( sv_2mortal( details_4 ? newSVpv( details_4, 0 ) : &PL_sv_undef ) );
0 4 XPUSHs( sv_2mortal( details_4 ? newSVpv( details_4, 0 ) : &PL_sv_undef ) );
2567 0 4 if ( n_retval != 1 ) {
2570 4 4 for(i = 0; i < n_retval; i++) {
2571 4 0 retval = POPi;
2575 4 0 FREETMPS;
2587 4 4 if (!DBIc_ACTIVE(imp_dbh)) {
2594 2 2 if (!SvOK(authorizer)) {
2 0 if (!SvOK(authorizer)) {
2 0 if (!SvOK(authorizer)) {
2624 0 6 PUSHMARK(SP);
2625 0 6 XPUSHs( sv_2mortal( newSVpv( sql, 0 ) ) );
2630 0 6 if ( n_retval != 1 ) {
2633 6 6 for(i = 0; i < n_retval; i++) {
2634 6 0 retval = POPi;
2637 6 0 FREETMPS;
2646 0 6 if (!DBIc_ACTIVE(imp_dbh)) {
2653 2 4 if (!SvOK(func)) {
2 0 if (!SvOK(func)) {
2 0 if (!SvOK(func)) {
2682 0 6 PUSHMARK(SP);
2683 0 6 XPUSHs( sv_2mortal( newSVpv( sql, 0 ) ) );
2691 0 6 XPUSHs( sv_2mortal( newSViv((IV)( elapsed / 1000000 )) ) );
2696 0 6 if ( n_retval != 1 ) {
2699 6 6 for(i = 0; i < n_retval; i++) {
2700 6 0 retval = POPi;
2703 6 0 FREETMPS;
2712 0 6 if (!DBIc_ACTIVE(imp_dbh)) {
2719 2 4 if (!SvOK(func)) {
2 0 if (!SvOK(func)) {
2 0 if (!SvOK(func)) {
2752 4 2 if (!DBIc_ACTIVE(imp_dbh)) {
2760 0 2 if ( rc != SQLITE_OK ) {
2766 2 0 if (pBackup) {
2773 0 2 if ( rc != SQLITE_OK ) {
2796 0 2 if (!DBIc_ACTIVE(imp_dbh)) {
2801 0 2 if (!DBIc_ACTIVE(imp_dbh_from)) {
2810 2 0 if (pBackup) {
2816 0 2 if ( rc != SQLITE_OK ) {
2843 4 2 if (!DBIc_ACTIVE(imp_dbh)) {
2851 0 2 if ( rc != SQLITE_OK ) {
2857 2 0 if (pBackup) {
2864 0 2 if ( rc != SQLITE_OK ) {
2887 0 2 if (!DBIc_ACTIVE(imp_dbh)) {
2892 0 2 if (!DBIc_ACTIVE(imp_dbh_to)) {
2901 2 0 if (pBackup) {
2907 0 2 if ( rc != SQLITE_OK ) {
2958 0 86 if ( rc != SQLITE_OK ) {
2977 0 0 if (SvOK(schema) && SvPOK(schema)) {
0 0 if (SvOK(schema) && SvPOK(schema)) {
0 0 if (SvOK(schema) && SvPOK(schema)) {
0 0 if (SvOK(schema) && SvPOK(schema)) {
2978 0 0 return sqlite3_txn_state(imp_dbh->db, SvPV_nolen(schema));