Documentation Source Text
Check-in [73444ff7b8]
Not logged in

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

Overview
Comment:Add documentation for the introspection pragmas that were really added in version 3.20.0
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:73444ff7b8860b078fbb7af0f0dcc10e1d1253c6448f8c47cc831d9fca5ebe4d
User & Date: drh 2018-01-01 17:54:20
Context
2018-01-04
03:33
Update the change log for the 3.22.0 release. check-in: a897222d15 user: drh tags: trunk
2018-01-01
17:54
Add documentation for the introspection pragmas that were really added in version 3.20.0 check-in: 73444ff7b8 user: drh tags: trunk
14:36
Update to the speed-size-graph spreadsheet. check-in: 727ad4e477 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/pragma.in.

58
59
60
61
62
63
64







65
66
67
68
69
70
71
..
82
83
84
85
86
87
88





89
90
91
92
93
94
95
....
1739
1740
1741
1742
1743
1744
1745
























1746
1747
1748
1749
1750
1751
1752
1753
1754
1755


1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
proc TestDisclaimer {} {
  return {
    <p style='background-color: #f0e0ff;'>
    The intended use of this pragma is only for testing and validation of
    SQLite.  This pragma is subject to change without notice and is not
    recommended for use by application programs.</p>
  }







}
# Legacy pragma - do not use these
proc LegacyPragma {namelist content} {
  Pragma $namelist [string map [list DISCLAIMER [LegacyDisclaimer]] $content]
  global PragmaLegacy
  foreach x $namelist {set PragmaLegacy($x) 1}
}
................................................................................
  foreach x $namelist {set PragmaTest($x) 1}
}
proc DangerousPragma {namelist content} {
  Pragma $namelist [string map [list DISCLAIMER [DangerDisclaimer]] $content]
  global PragmaTest
  foreach x $namelist {set PragmaTest($x) 1}
}






</tcl>

<p>The PRAGMA statement is an SQL extension specific to SQLite and used to 
modify the operation of the SQLite library or to query the SQLite library for 
internal (non-table) data. The PRAGMA statement is issued using the same
interface as other SQLite commands (e.g. [SELECT], [INSERT]) but is
................................................................................
    <p>When this pragma is on, the SQLITE_MASTER tables in which database
    can be changed using ordinary [UPDATE], [INSERT], and [DELETE]
    statements.)^  ^<warning><b>Warning:</b>
    misuse of this pragma can easily result in
    a [cfgerrors|corrupt database file].</warning></p>
}

























Section {List Of PRAGMAs} {toc} {{pragma list}}
set lx {}
foreach prag [array names PragmaRef] {
  set ref $PragmaRef($prag)
  if {[info exists PragmaLegacy($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 3]
  } elseif {[info exists PragmaDebug($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 4]
  } elseif {[info exists PragmaTest($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 5]


  } else {
    lappend lx [list "PRAGMA $ref" $prag 0]
  }
}
hd_list_of_links {} 250 [lsort -index 1 $lx]
</tcl>
<p>Notes:
<ol>
<li>Pragmas whose names are <s>struck through</s>
are deprecated. Do not use them. They exist
for historical compatibility.
<li>These pragmas are used for debugging SQLite and
are only available when SQLite is compiled using [SQLITE_DEBUG].
<li>These pragmas are used for testing SQLite and are not recommended
for use in application programs.</ol></p>
<tcl>
foreach prag [lsort [array names PragmaBody]] {
  hd_fragment pragma_$prag

  hd_puts "<h _id=pragma_$prag style=\"display:none\"> PRAGMA "







>
>
>
>
>
>
>







 







>
>
>
>
>







 







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










>
>











|
|







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
..
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
....
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
proc TestDisclaimer {} {
  return {
    <p style='background-color: #f0e0ff;'>
    The intended use of this pragma is only for testing and validation of
    SQLite.  This pragma is subject to change without notice and is not
    recommended for use by application programs.</p>
  }
}
proc EnableDisclaimer {copt} {
  return "\
    <p style='background-color: #f0e0ff;'>
    This pragma is only available if SQLite is built using the
    -D$copt compile-time option.
  "
}
# Legacy pragma - do not use these
proc LegacyPragma {namelist content} {
  Pragma $namelist [string map [list DISCLAIMER [LegacyDisclaimer]] $content]
  global PragmaLegacy
  foreach x $namelist {set PragmaLegacy($x) 1}
}
................................................................................
  foreach x $namelist {set PragmaTest($x) 1}
}
proc DangerousPragma {namelist content} {
  Pragma $namelist [string map [list DISCLAIMER [DangerDisclaimer]] $content]
  global PragmaTest
  foreach x $namelist {set PragmaTest($x) 1}
}
proc EnablePragma {namelist content copt} {
  Pragma $namelist [string map [list DISCLAIMER [EnableDisclaimer $copt]] $content]
  global PragmaEnable
  foreach x $namelist {set PragmaEnable($x) 1}
}

</tcl>

<p>The PRAGMA statement is an SQL extension specific to SQLite and used to 
modify the operation of the SQLite library or to query the SQLite library for 
internal (non-table) data. The PRAGMA statement is issued using the same
interface as other SQLite commands (e.g. [SELECT], [INSERT]) but is
................................................................................
    <p>When this pragma is on, the SQLITE_MASTER tables in which database
    can be changed using ordinary [UPDATE], [INSERT], and [DELETE]
    statements.)^  ^<warning><b>Warning:</b>
    misuse of this pragma can easily result in
    a [cfgerrors|corrupt database file].</warning></p>
}

EnablePragma function_list {
    <p>^(<b>PRAGMA function_list;</b>
    <p>This pragma returns a list of SQL functions
    known to the database connection.)^

    DISCLAIMER
} SQLITE_INTROSPECTION_PRAGMAS

EnablePragma pragma_list {
    <p>^(<b>PRAGMA pragma_list;</b>
    <p>This pragma returns a list of PRAGMA commands
    known to the database connection.)^

    DISCLAIMER
} SQLITE_INTROSPECTION_PRAGMAS

EnablePragma module_list {
    <p>^(<b>PRAGMA module_list;</b>
    <p>This pragma returns a list of 
    [virtual table] modules registered with the database connection.)^

    DISCLAIMER
} SQLITE_INTROSPECTION_PRAGMAS

Section {List Of PRAGMAs} {toc} {{pragma list}}
set lx {}
foreach prag [array names PragmaRef] {
  set ref $PragmaRef($prag)
  if {[info exists PragmaLegacy($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 3]
  } elseif {[info exists PragmaDebug($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 4]
  } elseif {[info exists PragmaTest($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 5]
  } elseif {[info exists PragmaEnable($prag)]} {
    lappend lx [list "PRAGMA $ref" $prag 4]
  } else {
    lappend lx [list "PRAGMA $ref" $prag 0]
  }
}
hd_list_of_links {} 250 [lsort -index 1 $lx]
</tcl>
<p>Notes:
<ol>
<li>Pragmas whose names are <s>struck through</s>
are deprecated. Do not use them. They exist
for historical compatibility.
<li>These pragmas are only available in builds using non-standard
compile-time options.
<li>These pragmas are used for testing SQLite and are not recommended
for use in application programs.</ol></p>
<tcl>
foreach prag [lsort [array names PragmaBody]] {
  hd_fragment pragma_$prag

  hd_puts "<h _id=pragma_$prag style=\"display:none\"> PRAGMA "