Documentation Source Text

Check-in [ae2879358d]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update the documentation to include information about the new secure_delete pragma.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ae2879358de6363fda764098e04a4bef4124765e
User & Date: drh 2010-02-12 18:34:09.000
Context
2010-02-12
19:58
Update the secure_delete pragma documentation to conform to the latest implementation. (check-in: e4d2cd7fd1 user: drh tags: trunk)
18:34
Update the documentation to include information about the new secure_delete pragma. (check-in: ae2879358d user: drh tags: trunk)
2010-02-11
15:55
Fix typo in the datatype3.html document. (check-in: d9afa1a3d7 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/compile.in.
165
166
167
168
169
170
171
172
173
174
175
176
177
178


179


180
181
182
183
184
185
186
  SQLite will automatically invoke [sqlite3_os_init()] when it initializes.

  This option is typically used when building SQLite for an embedded
  platform with a custom operating system.
}

COMPILE_OPTION {SQLITE_SECURE_DELETE} {
  This compile-time option causes SQLite to overwrite deleted
  information with zeros in addition to marking the space
  as available for reuse.  Without this option, deleted data
  might be recoverable from a database using a binary editor.
  However, there is a performance penalty for using this option.

  This option does <u>not</u> cause deleted data is securely


  removed from the underlying storage media.


}

COMPILE_OPTION {SQLITE_THREADSAFE=<i>&lt;0 or 1 or 2&gt;</i>} {
  This option controls whether or not code is included in SQLite to
  enable it to operate safely in a multithreaded environment.  The
  default is SQLITE_THREADSAFE=1 which is safe for use in a multithreaded
  environment.  When compiled with SQLITE_THREADSAFE=0 all mutexing code







|
<
|
<
|

|
>
>
|
>
>







165
166
167
168
169
170
171
172

173

174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
  SQLite will automatically invoke [sqlite3_os_init()] when it initializes.

  This option is typically used when building SQLite for an embedded
  platform with a custom operating system.
}

COMPILE_OPTION {SQLITE_SECURE_DELETE} {
  This compile-time option changes the default setting of the

  [secure_delete pragma].  When this option is not used, secure_delete defaults

  to off.  When this option is present, secure_delete defaults to on.

  The secure_delete setting causes deleted content to be overwritten with
  zeros.  There is a small performance penalty for this since additional I/O
  must occur.  On the other hand, secure_delete can prevent sensitive 
  information from lingering in unused parts of the database file after it
  has allegedly been deleted.  See the documentation on the
  [secure_delete pragma] for additional information.
}

COMPILE_OPTION {SQLITE_THREADSAFE=<i>&lt;0 or 1 or 2&gt;</i>} {
  This option controls whether or not code is included in SQLite to
  enable it to operate safely in a multithreaded environment.  The
  default is SQLITE_THREADSAFE=1 which is safe for use in a multithreaded
  environment.  When compiled with SQLITE_THREADSAFE=0 all mutexing code
Changes to pages/pragma.in.
627
628
629
630
631
632
633





























634
635
636
637
638
639
640
    output order might malfunction.  By running the application multiple
    times with this pragma both disabled and enabled, cases where the
    application makes faulty assumptions about output order can be
    identified and fixed early, reducing problems
    that might be caused by linking against a different version of SQLite.
    </p>
</li>






























<tcl>Subsection short_column_names</tcl>
<li><p>^(<b>PRAGMA short_column_names;
       <br>PRAGMA short_column_names = </b><i>boolean</i><b>;</b></p>
    <p>Query or change the short-column-names flag.)^ ^This flag affects
    the way SQLite names columns of data returned by [SELECT] statements.
    See the [full_column_names] pragma for full details.







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
    output order might malfunction.  By running the application multiple
    times with this pragma both disabled and enabled, cases where the
    application makes faulty assumptions about output order can be
    identified and fixed early, reducing problems
    that might be caused by linking against a different version of SQLite.
    </p>
</li>

<tcl>Subsection secure_delete</tcl>
<li><p>^(<b>PRAGMA secure_delete;
       <br>PRAGMA secure_delete = </b><i>boolean</i><b>;</b></p>
    <p>Query or change the secure-delete flag.)^ ^When the secure-delete
    flag is on, SQLite overwrites deleted content with zeros.  The default
    setting is determined by the [SQLITE_SECURE_DELETE]
    compile-time option.

    <p>
    ^This pragma sets or clears the secure-delete flag when the pragma is
    prepared, not when the resulting prepared statement is run.  ^The
    prepared statement for this pragma merely returns the value of the
    secure-delete flag at the time the statement was prepared.  One should
    not retain the prepared statement for this pragma.

    <p>
    ^When there are [ATTACH | attached databases], this pragma only changes
    the secure-delete flag for the one database specified in the pragma, or
    for the main database if no database is specified.
    ^To change the secure-delete flag on all attached databases, this
    pragma must be run separately for each attached datatabase.

    <p>
    ^When multiple database connections share the same cache, changing
    the secure-delete flag on one database connection changes it for them
    all.
    </p>
</li>

<tcl>Subsection short_column_names</tcl>
<li><p>^(<b>PRAGMA short_column_names;
       <br>PRAGMA short_column_names = </b><i>boolean</i><b>;</b></p>
    <p>Query or change the short-column-names flag.)^ ^This flag affects
    the way SQLite names columns of data returned by [SELECT] statements.
    See the [full_column_names] pragma for full details.