/ Hex Artifact Content
Login

Artifact fee45a370a6c29872fdba2234285c791d59bbc6b:


0000: 23 0a 23 20 52 75 6e 20 74 68 69 73 20 54 63 6c  #.# Run this Tcl
0010: 20 73 63 72 69 70 74 20 74 6f 20 67 65 6e 65 72   script to gener
0020: 61 74 65 20 74 68 65 20 70 72 61 67 6d 61 2e 68  ate the pragma.h
0030: 74 6d 6c 20 66 69 6c 65 2e 0a 23 0a 73 65 74 20  tml file..#.set 
0040: 72 63 73 69 64 20 7b 24 49 64 3a 20 70 72 61 67  rcsid {$Id: prag
0050: 6d 61 2e 74 63 6c 2c 76 20 31 2e 31 34 20 32 30  ma.tcl,v 1.14 20
0060: 30 35 2f 30 35 2f 31 36 20 30 32 3a 31 33 3a 31  05/05/16 02:13:1
0070: 38 20 64 61 6e 69 65 6c 6b 31 39 37 37 20 45 78  8 danielk1977 Ex
0080: 70 20 24 7d 0a 73 6f 75 72 63 65 20 63 6f 6d 6d  p $}.source comm
0090: 6f 6e 2e 74 63 6c 0a 68 65 61 64 65 72 20 7b 50  on.tcl.header {P
00a0: 72 61 67 6d 61 20 73 74 61 74 65 6d 65 6e 74 73  ragma statements
00b0: 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 53 51   supported by SQ
00c0: 4c 69 74 65 7d 0a 0a 70 72 6f 63 20 53 65 63 74  Lite}..proc Sect
00d0: 69 6f 6e 20 7b 6e 61 6d 65 20 7b 6c 61 62 65 6c  ion {name {label
00e0: 20 7b 7d 7d 7d 20 7b 0a 20 20 70 75 74 73 20 22   {}}} {.  puts "
00f0: 5c 6e 3c 68 72 20 2f 3e 22 0a 20 20 69 66 20 7b  \n<hr />".  if {
0100: 24 6c 61 62 65 6c 21 3d 22 22 7d 20 7b 0a 20 20  $label!=""} {.  
0110: 20 20 70 75 74 73 20 22 3c 61 20 6e 61 6d 65 3d    puts "<a name=
0120: 5c 22 24 6c 61 62 65 6c 5c 22 3e 3c 2f 61 3e 22  \"$label\"></a>"
0130: 0a 20 20 7d 0a 20 20 70 75 74 73 20 22 3c 68 31  .  }.  puts "<h1
0140: 3e 24 6e 61 6d 65 3c 2f 68 31 3e 5c 6e 22 0a 7d  >$name</h1>\n".}
0150: 0a 0a 70 75 74 73 20 7b 0a 3c 70 3e 54 68 65 20  ..puts {.<p>The 
0160: 3c 61 20 68 72 65 66 3d 22 23 73 79 6e 74 61 78  <a href="#syntax
0170: 22 3e 50 52 41 47 4d 41 20 63 6f 6d 6d 61 6e 64  ">PRAGMA command
0180: 3c 2f 61 3e 20 69 73 20 61 20 73 70 65 63 69 61  </a> is a specia
0190: 6c 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 74  l command used t
01a0: 6f 20 0a 6d 6f 64 69 66 79 20 74 68 65 20 6f 70  o .modify the op
01b0: 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 53  eration of the S
01c0: 51 4c 69 74 65 20 6c 69 62 72 61 72 79 20 6f 72  QLite library or
01d0: 20 74 6f 20 71 75 65 72 79 20 74 68 65 20 6c 69   to query the li
01e0: 62 72 61 72 79 20 66 6f 72 20 0a 69 6e 74 65 72  brary for .inter
01f0: 6e 61 6c 20 28 6e 6f 6e 2d 74 61 62 6c 65 29 20  nal (non-table) 
0200: 64 61 74 61 2e 20 54 68 65 20 50 52 41 47 4d 41  data. The PRAGMA
0210: 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 73 73 75   command is issu
0220: 65 64 20 75 73 69 6e 67 20 74 68 65 20 73 61 6d  ed using the sam
0230: 65 0a 69 6e 74 65 72 66 61 63 65 20 61 73 20 6f  e.interface as o
0240: 74 68 65 72 20 53 51 4c 69 74 65 20 63 6f 6d 6d  ther SQLite comm
0250: 61 6e 64 73 20 28 65 2e 67 2e 20 53 45 4c 45 43  ands (e.g. SELEC
0260: 54 2c 20 49 4e 53 45 52 54 29 20 62 75 74 20 69  T, INSERT) but i
0270: 73 0a 64 69 66 66 65 72 65 6e 74 20 69 6e 20 74  s.different in t
0280: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6d 70  he following imp
0290: 6f 72 74 61 6e 74 20 72 65 73 70 65 63 74 73 3a  ortant respects:
02a0: 0a 3c 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 53  .</p>.<ul>.<li>S
02b0: 70 65 63 69 66 69 63 20 70 72 61 67 6d 61 20 73  pecific pragma s
02c0: 74 61 74 65 6d 65 6e 74 73 20 6d 61 79 20 62 65  tatements may be
02d0: 20 72 65 6d 6f 76 65 64 20 61 6e 64 20 6f 74 68   removed and oth
02e0: 65 72 73 20 61 64 64 65 64 20 69 6e 20 66 75 74  ers added in fut
02f0: 75 72 65 0a 20 20 20 20 72 65 6c 65 61 73 65 73  ure.    releases
0300: 20 6f 66 20 53 51 4c 69 74 65 2e 20 55 73 65 20   of SQLite. Use 
0310: 77 69 74 68 20 63 61 75 74 69 6f 6e 21 0a 3c 6c  with caution!.<l
0320: 69 3e 4e 6f 20 65 72 72 6f 72 20 6d 65 73 73 61  i>No error messa
0330: 67 65 73 20 61 72 65 20 67 65 6e 65 72 61 74 65  ges are generate
0340: 64 20 69 66 20 61 6e 20 75 6e 6b 6e 6f 77 6e 20  d if an unknown 
0350: 70 72 61 67 6d 61 20 69 73 20 69 73 73 75 65 64  pragma is issued
0360: 2e 0a 20 20 20 20 55 6e 6b 6e 6f 77 6e 20 70 72  ..    Unknown pr
0370: 61 67 6d 61 73 20 61 72 65 20 73 69 6d 70 6c 79  agmas are simply
0380: 20 69 67 6e 6f 72 65 64 2e 20 54 68 69 73 20 6d   ignored. This m
0390: 65 61 6e 73 20 69 66 20 74 68 65 72 65 20 69 73  eans if there is
03a0: 20 61 20 74 79 70 6f 20 69 6e 20 0a 20 20 20 20   a typo in .    
03b0: 61 20 70 72 61 67 6d 61 20 73 74 61 74 65 6d 65  a pragma stateme
03c0: 6e 74 20 74 68 65 20 6c 69 62 72 61 72 79 20 64  nt the library d
03d0: 6f 65 73 20 6e 6f 74 20 69 6e 66 6f 72 6d 20 74  oes not inform t
03e0: 68 65 20 75 73 65 72 20 6f 66 20 74 68 65 20 66  he user of the f
03f0: 61 63 74 2e 0a 3c 6c 69 3e 53 6f 6d 65 20 70 72  act..<li>Some pr
0400: 61 67 6d 61 73 20 74 61 6b 65 20 65 66 66 65 63  agmas take effec
0410: 74 20 64 75 72 69 6e 67 20 74 68 65 20 53 51 4c  t during the SQL
0420: 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 73 74 61   compilation sta
0430: 67 65 2c 20 6e 6f 74 20 74 68 65 0a 20 20 20 20  ge, not the.    
0440: 65 78 65 63 75 74 69 6f 6e 20 73 74 61 67 65 2e  execution stage.
0450: 20 54 68 69 73 20 6d 65 61 6e 73 20 69 66 20 75   This means if u
0460: 73 69 6e 67 20 74 68 65 20 43 2d 6c 61 6e 67 75  sing the C-langu
0470: 61 67 65 20 73 71 6c 69 74 65 33 5f 63 6f 6d 70  age sqlite3_comp
0480: 69 6c 65 28 29 2c 20 0a 20 20 20 20 73 71 6c 69  ile(), .    sqli
0490: 74 65 33 5f 73 74 65 70 28 29 2c 20 73 71 6c 69  te3_step(), sqli
04a0: 74 65 33 5f 66 69 6e 61 6c 69 7a 65 28 29 20 41  te3_finalize() A
04b0: 50 49 20 28 6f 72 20 73 69 6d 69 6c 61 72 20 69  PI (or similar i
04c0: 6e 20 61 20 77 72 61 70 70 65 72 20 0a 20 20 20  n a wrapper .   
04d0: 20 69 6e 74 65 72 66 61 63 65 29 2c 20 74 68 65   interface), the
04e0: 20 70 72 61 67 6d 61 20 6d 61 79 20 62 65 20 61   pragma may be a
04f0: 70 70 6c 69 65 64 20 74 6f 20 74 68 65 20 6c 69  pplied to the li
0500: 62 72 61 72 79 20 64 75 72 69 6e 67 20 74 68 65  brary during the
0510: 20 0a 20 20 20 20 73 71 6c 69 74 65 33 5f 63 6f   .    sqlite3_co
0520: 6d 70 69 6c 65 28 29 20 63 61 6c 6c 2e 0a 3c 6c  mpile() call..<l
0530: 69 3e 54 68 65 20 70 72 61 67 6d 61 20 63 6f 6d  i>The pragma com
0540: 6d 61 6e 64 20 69 73 20 75 6e 6c 69 6b 65 6c 79  mand is unlikely
0550: 20 74 6f 20 62 65 20 63 6f 6d 70 61 74 69 62 6c   to be compatibl
0560: 65 20 77 69 74 68 20 61 6e 79 20 6f 74 68 65 72  e with any other
0570: 20 53 51 4c 0a 20 20 20 20 65 6e 67 69 6e 65 2e   SQL.    engine.
0580: 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e 54 68 65 20 61  .</ul>..<p>The a
0590: 76 61 69 6c 61 62 6c 65 20 70 72 61 67 6d 61 73  vailable pragmas
05a0: 20 66 61 6c 6c 20 69 6e 74 6f 20 66 6f 75 72 20   fall into four 
05b0: 62 61 73 69 63 20 63 61 74 65 67 6f 72 69 65 73  basic categories
05c0: 3a 3c 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 50  :</p>.<ul>.<li>P
05d0: 72 61 67 6d 61 73 20 75 73 65 64 20 74 6f 20 3c  ragmas used to <
05e0: 61 20 68 72 65 66 3d 22 23 73 63 68 65 6d 61 22  a href="#schema"
05f0: 3e 71 75 65 72 79 20 74 68 65 20 73 63 68 65 6d  >query the schem
0600: 61 3c 2f 61 3e 20 6f 66 20 74 68 65 20 63 75 72  a</a> of the cur
0610: 72 65 6e 74 20 0a 20 20 20 20 64 61 74 61 62 61  rent .    databa
0620: 73 65 2e 0a 3c 6c 69 3e 50 72 61 67 6d 61 73 20  se..<li>Pragmas 
0630: 75 73 65 64 20 74 6f 20 3c 61 20 68 72 65 66 3d  used to <a href=
0640: 22 23 6d 6f 64 69 66 79 22 3e 6d 6f 64 69 66 79  "#modify">modify
0650: 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 3c 2f   the operation</
0660: 61 3e 20 6f 66 20 74 68 65 20 0a 20 20 20 20 53  a> of the .    S
0670: 51 4c 69 74 65 20 6c 69 62 72 61 72 79 20 69 6e  QLite library in
0680: 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 6f 72   some manner, or
0690: 20 74 6f 20 71 75 65 72 79 20 66 6f 72 20 74 68   to query for th
06a0: 65 20 63 75 72 72 65 6e 74 20 6d 6f 64 65 20 6f  e current mode o
06b0: 66 20 0a 20 20 20 20 6f 70 65 72 61 74 69 6f 6e  f .    operation
06c0: 2e 0a 3c 6c 69 3e 50 72 61 67 6d 61 73 20 75 73  ..<li>Pragmas us
06d0: 65 64 20 74 6f 20 3c 61 20 68 72 65 66 3d 22 23  ed to <a href="#
06e0: 76 65 72 73 69 6f 6e 22 3e 71 75 65 72 79 20 6f  version">query o
06f0: 72 20 6d 6f 64 69 66 79 20 74 68 65 20 64 61 74  r modify the dat
0700: 61 62 61 73 65 73 20 74 77 6f 20 0a 20 20 20 20  abases two .    
0710: 76 65 72 73 69 6f 6e 20 76 61 6c 75 65 73 3c 2f  version values</
0720: 61 3e 2c 20 74 68 65 20 73 63 68 65 6d 61 2d 76  a>, the schema-v
0730: 65 72 73 69 6f 6e 20 61 6e 64 20 74 68 65 20 75  ersion and the u
0740: 73 65 72 2d 76 65 72 73 69 6f 6e 2e 0a 3c 6c 69  ser-version..<li
0750: 3e 50 72 61 67 6d 61 73 20 75 73 65 64 20 74 6f  >Pragmas used to
0760: 20 3c 61 20 68 72 65 66 3d 22 23 64 65 62 75 67   <a href="#debug
0770: 22 3e 64 65 62 75 67 20 74 68 65 20 6c 69 62 72  ">debug the libr
0780: 61 72 79 3c 2f 61 3e 20 61 6e 64 20 76 65 72 69  ary</a> and veri
0790: 66 79 20 74 68 61 74 0a 20 20 20 20 64 61 74 61  fy that.    data
07a0: 62 61 73 65 20 66 69 6c 65 73 20 61 72 65 20 6e  base files are n
07b0: 6f 74 20 63 6f 72 72 75 70 74 65 64 2e 0a 3c 2f  ot corrupted..</
07c0: 75 6c 3e 0a 7d 0a 0a 53 65 63 74 69 6f 6e 20 7b  ul>.}..Section {
07d0: 50 52 41 47 4d 41 20 63 6f 6d 6d 61 6e 64 20 73  PRAGMA command s
07e0: 79 6e 74 61 78 7d 20 73 79 6e 74 61 78 0a 0a 53  yntax} syntax..S
07f0: 79 6e 74 61 78 20 7b 73 71 6c 2d 73 74 61 74 65  yntax {sql-state
0800: 6d 65 6e 74 7d 20 7b 0a 50 52 41 47 4d 41 20 3c  ment} {.PRAGMA <
0810: 6e 61 6d 65 3e 20 5b 3d 20 3c 76 61 6c 75 65 3e  name> [= <value>
0820: 5d 20 7c 0a 50 52 41 47 4d 41 20 3c 66 75 6e 63  ] |.PRAGMA <func
0830: 74 69 6f 6e 3e 28 3c 61 72 67 3e 29 0a 7d 0a 0a  tion>(<arg>).}..
0840: 70 75 74 73 20 7b 0a 3c 70 3e 54 68 65 20 70 72  puts {.<p>The pr
0850: 61 67 6d 61 73 20 74 68 61 74 20 74 61 6b 65 20  agmas that take 
0860: 61 6e 20 69 6e 74 65 67 65 72 20 3c 62 3e 3c 69  an integer <b><i
0870: 3e 76 61 6c 75 65 3c 2f 69 3e 3c 2f 62 3e 20 61  >value</i></b> a
0880: 6c 73 6f 20 61 63 63 65 70 74 20 0a 73 79 6d 62  lso accept .symb
0890: 6f 6c 69 63 20 6e 61 6d 65 73 2e 20 20 54 68 65  olic names.  The
08a0: 20 73 74 72 69 6e 67 73 20 22 3c 62 3e 6f 6e 3c   strings "<b>on<
08b0: 2f 62 3e 22 2c 20 22 3c 62 3e 74 72 75 65 3c 2f  /b>", "<b>true</
08c0: 62 3e 22 2c 20 61 6e 64 20 22 3c 62 3e 79 65 73  b>", and "<b>yes
08d0: 3c 2f 62 3e 22 20 0a 61 72 65 20 65 71 75 69 76  </b>" .are equiv
08e0: 61 6c 65 6e 74 20 74 6f 20 3c 62 3e 31 3c 2f 62  alent to <b>1</b
08f0: 3e 2e 20 20 54 68 65 20 73 74 72 69 6e 67 73 20  >.  The strings 
0900: 22 3c 62 3e 6f 66 66 3c 2f 62 3e 22 2c 20 22 3c  "<b>off</b>", "<
0910: 62 3e 66 61 6c 73 65 3c 2f 62 3e 22 2c 20 0a 61  b>false</b>", .a
0920: 6e 64 20 22 3c 62 3e 6e 6f 3c 2f 62 3e 22 20 61  nd "<b>no</b>" a
0930: 72 65 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f  re equivalent to
0940: 20 3c 62 3e 30 3c 2f 62 3e 2e 20 20 54 68 65 73   <b>0</b>.  Thes
0950: 65 20 73 74 72 69 6e 67 73 20 61 72 65 20 63 61  e strings are ca
0960: 73 65 2d 0a 69 6e 73 65 6e 73 69 74 69 76 65 2c  se-.insensitive,
0970: 20 61 6e 64 20 64 6f 20 6e 6f 74 20 72 65 71 75   and do not requ
0980: 69 72 65 20 71 75 6f 74 65 73 2e 20 20 41 6e 20  ire quotes.  An 
0990: 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 73 74 72  unrecognized str
09a0: 69 6e 67 20 77 69 6c 6c 20 62 65 20 0a 74 72 65  ing will be .tre
09b0: 61 74 65 64 20 61 73 20 3c 62 3e 31 3c 2f 62 3e  ated as <b>1</b>
09c0: 2c 20 61 6e 64 20 77 69 6c 6c 20 6e 6f 74 20 67  , and will not g
09d0: 65 6e 65 72 61 74 65 20 61 6e 20 65 72 72 6f 72  enerate an error
09e0: 2e 20 20 57 68 65 6e 20 74 68 65 20 3c 69 3e 76  .  When the <i>v
09f0: 61 6c 75 65 3c 2f 69 3e 20 0a 69 73 20 72 65 74  alue</i> .is ret
0a00: 75 72 6e 65 64 20 69 74 20 69 73 20 61 73 20 61  urned it is as a
0a10: 6e 20 69 6e 74 65 67 65 72 2e 3c 2f 70 3e 0a 7d  n integer.</p>.}
0a20: 0a 0a 53 65 63 74 69 6f 6e 20 7b 50 72 61 67 6d  ..Section {Pragm
0a30: 61 73 20 74 6f 20 6d 6f 64 69 66 79 20 6c 69 62  as to modify lib
0a40: 72 61 72 79 20 6f 70 65 72 61 74 69 6f 6e 7d 20  rary operation} 
0a50: 6d 6f 64 69 66 79 0a 0a 70 75 74 73 20 7b 0a 3c  modify..puts {.<
0a60: 75 6c 3e 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61  ul>.<a name="pra
0a70: 67 6d 61 5f 61 75 74 6f 5f 76 61 63 75 75 6d 22  gma_auto_vacuum"
0a80: 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e  ></a>.<li><p><b>
0a90: 50 52 41 47 4d 41 20 61 75 74 6f 5f 76 61 63 75  PRAGMA auto_vacu
0aa0: 75 6d 3b 0a 20 20 20 20 20 20 20 3c 62 72 3e 50  um;.       <br>P
0ab0: 52 41 47 4d 41 20 61 75 74 6f 5f 76 61 63 75 75  RAGMA auto_vacuu
0ac0: 6d 20 3d 20 3c 2f 62 3e 3c 69 3e 30 20 7c 20 31  m = </b><i>0 | 1
0ad0: 3c 2f 69 3e 3c 62 3e 3b 3c 2f 62 3e 3c 2f 70 3e  </i><b>;</b></p>
0ae0: 0a 20 20 20 20 3c 70 3e 20 51 75 65 72 79 20 6f  .    <p> Query o
0af0: 72 20 73 65 74 20 74 68 65 20 61 75 74 6f 2d 76  r set the auto-v
0b00: 61 63 75 75 6d 20 66 6c 61 67 20 69 6e 20 74 68  acuum flag in th
0b10: 65 20 64 61 74 61 62 61 73 65 2e 3c 2f 70 3e 0a  e database.</p>.
0b20: 0a 20 20 20 20 3c 70 3e 4e 6f 72 6d 61 6c 6c 79  .    <p>Normally
0b30: 2c 20 77 68 65 6e 20 61 20 74 72 61 6e 73 61 63  , when a transac
0b40: 74 69 6f 6e 20 74 68 61 74 20 64 65 6c 65 74 65  tion that delete
0b50: 73 20 64 61 74 61 20 66 72 6f 6d 20 61 20 64 61  s data from a da
0b60: 74 61 62 61 73 65 20 69 73 0a 20 20 20 20 63 6f  tabase is.    co
0b70: 6d 6d 69 74 74 65 64 2c 20 74 68 65 20 64 61 74  mmitted, the dat
0b80: 61 62 61 73 65 20 66 69 6c 65 20 72 65 6d 61 69  abase file remai
0b90: 6e 73 20 74 68 65 20 73 61 6d 65 20 73 69 7a 65  ns the same size
0ba0: 2e 20 55 6e 75 73 65 64 20 64 61 74 61 62 61 73  . Unused databas
0bb0: 65 20 66 69 6c 65 20 0a 20 20 20 20 70 61 67 65  e file .    page
0bc0: 73 20 61 72 65 20 6d 61 72 6b 65 64 20 61 73 20  s are marked as 
0bd0: 73 75 63 68 20 61 6e 64 20 72 65 75 73 65 64 20  such and reused 
0be0: 6c 61 74 65 72 20 6f 6e 2c 20 77 68 65 6e 20 64  later on, when d
0bf0: 61 74 61 20 69 73 20 69 6e 73 65 72 74 65 64 20  ata is inserted 
0c00: 69 6e 74 6f 20 0a 20 20 20 20 74 68 65 20 64 61  into .    the da
0c10: 74 61 62 61 73 65 2e 20 49 6e 20 74 68 69 73 20  tabase. In this 
0c20: 6d 6f 64 65 20 74 68 65 20 3c 61 20 68 72 65 66  mode the <a href
0c30: 3d 22 6c 61 6e 67 5f 76 61 63 75 75 6d 2e 68 74  ="lang_vacuum.ht
0c40: 6d 6c 22 3e 56 41 43 55 55 4d 3c 2f 61 3e 0a 20  ml">VACUUM</a>. 
0c50: 20 20 20 63 6f 6d 6d 61 6e 64 20 69 73 20 75 73     command is us
0c60: 65 64 20 74 6f 20 72 65 63 6c 61 69 6d 20 75 6e  ed to reclaim un
0c70: 75 73 65 64 20 73 70 61 63 65 2e 3c 2f 70 3e 0a  used space.</p>.
0c80: 0a 20 20 20 20 3c 70 3e 57 68 65 6e 20 74 68 65  .    <p>When the
0c90: 20 61 75 74 6f 2d 76 61 63 75 75 6d 20 66 6c 61   auto-vacuum fla
0ca0: 67 20 69 73 20 73 65 74 2c 20 74 68 65 20 64 61  g is set, the da
0cb0: 74 61 62 61 73 65 20 66 69 6c 65 20 73 68 72 69  tabase file shri
0cc0: 6e 6b 73 20 77 68 65 6e 20 61 0a 20 20 20 20 74  nks when a.    t
0cd0: 72 61 6e 73 61 63 74 69 6f 6e 20 74 68 61 74 20  ransaction that 
0ce0: 64 65 6c 65 74 65 73 20 64 61 74 61 20 69 73 20  deletes data is 
0cf0: 63 6f 6d 6d 69 74 74 65 64 20 28 54 68 65 20 56  committed (The V
0d00: 41 43 55 55 4d 20 63 6f 6d 6d 61 6e 64 20 69 73  ACUUM command is
0d10: 20 6e 6f 74 0a 20 20 20 20 75 73 65 66 75 6c 20   not.    useful 
0d20: 69 6e 20 61 20 64 61 74 61 62 61 73 65 20 77 69  in a database wi
0d30: 74 68 20 74 68 65 20 61 75 74 6f 2d 76 61 63 75  th the auto-vacu
0d40: 75 6d 20 66 6c 61 67 20 73 65 74 29 2e 20 54 6f  um flag set). To
0d50: 20 73 75 70 70 6f 72 74 20 74 68 69 73 0a 20 20   support this.  
0d60: 20 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20    functionality 
0d70: 74 68 65 20 64 61 74 61 62 61 73 65 20 73 74 6f  the database sto
0d80: 72 65 73 20 65 78 74 72 61 20 69 6e 66 6f 72 6d  res extra inform
0d90: 61 74 69 6f 6e 20 69 6e 74 65 72 6e 61 6c 6c 79  ation internally
0da0: 2c 20 72 65 73 75 6c 74 69 6e 67 0a 20 20 20 20  , resulting.    
0db0: 69 6e 20 73 6c 69 67 68 74 6c 79 20 6c 61 72 67  in slightly larg
0dc0: 65 72 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  er database file
0dd0: 73 20 74 68 61 6e 20 77 6f 75 6c 64 20 6f 74 68  s than would oth
0de0: 65 72 77 69 73 65 20 62 65 20 70 6f 73 73 69 62  erwise be possib
0df0: 6c 65 2e 3c 2f 70 3e 0a 0a 20 20 20 20 3c 70 3e  le.</p>..    <p>
0e00: 49 74 20 69 73 20 6f 6e 6c 79 20 70 6f 73 73 69  It is only possi
0e10: 62 6c 65 20 74 6f 20 6d 6f 64 69 66 79 20 74 68  ble to modify th
0e20: 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 61  e value of the a
0e30: 75 74 6f 2d 76 61 63 75 75 6d 20 66 6c 61 67 20  uto-vacuum flag 
0e40: 62 65 66 6f 72 65 0a 20 20 20 20 61 6e 79 20 74  before.    any t
0e50: 61 62 6c 65 73 20 68 61 76 65 20 62 65 65 6e 20  ables have been 
0e60: 63 72 65 61 74 65 64 20 69 6e 20 74 68 65 20 64  created in the d
0e70: 61 74 61 62 61 73 65 2e 20 4e 6f 20 65 72 72 6f  atabase. No erro
0e80: 72 20 6d 65 73 73 61 67 65 20 69 73 20 0a 20 20  r message is .  
0e90: 20 20 72 65 74 75 72 6e 65 64 20 69 66 20 61 6e    returned if an
0ea0: 20 61 74 74 65 6d 70 74 20 74 6f 20 6d 6f 64 69   attempt to modi
0eb0: 66 79 20 74 68 65 20 61 75 74 6f 2d 76 61 63 75  fy the auto-vacu
0ec0: 75 6d 20 66 6c 61 67 20 69 73 20 6d 61 64 65 20  um flag is made 
0ed0: 61 66 74 65 72 0a 20 20 20 20 6f 6e 65 20 6f 72  after.    one or
0ee0: 20 6d 6f 72 65 20 74 61 62 6c 65 73 20 68 61 76   more tables hav
0ef0: 65 20 62 65 65 6e 20 63 72 65 61 74 65 64 2e 0a  e been created..
0f00: 20 20 20 20 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c      </p></li>..<
0f10: 61 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61 5f 63  a name="pragma_c
0f20: 61 63 68 65 5f 73 69 7a 65 22 3e 3c 2f 61 3e 0a  ache_size"></a>.
0f30: 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d 41  <li><p><b>PRAGMA
0f40: 20 63 61 63 68 65 5f 73 69 7a 65 3b 0a 20 20 20   cache_size;.   
0f50: 20 20 20 20 3c 62 72 3e 50 52 41 47 4d 41 20 63      <br>PRAGMA c
0f60: 61 63 68 65 5f 73 69 7a 65 20 3d 20 3c 2f 62 3e  ache_size = </b>
0f70: 3c 69 3e 4e 75 6d 62 65 72 2d 6f 66 2d 70 61 67  <i>Number-of-pag
0f80: 65 73 3c 2f 69 3e 3c 62 3e 3b 3c 2f 62 3e 3c 2f  es</i><b>;</b></
0f90: 70 3e 0a 20 20 20 20 3c 70 3e 51 75 65 72 79 20  p>.    <p>Query 
0fa0: 6f 72 20 63 68 61 6e 67 65 20 74 68 65 20 6d 61  or change the ma
0fb0: 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20  ximum number of 
0fc0: 64 61 74 61 62 61 73 65 20 64 69 73 6b 20 70 61  database disk pa
0fd0: 67 65 73 20 74 68 61 74 20 53 51 4c 69 74 65 0a  ges that SQLite.
0fe0: 20 20 20 20 77 69 6c 6c 20 68 6f 6c 64 20 69 6e      will hold in
0ff0: 20 6d 65 6d 6f 72 79 20 61 74 20 6f 6e 63 65 2e   memory at once.
1000: 20 20 45 61 63 68 20 70 61 67 65 20 75 73 65 73    Each page uses
1010: 20 61 62 6f 75 74 20 31 2e 35 4b 20 6f 66 20 6d   about 1.5K of m
1020: 65 6d 6f 72 79 2e 0a 20 20 20 20 54 68 65 20 64  emory..    The d
1030: 65 66 61 75 6c 74 20 63 61 63 68 65 20 73 69 7a  efault cache siz
1040: 65 20 69 73 20 32 30 30 30 2e 20 20 49 66 20 79  e is 2000.  If y
1050: 6f 75 20 61 72 65 20 64 6f 69 6e 67 20 55 50 44  ou are doing UPD
1060: 41 54 45 73 20 6f 72 20 44 45 4c 45 54 45 73 0a  ATEs or DELETEs.
1070: 20 20 20 20 74 68 61 74 20 63 68 61 6e 67 65 20      that change 
1080: 6d 61 6e 79 20 72 6f 77 73 20 6f 66 20 61 20 64  many rows of a d
1090: 61 74 61 62 61 73 65 20 61 6e 64 20 79 6f 75 20  atabase and you 
10a0: 64 6f 20 6e 6f 74 20 6d 69 6e 64 20 69 66 20 53  do not mind if S
10b0: 51 4c 69 74 65 0a 20 20 20 20 75 73 65 73 20 6d  QLite.    uses m
10c0: 6f 72 65 20 6d 65 6d 6f 72 79 2c 20 79 6f 75 20  ore memory, you 
10d0: 63 61 6e 20 69 6e 63 72 65 61 73 65 20 74 68 65  can increase the
10e0: 20 63 61 63 68 65 20 73 69 7a 65 20 66 6f 72 20   cache size for 
10f0: 61 20 70 6f 73 73 69 62 6c 65 20 73 70 65 65 64  a possible speed
1100: 0a 20 20 20 20 69 6d 70 72 6f 76 65 6d 65 6e 74  .    improvement
1110: 2e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 57 68 65  .</p>.    <p>Whe
1120: 6e 20 79 6f 75 20 63 68 61 6e 67 65 20 74 68 65  n you change the
1130: 20 63 61 63 68 65 20 73 69 7a 65 20 75 73 69 6e   cache size usin
1140: 67 20 74 68 65 20 63 61 63 68 65 5f 73 69 7a 65  g the cache_size
1150: 20 70 72 61 67 6d 61 2c 20 74 68 65 0a 20 20 20   pragma, the.   
1160: 20 63 68 61 6e 67 65 20 6f 6e 6c 79 20 65 6e 64   change only end
1170: 75 72 65 73 20 66 6f 72 20 74 68 65 20 63 75 72  ures for the cur
1180: 72 65 6e 74 20 73 65 73 73 69 6f 6e 2e 20 20 54  rent session.  T
1190: 68 65 20 63 61 63 68 65 20 73 69 7a 65 20 72 65  he cache size re
11a0: 76 65 72 74 73 0a 20 20 20 20 74 6f 20 74 68 65  verts.    to the
11b0: 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 77   default value w
11c0: 68 65 6e 20 74 68 65 20 64 61 74 61 62 61 73 65  hen the database
11d0: 20 69 73 20 63 6c 6f 73 65 64 20 61 6e 64 20 72   is closed and r
11e0: 65 6f 70 65 6e 65 64 2e 20 20 55 73 65 0a 20 20  eopened.  Use.  
11f0: 20 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 23    the <a href="#
1200: 70 72 61 67 6d 61 5f 64 65 66 61 75 6c 74 5f 63  pragma_default_c
1210: 61 63 68 65 5f 73 69 7a 65 22 3e 3c 62 3e 64 65  ache_size"><b>de
1220: 66 61 75 6c 74 5f 63 61 63 68 65 5f 73 69 7a 65  fault_cache_size
1230: 3c 2f 62 3e 3c 2f 61 3e 20 0a 20 20 20 20 70 72  </b></a> .    pr
1240: 61 67 6d 61 20 74 6f 20 63 68 65 63 6b 20 74 68  agma to check th
1250: 65 20 63 61 63 68 65 20 73 69 7a 65 20 70 65 72  e cache size per
1260: 6d 61 6e 65 6e 74 6c 79 2e 3c 2f 70 3e 3c 2f 6c  manently.</p></l
1270: 69 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61  i>..<a name="pra
1280: 67 6d 61 5f 63 6f 75 6e 74 5f 63 68 61 6e 67 65  gma_count_change
1290: 73 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c  s"></a>.<li><p><
12a0: 62 3e 50 52 41 47 4d 41 20 63 6f 75 6e 74 5f 63  b>PRAGMA count_c
12b0: 68 61 6e 67 65 73 3b 0a 20 20 20 20 20 20 20 3c  hanges;.       <
12c0: 62 72 3e 50 52 41 47 4d 41 20 63 6f 75 6e 74 5f  br>PRAGMA count_
12d0: 63 68 61 6e 67 65 73 20 3d 20 3c 2f 62 3e 3c 69  changes = </b><i
12e0: 3e 30 20 7c 20 31 3c 2f 69 3e 3c 62 3e 3b 3c 2f  >0 | 1</i><b>;</
12f0: 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 51 75  b></p>.    <p>Qu
1300: 65 72 79 20 6f 72 20 63 68 61 6e 67 65 20 74 68  ery or change th
1310: 65 20 63 6f 75 6e 74 2d 63 68 61 6e 67 65 73 20  e count-changes 
1320: 66 6c 61 67 2e 20 4e 6f 72 6d 61 6c 6c 79 2c 20  flag. Normally, 
1330: 77 68 65 6e 20 74 68 65 0a 20 20 20 20 63 6f 75  when the.    cou
1340: 6e 74 2d 63 68 61 6e 67 65 73 20 66 6c 61 67 20  nt-changes flag 
1350: 69 73 20 6e 6f 74 20 73 65 74 2c 20 49 4e 53 45  is not set, INSE
1360: 52 54 2c 20 55 50 44 41 54 45 20 61 6e 64 20 44  RT, UPDATE and D
1370: 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e 74 73  ELETE statements
1380: 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 6f 20 64  .    return no d
1390: 61 74 61 2e 20 57 68 65 6e 20 63 6f 75 6e 74 2d  ata. When count-
13a0: 63 68 61 6e 67 65 73 20 69 73 20 73 65 74 2c 20  changes is set, 
13b0: 65 61 63 68 20 6f 66 20 74 68 65 73 65 20 63 6f  each of these co
13c0: 6d 6d 61 6e 64 73 20 0a 20 20 20 20 72 65 74 75  mmands .    retu
13d0: 72 6e 73 20 61 20 73 69 6e 67 6c 65 20 72 6f 77  rns a single row
13e0: 20 6f 66 20 64 61 74 61 20 63 6f 6e 73 69 73 74   of data consist
13f0: 69 6e 67 20 6f 66 20 6f 6e 65 20 69 6e 74 65 67  ing of one integ
1400: 65 72 20 76 61 6c 75 65 20 2d 20 74 68 65 0a 20  er value - the. 
1410: 20 20 20 6e 75 6d 62 65 72 20 6f 66 20 72 6f 77     number of row
1420: 73 20 69 6e 73 65 72 74 65 64 2c 20 6d 6f 64 69  s inserted, modi
1430: 66 69 65 64 20 6f 72 20 64 65 6c 65 74 65 64 20  fied or deleted 
1440: 62 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 20  by the command. 
1450: 54 68 65 20 0a 20 20 20 20 72 65 74 75 72 6e 65  The .    returne
1460: 64 20 63 68 61 6e 67 65 20 63 6f 75 6e 74 20 64  d change count d
1470: 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20  oes not include 
1480: 61 6e 79 20 69 6e 73 65 72 74 69 6f 6e 73 2c 20  any insertions, 
1490: 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20  modifications.  
14a0: 20 20 6f 72 20 64 65 6c 65 74 69 6f 6e 73 20 70    or deletions p
14b0: 65 72 66 6f 72 6d 65 64 20 62 79 20 74 72 69 67  erformed by trig
14c0: 67 65 72 73 2e 3c 2f 70 3e 0a 0a 3c 61 20 6e 61  gers.</p>..<a na
14d0: 6d 65 3d 22 70 72 61 67 6d 61 5f 64 65 66 61 75  me="pragma_defau
14e0: 6c 74 5f 63 61 63 68 65 5f 73 69 7a 65 22 3e 3c  lt_cache_size"><
14f0: 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52  /a>.<li><p><b>PR
1500: 41 47 4d 41 20 64 65 66 61 75 6c 74 5f 63 61 63  AGMA default_cac
1510: 68 65 5f 73 69 7a 65 3b 0a 20 20 20 20 20 20 20  he_size;.       
1520: 3c 62 72 3e 50 52 41 47 4d 41 20 64 65 66 61 75  <br>PRAGMA defau
1530: 6c 74 5f 63 61 63 68 65 5f 73 69 7a 65 20 3d 20  lt_cache_size = 
1540: 3c 2f 62 3e 3c 69 3e 4e 75 6d 62 65 72 2d 6f 66  </b><i>Number-of
1550: 2d 70 61 67 65 73 3c 2f 69 3e 3c 62 3e 3b 3c 2f  -pages</i><b>;</
1560: 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 51 75  b></p>.    <p>Qu
1570: 65 72 79 20 6f 72 20 63 68 61 6e 67 65 20 74 68  ery or change th
1580: 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72  e maximum number
1590: 20 6f 66 20 64 61 74 61 62 61 73 65 20 64 69 73   of database dis
15a0: 6b 20 70 61 67 65 73 20 74 68 61 74 20 53 51 4c  k pages that SQL
15b0: 69 74 65 0a 20 20 20 20 77 69 6c 6c 20 68 6f 6c  ite.    will hol
15c0: 64 20 69 6e 20 6d 65 6d 6f 72 79 20 61 74 20 6f  d in memory at o
15d0: 6e 63 65 2e 20 20 45 61 63 68 20 70 61 67 65 20  nce.  Each page 
15e0: 75 73 65 73 20 31 4b 20 6f 6e 20 64 69 73 6b 20  uses 1K on disk 
15f0: 61 6e 64 20 61 62 6f 75 74 0a 20 20 20 20 31 2e  and about.    1.
1600: 35 4b 20 69 6e 20 6d 65 6d 6f 72 79 2e 0a 20 20  5K in memory..  
1610: 20 20 54 68 69 73 20 70 72 61 67 6d 61 20 77 6f    This pragma wo
1620: 72 6b 73 20 6c 69 6b 65 20 74 68 65 0a 20 20 20  rks like the.   
1630: 20 3c 61 20 68 72 65 66 3d 22 23 70 72 61 67 6d   <a href="#pragm
1640: 61 5f 63 61 63 68 65 5f 73 69 7a 65 22 3e 3c 62  a_cache_size"><b
1650: 3e 63 61 63 68 65 5f 73 69 7a 65 3c 2f 62 3e 3c  >cache_size</b><
1660: 2f 61 3e 20 0a 20 20 20 20 70 72 61 67 6d 61 20  /a> .    pragma 
1670: 77 69 74 68 20 74 68 65 20 61 64 64 69 74 69 6f  with the additio
1680: 6e 61 6c 0a 20 20 20 20 66 65 61 74 75 72 65 20  nal.    feature 
1690: 74 68 61 74 20 69 74 20 63 68 61 6e 67 65 73 20  that it changes 
16a0: 74 68 65 20 63 61 63 68 65 20 73 69 7a 65 20 70  the cache size p
16b0: 65 72 73 69 73 74 65 6e 74 6c 79 2e 20 20 57 69  ersistently.  Wi
16c0: 74 68 20 74 68 69 73 20 70 72 61 67 6d 61 2c 0a  th this pragma,.
16d0: 20 20 20 20 79 6f 75 20 63 61 6e 20 73 65 74 20      you can set 
16e0: 74 68 65 20 63 61 63 68 65 20 73 69 7a 65 20 6f  the cache size o
16f0: 6e 63 65 20 61 6e 64 20 74 68 61 74 20 73 65 74  nce and that set
1700: 74 69 6e 67 20 69 73 20 72 65 74 61 69 6e 65 64  ting is retained
1710: 20 61 6e 64 20 72 65 75 73 65 64 0a 20 20 20 20   and reused.    
1720: 65 76 65 72 79 20 74 69 6d 65 20 79 6f 75 20 72  every time you r
1730: 65 6f 70 65 6e 20 74 68 65 20 64 61 74 61 62 61  eopen the databa
1740: 73 65 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 61  se.</p></li>..<a
1750: 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61 5f 64 65   name="pragma_de
1760: 66 61 75 6c 74 5f 73 79 6e 63 68 72 6f 6e 6f 75  fault_synchronou
1770: 73 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c  s"></a>.<li><p><
1780: 62 3e 50 52 41 47 4d 41 20 64 65 66 61 75 6c 74  b>PRAGMA default
1790: 5f 73 79 6e 63 68 72 6f 6e 6f 75 73 3b 3c 2f 62  _synchronous;</b
17a0: 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 54 68 69  ></p>.    <p>Thi
17b0: 73 20 70 72 61 67 6d 61 20 77 61 73 20 61 76 61  s pragma was ava
17c0: 69 6c 61 62 6c 65 20 69 6e 20 76 65 72 73 69 6f  ilable in versio
17d0: 6e 20 32 2e 38 20 62 75 74 20 77 61 73 20 72 65  n 2.8 but was re
17e0: 6d 6f 76 65 64 20 69 6e 20 76 65 72 73 69 6f 6e  moved in version
17f0: 0a 20 20 20 20 33 2e 30 2e 20 20 49 74 20 69 73  .    3.0.  It is
1800: 20 61 20 64 61 6e 67 65 72 6f 75 73 20 70 72 61   a dangerous pra
1810: 67 6d 61 20 77 68 6f 73 65 20 75 73 65 20 69 73  gma whose use is
1820: 20 64 69 73 63 6f 75 72 61 67 65 64 2e 20 20 54   discouraged.  T
1830: 6f 20 68 65 6c 70 0a 20 20 20 20 64 69 73 73 75  o help.    dissu
1840: 69 64 65 20 75 73 65 72 73 20 6f 66 20 76 65 72  ide users of ver
1850: 73 69 6f 6e 20 32 2e 38 20 66 72 6f 6d 20 65 6d  sion 2.8 from em
1860: 70 6c 6f 79 69 6e 67 20 74 68 69 73 20 70 72 61  ploying this pra
1870: 67 6d 61 2c 20 74 68 65 20 64 6f 63 75 6d 65 6e  gma, the documen
1880: 74 61 74 69 6f 6e 0a 20 20 20 20 77 69 6c 6c 20  tation.    will 
1890: 6e 6f 74 20 74 65 6c 6c 20 79 6f 75 20 77 68 61  not tell you wha
18a0: 74 20 69 74 20 64 6f 65 73 2e 3c 2f 70 3e 3c 2f  t it does.</p></
18b0: 6c 69 3e 0a 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70  li>...<a name="p
18c0: 72 61 67 6d 61 5f 65 6d 70 74 79 5f 72 65 73 75  ragma_empty_resu
18d0: 6c 74 5f 63 61 6c 6c 62 61 63 6b 73 22 3e 3c 2f  lt_callbacks"></
18e0: 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41  a>.<li><p><b>PRA
18f0: 47 4d 41 20 65 6d 70 74 79 5f 72 65 73 75 6c 74  GMA empty_result
1900: 5f 63 61 6c 6c 62 61 63 6b 73 3b 0a 20 20 20 20  _callbacks;.    
1910: 20 20 20 3c 62 72 3e 50 52 41 47 4d 41 20 65 6d     <br>PRAGMA em
1920: 70 74 79 5f 72 65 73 75 6c 74 5f 63 61 6c 6c 62  pty_result_callb
1930: 61 63 6b 73 20 3d 20 3c 2f 62 3e 3c 69 3e 30 20  acks = </b><i>0 
1940: 7c 20 31 3c 2f 69 3e 3c 62 3e 3b 3c 2f 62 3e 3c  | 1</i><b>;</b><
1950: 2f 70 3e 0a 20 20 20 20 3c 70 3e 51 75 65 72 79  /p>.    <p>Query
1960: 20 6f 72 20 63 68 61 6e 67 65 20 74 68 65 20 65   or change the e
1970: 6d 70 74 79 2d 72 65 73 75 6c 74 2d 63 61 6c 6c  mpty-result-call
1980: 62 61 63 6b 73 20 66 6c 61 67 2e 3c 2f 70 3e 20  backs flag.</p> 
1990: 0a 20 20 20 20 3c 70 3e 54 68 65 20 65 6d 70 74  .    <p>The empt
19a0: 79 2d 72 65 73 75 6c 74 2d 63 61 6c 6c 62 61 63  y-result-callbac
19b0: 6b 73 20 66 6c 61 67 20 61 66 66 65 63 74 73 20  ks flag affects 
19c0: 74 68 65 20 73 71 6c 69 74 65 33 5f 65 78 65 63  the sqlite3_exec
19d0: 20 41 50 49 20 6f 6e 6c 79 2e 0a 20 20 20 20 4e   API only..    N
19e0: 6f 72 6d 61 6c 6c 79 2c 20 77 68 65 6e 20 74 68  ormally, when th
19f0: 65 20 65 6d 70 74 79 2d 72 65 73 75 6c 74 2d 63  e empty-result-c
1a00: 61 6c 6c 62 61 63 6b 73 20 66 6c 61 67 20 69 73  allbacks flag is
1a10: 20 63 6c 65 61 72 65 64 2c 20 74 68 65 0a 20 20   cleared, the.  
1a20: 20 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74    callback funct
1a30: 69 6f 6e 20 73 75 70 70 6c 69 65 64 20 74 6f 20  ion supplied to 
1a40: 74 68 65 20 73 71 6c 69 74 65 33 5f 65 78 65 63  the sqlite3_exec
1a50: 28 29 20 63 61 6c 6c 20 69 73 20 6e 6f 74 20 69  () call is not i
1a60: 6e 76 6f 6b 65 64 0a 20 20 20 20 66 6f 72 20 63  nvoked.    for c
1a70: 6f 6d 6d 61 6e 64 73 20 74 68 61 74 20 72 65 74  ommands that ret
1a80: 75 72 6e 20 7a 65 72 6f 20 72 6f 77 73 20 6f 66  urn zero rows of
1a90: 20 64 61 74 61 2e 20 57 68 65 6e 20 65 6d 70 74   data. When empt
1aa0: 79 2d 72 65 73 75 6c 74 2d 63 61 6c 6c 62 61 63  y-result-callbac
1ab0: 6b 73 0a 20 20 20 20 69 73 20 73 65 74 20 69 6e  ks.    is set in
1ac0: 20 74 68 69 73 20 73 69 74 75 61 74 69 6f 6e 2c   this situation,
1ad0: 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66 75   the callback fu
1ae0: 6e 63 74 69 6f 6e 20 69 73 20 69 6e 76 6f 6b 65  nction is invoke
1af0: 64 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 2c 0a  d exactly once,.
1b00: 20 20 20 20 77 69 74 68 20 74 68 65 20 74 68 69      with the thi
1b10: 72 64 20 70 61 72 61 6d 65 74 65 72 20 73 65 74  rd parameter set
1b20: 20 74 6f 20 30 20 28 4e 55 4c 4c 29 2e 20 54 68   to 0 (NULL). Th
1b30: 69 73 20 69 73 20 74 6f 20 65 6e 61 62 6c 65 20  is is to enable 
1b40: 70 72 6f 67 72 61 6d 73 20 20 0a 20 20 20 20 74  programs  .    t
1b50: 68 61 74 20 75 73 65 20 74 68 65 20 73 71 6c 69  hat use the sqli
1b60: 74 65 33 5f 65 78 65 63 28 29 20 41 50 49 20 74  te3_exec() API t
1b70: 6f 20 72 65 74 72 69 65 76 65 20 63 6f 6c 75 6d  o retrieve colum
1b80: 6e 2d 6e 61 6d 65 73 20 65 76 65 6e 20 77 68 65  n-names even whe
1b90: 6e 0a 20 20 20 20 61 20 71 75 65 72 79 20 72 65  n.    a query re
1ba0: 74 75 72 6e 73 20 6e 6f 20 64 61 74 61 2e 0a 20  turns no data.. 
1bb0: 20 20 20 3c 2f 70 3e 0a 0a 3c 61 20 6e 61 6d 65     </p>..<a name
1bc0: 3d 22 70 72 61 67 6d 61 5f 65 6e 63 6f 64 69 6e  ="pragma_encodin
1bd0: 67 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c  g"></a>.<li><p><
1be0: 62 3e 50 52 41 47 4d 41 20 65 6e 63 6f 64 69 6e  b>PRAGMA encodin
1bf0: 67 3b 0a 20 20 20 20 20 20 20 3c 62 72 3e 50 52  g;.       <br>PR
1c00: 41 47 4d 41 20 65 6e 63 6f 64 69 6e 67 20 3d 20  AGMA encoding = 
1c10: 22 55 54 46 2d 38 22 3b 0a 20 20 20 20 20 20 20  "UTF-8";.       
1c20: 3c 62 72 3e 50 52 41 47 4d 41 20 65 6e 63 6f 64  <br>PRAGMA encod
1c30: 69 6e 67 20 3d 20 22 55 54 46 2d 31 36 22 3b 0a  ing = "UTF-16";.
1c40: 20 20 20 20 20 20 20 3c 62 72 3e 50 52 41 47 4d         <br>PRAGM
1c50: 41 20 65 6e 63 6f 64 69 6e 67 20 3d 20 22 55 54  A encoding = "UT
1c60: 46 2d 31 36 6c 65 22 3b 0a 20 20 20 20 20 20 20  F-16le";.       
1c70: 3c 62 72 3e 50 52 41 47 4d 41 20 65 6e 63 6f 64  <br>PRAGMA encod
1c80: 69 6e 67 20 3d 20 22 55 54 46 2d 31 36 62 65 22  ing = "UTF-16be"
1c90: 3b 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70  ;</b></p>.    <p
1ca0: 3e 49 6e 20 69 74 27 73 20 66 69 72 73 74 20 66  >In it's first f
1cb0: 6f 72 6d 2c 20 69 66 20 74 68 65 20 6d 61 69 6e  orm, if the main
1cc0: 20 64 61 74 61 62 61 73 65 20 68 61 73 20 61 6c   database has al
1cd0: 72 65 61 64 79 20 62 65 65 6e 0a 20 20 20 20 63  ready been.    c
1ce0: 72 65 61 74 65 64 2c 20 74 68 65 6e 20 74 68 69  reated, then thi
1cf0: 73 20 70 72 61 67 6d 61 20 72 65 74 75 72 6e 73  s pragma returns
1d00: 20 74 68 65 20 74 65 78 74 20 65 6e 63 6f 64 69   the text encodi
1d10: 6e 67 20 75 73 65 64 20 62 79 20 74 68 65 0a 20  ng used by the. 
1d20: 20 20 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65     main database
1d30: 2c 20 6f 6e 65 20 6f 66 20 22 55 54 46 2d 38 22  , one of "UTF-8"
1d40: 2c 20 22 55 54 46 2d 31 36 6c 65 22 20 28 6c 69  , "UTF-16le" (li
1d50: 74 74 6c 65 2d 65 6e 64 69 61 6e 20 55 54 46 2d  ttle-endian UTF-
1d60: 31 36 0a 20 20 20 20 65 6e 63 6f 64 69 6e 67 29  16.    encoding)
1d70: 20 6f 72 20 22 55 54 46 2d 31 36 62 65 22 20 28   or "UTF-16be" (
1d80: 62 69 67 2d 65 6e 64 69 61 6e 20 55 54 46 2d 31  big-endian UTF-1
1d90: 36 20 65 6e 63 6f 64 69 6e 67 29 2e 20 20 49 66  6 encoding).  If
1da0: 20 74 68 65 20 6d 61 69 6e 0a 20 20 20 20 64 61   the main.    da
1db0: 74 61 62 61 73 65 20 68 61 73 20 6e 6f 74 20 61  tabase has not a
1dc0: 6c 72 65 61 64 79 20 62 65 65 6e 20 63 72 65 61  lready been crea
1dd0: 74 65 64 2c 20 74 68 65 6e 20 74 68 65 20 76 61  ted, then the va
1de0: 6c 75 65 20 72 65 74 75 72 6e 65 64 20 69 73 20  lue returned is 
1df0: 74 68 65 0a 20 20 20 20 74 65 78 74 20 65 6e 63  the.    text enc
1e00: 6f 64 69 6e 67 20 74 68 61 74 20 77 69 6c 6c 20  oding that will 
1e10: 62 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 74  be used to creat
1e20: 65 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62  e the main datab
1e30: 61 73 65 2c 20 69 66 20 0a 20 20 20 20 69 74 20  ase, if .    it 
1e40: 69 73 20 63 72 65 61 74 65 64 20 62 79 20 74 68  is created by th
1e50: 69 73 20 73 65 73 73 69 6f 6e 2e 3c 2f 70 3e 0a  is session.</p>.
1e60: 20 20 20 20 3c 70 3e 54 68 65 20 73 65 63 6f 6e      <p>The secon
1e70: 64 20 61 6e 64 20 73 75 62 73 65 71 75 65 6e 74  d and subsequent
1e80: 20 66 6f 72 6d 73 20 6f 66 20 74 68 69 73 20 70   forms of this p
1e90: 72 61 67 6d 61 20 61 72 65 20 6f 6e 6c 79 20 75  ragma are only u
1ea0: 73 65 66 75 6c 20 69 66 0a 20 20 20 20 74 68 65  seful if.    the
1eb0: 20 6d 61 69 6e 20 64 61 74 61 62 61 73 65 20 68   main database h
1ec0: 61 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 62  as not already b
1ed0: 65 65 6e 20 63 72 65 61 74 65 64 2e 20 49 6e 20  een created. In 
1ee0: 74 68 69 73 20 63 61 73 65 20 74 68 65 20 0a 20  this case the . 
1ef0: 20 20 20 70 72 61 67 6d 61 20 73 65 74 73 20 74     pragma sets t
1f00: 68 65 20 65 6e 63 6f 64 69 6e 67 20 74 68 61 74  he encoding that
1f10: 20 74 68 65 20 6d 61 69 6e 20 64 61 74 61 62 61   the main databa
1f20: 73 65 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74  se will be creat
1f30: 65 64 20 77 69 74 68 20 69 66 0a 20 20 20 20 69  ed with if.    i
1f40: 74 20 69 73 20 63 72 65 61 74 65 64 20 62 79 20  t is created by 
1f50: 74 68 69 73 20 73 65 73 73 69 6f 6e 2e 20 54 68  this session. Th
1f60: 65 20 73 74 72 69 6e 67 20 22 55 54 46 2d 31 36  e string "UTF-16
1f70: 22 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64  " is interpreted
1f80: 0a 20 20 20 20 61 73 20 22 55 54 46 2d 31 36 20  .    as "UTF-16 
1f90: 65 6e 63 6f 64 69 6e 67 20 75 73 69 6e 67 20 6e  encoding using n
1fa0: 61 74 69 76 65 20 6d 61 63 68 69 6e 65 20 62 79  ative machine by
1fb0: 74 65 2d 6f 72 64 65 72 69 6e 67 22 2e 3c 2f 70  te-ordering".</p
1fc0: 3e 0a 20 20 20 20 3c 70 3e 44 61 74 61 62 61 73  >.    <p>Databas
1fd0: 65 73 20 63 72 65 61 74 65 64 20 62 79 20 74 68  es created by th
1fe0: 65 20 41 54 54 41 43 48 20 63 6f 6d 6d 61 6e 64  e ATTACH command
1ff0: 20 61 6c 77 61 79 73 20 75 73 65 20 74 68 65 20   always use the 
2000: 73 61 6d 65 20 65 6e 63 6f 64 69 6e 67 0a 20 20  same encoding.  
2010: 20 20 61 73 20 74 68 65 20 6d 61 69 6e 20 64 61    as the main da
2020: 74 61 62 61 73 65 2e 3c 2f 70 3e 0a 3c 2f 6c 69  tabase.</p>.</li
2030: 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67  >..<a name="prag
2040: 6d 61 5f 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e  ma_full_column_n
2050: 61 6d 65 73 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c  ames"></a>.<li><
2060: 70 3e 3c 62 3e 50 52 41 47 4d 41 20 66 75 6c 6c  p><b>PRAGMA full
2070: 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65 73 3b 0a 20  _column_names;. 
2080: 20 20 20 20 20 20 3c 62 72 3e 50 52 41 47 4d 41        <br>PRAGMA
2090: 20 66 75 6c 6c 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d   full_column_nam
20a0: 65 73 20 3d 20 3c 2f 62 3e 3c 69 3e 30 20 7c 20  es = </b><i>0 | 
20b0: 31 3c 2f 69 3e 3c 62 3e 3b 3c 2f 62 3e 3c 2f 70  1</i><b>;</b></p
20c0: 3e 0a 20 20 20 20 3c 70 3e 51 75 65 72 79 20 6f  >.    <p>Query o
20d0: 72 20 63 68 61 6e 67 65 20 74 68 65 20 66 75 6c  r change the ful
20e0: 6c 2d 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 73 20 66  l-column-names f
20f0: 6c 61 67 2e 20 54 68 69 73 20 66 6c 61 67 20 61  lag. This flag a
2100: 66 66 65 63 74 73 0a 20 20 20 20 74 68 65 20 77  ffects.    the w
2110: 61 79 20 53 51 4c 69 74 65 20 6e 61 6d 65 73 20  ay SQLite names 
2120: 63 6f 6c 75 6d 6e 73 20 6f 66 20 64 61 74 61 20  columns of data 
2130: 72 65 74 75 72 6e 65 64 20 62 79 20 53 45 4c 45  returned by SELE
2140: 43 54 20 73 74 61 74 65 6d 65 6e 74 73 0a 20 20  CT statements.  
2150: 20 20 77 68 65 6e 20 74 68 65 20 65 78 70 72 65    when the expre
2160: 73 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 63 6f  ssion for the co
2170: 6c 75 6d 6e 20 69 73 20 61 20 74 61 62 6c 65 2d  lumn is a table-
2180: 63 6f 6c 75 6d 6e 20 6e 61 6d 65 20 6f 72 20 74  column name or t
2190: 68 65 0a 20 20 20 20 77 69 6c 64 63 61 72 64 20  he.    wildcard 
21a0: 22 2a 22 2e 20 20 4e 6f 72 6d 61 6c 6c 79 2c 20  "*".  Normally, 
21b0: 73 75 63 68 20 72 65 73 75 6c 74 20 63 6f 6c 75  such result colu
21c0: 6d 6e 73 20 61 72 65 20 6e 61 6d 65 64 0a 20 20  mns are named.  
21d0: 20 20 26 6c 74 3b 74 61 62 6c 65 2d 6e 61 6d 65    &lt;table-name
21e0: 2f 61 6c 69 61 73 26 67 74 3b 26 6c 74 3b 63 6f  /alias&gt;&lt;co
21f0: 6c 75 6d 6e 2d 6e 61 6d 65 26 67 74 3b 20 69 66  lumn-name&gt; if
2200: 20 74 68 65 20 53 45 4c 45 43 54 20 73 74 61 74   the SELECT stat
2210: 65 6d 65 6e 74 20 6a 6f 69 6e 73 20 0a 20 20 20  ement joins .   
2220: 20 74 77 6f 20 6f 72 0a 20 20 20 20 6d 6f 72 65   two or.    more
2230: 20 74 61 62 6c 65 73 20 74 6f 67 65 74 68 65 72   tables together
2240: 2c 20 6f 72 20 73 69 6d 70 6c 79 20 26 6c 74 3b  , or simply &lt;
2250: 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 26 67 74 3b 20  column-name&gt; 
2260: 69 66 20 74 68 65 20 53 45 4c 45 43 54 0a 20 20  if the SELECT.  
2270: 20 20 73 74 61 74 65 6d 65 6e 74 20 71 75 65 72    statement quer
2280: 69 65 73 20 61 20 73 69 6e 67 6c 65 20 74 61 62  ies a single tab
2290: 6c 65 2e 20 57 68 65 6e 20 74 68 65 20 66 75 6c  le. When the ful
22a0: 6c 2d 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 73 20 66  l-column-names f
22b0: 6c 61 67 0a 20 20 20 20 69 73 20 73 65 74 2c 20  lag.    is set, 
22c0: 73 75 63 68 20 63 6f 6c 75 6d 6e 73 20 61 72 65  such columns are
22d0: 20 61 6c 77 61 79 73 20 6e 61 6d 65 64 20 26 6c   always named &l
22e0: 74 3b 74 61 62 6c 65 2d 6e 61 6d 65 2f 61 6c 69  t;table-name/ali
22f0: 61 73 26 67 74 3b 0a 20 20 20 20 26 6c 74 3b 63  as&gt;.    &lt;c
2300: 6f 6c 75 6d 6e 2d 6e 61 6d 65 26 67 74 3b 20 72  olumn-name&gt; r
2310: 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65  egardless of whe
2320: 74 68 65 72 20 6f 72 20 6e 6f 74 20 61 20 6a 6f  ther or not a jo
2330: 69 6e 20 69 73 20 70 65 72 66 6f 72 6d 65 64 2e  in is performed.
2340: 0a 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 3c 70  .    </p>.    <p
2350: 3e 49 66 20 62 6f 74 68 20 74 68 65 20 73 68 6f  >If both the sho
2360: 72 74 2d 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 73 20  rt-column-names 
2370: 61 6e 64 20 66 75 6c 6c 2d 63 6f 6c 75 6d 6e 2d  and full-column-
2380: 6e 61 6d 65 73 20 61 72 65 20 73 65 74 2c 0a 20  names are set,. 
2390: 20 20 20 74 68 65 6e 20 74 68 65 20 62 65 68 61     then the beha
23a0: 76 69 6f 75 72 20 61 73 73 6f 63 69 61 74 65 64  viour associated
23b0: 20 77 69 74 68 20 74 68 65 20 66 75 6c 6c 2d 63   with the full-c
23c0: 6f 6c 75 6d 6e 2d 6e 61 6d 65 73 20 66 6c 61 67  olumn-names flag
23d0: 20 69 73 0a 20 20 20 20 65 78 68 69 62 69 74 65   is.    exhibite
23e0: 64 2e 0a 20 20 20 20 3c 2f 70 3e 0a 3c 2f 6c 69  d..    </p>.</li
23f0: 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67  >..<a name="prag
2400: 6d 61 5f 70 61 67 65 5f 73 69 7a 65 22 3e 3c 2f  ma_page_size"></
2410: 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41  a>.<li><p><b>PRA
2420: 47 4d 41 20 70 61 67 65 5f 73 69 7a 65 3b 0a 20  GMA page_size;. 
2430: 20 20 20 20 20 20 3c 62 72 3e 50 52 41 47 4d 41        <br>PRAGMA
2440: 20 70 61 67 65 5f 73 69 7a 65 20 3d 20 3c 2f 62   page_size = </b
2450: 3e 3c 69 3e 62 79 74 65 73 3c 2f 69 3e 3c 62 3e  ><i>bytes</i><b>
2460: 3b 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70  ;</b></p>.    <p
2470: 3e 51 75 65 72 79 20 6f 72 20 73 65 74 20 74 68  >Query or set th
2480: 65 20 70 61 67 65 2d 73 69 7a 65 20 6f 66 20 74  e page-size of t
2490: 68 65 20 64 61 74 61 62 61 73 65 2e 20 54 68 65  he database. The
24a0: 20 70 61 67 65 2d 73 69 7a 65 0a 20 20 20 20 6d   page-size.    m
24b0: 61 79 20 6f 6e 6c 79 20 62 65 20 73 65 74 20 69  ay only be set i
24c0: 66 20 74 68 65 20 64 61 74 61 62 61 73 65 20 68  f the database h
24d0: 61 73 20 6e 6f 74 20 79 65 74 20 62 65 65 6e 20  as not yet been 
24e0: 63 72 65 61 74 65 64 2e 20 54 68 65 20 70 61 67  created. The pag
24f0: 65 0a 20 20 20 20 73 69 7a 65 20 6d 75 73 74 20  e.    size must 
2500: 62 65 20 61 20 70 6f 77 65 72 20 6f 66 20 74 77  be a power of tw
2510: 6f 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 6f  o greater than o
2520: 72 20 65 71 75 61 6c 20 74 6f 20 35 31 32 20 61  r equal to 512 a
2530: 6e 64 20 6c 65 73 73 0a 20 20 20 20 74 68 61 6e  nd less.    than
2540: 20 6f 72 20 65 71 75 61 6c 20 74 6f 20 38 31 39   or equal to 819
2550: 32 2e 20 54 68 65 20 75 70 70 65 72 20 6c 69 6d  2. The upper lim
2560: 69 74 20 6d 61 79 20 62 65 20 6d 6f 64 69 66 69  it may be modifi
2570: 65 64 20 62 79 20 73 65 74 74 69 6e 67 0a 20 20  ed by setting.  
2580: 20 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 6d    the value of m
2590: 61 63 72 6f 20 53 51 4c 49 54 45 5f 4d 41 58 5f  acro SQLITE_MAX_
25a0: 50 41 47 45 5f 53 49 5a 45 20 64 75 72 69 6e 67  PAGE_SIZE during
25b0: 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 2e 20 20 54   compilation.  T
25c0: 68 65 0a 20 20 20 20 6d 61 78 69 6d 75 6d 20 75  he.    maximum u
25d0: 70 70 65 72 20 62 6f 75 6e 64 20 69 73 20 33 32  pper bound is 32
25e0: 37 36 38 2e 0a 20 20 20 20 3c 2f 70 3e 0a 3c 2f  768..    </p>.</
25f0: 6c 69 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70 72  li>..<a name="pr
2600: 61 67 6d 61 5f 73 68 6f 72 74 5f 63 6f 6c 75 6d  agma_short_colum
2610: 6e 5f 6e 61 6d 65 73 22 3e 3c 2f 61 3e 0a 3c 6c  n_names"></a>.<l
2620: 69 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d 41 20 73  i><p><b>PRAGMA s
2630: 68 6f 72 74 5f 63 6f 6c 75 6d 6e 5f 6e 61 6d 65  hort_column_name
2640: 73 3b 0a 20 20 20 20 20 20 20 3c 62 72 3e 50 52  s;.       <br>PR
2650: 41 47 4d 41 20 73 68 6f 72 74 5f 63 6f 6c 75 6d  AGMA short_colum
2660: 6e 5f 6e 61 6d 65 73 20 3d 20 3c 2f 62 3e 3c 69  n_names = </b><i
2670: 3e 30 20 7c 20 31 3c 2f 69 3e 3c 62 3e 3b 3c 2f  >0 | 1</i><b>;</
2680: 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 51 75  b></p>.    <p>Qu
2690: 65 72 79 20 6f 72 20 63 68 61 6e 67 65 20 74 68  ery or change th
26a0: 65 20 73 68 6f 72 74 2d 63 6f 6c 75 6d 6e 2d 6e  e short-column-n
26b0: 61 6d 65 73 20 66 6c 61 67 2e 20 54 68 69 73 20  ames flag. This 
26c0: 66 6c 61 67 20 61 66 66 65 63 74 73 0a 20 20 20  flag affects.   
26d0: 20 74 68 65 20 77 61 79 20 53 51 4c 69 74 65 20   the way SQLite 
26e0: 6e 61 6d 65 73 20 63 6f 6c 75 6d 6e 73 20 6f 66  names columns of
26f0: 20 64 61 74 61 20 72 65 74 75 72 6e 65 64 20 62   data returned b
2700: 79 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  y SELECT stateme
2710: 6e 74 73 0a 20 20 20 20 77 68 65 6e 20 74 68 65  nts.    when the
2720: 20 65 78 70 72 65 73 73 69 6f 6e 20 66 6f 72 20   expression for 
2730: 74 68 65 20 63 6f 6c 75 6d 6e 20 69 73 20 61 20  the column is a 
2740: 74 61 62 6c 65 2d 63 6f 6c 75 6d 6e 20 6e 61 6d  table-column nam
2750: 65 20 6f 72 20 74 68 65 0a 20 20 20 20 77 69 6c  e or the.    wil
2760: 64 63 61 72 64 20 22 2a 22 2e 20 20 4e 6f 72 6d  dcard "*".  Norm
2770: 61 6c 6c 79 2c 20 73 75 63 68 20 72 65 73 75 6c  ally, such resul
2780: 74 20 63 6f 6c 75 6d 6e 73 20 61 72 65 20 6e 61  t columns are na
2790: 6d 65 64 0a 20 20 20 20 26 6c 74 3b 74 61 62 6c  med.    &lt;tabl
27a0: 65 2d 6e 61 6d 65 2f 61 6c 69 61 73 26 67 74 3b  e-name/alias&gt;
27b0: 6c 74 3b 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 26 67  lt;column-name&g
27c0: 74 3b 20 69 66 20 74 68 65 20 53 45 4c 45 43 54  t; if the SELECT
27d0: 20 73 74 61 74 65 6d 65 6e 74 20 0a 20 20 20 20   statement .    
27e0: 6a 6f 69 6e 73 20 74 77 6f 20 6f 72 20 6d 6f 72  joins two or mor
27f0: 65 20 74 61 62 6c 65 73 20 74 6f 67 65 74 68 65  e tables togethe
2800: 72 2c 20 6f 72 20 73 69 6d 70 6c 79 20 26 6c 74  r, or simply &lt
2810: 3b 63 6f 6c 75 6d 6e 2d 6e 61 6d 65 26 67 74 3b  ;column-name&gt;
2820: 20 69 66 20 0a 20 20 20 20 74 68 65 20 53 45 4c   if .    the SEL
2830: 45 43 54 20 73 74 61 74 65 6d 65 6e 74 20 71 75  ECT statement qu
2840: 65 72 69 65 73 20 61 20 73 69 6e 67 6c 65 20 74  eries a single t
2850: 61 62 6c 65 2e 20 57 68 65 6e 20 74 68 65 20 73  able. When the s
2860: 68 6f 72 74 2d 63 6f 6c 75 6d 6e 2d 6e 61 6d 65  hort-column-name
2870: 73 20 0a 20 20 20 20 66 6c 61 67 20 69 73 20 73  s .    flag is s
2880: 65 74 2c 20 73 75 63 68 20 63 6f 6c 75 6d 6e 73  et, such columns
2890: 20 61 72 65 20 61 6c 77 61 79 73 20 6e 61 6d 65   are always name
28a0: 64 20 26 6c 74 3b 63 6f 6c 75 6d 6e 2d 6e 61 6d  d &lt;column-nam
28b0: 65 26 67 74 3b 20 0a 20 20 20 20 72 65 67 61 72  e&gt; .    regar
28c0: 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72  dless of whether
28d0: 20 6f 72 20 6e 6f 74 20 61 20 6a 6f 69 6e 20 69   or not a join i
28e0: 73 20 70 65 72 66 6f 72 6d 65 64 2e 0a 20 20 20  s performed..   
28f0: 20 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 49 66 20   </p>.    <p>If 
2900: 62 6f 74 68 20 74 68 65 20 73 68 6f 72 74 2d 63  both the short-c
2910: 6f 6c 75 6d 6e 2d 6e 61 6d 65 73 20 61 6e 64 20  olumn-names and 
2920: 66 75 6c 6c 2d 63 6f 6c 75 6d 6e 2d 6e 61 6d 65  full-column-name
2930: 73 20 61 72 65 20 73 65 74 2c 0a 20 20 20 20 74  s are set,.    t
2940: 68 65 6e 20 74 68 65 20 62 65 68 61 76 69 6f 75  hen the behaviou
2950: 72 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74  r associated wit
2960: 68 20 74 68 65 20 66 75 6c 6c 2d 63 6f 6c 75 6d  h the full-colum
2970: 6e 2d 6e 61 6d 65 73 20 66 6c 61 67 20 69 73 0a  n-names flag is.
2980: 20 20 20 20 65 78 68 69 62 69 74 65 64 2e 0a 20      exhibited.. 
2990: 20 20 20 3c 2f 70 3e 0a 3c 2f 6c 69 3e 0a 0a 3c     </p>.</li>..<
29a0: 61 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61 5f 73  a name="pragma_s
29b0: 79 6e 63 68 72 6f 6e 6f 75 73 22 3e 3c 2f 61 3e  ynchronous"></a>
29c0: 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d  .<li><p><b>PRAGM
29d0: 41 20 73 79 6e 63 68 72 6f 6e 6f 75 73 3b 0a 20  A synchronous;. 
29e0: 20 20 20 20 20 20 3c 62 72 3e 50 52 41 47 4d 41        <br>PRAGMA
29f0: 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 3d 20 46   synchronous = F
2a00: 55 4c 4c 3b 20 3c 2f 62 3e 28 32 29 3c 62 3e 0a  ULL; </b>(2)<b>.
2a10: 20 20 20 20 20 20 20 3c 62 72 3e 50 52 41 47 4d         <br>PRAGM
2a20: 41 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 3d 20  A synchronous = 
2a30: 4e 4f 52 4d 41 4c 3b 20 3c 2f 62 3e 28 31 29 3c  NORMAL; </b>(1)<
2a40: 62 3e 0a 20 20 20 20 20 20 20 3c 62 72 3e 50 52  b>.       <br>PR
2a50: 41 47 4d 41 20 73 79 6e 63 68 72 6f 6e 6f 75 73  AGMA synchronous
2a60: 20 3d 20 4f 46 46 3b 20 3c 2f 62 3e 28 30 29 3c   = OFF; </b>(0)<
2a70: 2f 70 3e 0a 20 20 20 20 3c 70 3e 51 75 65 72 79  /p>.    <p>Query
2a80: 20 6f 72 20 63 68 61 6e 67 65 20 74 68 65 20 73   or change the s
2a90: 65 74 74 69 6e 67 20 6f 66 20 74 68 65 20 22 73  etting of the "s
2aa0: 79 6e 63 68 72 6f 6e 6f 75 73 22 20 66 6c 61 67  ynchronous" flag
2ab0: 2e 20 20 0a 20 20 20 20 54 68 65 20 66 69 72 73  .  .    The firs
2ac0: 74 20 28 71 75 65 72 79 29 20 66 6f 72 6d 20 77  t (query) form w
2ad0: 69 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 73  ill return the s
2ae0: 65 74 74 69 6e 67 20 61 73 20 61 6e 20 0a 20 20  etting as an .  
2af0: 20 20 69 6e 74 65 67 65 72 2e 20 20 57 68 65 6e    integer.  When
2b00: 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 69 73 20   synchronous is 
2b10: 46 55 4c 4c 20 28 32 29 2c 20 74 68 65 20 53 51  FULL (2), the SQ
2b20: 4c 69 74 65 20 64 61 74 61 62 61 73 65 20 65 6e  Lite database en
2b30: 67 69 6e 65 20 77 69 6c 6c 0a 20 20 20 20 70 61  gine will.    pa
2b40: 75 73 65 20 61 74 20 63 72 69 74 69 63 61 6c 20  use at critical 
2b50: 6d 6f 6d 65 6e 74 73 20 74 6f 20 6d 61 6b 65 20  moments to make 
2b60: 73 75 72 65 20 74 68 61 74 20 64 61 74 61 20 68  sure that data h
2b70: 61 73 20 61 63 74 75 61 6c 6c 79 20 62 65 65 6e  as actually been
2b80: 20 0a 20 20 20 20 77 72 69 74 74 65 6e 20 74 6f   .    written to
2b90: 20 74 68 65 20 64 69 73 6b 20 73 75 72 66 61 63   the disk surfac
2ba0: 65 20 62 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75  e before continu
2bb0: 69 6e 67 2e 20 20 54 68 69 73 20 65 6e 73 75 72  ing.  This ensur
2bc0: 65 73 20 74 68 61 74 20 69 66 0a 20 20 20 20 74  es that if.    t
2bd0: 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73  he operating sys
2be0: 74 65 6d 20 63 72 61 73 68 65 73 20 6f 72 20 69  tem crashes or i
2bf0: 66 20 74 68 65 72 65 20 69 73 20 61 20 70 6f 77  f there is a pow
2c00: 65 72 20 66 61 69 6c 75 72 65 2c 20 74 68 65 20  er failure, the 
2c10: 64 61 74 61 62 61 73 65 0a 20 20 20 20 77 69 6c  database.    wil
2c20: 6c 20 62 65 20 75 6e 63 6f 72 72 75 70 74 65 64  l be uncorrupted
2c30: 20 61 66 74 65 72 20 72 65 62 6f 6f 74 69 6e 67   after rebooting
2c40: 2e 20 20 46 55 4c 4c 20 73 79 6e 63 68 72 6f 6e  .  FULL synchron
2c50: 6f 75 73 20 69 73 20 76 65 72 79 20 0a 20 20 20  ous is very .   
2c60: 20 73 61 66 65 2c 20 62 75 74 20 69 74 20 69 73   safe, but it is
2c70: 20 61 6c 73 6f 20 73 6c 6f 77 2e 20 20 0a 20 20   also slow.  .  
2c80: 20 20 57 68 65 6e 20 73 79 6e 63 68 72 6f 6e 6f    When synchrono
2c90: 75 73 20 69 73 20 4e 4f 52 4d 41 4c 2c 20 74 68  us is NORMAL, th
2ca0: 65 20 53 51 4c 69 74 65 20 64 61 74 61 62 61 73  e SQLite databas
2cb0: 65 0a 20 20 20 20 65 6e 67 69 6e 65 20 77 69 6c  e.    engine wil
2cc0: 6c 20 73 74 69 6c 6c 20 70 61 75 73 65 20 61 74  l still pause at
2cd0: 20 74 68 65 20 6d 6f 73 74 20 63 72 69 74 69 63   the most critic
2ce0: 61 6c 20 6d 6f 6d 65 6e 74 73 2c 20 62 75 74 20  al moments, but 
2cf0: 6c 65 73 73 20 6f 66 74 65 6e 0a 20 20 20 20 74  less often.    t
2d00: 68 61 6e 20 69 6e 20 46 55 4c 4c 20 6d 6f 64 65  han in FULL mode
2d10: 2e 20 20 54 68 65 72 65 20 69 73 20 61 20 76 65  .  There is a ve
2d20: 72 79 20 73 6d 61 6c 6c 20 28 74 68 6f 75 67 68  ry small (though
2d30: 20 6e 6f 6e 2d 7a 65 72 6f 29 20 63 68 61 6e 63   non-zero) chanc
2d40: 65 20 74 68 61 74 0a 20 20 20 20 61 20 70 6f 77  e that.    a pow
2d50: 65 72 20 66 61 69 6c 75 72 65 20 61 74 20 6a 75  er failure at ju
2d60: 73 74 20 74 68 65 20 77 72 6f 6e 67 20 74 69 6d  st the wrong tim
2d70: 65 20 63 6f 75 6c 64 20 63 6f 72 72 75 70 74 20  e could corrupt 
2d80: 74 68 65 20 64 61 74 61 62 61 73 65 20 69 6e 0a  the database in.
2d90: 20 20 20 20 4e 4f 52 4d 41 4c 20 6d 6f 64 65 2e      NORMAL mode.
2da0: 20 20 42 75 74 20 69 6e 20 70 72 61 63 74 69 63    But in practic
2db0: 65 2c 20 79 6f 75 20 61 72 65 20 6d 6f 72 65 20  e, you are more 
2dc0: 6c 69 6b 65 6c 79 20 74 6f 20 73 75 66 66 65 72  likely to suffer
2dd0: 0a 20 20 20 20 61 20 63 61 74 61 73 74 72 6f 70  .    a catastrop
2de0: 68 69 63 20 64 69 73 6b 20 66 61 69 6c 75 72 65  hic disk failure
2df0: 20 6f 72 20 73 6f 6d 65 20 6f 74 68 65 72 20 75   or some other u
2e00: 6e 72 65 63 6f 76 65 72 61 62 6c 65 20 68 61 72  nrecoverable har
2e10: 64 77 61 72 65 0a 20 20 20 20 66 61 75 6c 74 2e  dware.    fault.
2e20: 0a 20 20 20 20 57 69 74 68 20 73 79 6e 63 68 72  .    With synchr
2e30: 6f 6e 6f 75 73 20 4f 46 46 20 28 30 29 2c 20 53  onous OFF (0), S
2e40: 51 4c 69 74 65 20 63 6f 6e 74 69 6e 75 65 73 20  QLite continues 
2e50: 77 69 74 68 6f 75 74 20 70 61 75 73 69 6e 67 0a  without pausing.
2e60: 20 20 20 20 61 73 20 73 6f 6f 6e 20 61 73 20 69      as soon as i
2e70: 74 20 68 61 73 20 68 61 6e 64 65 64 20 64 61 74  t has handed dat
2e80: 61 20 6f 66 66 20 74 6f 20 74 68 65 20 6f 70 65  a off to the ope
2e90: 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a 20  rating system.. 
2ea0: 20 20 20 49 66 20 74 68 65 20 61 70 70 6c 69 63     If the applic
2eb0: 61 74 69 6f 6e 20 72 75 6e 6e 69 6e 67 20 53 51  ation running SQ
2ec0: 4c 69 74 65 20 63 72 61 73 68 65 73 2c 20 74 68  Lite crashes, th
2ed0: 65 20 64 61 74 61 20 77 69 6c 6c 20 62 65 20 73  e data will be s
2ee0: 61 66 65 2c 20 62 75 74 0a 20 20 20 20 74 68 65  afe, but.    the
2ef0: 20 64 61 74 61 62 61 73 65 20 6d 69 67 68 74 20   database might 
2f00: 62 65 63 6f 6d 65 20 63 6f 72 72 75 70 74 65 64  become corrupted
2f10: 20 69 66 20 74 68 65 20 6f 70 65 72 61 74 69 6e   if the operatin
2f20: 67 20 73 79 73 74 65 6d 0a 20 20 20 20 63 72 61  g system.    cra
2f30: 73 68 65 73 20 6f 72 20 74 68 65 20 63 6f 6d 70  shes or the comp
2f40: 75 74 65 72 20 6c 6f 73 65 73 20 70 6f 77 65 72  uter loses power
2f50: 20 62 65 66 6f 72 65 20 74 68 61 74 20 64 61 74   before that dat
2f60: 61 20 68 61 73 20 62 65 65 6e 20 77 72 69 74 74  a has been writt
2f70: 65 6e 0a 20 20 20 20 74 6f 20 74 68 65 20 64 69  en.    to the di
2f80: 73 6b 20 73 75 72 66 61 63 65 2e 20 20 4f 6e 20  sk surface.  On 
2f90: 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c 20  the other hand, 
2fa0: 73 6f 6d 65 0a 20 20 20 20 6f 70 65 72 61 74 69  some.    operati
2fb0: 6f 6e 73 20 61 72 65 20 61 73 20 6d 75 63 68 20  ons are as much 
2fc0: 61 73 20 35 30 20 6f 72 20 6d 6f 72 65 20 74 69  as 50 or more ti
2fd0: 6d 65 73 20 66 61 73 74 65 72 20 77 69 74 68 20  mes faster with 
2fe0: 73 79 6e 63 68 72 6f 6e 6f 75 73 20 4f 46 46 2e  synchronous OFF.
2ff0: 0a 20 20 20 20 3c 2f 70 3e 0a 20 20 20 20 3c 70  .    </p>.    <p
3000: 3e 49 6e 20 53 51 4c 69 74 65 20 76 65 72 73 69  >In SQLite versi
3010: 6f 6e 20 32 2c 20 74 68 65 20 64 65 66 61 75 6c  on 2, the defaul
3020: 74 20 76 61 6c 75 65 20 69 73 20 4e 4f 52 4d 41  t value is NORMA
3030: 4c 2e 20 46 6f 72 20 76 65 72 73 69 6f 6e 20 33  L. For version 3
3040: 2c 20 74 68 65 0a 20 20 20 20 64 65 66 61 75 6c  , the.    defaul
3050: 74 20 77 61 73 20 63 68 61 6e 67 65 64 20 74 6f  t was changed to
3060: 20 46 55 4c 4c 2e 0a 20 20 20 20 3c 2f 70 3e 0a   FULL..    </p>.
3070: 3c 2f 6c 69 3e 0a 0a 0a 3c 61 20 6e 61 6d 65 3d  </li>...<a name=
3080: 22 70 72 61 67 6d 61 5f 74 65 6d 70 5f 73 74 6f  "pragma_temp_sto
3090: 72 65 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e  re"></a>.<li><p>
30a0: 3c 62 3e 50 52 41 47 4d 41 20 74 65 6d 70 5f 73  <b>PRAGMA temp_s
30b0: 74 6f 72 65 3b 0a 20 20 20 20 20 20 20 3c 62 72  tore;.       <br
30c0: 3e 50 52 41 47 4d 41 20 74 65 6d 70 5f 73 74 6f  >PRAGMA temp_sto
30d0: 72 65 20 3d 20 44 45 46 41 55 4c 54 3b 3c 2f 62  re = DEFAULT;</b
30e0: 3e 20 28 30 29 3c 62 3e 0a 20 20 20 20 20 20 20  > (0)<b>.       
30f0: 3c 62 72 3e 50 52 41 47 4d 41 20 74 65 6d 70 5f  <br>PRAGMA temp_
3100: 73 74 6f 72 65 20 3d 20 46 49 4c 45 3b 3c 2f 62  store = FILE;</b
3110: 3e 20 28 31 29 3c 62 3e 0a 20 20 20 20 20 20 20  > (1)<b>.       
3120: 3c 62 72 3e 50 52 41 47 4d 41 20 74 65 6d 70 5f  <br>PRAGMA temp_
3130: 73 74 6f 72 65 20 3d 20 4d 45 4d 4f 52 59 3b 3c  store = MEMORY;<
3140: 2f 62 3e 20 28 32 29 3c 2f 70 3e 0a 20 20 20 20  /b> (2)</p>.    
3150: 3c 70 3e 51 75 65 72 79 20 6f 72 20 63 68 61 6e  <p>Query or chan
3160: 67 65 20 74 68 65 20 73 65 74 74 69 6e 67 20 6f  ge the setting o
3170: 66 20 74 68 65 20 22 3c 62 3e 74 65 6d 70 5f 73  f the "<b>temp_s
3180: 74 6f 72 65 3c 2f 62 3e 22 20 70 61 72 61 6d 65  tore</b>" parame
3190: 74 65 72 2e 0a 20 20 20 20 57 68 65 6e 20 74 65  ter..    When te
31a0: 6d 70 5f 73 74 6f 72 65 20 69 73 20 44 45 46 41  mp_store is DEFA
31b0: 55 4c 54 20 28 30 29 2c 20 74 68 65 20 63 6f 6d  ULT (0), the com
31c0: 70 69 6c 65 2d 74 69 6d 65 20 43 20 70 72 65 70  pile-time C prep
31d0: 72 6f 63 65 73 73 6f 72 20 6d 61 63 72 6f 0a 20  rocessor macro. 
31e0: 20 20 20 54 45 4d 50 5f 53 54 4f 52 45 20 69 73     TEMP_STORE is
31f0: 20 75 73 65 64 20 74 6f 20 64 65 74 65 72 6d 69   used to determi
3200: 6e 65 20 77 68 65 72 65 20 74 65 6d 70 6f 72 61  ne where tempora
3210: 72 79 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e  ry tables and in
3220: 64 69 63 65 73 0a 20 20 20 20 61 72 65 20 73 74  dices.    are st
3230: 6f 72 65 64 2e 20 20 57 68 65 6e 0a 20 20 20 20  ored.  When.    
3240: 74 65 6d 70 5f 73 74 6f 72 65 20 69 73 20 4d 45  temp_store is ME
3250: 4d 4f 52 59 20 28 32 29 20 74 65 6d 70 6f 72 61  MORY (2) tempora
3260: 72 79 20 74 61 62 6c 65 73 20 61 6e 64 20 69 6e  ry tables and in
3270: 64 69 63 65 73 20 61 72 65 20 6b 65 70 74 20 69  dices are kept i
3280: 6e 20 6d 65 6d 6f 72 79 2e 0a 20 20 20 20 57 68  n memory..    Wh
3290: 65 6e 20 74 65 6d 70 5f 73 74 6f 72 65 20 69 73  en temp_store is
32a0: 20 46 49 4c 45 20 28 31 29 20 74 65 6d 70 6f 72   FILE (1) tempor
32b0: 61 72 79 20 74 61 62 6c 65 73 20 61 6e 64 20 69  ary tables and i
32c0: 6e 64 69 63 65 73 20 61 72 65 20 73 74 6f 72 65  ndices are store
32d0: 64 0a 20 20 20 20 69 6e 20 61 20 66 69 6c 65 2e  d.    in a file.
32e0: 20 20 54 68 65 20 3c 61 20 68 72 65 66 3d 22 23    The <a href="#
32f0: 70 72 61 67 6d 61 5f 74 65 6d 70 5f 73 74 6f 72  pragma_temp_stor
3300: 65 5f 64 69 72 65 63 74 6f 72 79 22 3e 0a 20 20  e_directory">.  
3310: 20 20 74 65 6d 70 5f 73 74 6f 72 65 5f 64 69 72    temp_store_dir
3320: 65 63 74 6f 72 79 3c 2f 61 3e 20 70 72 61 67 6d  ectory</a> pragm
3330: 61 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f  a can be used to
3340: 20 73 70 65 63 69 66 79 20 74 68 65 20 64 69 72   specify the dir
3350: 65 63 74 6f 72 79 0a 20 20 20 20 63 6f 6e 74 61  ectory.    conta
3360: 69 6e 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2e  ining this file.
3370: 0a 20 20 20 20 3c 62 3e 46 49 4c 45 3c 2f 62 3e  .    <b>FILE</b>
3380: 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 20 57   is specified. W
3390: 68 65 6e 20 74 68 65 20 74 65 6d 70 5f 73 74 6f  hen the temp_sto
33a0: 72 65 20 73 65 74 74 69 6e 67 20 69 73 20 63 68  re setting is ch
33b0: 61 6e 67 65 64 2c 0a 20 20 20 20 61 6c 6c 20 65  anged,.    all e
33c0: 78 69 73 74 69 6e 67 20 74 65 6d 70 6f 72 61 72  xisting temporar
33d0: 79 20 74 61 62 6c 65 73 2c 20 69 6e 64 69 63 65  y tables, indice
33e0: 73 2c 20 74 72 69 67 67 65 72 73 2c 20 61 6e 64  s, triggers, and
33f0: 20 76 69 65 77 73 20 61 72 65 0a 20 20 20 20 69   views are.    i
3400: 6d 6d 65 64 69 61 74 65 6c 79 20 64 65 6c 65 74  mmediately delet
3410: 65 64 2e 3c 2f 70 3e 0a 0a 20 20 20 20 3c 70 3e  ed.</p>..    <p>
3420: 49 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 66  It is possible f
3430: 6f 72 20 74 68 65 20 6c 69 62 72 61 72 79 20 63  or the library c
3440: 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 43 20 70 72  ompile-time C pr
3450: 65 70 72 6f 63 65 73 73 6f 72 20 73 79 6d 62 6f  eprocessor symbo
3460: 6c 0a 20 20 20 20 54 45 4d 50 5f 53 54 4f 52 45  l.    TEMP_STORE
3470: 20 74 6f 20 6f 76 65 72 72 69 64 65 20 74 68 69   to override thi
3480: 73 20 70 72 61 67 6d 61 20 73 65 74 74 69 6e 67  s pragma setting
3490: 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  .  The following
34a0: 20 74 61 62 6c 65 20 73 75 6d 6d 61 72 69 7a 65   table summarize
34b0: 73 0a 20 20 20 20 74 68 65 20 69 6e 74 65 72 61  s.    the intera
34c0: 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 54 45 4d  ction of the TEM
34d0: 50 5f 53 54 4f 52 45 20 70 72 65 70 72 6f 63 65  P_STORE preproce
34e0: 73 73 6f 72 20 6d 61 63 72 6f 20 61 6e 64 20 74  ssor macro and t
34f0: 68 65 0a 20 20 20 20 74 65 6d 70 5f 73 74 6f 72  he.    temp_stor
3500: 65 20 70 72 61 67 6d 61 3a 3c 2f 70 3e 0a 0a 20  e pragma:</p>.. 
3510: 20 20 20 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a     <blockquote>.
3520: 20 20 20 20 3c 74 61 62 6c 65 20 63 65 6c 6c 70      <table cellp
3530: 61 64 64 69 6e 67 3d 22 32 22 20 62 6f 72 64 65  adding="2" borde
3540: 72 3d 22 31 22 3e 0a 20 20 20 20 3c 74 72 3e 3c  r="1">.    <tr><
3550: 74 68 20 76 61 6c 69 67 6e 3d 22 62 6f 74 74 6f  th valign="botto
3560: 6d 22 3e 54 45 4d 50 5f 53 54 4f 52 45 3c 2f 74  m">TEMP_STORE</t
3570: 68 3e 0a 20 20 20 20 20 20 20 20 3c 74 68 20 76  h>.        <th v
3580: 61 6c 69 67 6e 3d 22 62 6f 74 74 6f 6d 22 3e 50  align="bottom">P
3590: 52 41 47 4d 41 3c 62 72 3e 74 65 6d 70 5f 73 74  RAGMA<br>temp_st
35a0: 6f 72 65 3c 2f 74 68 3e 0a 20 20 20 20 20 20 20  ore</th>.       
35b0: 20 3c 74 68 3e 53 74 6f 72 61 67 65 20 75 73 65   <th>Storage use
35c0: 64 20 66 6f 72 3c 62 72 3e 54 45 4d 50 20 74 61  d for<br>TEMP ta
35d0: 62 6c 65 73 20 61 6e 64 20 69 6e 64 69 63 65 73  bles and indices
35e0: 3c 2f 74 68 3e 3c 2f 74 72 3e 0a 20 20 20 20 3c  </th></tr>.    <
35f0: 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  tr><td align="ce
3600: 6e 74 65 72 22 3e 30 3c 2f 74 64 3e 0a 20 20 20  nter">0</td>.   
3610: 20 20 20 20 20 3c 74 64 20 61 6c 69 67 6e 3d 22       <td align="
3620: 63 65 6e 74 65 72 22 3e 3c 65 6d 3e 61 6e 79 3c  center"><em>any<
3630: 2f 65 6d 3e 3c 2f 74 64 3e 0a 20 20 20 20 20 20  /em></td>.      
3640: 20 20 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e    <td align="cen
3650: 74 65 72 22 3e 66 69 6c 65 3c 2f 74 64 3e 3c 2f  ter">file</td></
3660: 74 72 3e 0a 20 20 20 20 3c 74 72 3e 3c 74 64 20  tr>.    <tr><td 
3670: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 31  align="center">1
3680: 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 74  </td>.        <t
3690: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
36a0: 3e 30 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20  >0</td>.        
36b0: 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65  <td align="cente
36c0: 72 22 3e 66 69 6c 65 3c 2f 74 64 3e 3c 2f 74 72  r">file</td></tr
36d0: 3e 0a 20 20 20 20 3c 74 72 3e 3c 74 64 20 61 6c  >.    <tr><td al
36e0: 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 31 3c 2f  ign="center">1</
36f0: 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20  td>.        <td 
3700: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 31  align="center">1
3710: 3c 2f 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 74  </td>.        <t
3720: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
3730: 3e 66 69 6c 65 3c 2f 74 64 3e 3c 2f 74 72 3e 0a  >file</td></tr>.
3740: 20 20 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67      <tr><td alig
3750: 6e 3d 22 63 65 6e 74 65 72 22 3e 31 3c 2f 74 64  n="center">1</td
3760: 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20 61 6c  >.        <td al
3770: 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 32 3c 2f  ign="center">2</
3780: 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20  td>.        <td 
3790: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6d  align="center">m
37a0: 65 6d 6f 72 79 3c 2f 74 64 3e 3c 2f 74 72 3e 0a  emory</td></tr>.
37b0: 20 20 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67      <tr><td alig
37c0: 6e 3d 22 63 65 6e 74 65 72 22 3e 32 3c 2f 74 64  n="center">2</td
37d0: 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20 61 6c  >.        <td al
37e0: 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 30 3c 2f  ign="center">0</
37f0: 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20  td>.        <td 
3800: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6d  align="center">m
3810: 65 6d 6f 72 79 3c 2f 74 64 3e 3c 2f 74 72 3e 0a  emory</td></tr>.
3820: 20 20 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67      <tr><td alig
3830: 6e 3d 22 63 65 6e 74 65 72 22 3e 32 3c 2f 74 64  n="center">2</td
3840: 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20 61 6c  >.        <td al
3850: 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 31 3c 2f  ign="center">1</
3860: 74 64 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20  td>.        <td 
3870: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 66  align="center">f
3880: 69 6c 65 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 20 20  ile</td></tr>.  
3890: 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d    <tr><td align=
38a0: 22 63 65 6e 74 65 72 22 3e 32 3c 2f 74 64 3e 0a  "center">2</td>.
38b0: 20 20 20 20 20 20 20 20 3c 74 64 20 61 6c 69 67          <td alig
38c0: 6e 3d 22 63 65 6e 74 65 72 22 3e 32 3c 2f 74 64  n="center">2</td
38d0: 3e 0a 20 20 20 20 20 20 20 20 3c 74 64 20 61 6c  >.        <td al
38e0: 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6d 65 6d  ign="center">mem
38f0: 6f 72 79 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 20 20  ory</td></tr>.  
3900: 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d    <tr><td align=
3910: 22 63 65 6e 74 65 72 22 3e 33 3c 2f 74 64 3e 0a  "center">3</td>.
3920: 20 20 20 20 20 20 20 20 3c 74 64 20 61 6c 69 67          <td alig
3930: 6e 3d 22 63 65 6e 74 65 72 22 3e 3c 65 6d 3e 61  n="center"><em>a
3940: 6e 79 3c 2f 65 6d 3e 3c 2f 74 64 3e 0a 20 20 20  ny</em></td>.   
3950: 20 20 20 20 20 3c 74 64 20 61 6c 69 67 6e 3d 22       <td align="
3960: 63 65 6e 74 65 72 22 3e 6d 65 6d 6f 72 79 3c 2f  center">memory</
3970: 74 64 3e 3c 2f 74 72 3e 0a 20 20 20 20 3c 2f 74  td></tr>.    </t
3980: 61 62 6c 65 3e 0a 20 20 20 20 3c 2f 62 6c 6f 63  able>.    </bloc
3990: 6b 71 75 6f 74 65 3e 0a 20 20 20 20 3c 2f 6c 69  kquote>.    </li
39a0: 3e 0a 20 20 20 20 3c 62 72 3e 0a 0a 3c 61 20 6e  >.    <br>..<a n
39b0: 61 6d 65 3d 22 70 72 61 67 6d 61 5f 74 65 6d 70  ame="pragma_temp
39c0: 5f 73 74 6f 72 65 5f 64 69 72 65 63 74 6f 72 79  _store_directory
39d0: 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62  "></a>.<li><p><b
39e0: 3e 50 52 41 47 4d 41 20 74 65 6d 70 5f 73 74 6f  >PRAGMA temp_sto
39f0: 72 65 5f 64 69 72 65 63 74 6f 72 79 3b 0a 20 20  re_directory;.  
3a00: 20 20 20 20 20 3c 62 72 3e 50 52 41 47 4d 41 20       <br>PRAGMA 
3a10: 74 65 6d 70 5f 73 74 6f 72 65 5f 64 69 72 65 63  temp_store_direc
3a20: 74 6f 72 79 20 3d 20 27 64 69 72 65 63 74 6f 72  tory = 'director
3a30: 79 2d 6e 61 6d 65 27 3b 3c 2f 62 3e 3c 2f 70 3e  y-name';</b></p>
3a40: 0a 20 20 20 20 3c 70 3e 51 75 65 72 79 20 6f 72  .    <p>Query or
3a50: 20 63 68 61 6e 67 65 20 74 68 65 20 73 65 74 74   change the sett
3a60: 69 6e 67 20 6f 66 20 74 68 65 20 22 74 65 6d 70  ing of the "temp
3a70: 5f 73 74 6f 72 65 5f 64 69 72 65 63 74 6f 72 79  _store_directory
3a80: 22 20 2d 20 74 68 65 0a 20 20 20 20 64 69 72 65  " - the.    dire
3a90: 63 74 6f 72 79 20 77 68 65 72 65 20 66 69 6c 65  ctory where file
3aa0: 73 20 75 73 65 64 20 66 6f 72 20 73 74 6f 72 69  s used for stori
3ab0: 6e 67 20 74 65 6d 70 6f 72 61 72 79 20 74 61 62  ng temporary tab
3ac0: 6c 65 73 20 61 6e 64 20 69 6e 64 69 63 65 73 0a  les and indices.
3ad0: 20 20 20 20 61 72 65 20 6b 65 70 74 2e 20 20 54      are kept.  T
3ae0: 68 69 73 20 73 65 74 74 69 6e 67 20 6c 61 73 74  his setting last
3af0: 73 20 66 6f 72 20 74 68 65 20 64 75 72 61 74 69  s for the durati
3b00: 6f 6e 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e  on of the curren
3b10: 74 20 63 6f 6e 6e 65 63 74 69 6f 6e 0a 20 20 20  t connection.   
3b20: 20 6f 6e 6c 79 20 61 6e 64 20 72 65 73 65 74 73   only and resets
3b30: 20 74 6f 20 69 74 73 20 64 65 66 61 75 6c 74 20   to its default 
3b40: 76 61 6c 75 65 20 66 6f 72 20 65 61 63 68 20 6e  value for each n
3b50: 65 77 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 6f 70  ew connection op
3b60: 65 6e 65 64 2e 0a 0a 20 20 20 20 3c 70 3e 57 68  ened...    <p>Wh
3b70: 65 6e 20 74 68 65 20 74 65 6d 70 5f 73 74 6f 72  en the temp_stor
3b80: 65 5f 64 69 72 65 63 74 6f 72 79 20 73 65 74 74  e_directory sett
3b90: 69 6e 67 20 69 73 20 63 68 61 6e 67 65 64 2c 20  ing is changed, 
3ba0: 61 6c 6c 20 65 78 69 73 74 69 6e 67 20 74 65 6d  all existing tem
3bb0: 70 6f 72 61 72 79 0a 20 20 20 20 74 61 62 6c 65  porary.    table
3bc0: 73 2c 20 69 6e 64 69 63 65 73 2c 20 74 72 69 67  s, indices, trig
3bd0: 67 65 72 73 2c 20 61 6e 64 20 76 69 65 77 65 72  gers, and viewer
3be0: 73 20 61 72 65 20 69 6d 6d 65 64 69 61 74 65 6c  s are immediatel
3bf0: 79 20 64 65 6c 65 74 65 64 2e 20 20 49 6e 0a 20  y deleted.  In. 
3c00: 20 20 20 70 72 61 63 74 69 63 65 2c 20 74 65 6d     practice, tem
3c10: 70 5f 73 74 6f 72 65 5f 64 69 72 65 63 74 6f 72  p_store_director
3c20: 79 20 73 68 6f 75 6c 64 20 62 65 20 73 65 74 20  y should be set 
3c30: 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65  immediately afte
3c40: 72 20 74 68 65 20 0a 20 20 20 20 64 61 74 61 62  r the .    datab
3c50: 61 73 65 20 69 73 20 6f 70 65 6e 65 64 2e 20 20  ase is opened.  
3c60: 3c 2f 70 3e 0a 0a 20 20 20 20 3c 70 3e 54 68 65  </p>..    <p>The
3c70: 20 76 61 6c 75 65 20 3c 69 3e 64 69 72 65 63 74   value <i>direct
3c80: 6f 72 79 2d 6e 61 6d 65 3c 2f 69 3e 20 73 68 6f  ory-name</i> sho
3c90: 75 6c 64 20 62 65 20 65 6e 63 6c 6f 73 65 64 20  uld be enclosed 
3ca0: 69 6e 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 73  in single quotes
3cb0: 2e 0a 20 20 20 20 54 6f 20 72 65 76 65 72 74 20  ..    To revert 
3cc0: 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 6f  the directory to
3cd0: 20 74 68 65 20 64 65 66 61 75 6c 74 2c 20 73 65   the default, se
3ce0: 74 20 74 68 65 20 3c 69 3e 64 69 72 65 63 74 6f  t the <i>directo
3cf0: 72 79 2d 6e 61 6d 65 3c 2f 69 3e 20 74 6f 0a 20  ry-name</i> to. 
3d00: 20 20 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69     an empty stri
3d10: 6e 67 2c 20 65 2e 67 2e 2c 20 3c 69 3e 50 52 41  ng, e.g., <i>PRA
3d20: 47 4d 41 20 74 65 6d 70 5f 73 74 6f 72 65 5f 64  GMA temp_store_d
3d30: 69 72 65 63 74 6f 72 79 20 3d 20 27 27 3c 2f 69  irectory = ''</i
3d40: 3e 2e 20 20 41 6e 0a 20 20 20 20 65 72 72 6f 72  >.  An.    error
3d50: 20 69 73 20 72 61 69 73 65 64 20 69 66 20 3c 69   is raised if <i
3d60: 3e 64 69 72 65 63 74 6f 72 79 2d 6e 61 6d 65 3c  >directory-name<
3d70: 2f 69 3e 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64  /i> is not found
3d80: 20 6f 72 20 69 73 20 6e 6f 74 0a 20 20 20 20 77   or is not.    w
3d90: 72 69 74 61 62 6c 65 2e 20 3c 2f 70 3e 0a 0a 20  ritable. </p>.. 
3da0: 20 20 20 3c 70 3e 54 68 65 20 64 65 66 61 75 6c     <p>The defaul
3db0: 74 20 64 69 72 65 63 74 6f 72 79 20 66 6f 72 20  t directory for 
3dc0: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20  temporary files 
3dd0: 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 4f  depends on the O
3de0: 53 2e 20 20 46 6f 72 0a 20 20 20 20 55 6e 69 78  S.  For.    Unix
3df0: 2f 4c 69 6e 75 78 2f 4f 53 58 2c 20 74 68 65 20  /Linux/OSX, the 
3e00: 64 65 66 61 75 6c 74 20 69 73 20 74 68 65 20 69  default is the i
3e10: 73 20 74 68 65 20 66 69 72 73 74 20 77 72 69 74  s the first writ
3e20: 61 62 6c 65 20 64 69 72 65 63 74 6f 72 79 20 66  able directory f
3e30: 6f 75 6e 64 0a 20 20 20 20 69 6e 20 74 68 65 20  ound.    in the 
3e40: 6c 69 73 74 20 6f 66 3a 20 3c 62 3e 2f 76 61 72  list of: <b>/var
3e50: 2f 74 6d 70 2c 20 2f 75 73 72 2f 74 6d 70 2c 20  /tmp, /usr/tmp, 
3e60: 2f 74 6d 70 2c 3c 2f 62 3e 20 61 6e 64 20 3c 62  /tmp,</b> and <b
3e70: 3e 0a 20 20 20 20 3c 69 3e 63 75 72 72 65 6e 74  >.    <i>current
3e80: 2d 64 69 72 65 63 74 6f 72 79 3c 2f 69 3e 3c 2f  -directory</i></
3e90: 62 3e 2e 20 20 46 6f 72 20 57 69 6e 64 6f 77 73  b>.  For Windows
3ea0: 20 4e 54 2c 20 74 68 65 20 64 65 66 61 75 6c 74   NT, the default
3eb0: 20 0a 20 20 20 20 64 69 72 65 63 74 6f 72 79 20   .    directory 
3ec0: 69 73 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79  is determined by
3ed0: 20 57 69 6e 64 6f 77 73 2c 20 67 65 6e 65 72 61   Windows, genera
3ee0: 6c 6c 79 0a 20 20 20 20 3c 62 3e 43 3a 5c 44 6f  lly.    <b>C:\Do
3ef0: 63 75 6d 65 6e 74 73 20 61 6e 64 20 53 65 74 74  cuments and Sett
3f00: 69 6e 67 73 5c 3c 69 3e 75 73 65 72 2d 6e 61 6d  ings\<i>user-nam
3f10: 65 3c 2f 69 3e 5c 4c 6f 63 61 6c 20 53 65 74 74  e</i>\Local Sett
3f20: 69 6e 67 73 5c 54 65 6d 70 5c 3c 2f 62 3e 2e 20  ings\Temp\</b>. 
3f30: 0a 20 20 20 20 54 65 6d 70 6f 72 61 72 79 20 66  .    Temporary f
3f40: 69 6c 65 73 20 63 72 65 61 74 65 64 20 62 79 20  iles created by 
3f50: 53 51 4c 69 74 65 20 61 72 65 20 75 6e 6c 69 6e  SQLite are unlin
3f60: 6b 65 64 20 69 6d 6d 65 64 69 61 74 65 6c 79 20  ked immediately 
3f70: 61 66 74 65 72 0a 20 20 20 20 6f 70 65 6e 69 6e  after.    openin
3f80: 67 2c 20 73 6f 20 74 68 61 74 20 74 68 65 20 6f  g, so that the o
3f90: 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20  perating system 
3fa0: 63 61 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c  can automaticall
3fb0: 79 20 64 65 6c 65 74 65 20 74 68 65 0a 20 20 20  y delete the.   
3fc0: 20 66 69 6c 65 73 20 77 68 65 6e 20 74 68 65 20   files when the 
3fd0: 53 51 4c 69 74 65 20 70 72 6f 63 65 73 73 20 65  SQLite process e
3fe0: 78 69 74 73 2e 20 20 54 68 75 73 2c 20 74 65 6d  xits.  Thus, tem
3ff0: 70 6f 72 61 72 79 20 66 69 6c 65 73 20 61 72 65  porary files are
4000: 20 6e 6f 74 0a 20 20 20 20 6e 6f 72 6d 61 6c 6c   not.    normall
4010: 79 20 76 69 73 69 62 6c 65 20 74 68 72 6f 75 67  y visible throug
4020: 68 20 3c 69 3e 6c 73 3c 2f 69 3e 20 6f 72 20 3c  h <i>ls</i> or <
4030: 69 3e 64 69 72 3c 2f 69 3e 20 63 6f 6d 6d 61 6e  i>dir</i> comman
4040: 64 73 2e 3c 2f 70 3e 0a 20 0a 20 20 20 20 3c 2f  ds.</p>. .    </
4050: 6c 69 3e 0a 3c 2f 75 6c 3e 0a 7d 0a 0a 53 65 63  li>.</ul>.}..Sec
4060: 74 69 6f 6e 20 7b 50 72 61 67 6d 61 73 20 74 6f  tion {Pragmas to
4070: 20 71 75 65 72 79 20 74 68 65 20 64 61 74 61 62   query the datab
4080: 61 73 65 20 73 63 68 65 6d 61 7d 20 73 63 68 65  ase schema} sche
4090: 6d 61 0a 0a 70 75 74 73 20 7b 0a 3c 75 6c 3e 0a  ma..puts {.<ul>.
40a0: 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61 5f  <a name="pragma_
40b0: 64 61 74 61 62 61 73 65 5f 6c 69 73 74 22 3e 3c  database_list"><
40c0: 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52  /a>.<li><p><b>PR
40d0: 41 47 4d 41 20 64 61 74 61 62 61 73 65 5f 6c 69  AGMA database_li
40e0: 73 74 3b 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20  st;</b></p>.    
40f0: 3c 70 3e 46 6f 72 20 65 61 63 68 20 6f 70 65 6e  <p>For each open
4100: 20 64 61 74 61 62 61 73 65 2c 20 69 6e 76 6f 6b   database, invok
4110: 65 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 66  e the callback f
4120: 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 77 69 74  unction once wit
4130: 68 0a 20 20 20 20 69 6e 66 6f 72 6d 61 74 69 6f  h.    informatio
4140: 6e 20 61 62 6f 75 74 20 74 68 61 74 20 64 61 74  n about that dat
4150: 61 62 61 73 65 2e 20 20 41 72 67 75 6d 65 6e 74  abase.  Argument
4160: 73 20 69 6e 63 6c 75 64 65 20 74 68 65 20 69 6e  s include the in
4170: 64 65 78 20 61 6e 64 20 0a 20 20 20 20 74 68 65  dex and .    the
4180: 20 6e 61 6d 65 20 74 68 65 20 64 61 74 61 62 61   name the databa
4190: 73 65 20 77 61 73 20 61 74 74 61 63 68 65 64 20  se was attached 
41a0: 77 69 74 68 2e 20 20 54 68 65 20 66 69 72 73 74  with.  The first
41b0: 20 72 6f 77 20 77 69 6c 6c 20 62 65 20 66 6f 72   row will be for
41c0: 20 0a 20 20 20 20 74 68 65 20 6d 61 69 6e 20 64   .    the main d
41d0: 61 74 61 62 61 73 65 2e 20 20 54 68 65 20 73 65  atabase.  The se
41e0: 63 6f 6e 64 20 72 6f 77 20 77 69 6c 6c 20 62 65  cond row will be
41f0: 20 66 6f 72 20 74 68 65 20 64 61 74 61 62 61 73   for the databas
4200: 65 20 75 73 65 64 20 74 6f 20 0a 20 20 20 20 73  e used to .    s
4210: 74 6f 72 65 20 74 65 6d 70 6f 72 61 72 79 20 74  tore temporary t
4220: 61 62 6c 65 73 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a  ables.</p></li>.
4230: 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61  .<a name="pragma
4240: 5f 66 6f 72 65 69 67 6e 5f 6b 65 79 5f 6c 69 73  _foreign_key_lis
4250: 74 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c  t"></a>.<li><p><
4260: 62 3e 50 52 41 47 4d 41 20 66 6f 72 65 69 67 6e  b>PRAGMA foreign
4270: 5f 6b 65 79 5f 6c 69 73 74 28 3c 2f 62 3e 3c 69  _key_list(</b><i
4280: 3e 74 61 62 6c 65 2d 6e 61 6d 65 3c 2f 69 3e 3c  >table-name</i><
4290: 62 3e 29 3b 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20  b>);</b></p>.   
42a0: 20 3c 70 3e 46 6f 72 20 65 61 63 68 20 66 6f 72   <p>For each for
42b0: 65 69 67 6e 20 6b 65 79 20 74 68 61 74 20 72 65  eign key that re
42c0: 66 65 72 65 6e 63 65 73 20 61 20 63 6f 6c 75 6d  ferences a colum
42d0: 6e 20 69 6e 20 74 68 65 20 61 72 67 75 6d 65 6e  n in the argumen
42e0: 74 0a 20 20 20 20 74 61 62 6c 65 2c 20 69 6e 76  t.    table, inv
42f0: 6f 6b 65 20 74 68 65 20 63 61 6c 6c 62 61 63 6b  oke the callback
4300: 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 69   function with i
4310: 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74  nformation about
4320: 20 74 68 61 74 0a 20 20 20 20 66 6f 72 65 69 67   that.    foreig
4330: 6e 20 6b 65 79 2e 20 54 68 65 20 63 61 6c 6c 62  n key. The callb
4340: 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 77 69 6c  ack function wil
4350: 6c 20 62 65 20 69 6e 76 6f 6b 65 64 20 6f 6e 63  l be invoked onc
4360: 65 20 66 6f 72 20 65 61 63 68 0a 20 20 20 20 63  e for each.    c
4370: 6f 6c 75 6d 6e 20 69 6e 20 65 61 63 68 20 66 6f  olumn in each fo
4380: 72 65 69 67 6e 20 6b 65 79 2e 3c 2f 70 3e 3c 2f  reign key.</p></
4390: 6c 69 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70 72  li>..<a name="pr
43a0: 61 67 6d 61 5f 69 6e 64 65 78 5f 69 6e 66 6f 22  agma_index_info"
43b0: 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e  ></a>.<li><p><b>
43c0: 50 52 41 47 4d 41 20 69 6e 64 65 78 5f 69 6e 66  PRAGMA index_inf
43d0: 6f 28 3c 2f 62 3e 3c 69 3e 69 6e 64 65 78 2d 6e  o(</b><i>index-n
43e0: 61 6d 65 3c 2f 69 3e 3c 62 3e 29 3b 3c 2f 62 3e  ame</i><b>);</b>
43f0: 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 46 6f 72 20  </p>.    <p>For 
4400: 65 61 63 68 20 63 6f 6c 75 6d 6e 20 74 68 61 74  each column that
4410: 20 74 68 65 20 6e 61 6d 65 64 20 69 6e 64 65 78   the named index
4420: 20 72 65 66 65 72 65 6e 63 65 73 2c 20 69 6e 76   references, inv
4430: 6f 6b 65 20 74 68 65 20 0a 20 20 20 20 63 61 6c  oke the .    cal
4440: 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 0a 20  lback function. 
4450: 20 20 20 6f 6e 63 65 20 77 69 74 68 20 69 6e 66     once with inf
4460: 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74  ormation about t
4470: 68 61 74 20 63 6f 6c 75 6d 6e 2c 20 69 6e 63 6c  hat column, incl
4480: 75 64 69 6e 67 20 74 68 65 20 63 6f 6c 75 6d 6e  uding the column
4490: 20 6e 61 6d 65 2c 0a 20 20 20 20 61 6e 64 20 74   name,.    and t
44a0: 68 65 20 63 6f 6c 75 6d 6e 20 6e 75 6d 62 65 72  he column number
44b0: 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 61 20 6e  .</p></li>..<a n
44c0: 61 6d 65 3d 22 70 72 61 67 6d 61 5f 69 6e 64 65  ame="pragma_inde
44d0: 78 5f 6c 69 73 74 22 3e 3c 2f 61 3e 0a 3c 6c 69  x_list"></a>.<li
44e0: 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d 41 20 69 6e  ><p><b>PRAGMA in
44f0: 64 65 78 5f 6c 69 73 74 28 3c 2f 62 3e 3c 69 3e  dex_list(</b><i>
4500: 74 61 62 6c 65 2d 6e 61 6d 65 3c 2f 69 3e 3c 62  table-name</i><b
4510: 3e 29 3b 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20  >);</b></p>.    
4520: 3c 70 3e 46 6f 72 20 65 61 63 68 20 69 6e 64 65  <p>For each inde
4530: 78 20 6f 6e 20 74 68 65 20 6e 61 6d 65 64 20 74  x on the named t
4540: 61 62 6c 65 2c 20 69 6e 76 6f 6b 65 20 74 68 65  able, invoke the
4550: 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69   callback functi
4560: 6f 6e 0a 20 20 20 20 6f 6e 63 65 20 77 69 74 68  on.    once with
4570: 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f   information abo
4580: 75 74 20 74 68 61 74 20 69 6e 64 65 78 2e 20 20  ut that index.  
4590: 41 72 67 75 6d 65 6e 74 73 20 69 6e 63 6c 75 64  Arguments includ
45a0: 65 20 74 68 65 0a 20 20 20 20 69 6e 64 65 78 20  e the.    index 
45b0: 6e 61 6d 65 20 61 6e 64 20 61 20 66 6c 61 67 20  name and a flag 
45c0: 74 6f 20 69 6e 64 69 63 61 74 65 20 77 68 65 74  to indicate whet
45d0: 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 65 20 69  her or not the i
45e0: 6e 64 65 78 20 6d 75 73 74 20 62 65 0a 20 20 20  ndex must be.   
45f0: 20 75 6e 69 71 75 65 2e 3c 2f 70 3e 3c 2f 6c 69   unique.</p></li
4600: 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67  >..<a name="prag
4610: 6d 61 5f 74 61 62 6c 65 5f 69 6e 66 6f 22 3e 3c  ma_table_info"><
4620: 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52  /a>.<li><p><b>PR
4630: 41 47 4d 41 20 74 61 62 6c 65 5f 69 6e 66 6f 28  AGMA table_info(
4640: 3c 2f 62 3e 3c 69 3e 74 61 62 6c 65 2d 6e 61 6d  </b><i>table-nam
4650: 65 3c 2f 69 3e 3c 62 3e 29 3b 3c 2f 62 3e 3c 2f  e</i><b>);</b></
4660: 70 3e 0a 20 20 20 20 3c 70 3e 46 6f 72 20 65 61  p>.    <p>For ea
4670: 63 68 20 63 6f 6c 75 6d 6e 20 69 6e 20 74 68 65  ch column in the
4680: 20 6e 61 6d 65 64 20 74 61 62 6c 65 2c 20 69 6e   named table, in
4690: 76 6f 6b 65 20 74 68 65 20 63 61 6c 6c 62 61 63  voke the callbac
46a0: 6b 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 6f  k function.    o
46b0: 6e 63 65 20 77 69 74 68 20 69 6e 66 6f 72 6d 61  nce with informa
46c0: 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 61 74 20  tion about that 
46d0: 63 6f 6c 75 6d 6e 2c 20 69 6e 63 6c 75 64 69 6e  column, includin
46e0: 67 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6e 61 6d  g the column nam
46f0: 65 2c 0a 20 20 20 20 64 61 74 61 20 74 79 70 65  e,.    data type
4700: 2c 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74  , whether or not
4710: 20 74 68 65 20 63 6f 6c 75 6d 6e 20 63 61 6e 20   the column can 
4720: 62 65 20 4e 55 4c 4c 2c 20 61 6e 64 20 74 68 65  be NULL, and the
4730: 20 64 65 66 61 75 6c 74 0a 20 20 20 20 76 61 6c   default.    val
4740: 75 65 20 66 6f 72 20 74 68 65 20 63 6f 6c 75 6d  ue for the colum
4750: 6e 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c  n.</p></li>.</ul
4760: 3e 0a 7d 0a 0a 53 65 63 74 69 6f 6e 20 7b 50 72  >.}..Section {Pr
4770: 61 67 6d 61 73 20 74 6f 20 71 75 65 72 79 2f 6d  agmas to query/m
4780: 6f 64 69 66 79 20 76 65 72 73 69 6f 6e 20 76 61  odify version va
4790: 6c 75 65 73 7d 20 76 65 72 73 69 6f 6e 0a 0a 70  lues} version..p
47a0: 75 74 73 20 7b 0a 0a 3c 75 6c 3e 0a 3c 61 20 6e  uts {..<ul>.<a n
47b0: 61 6d 65 3d 22 70 72 61 67 6d 61 5f 73 63 68 65  ame="pragma_sche
47c0: 6d 61 5f 76 65 72 73 69 6f 6e 22 3e 3c 2f 61 3e  ma_version"></a>
47d0: 0a 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61  .<a name="pragma
47e0: 5f 75 73 65 72 5f 76 65 72 73 69 6f 6e 22 3e 3c  _user_version"><
47f0: 2f 61 3e 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52  /a>.<li><p><b>PR
4800: 41 47 4d 41 20 5b 64 61 74 61 62 61 73 65 2e 5d  AGMA [database.]
4810: 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 3b 20  schema_version; 
4820: 0a 20 20 20 20 20 20 20 3c 62 72 3e 50 52 41 47  .       <br>PRAG
4830: 4d 41 20 5b 64 61 74 61 62 61 73 65 2e 5d 73 63  MA [database.]sc
4840: 68 65 6d 61 5f 76 65 72 73 69 6f 6e 20 3d 20 3c  hema_version = <
4850: 2f 62 3e 3c 69 3e 69 6e 74 65 67 65 72 20 3c 2f  /b><i>integer </
4860: 69 3e 3c 62 3e 3b 0a 20 20 20 20 20 20 20 3c 62  i><b>;.       <b
4870: 72 3e 50 52 41 47 4d 41 20 5b 64 61 74 61 62 61  r>PRAGMA [databa
4880: 73 65 2e 5d 75 73 65 72 5f 76 65 72 73 69 6f 6e  se.]user_version
4890: 3b 0a 20 20 20 20 20 20 20 3c 62 72 3e 50 52 41  ;.       <br>PRA
48a0: 47 4d 41 20 5b 64 61 74 61 62 61 73 65 2e 5d 75  GMA [database.]u
48b0: 73 65 72 5f 76 65 72 73 69 6f 6e 20 3d 20 3c 2f  ser_version = </
48c0: 62 3e 3c 69 3e 69 6e 74 65 67 65 72 20 3c 2f 69  b><i>integer </i
48d0: 3e 3c 62 3e 3b 3c 2f 62 3e 0a 0a 20 20 0a 3c 70  ><b>;</b>..  .<p
48e0: 3e 20 20 20 20 54 68 65 20 70 72 61 67 6d 61 73  >    The pragmas
48f0: 20 73 63 68 65 6d 61 5f 76 65 72 73 69 6f 6e 20   schema_version 
4900: 61 6e 64 20 75 73 65 72 5f 76 65 72 73 69 6f 6e  and user_version
4910: 20 61 72 65 20 75 73 65 64 20 74 6f 20 73 65 74   are used to set
4920: 20 6f 72 20 67 65 74 0a 20 20 20 20 20 20 20 74   or get.       t
4930: 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20  he value of the 
4940: 73 63 68 65 6d 61 2d 76 65 72 73 69 6f 6e 20 61  schema-version a
4950: 6e 64 20 75 73 65 72 2d 76 65 72 73 69 6f 6e 2c  nd user-version,
4960: 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 42   respectively. B
4970: 6f 74 68 0a 20 20 20 20 20 20 20 74 68 65 20 73  oth.       the s
4980: 63 68 65 6d 61 2d 76 65 72 73 69 6f 6e 20 61 6e  chema-version an
4990: 64 20 74 68 65 20 75 73 65 72 2d 76 65 72 73 69  d the user-versi
49a0: 6f 6e 20 61 72 65 20 33 32 2d 62 69 74 20 73 69  on are 32-bit si
49b0: 67 6e 65 64 20 69 6e 74 65 67 65 72 73 0a 20 20  gned integers.  
49c0: 20 20 20 20 20 73 74 6f 72 65 64 20 69 6e 20 74       stored in t
49d0: 68 65 20 64 61 74 61 62 61 73 65 20 68 65 61 64  he database head
49e0: 65 72 2e 3c 2f 70 3e 0a 20 20 0a 3c 70 3e 20 20  er.</p>.  .<p>  
49f0: 20 20 54 68 65 20 73 63 68 65 6d 61 2d 76 65 72    The schema-ver
4a00: 73 69 6f 6e 20 69 73 20 75 73 75 61 6c 6c 79 20  sion is usually 
4a10: 6f 6e 6c 79 20 6d 61 6e 69 70 75 6c 61 74 65 64  only manipulated
4a20: 20 69 6e 74 65 72 6e 61 6c 6c 79 20 62 79 20 53   internally by S
4a30: 51 4c 69 74 65 2e 20 20 0a 20 20 20 20 20 20 20  QLite.  .       
4a40: 49 74 20 69 73 20 69 6e 63 72 65 6d 65 6e 74 65  It is incremente
4a50: 64 20 62 79 20 53 51 4c 69 74 65 20 77 68 65 6e  d by SQLite when
4a60: 65 76 65 72 20 74 68 65 20 64 61 74 61 62 61 73  ever the databas
4a70: 65 20 73 63 68 65 6d 61 20 69 73 20 6d 6f 64 69  e schema is modi
4a80: 66 69 65 64 20 0a 20 20 20 20 20 20 20 28 62 79  fied .       (by
4a90: 20 63 72 65 61 74 69 6e 67 20 6f 72 20 64 72 6f   creating or dro
4aa0: 70 70 69 6e 67 20 61 20 74 61 62 6c 65 20 6f 72  pping a table or
4ab0: 20 69 6e 64 65 78 29 2e 20 54 68 65 20 73 63 68   index). The sch
4ac0: 65 6d 61 20 76 65 72 73 69 6f 6e 20 69 73 20 0a  ema version is .
4ad0: 20 20 20 20 20 20 20 75 73 65 64 20 62 79 20 53         used by S
4ae0: 51 4c 69 74 65 20 65 61 63 68 20 74 69 6d 65 20  QLite each time 
4af0: 61 20 71 75 65 72 79 20 69 73 20 65 78 65 63 75  a query is execu
4b00: 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68  ted to ensure th
4b10: 61 74 20 74 68 65 20 0a 20 20 20 20 20 20 20 69  at the .       i
4b20: 6e 74 65 72 6e 61 6c 20 63 61 63 68 65 20 6f 66  nternal cache of
4b30: 20 74 68 65 20 73 63 68 65 6d 61 20 75 73 65 64   the schema used
4b40: 20 77 68 65 6e 20 63 6f 6d 70 69 6c 69 6e 67 20   when compiling 
4b50: 74 68 65 20 53 51 4c 20 71 75 65 72 79 20 6d 61  the SQL query ma
4b60: 74 63 68 65 73 20 0a 20 20 20 20 20 20 20 74 68  tches .       th
4b70: 65 20 73 63 68 65 6d 61 20 6f 66 20 74 68 65 20  e schema of the 
4b80: 64 61 74 61 62 61 73 65 20 61 67 61 69 6e 73 74  database against
4b90: 20 77 68 69 63 68 20 74 68 65 20 63 6f 6d 70 69   which the compi
4ba0: 6c 65 64 20 71 75 65 72 79 20 69 73 20 61 63 74  led query is act
4bb0: 75 61 6c 6c 79 20 0a 20 20 20 20 20 20 20 65 78  ually .       ex
4bc0: 65 63 75 74 65 64 2e 20 20 53 75 62 76 65 72 74  ecuted.  Subvert
4bd0: 69 6e 67 20 74 68 69 73 20 6d 65 63 68 61 6e 69  ing this mechani
4be0: 73 6d 20 62 79 20 75 73 69 6e 67 20 22 50 52 41  sm by using "PRA
4bf0: 47 4d 41 20 73 63 68 65 6d 61 5f 76 65 72 73 69  GMA schema_versi
4c00: 6f 6e 22 20 0a 20 20 20 20 20 20 20 74 6f 20 6d  on" .       to m
4c10: 6f 64 69 66 79 20 74 68 65 20 73 63 68 65 6d 61  odify the schema
4c20: 2d 76 65 72 73 69 6f 6e 20 69 73 20 70 6f 74 65  -version is pote
4c30: 6e 74 69 61 6c 6c 79 20 64 61 6e 67 65 72 6f 75  ntially dangerou
4c40: 73 20 61 6e 64 20 6d 61 79 20 6c 65 61 64 20 0a  s and may lead .
4c50: 20 20 20 20 20 20 20 74 6f 20 70 72 6f 67 72 61         to progra
4c60: 6d 20 63 72 61 73 68 65 73 20 6f 72 20 64 61 74  m crashes or dat
4c70: 61 62 61 73 65 20 63 6f 72 72 75 70 74 69 6f 6e  abase corruption
4c80: 2e 20 55 73 65 20 77 69 74 68 20 63 61 75 74 69  . Use with cauti
4c90: 6f 6e 21 3c 2f 70 3e 0a 20 20 0a 3c 70 3e 20 20  on!</p>.  .<p>  
4ca0: 20 20 54 68 65 20 75 73 65 72 2d 76 65 72 73 69    The user-versi
4cb0: 6f 6e 20 69 73 20 6e 6f 74 20 75 73 65 64 20 69  on is not used i
4cc0: 6e 74 65 72 6e 61 6c 6c 79 20 62 79 20 53 51 4c  nternally by SQL
4cd0: 69 74 65 2e 20 49 74 20 6d 61 79 20 62 65 20 75  ite. It may be u
4ce0: 73 65 64 20 62 79 0a 20 20 20 20 20 20 20 61 70  sed by.       ap
4cf0: 70 6c 69 63 61 74 69 6f 6e 73 20 66 6f 72 20 61  plications for a
4d00: 6e 79 20 70 75 72 70 6f 73 65 2e 3c 2f 70 3e 0a  ny purpose.</p>.
4d10: 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 7d 0a 0a 53  </li>.</ul>.}..S
4d20: 65 63 74 69 6f 6e 20 7b 50 72 61 67 6d 61 73 20  ection {Pragmas 
4d30: 74 6f 20 64 65 62 75 67 20 74 68 65 20 6c 69 62  to debug the lib
4d40: 72 61 72 79 7d 20 64 65 62 75 67 0a 0a 70 75 74  rary} debug..put
4d50: 73 20 7b 0a 3c 75 6c 3e 0a 3c 61 20 6e 61 6d 65  s {.<ul>.<a name
4d60: 3d 22 70 72 61 67 6d 61 5f 69 6e 74 65 67 72 69  ="pragma_integri
4d70: 74 79 5f 63 68 65 63 6b 22 3e 3c 2f 61 3e 0a 3c  ty_check"></a>.<
4d80: 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d 41 20  li><p><b>PRAGMA 
4d90: 69 6e 74 65 67 72 69 74 79 5f 63 68 65 63 6b 3b  integrity_check;
4da0: 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e  </b></p>.    <p>
4db0: 54 68 65 20 63 6f 6d 6d 61 6e 64 20 64 6f 65 73  The command does
4dc0: 20 61 6e 20 69 6e 74 65 67 72 69 74 79 20 63 68   an integrity ch
4dd0: 65 63 6b 20 6f 66 20 74 68 65 20 65 6e 74 69 72  eck of the entir
4de0: 65 20 64 61 74 61 62 61 73 65 2e 20 20 49 74 0a  e database.  It.
4df0: 20 20 20 20 6c 6f 6f 6b 73 20 66 6f 72 20 6f 75      looks for ou
4e00: 74 2d 6f 66 2d 6f 72 64 65 72 20 72 65 63 6f 72  t-of-order recor
4e10: 64 73 2c 20 6d 69 73 73 69 6e 67 20 70 61 67 65  ds, missing page
4e20: 73 2c 20 6d 61 6c 66 6f 72 6d 65 64 20 72 65 63  s, malformed rec
4e30: 6f 72 64 73 2c 20 61 6e 64 0a 20 20 20 20 63 6f  ords, and.    co
4e40: 72 72 75 70 74 20 69 6e 64 69 63 65 73 2e 0a 20  rrupt indices.. 
4e50: 20 20 20 49 66 20 61 6e 79 20 70 72 6f 62 6c 65     If any proble
4e60: 6d 73 20 61 72 65 20 66 6f 75 6e 64 2c 20 74 68  ms are found, th
4e70: 65 6e 20 61 20 73 69 6e 67 6c 65 20 73 74 72 69  en a single stri
4e80: 6e 67 20 69 73 20 72 65 74 75 72 6e 65 64 20 77  ng is returned w
4e90: 68 69 63 68 20 69 73 0a 20 20 20 20 61 20 64 65  hich is.    a de
4ea0: 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 61 6c 6c  scription of all
4eb0: 20 70 72 6f 62 6c 65 6d 73 2e 20 20 49 66 20 65   problems.  If e
4ec0: 76 65 72 79 74 68 69 6e 67 20 69 73 20 69 6e 20  verything is in 
4ed0: 6f 72 64 65 72 2c 20 22 6f 6b 22 20 69 73 0a 20  order, "ok" is. 
4ee0: 20 20 20 72 65 74 75 72 6e 65 64 2e 3c 2f 70 3e     returned.</p>
4ef0: 3c 2f 6c 69 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22  </li>..<a name="
4f00: 70 72 61 67 6d 61 5f 70 61 72 73 65 72 5f 74 72  pragma_parser_tr
4f10: 61 63 65 22 3e 3c 2f 61 3e 0a 3c 6c 69 3e 3c 70  ace"></a>.<li><p
4f20: 3e 3c 62 3e 50 52 41 47 4d 41 20 70 61 72 73 65  ><b>PRAGMA parse
4f30: 72 5f 74 72 61 63 65 20 3d 20 4f 4e 3b 20 3c 2f  r_trace = ON; </
4f40: 62 3e 28 31 29 3c 62 3e 0a 20 20 20 20 3c 62 72  b>(1)<b>.    <br
4f50: 3e 50 52 41 47 4d 41 20 70 61 72 73 65 72 5f 74  >PRAGMA parser_t
4f60: 72 61 63 65 20 3d 20 4f 46 46 3b 3c 2f 62 3e 20  race = OFF;</b> 
4f70: 28 30 29 3c 2f 70 3e 0a 20 20 20 20 3c 70 3e 54  (0)</p>.    <p>T
4f80: 75 72 6e 20 74 72 61 63 69 6e 67 20 6f 66 20 74  urn tracing of t
4f90: 68 65 20 53 51 4c 20 70 61 72 73 65 72 20 69 6e  he SQL parser in
4fa0: 73 69 64 65 20 6f 66 20 74 68 65 0a 20 20 20 20  side of the.    
4fb0: 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 20 6f  SQLite library o
4fc0: 6e 20 61 6e 64 20 6f 66 66 2e 20 20 54 68 69 73  n and off.  This
4fd0: 20 69 73 20 75 73 65 64 20 66 6f 72 20 64 65 62   is used for deb
4fe0: 75 67 67 69 6e 67 2e 0a 20 20 20 20 54 68 69 73  ugging..    This
4ff0: 20 6f 6e 6c 79 20 77 6f 72 6b 73 20 69 66 20 74   only works if t
5000: 68 65 20 6c 69 62 72 61 72 79 20 69 73 20 63 6f  he library is co
5010: 6d 70 69 6c 65 64 20 77 69 74 68 6f 75 74 20 74  mpiled without t
5020: 68 65 20 4e 44 45 42 55 47 20 6d 61 63 72 6f 2e  he NDEBUG macro.
5030: 0a 20 20 20 20 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a  .    </p></li>..
5040: 3c 61 20 6e 61 6d 65 3d 22 70 72 61 67 6d 61 5f  <a name="pragma_
5050: 76 64 62 65 5f 74 72 61 63 65 22 3e 3c 2f 61 3e  vdbe_trace"></a>
5060: 0a 3c 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d  .<li><p><b>PRAGM
5070: 41 20 76 64 62 65 5f 74 72 61 63 65 20 3d 20 4f  A vdbe_trace = O
5080: 4e 3b 20 3c 2f 62 3e 28 31 29 3c 62 3e 0a 20 20  N; </b>(1)<b>.  
5090: 20 20 3c 62 72 3e 50 52 41 47 4d 41 20 76 64 62    <br>PRAGMA vdb
50a0: 65 5f 74 72 61 63 65 20 3d 20 4f 46 46 3b 3c 2f  e_trace = OFF;</
50b0: 62 3e 20 28 30 29 3c 2f 70 3e 0a 20 20 20 20 3c  b> (0)</p>.    <
50c0: 70 3e 54 75 72 6e 20 74 72 61 63 69 6e 67 20 6f  p>Turn tracing o
50d0: 66 20 74 68 65 20 76 69 72 74 75 61 6c 20 64 61  f the virtual da
50e0: 74 61 62 61 73 65 20 65 6e 67 69 6e 65 20 69 6e  tabase engine in
50f0: 73 69 64 65 20 6f 66 20 74 68 65 0a 20 20 20 20  side of the.    
5100: 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 20 6f  SQLite library o
5110: 6e 20 61 6e 64 20 6f 66 66 2e 20 20 54 68 69 73  n and off.  This
5120: 20 69 73 20 75 73 65 64 20 66 6f 72 20 64 65 62   is used for deb
5130: 75 67 67 69 6e 67 2e 20 20 53 65 65 20 74 68 65  ugging.  See the
5140: 20 0a 20 20 20 20 3c 61 20 68 72 65 66 3d 22 76   .    <a href="v
5150: 64 62 65 2e 68 74 6d 6c 23 74 72 61 63 65 22 3e  dbe.html#trace">
5160: 56 44 42 45 20 64 6f 63 75 6d 65 6e 74 61 74 69  VDBE documentati
5170: 6f 6e 3c 2f 61 3e 20 66 6f 72 20 6d 6f 72 65 20  on</a> for more 
5180: 0a 20 20 20 20 69 6e 66 6f 72 6d 61 74 69 6f 6e  .    information
5190: 2e 3c 2f 70 3e 3c 2f 6c 69 3e 0a 0a 3c 61 20 6e  .</p></li>..<a n
51a0: 61 6d 65 3d 22 70 72 61 67 6d 61 5f 76 64 62 65  ame="pragma_vdbe
51b0: 5f 6c 69 73 74 69 6e 67 22 3e 3c 2f 61 3e 0a 3c  _listing"></a>.<
51c0: 6c 69 3e 3c 70 3e 3c 62 3e 50 52 41 47 4d 41 20  li><p><b>PRAGMA 
51d0: 76 64 62 65 5f 6c 69 73 74 69 6e 67 20 3d 20 4f  vdbe_listing = O
51e0: 4e 3b 20 3c 2f 62 3e 28 31 29 3c 62 3e 0a 20 20  N; </b>(1)<b>.  
51f0: 20 20 3c 62 72 3e 50 52 41 47 4d 41 20 76 64 62    <br>PRAGMA vdb
5200: 65 5f 6c 69 73 74 69 6e 67 20 3d 20 4f 46 46 3b  e_listing = OFF;
5210: 3c 2f 62 3e 20 28 30 29 3c 2f 70 3e 0a 20 20 20  </b> (0)</p>.   
5220: 20 3c 70 3e 54 75 72 6e 20 6c 69 73 74 69 6e 67   <p>Turn listing
5230: 73 20 6f 66 20 76 69 72 74 75 61 6c 20 6d 61 63  s of virtual mac
5240: 68 69 6e 65 20 70 72 6f 67 72 61 6d 73 20 6f 6e  hine programs on
5250: 20 61 6e 64 20 6f 66 66 2e 0a 20 20 20 20 57 69   and off..    Wi
5260: 74 68 20 6c 69 73 74 69 6e 67 20 69 73 20 6f 6e  th listing is on
5270: 2c 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6e  , the entire con
5280: 74 65 6e 74 20 6f 66 20 61 20 70 72 6f 67 72 61  tent of a progra
5290: 6d 20 69 73 20 70 72 69 6e 74 65 64 0a 20 20 20  m is printed.   
52a0: 20 6a 75 73 74 20 70 72 69 6f 72 20 74 6f 20 62   just prior to b
52b0: 65 67 69 6e 6e 69 6e 67 20 65 78 65 63 75 74 69  eginning executi
52c0: 6f 6e 2e 20 20 54 68 69 73 20 69 73 20 6c 69 6b  on.  This is lik
52d0: 65 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a  e automatically.
52e0: 20 20 20 20 65 78 65 63 75 74 69 6e 67 20 61 6e      executing an
52f0: 20 45 58 50 4c 41 49 4e 20 70 72 69 6f 72 20 74   EXPLAIN prior t
5300: 6f 20 65 61 63 68 20 73 74 61 74 65 6d 65 6e 74  o each statement
5310: 2e 20 20 54 68 65 20 73 74 61 74 65 6d 65 6e 74  .  The statement
5320: 0a 20 20 20 20 65 78 65 63 75 74 65 73 20 6e 6f  .    executes no
5330: 72 6d 61 6c 6c 79 20 61 66 74 65 72 20 74 68 65  rmally after the
5340: 20 6c 69 73 74 69 6e 67 20 69 73 20 70 72 69 6e   listing is prin
5350: 74 65 64 2e 0a 20 20 20 20 54 68 69 73 20 69 73  ted..    This is
5360: 20 75 73 65 64 20 66 6f 72 20 64 65 62 75 67 67   used for debugg
5370: 69 6e 67 2e 20 20 53 65 65 20 74 68 65 20 0a 20  ing.  See the . 
5380: 20 20 20 3c 61 20 68 72 65 66 3d 22 76 64 62 65     <a href="vdbe
5390: 2e 68 74 6d 6c 23 74 72 61 63 65 22 3e 56 44 42  .html#trace">VDB
53a0: 45 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3c  E documentation<
53b0: 2f 61 3e 20 66 6f 72 20 6d 6f 72 65 20 0a 20 20  /a> for more .  
53c0: 20 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f    information.</
53d0: 70 3e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 7d  p></li>.</ul>..}
53e0: 0a                                               .