Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When rendering SQLite log messages to the error log, include the SQL for all busy SQL statements in the log message. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c6ecf21f37a809151d93f5d1384706f8 |
User & Date: | drh 2018-07-13 16:06:44.348 |
Context
2018-07-13
| ||
16:26 | When logging transaction errors on the error log, try to include information about where the transaction started. ... (check-in: 43336f67 user: drh tags: trunk) | |
16:06 | When rendering SQLite log messages to the error log, include the SQL for all busy SQL statements in the log message. ... (check-in: c6ecf21f user: drh tags: trunk) | |
15:07 | Use the email content parser to the prototype webmail page. ... (check-in: 264223fc user: drh tags: trunk) | |
Changes
Changes to src/main.c.
︙ | ︙ | |||
507 508 509 510 511 512 513 514 515 | } } return zCode; } /* Error logs from SQLite */ static void fossil_sqlite_log(void *notUsed, int iCode, const char *zErrmsg){ #ifdef __APPLE__ /* Disable the file alias warning on apple products because Time Machine | > > | > | > > > > > > > > > > > | 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 | } } return zCode; } /* Error logs from SQLite */ static void fossil_sqlite_log(void *notUsed, int iCode, const char *zErrmsg){ sqlite3_stmt *p; Blob msg; #ifdef __APPLE__ /* Disable the file alias warning on apple products because Time Machine ** creates lots of aliases and the warnings alarm people. */ if( iCode==SQLITE_WARNING ) return; #endif #ifndef FOSSIL_DEBUG /* Disable the automatic index warning except in FOSSIL_DEBUG builds. */ if( iCode==SQLITE_WARNING_AUTOINDEX ) return; #endif if( iCode==SQLITE_SCHEMA ) return; if( g.dbIgnoreErrors ) return; #ifdef SQLITE_READONLY_DIRECTORY if( iCode==SQLITE_READONLY_DIRECTORY ){ zErrmsg = "database is in a read-only directory"; } #endif blob_init(&msg, 0, 0); blob_appendf(&msg, "%s: %s", fossil_sqlite_return_code_name(iCode), zErrmsg); if( g.db ){ for(p=sqlite3_next_stmt(g.db, 0); p; p=sqlite3_next_stmt(g.db,p)){ const char *zSql; if( !sqlite3_stmt_busy(p) ) continue; zSql = sqlite3_sql(p); if( zSql==0 ) continue; blob_appendf(&msg, "\nSQL: %s", zSql); } } fossil_warning("%s", blob_str(&msg)); blob_reset(&msg); } /* ** This function attempts to find command line options known to contain ** bitwise flags and initializes the associated global variables. After ** this function executes, all global variables (i.e. in the "g" struct) ** containing option-settable bitwise flag fields must be initialized. |
︙ | ︙ | |||
2743 2744 2745 2746 2747 2748 2749 | login_check_credentials(); if( !g.perm.Setup && !g.perm.Admin ){ login_needed(0); return; } style_header("Warning Test Page"); style_submenu_element("Error Log","%R/errorlog"); | | | > > > > > > > > | 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 | login_check_credentials(); if( !g.perm.Setup && !g.perm.Admin ){ login_needed(0); return; } style_header("Warning Test Page"); style_submenu_element("Error Log","%R/errorlog"); if( iCase<1 || iCase>4 ){ @ <p>Generate a message to the <a href="%R/errorlog">error log</a> @ by clicking on one of the following cases: }else{ @ <p>This is the test page for case=%d(iCase). All possible cases: } for(i=1; i<=4; i++){ @ <a href='./test-warning?case=%d(i)'>[%d(i)]</a> } @ </p> @ <p><ol> @ <li value='1'> Call fossil_warning() if( iCase==1 ){ fossil_warning("Test warning message from /test-warning"); } @ <li value='2'> Call db_begin_transaction() if( iCase==2 ){ db_begin_transaction(); } @ <li value='3'> Call db_end_transaction() if( iCase==3 ){ db_end_transaction(0); } @ <li value='4'> warning during SQL if( iCase==4 ){ Stmt q; db_prepare(&q, "SELECT uuid FROM blob LIMIT 5"); db_step(&q); sqlite3_log(SQLITE_ERROR, "Test warning message during SQL"); db_finalize(&q); } @ </ol> @ <p>End of test</p> style_footer(); } |