Documentation Source Text

Hex Artifact Content
Login

Artifact 87a6b422fbcd8ffb474b9a43b08eb344548caab0:


0000: 3c 74 69 74 6c 65 3e 43 6f 6d 70 69 6c 61 74 69  <title>Compilati
0010: 6f 6e 20 4f 70 74 69 6f 6e 73 20 46 6f 72 20 53  on Options For S
0020: 51 4c 69 74 65 3c 2f 74 69 74 6c 65 3e 0a 0a 3c  QLite</title>..<
0030: 68 31 3e 31 2e 30 20 43 6f 6d 70 69 6c 61 74 69  h1>1.0 Compilati
0040: 6f 6e 20 4f 70 74 69 6f 6e 73 20 46 6f 72 20 53  on Options For S
0050: 51 4c 69 74 65 3c 2f 68 31 3e 0a 0a 3c 70 3e 0a  QLite</h1>..<p>.
0060: 46 6f 72 20 6d 6f 73 74 20 70 75 72 70 6f 73 65  For most purpose
0070: 73 2c 20 53 51 4c 69 74 65 20 63 61 6e 20 62 65  s, SQLite can be
0080: 20 62 75 69 6c 74 20 6a 75 73 74 20 66 69 6e 65   built just fine
0090: 20 75 73 69 6e 67 20 74 68 65 20 64 65 66 61 75   using the defau
00a0: 6c 74 0a 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f  lt.compilation o
00b0: 70 74 69 6f 6e 73 2e 20 48 6f 77 65 76 65 72 2c  ptions. However,
00c0: 20 69 66 20 72 65 71 75 69 72 65 64 2c 20 74 68   if required, th
00d0: 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f  e compile-time o
00e0: 70 74 69 6f 6e 73 0a 64 6f 63 75 6d 65 6e 74 65  ptions.documente
00f0: 64 20 62 65 6c 6f 77 20 63 61 6e 20 62 65 20 75  d below can be u
0100: 73 65 64 20 74 6f 20 0a 3c 61 20 68 72 65 66 3d  sed to .<a href=
0110: 22 23 6f 6d 69 74 66 65 61 74 75 72 65 73 22 3e  "#omitfeatures">
0120: 6f 6d 69 74 20 53 51 4c 69 74 65 20 66 65 61 74  omit SQLite feat
0130: 75 72 65 73 3c 2f 61 3e 20 28 72 65 73 75 6c 74  ures</a> (result
0140: 69 6e 67 20 69 6e 0a 61 20 73 6d 61 6c 6c 65 72  ing in.a smaller
0150: 20 63 6f 6d 70 69 6c 65 64 20 6c 69 62 72 61 72   compiled librar
0160: 79 20 73 69 7a 65 29 20 6f 72 20 74 6f 20 63 68  y size) or to ch
0170: 61 6e 67 65 20 74 68 65 0a 3c 61 20 68 72 65 66  ange the.<a href
0180: 3d 22 23 64 65 66 61 75 6c 74 73 22 3e 64 65 66  ="#defaults">def
0190: 61 75 6c 74 20 76 61 6c 75 65 73 3c 2f 61 3e 20  ault values</a> 
01a0: 6f 66 20 73 6f 6d 65 20 70 61 72 61 6d 65 74 65  of some paramete
01b0: 72 73 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 45 76  rs..</p>..<p>.Ev
01c0: 65 72 79 20 65 66 66 6f 72 74 20 68 61 73 20 62  ery effort has b
01d0: 65 65 6e 20 6d 61 64 65 20 74 6f 20 65 6e 73 75  een made to ensu
01e0: 72 65 20 74 68 61 74 20 74 68 65 20 76 61 72 69  re that the vari
01f0: 6f 75 73 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 73  ous combinations
0200: 0a 6f 66 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20  .of compilation 
0210: 6f 70 74 69 6f 6e 73 20 77 6f 72 6b 20 68 61 72  options work har
0220: 6d 6f 6e 69 6f 75 73 6c 79 20 61 6e 64 20 70 72  moniously and pr
0230: 6f 64 75 63 65 20 61 20 77 6f 72 6b 69 6e 67 20  oduce a working 
0240: 6c 69 62 72 61 72 79 2e 0a 4e 65 76 65 72 74 68  library..Neverth
0250: 65 6c 65 73 73 2c 20 69 74 20 69 73 20 73 74 72  eless, it is str
0260: 6f 6e 67 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65  ongly recommende
0270: 64 20 74 68 61 74 20 74 68 65 20 53 51 4c 69 74  d that the SQLit
0280: 65 20 74 65 73 74 2d 73 75 69 74 65 0a 62 65 20  e test-suite.be 
0290: 65 78 65 63 75 74 65 64 20 74 6f 20 63 68 65 63  executed to chec
02a0: 6b 20 66 6f 72 20 65 72 72 6f 72 73 20 62 65 66  k for errors bef
02b0: 6f 72 65 20 75 73 69 6e 67 20 61 6e 20 53 51 4c  ore using an SQL
02c0: 69 74 65 20 6c 69 62 72 61 72 79 20 62 75 69 6c  ite library buil
02d0: 74 0a 77 69 74 68 20 6e 6f 6e 2d 73 74 61 6e 64  t.with non-stand
02e0: 61 72 64 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20  ard compilation 
02f0: 6f 70 74 69 6f 6e 73 2e 0a 3c 2f 70 3e 0a 3c 61  options..</p>.<a
0300: 20 6e 61 6d 65 3d 22 64 65 66 61 75 6c 74 73 22   name="defaults"
0310: 3e 3c 2f 61 3e 0a 3c 68 32 3e 31 2e 31 20 4f 70  ></a>.<h2>1.1 Op
0320: 74 69 6f 6e 73 20 54 6f 20 53 65 74 20 44 65 66  tions To Set Def
0330: 61 75 6c 74 20 50 61 72 61 6d 65 74 65 72 20 56  ault Parameter V
0340: 61 6c 75 65 73 3c 2f 68 32 3e 0a 0a 3c 74 63 6c  alues</h2>..<tcl
0350: 3e 0a 70 72 6f 63 20 43 4f 4d 50 49 4c 45 5f 4f  >.proc COMPILE_O
0360: 50 54 49 4f 4e 20 7b 6e 61 6d 65 20 74 65 78 74  PTION {name text
0370: 7d 20 7b 0a 20 20 69 66 20 7b 5b 72 65 67 65 78  } {.  if {[regex
0380: 70 20 7b 53 51 4c 49 54 45 5f 28 5b 41 2d 5a 30  p {SQLITE_([A-Z0
0390: 2d 39 5f 5d 2b 29 7d 20 24 6e 61 6d 65 20 61 6c  -9_]+)} $name al
03a0: 6c 20 6c 61 62 65 6c 5d 7d 20 7b 0a 20 20 20 20  l label]} {.    
03b0: 68 64 5f 66 72 61 67 6d 65 6e 74 20 5b 73 74 72  hd_fragment [str
03c0: 69 6e 67 20 74 6f 6c 6f 77 65 72 20 24 6c 61 62  ing tolower $lab
03d0: 65 6c 5d 0a 20 20 20 20 68 64 5f 6b 65 79 77 6f  el].    hd_keywo
03e0: 72 64 73 20 24 61 6c 6c 0a 20 20 7d 0a 20 20 68  rds $all.  }.  h
03f0: 64 5f 70 75 74 73 20 3c 70 3e 3c 62 3e 24 6e 61  d_puts <p><b>$na
0400: 6d 65 3c 2f 62 3e 3c 2f 70 3e 0a 20 20 72 65 67  me</b></p>.  reg
0410: 73 75 62 20 2d 61 6c 6c 20 22 5c 6e 5c 5c 73 2a  sub -all "\n\\s*
0420: 5c 6e 22 20 24 74 65 78 74 20 22 3c 2f 70 3e 5c  \n" $text "</p>\
0430: 6e 5c 6e 3c 70 3e 22 20 74 65 78 74 0a 20 20 68  n\n<p>" text.  h
0440: 64 5f 72 65 73 6f 6c 76 65 20 3c 62 6c 6f 63 6b  d_resolve <block
0450: 71 75 6f 74 65 3e 3c 70 3e 24 74 65 78 74 3c 2f  quote><p>$text</
0460: 70 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a  p></blockquote>.
0470: 7d 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f  }..COMPILE_OPTIO
0480: 4e 20 7b 53 51 4c 49 54 45 5f 44 45 46 41 55 4c  N {SQLITE_DEFAUL
0490: 54 5f 41 55 54 4f 56 41 43 55 55 4d 3d 3c 69 3e  T_AUTOVACUUM=<i>
04a0: 26 6c 74 3b 31 20 6f 72 20 30 26 67 74 3b 3c 2f  &lt;1 or 0&gt;</
04b0: 69 3e 7d 20 7b 0a 20 20 54 68 69 73 20 6d 61 63  i>} {.  This mac
04c0: 72 6f 20 64 65 74 65 72 6d 69 6e 65 73 20 69 66  ro determines if
04d0: 20 53 51 4c 69 74 65 20 63 72 65 61 74 65 73 20   SQLite creates 
04e0: 64 61 74 61 62 61 73 65 73 20 77 69 74 68 20 74  databases with t
04f0: 68 65 20 0a 20 20 5b 61 75 74 6f 5f 76 61 63 75  he .  [auto_vacu
0500: 75 6d 5d 20 66 6c 61 67 20 73 65 74 20 62 79 20  um] flag set by 
0510: 64 65 66 61 75 6c 74 2e 20 54 68 65 20 64 65 66  default. The def
0520: 61 75 6c 74 20 76 61 6c 75 65 20 69 73 20 30 20  ault value is 0 
0530: 0a 20 20 28 64 6f 20 6e 6f 74 20 63 72 65 61 74  .  (do not creat
0540: 65 20 61 75 74 6f 2d 76 61 63 75 75 6d 20 64 61  e auto-vacuum da
0550: 74 61 62 61 73 65 73 29 2e 20 49 6e 20 61 6e 79  tabases). In any
0560: 20 63 61 73 65 20 74 68 65 0a 20 20 63 6f 6d 70   case the.  comp
0570: 69 6c 65 2d 74 69 6d 65 20 64 65 66 61 75 6c 74  ile-time default
0580: 20 6d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64   may be overridd
0590: 65 6e 20 62 79 20 74 68 65 20 0a 20 20 5b 50 52  en by the .  [PR
05a0: 41 47 4d 41 20 61 75 74 6f 5f 76 61 63 75 75 6d  AGMA auto_vacuum
05b0: 5d 20 63 6f 6d 6d 61 6e 64 2e 0a 7d 0a 0a 43 4f  ] command..}..CO
05c0: 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51  MPILE_OPTION {SQ
05d0: 4c 49 54 45 5f 44 45 46 41 55 4c 54 5f 43 41 43  LITE_DEFAULT_CAC
05e0: 48 45 5f 53 49 5a 45 3d 3c 69 3e 26 6c 74 3b 70  HE_SIZE=<i>&lt;p
05f0: 61 67 65 73 26 67 74 3b 3c 2f 69 3e 7d 20 7b 0a  ages&gt;</i>} {.
0600: 20 20 54 68 69 73 20 6d 61 63 72 6f 20 73 65 74    This macro set
0610: 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 73 69  s the default si
0620: 7a 65 20 6f 66 20 74 68 65 20 70 61 67 65 2d 63  ze of the page-c
0630: 61 63 68 65 20 66 6f 72 20 65 61 63 68 20 61 74  ache for each at
0640: 74 61 63 68 65 64 0a 20 20 64 61 74 61 62 61 73  tached.  databas
0650: 65 2c 20 69 6e 20 70 61 67 65 73 2e 20 54 68 69  e, in pages. Thi
0660: 73 20 63 61 6e 20 62 65 20 6f 76 65 72 72 69 64  s can be overrid
0670: 64 65 6e 20 62 79 20 74 68 65 20 0a 20 20 5b 50  den by the .  [P
0680: 52 41 47 4d 41 20 63 61 63 68 65 5f 73 69 7a 65  RAGMA cache_size
0690: 5d 20 63 6f 6d 61 6d 6e 64 2e 20 54 68 65 20 64  ] comamnd. The d
06a0: 65 66 61 75 6c 74 20 76 61 6c 75 65 20 69 73 20  efault value is 
06b0: 32 30 30 30 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45  2000..}..COMPILE
06c0: 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f  _OPTION {SQLITE_
06d0: 44 45 46 41 55 4c 54 5f 46 49 4c 45 5f 46 4f 52  DEFAULT_FILE_FOR
06e0: 4d 41 54 3d 3c 69 3e 26 6c 74 3b 31 20 6f 72 20  MAT=<i>&lt;1 or 
06f0: 34 26 67 74 3b 3c 2f 69 3e 7d 20 7b 0a 20 20 54  4&gt;</i>} {.  T
0700: 68 65 20 64 65 66 61 75 6c 74 20 73 63 68 65 6d  he default schem
0710: 61 2d 6c 65 76 65 6c 20 66 69 6c 65 20 66 6f 72  a-level file for
0720: 6d 61 74 20 75 73 65 64 20 62 79 20 53 51 4c 69  mat used by SQLi
0730: 74 65 20 77 68 65 6e 20 63 72 65 61 74 69 6e 67  te when creating
0740: 0a 20 20 6e 65 77 20 64 61 74 61 62 61 73 65 20  .  new database 
0750: 66 69 6c 65 73 20 69 73 20 73 65 74 20 62 79 20  files is set by 
0760: 74 68 69 73 20 6d 61 63 72 6f 2e 20 20 54 68 65  this macro.  The
0770: 20 66 69 6c 65 20 66 6f 72 6d 61 74 73 20 61 72   file formats ar
0780: 65 20 61 6c 6c 0a 20 20 76 65 72 79 20 73 69 6d  e all.  very sim
0790: 69 6c 61 72 2e 20 20 54 68 65 20 64 69 66 66 65  ilar.  The diffe
07a0: 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 66 6f  rence between fo
07b0: 72 6d 61 74 73 20 31 20 61 6e 64 20 34 20 69 73  rmats 1 and 4 is
07c0: 20 74 68 61 74 20 66 6f 72 6d 61 74 0a 20 20 34   that format.  4
07d0: 20 75 6e 64 65 72 73 74 61 6e 64 73 20 64 65 73   understands des
07e0: 63 65 6e 64 69 6e 67 20 69 6e 64 69 63 65 73 20  cending indices 
07f0: 61 6e 64 20 68 61 73 20 61 20 74 69 67 68 74 65  and has a tighte
0800: 72 20 65 6e 63 6f 64 69 6e 67 20 66 6f 72 0a 20  r encoding for. 
0810: 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 73 2e   boolean values.
0820: 0a 0a 20 20 53 51 4c 69 74 65 20 28 61 73 20 6f  ..  SQLite (as o
0830: 66 20 5b 76 65 72 73 69 6f 6e 20 33 2e 36 2e 30  f [version 3.6.0
0840: 5d 29 20 63 61 6e 20 72 65 61 64 20 61 6e 64 20  ]) can read and 
0850: 77 72 69 74 65 20 61 6e 79 20 66 69 6c 65 20 66  write any file f
0860: 6f 72 6d 61 74 0a 20 20 62 65 74 77 65 65 6e 20  ormat.  between 
0870: 31 20 61 6e 64 20 34 2e 20 20 42 75 74 20 6f 6c  1 and 4.  But ol
0880: 64 65 72 20 76 65 72 73 69 6f 6e 73 20 6f 66 20  der versions of 
0890: 53 51 4c 69 74 65 20 6d 69 67 68 74 20 6e 6f 74  SQLite might not
08a0: 20 62 65 20 61 62 6c 65 20 74 6f 0a 20 20 72 65   be able to.  re
08b0: 61 64 20 66 6f 72 6d 61 74 73 20 67 72 65 61 74  ad formats great
08c0: 65 72 20 74 68 61 6e 20 31 2e 20 20 53 6f 20 74  er than 1.  So t
08d0: 68 61 74 20 6f 6c 64 65 72 20 76 65 72 73 69 6f  hat older versio
08e0: 6e 73 20 6f 66 20 53 51 4c 69 74 65 20 77 69 6c  ns of SQLite wil
08f0: 6c 0a 20 20 62 65 20 61 62 6c 65 20 74 6f 20 72  l.  be able to r
0900: 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 64 61  ead and write da
0910: 74 61 62 61 73 65 20 66 69 6c 65 73 20 63 72 65  tabase files cre
0920: 61 74 65 64 20 62 79 20 6e 65 77 65 72 20 76 65  ated by newer ve
0930: 72 73 69 6f 6e 73 0a 20 20 6f 66 20 53 51 4c 69  rsions.  of SQLi
0940: 74 65 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20  te, the default 
0950: 66 69 6c 65 20 66 6f 72 6d 61 74 20 69 73 20 73  file format is s
0960: 65 74 20 74 6f 20 31 20 66 6f 72 20 6d 61 78 69  et to 1 for maxi
0970: 6d 75 6d 0a 20 20 63 6f 6d 70 61 74 61 62 69 6c  mum.  compatabil
0980: 69 74 79 2e 0a 0a 20 20 54 68 65 20 66 69 6c 65  ity...  The file
0990: 20 66 6f 72 6d 61 74 20 66 6f 72 20 61 20 6e 65   format for a ne
09a0: 77 20 64 61 74 61 62 61 73 65 20 63 61 6e 20 62  w database can b
09b0: 65 20 73 65 74 20 61 74 20 72 75 6e 74 69 6d 65  e set at runtime
09c0: 20 75 73 69 6e 67 0a 20 20 74 68 65 20 5b 50 52   using.  the [PR
09d0: 41 47 4d 41 20 6c 65 67 61 63 79 5f 66 69 6c 65  AGMA legacy_file
09e0: 5f 66 6f 72 6d 61 74 5d 20 63 6f 6d 6d 61 6e 64  _format] command
09f0: 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54  ..}..COMPILE_OPT
0a00: 49 4f 4e 20 7b 53 51 4c 49 54 45 5f 44 45 46 41  ION {SQLITE_DEFA
0a10: 55 4c 54 5f 50 41 47 45 5f 53 49 5a 45 3d 3c 69  ULT_PAGE_SIZE=<i
0a20: 3e 26 6c 74 3b 62 79 74 65 73 26 67 74 3b 3c 2f  >&lt;bytes&gt;</
0a30: 69 3e 7d 20 7b 0a 20 20 54 68 69 73 20 6d 61 63  i>} {.  This mac
0a40: 72 6f 20 69 73 20 75 73 65 64 20 74 6f 20 73 65  ro is used to se
0a50: 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 61  t the default pa
0a60: 67 65 2d 73 69 7a 65 20 75 73 65 64 20 77 68 65  ge-size used whe
0a70: 6e 20 61 0a 20 20 64 61 74 61 62 61 73 65 20 69  n a.  database i
0a80: 73 20 63 72 65 61 74 65 64 2e 20 54 68 65 20 76  s created. The v
0a90: 61 6c 75 65 20 61 73 73 69 67 6e 65 64 20 6d 75  alue assigned mu
0aa0: 73 74 20 62 65 20 61 20 70 6f 77 65 72 20 6f 66  st be a power of
0ab0: 20 32 2e 20 54 68 65 0a 20 20 64 65 66 61 75 6c   2. The.  defaul
0ac0: 74 20 76 61 6c 75 65 20 69 73 20 31 30 32 34 2e  t value is 1024.
0ad0: 20 54 68 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d   The compile-tim
0ae0: 65 20 64 65 66 61 75 6c 74 20 6d 61 79 20 62 65  e default may be
0af0: 20 6f 76 65 72 72 69 64 64 65 6e 20 61 74 20 0a   overridden at .
0b00: 20 20 72 75 6e 74 69 6d 65 20 62 79 20 74 68 65    runtime by the
0b10: 20 5b 50 52 41 47 4d 41 20 70 61 67 65 5f 73 69   [PRAGMA page_si
0b20: 7a 65 5d 20 63 6f 6d 6d 61 6e 64 2e 0a 7d 0a 0a  ze] command..}..
0b30: 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b  COMPILE_OPTION {
0b40: 53 51 4c 49 54 45 5f 44 45 46 41 55 4c 54 5f 54  SQLITE_DEFAULT_T
0b50: 45 4d 50 5f 43 41 43 48 45 5f 53 49 5a 45 3d 3c  EMP_CACHE_SIZE=<
0b60: 69 3e 26 6c 74 3b 70 61 67 65 73 26 67 74 3b 3c  i>&lt;pages&gt;<
0b70: 2f 69 3e 7d 20 7b 0a 20 20 54 68 69 73 20 6d 61  /i>} {.  This ma
0b80: 63 72 6f 20 73 65 74 73 20 74 68 65 20 64 65 66  cro sets the def
0b90: 61 75 6c 74 20 73 69 7a 65 20 6f 66 20 74 68 65  ault size of the
0ba0: 20 70 61 67 65 2d 63 61 63 68 65 20 66 6f 72 20   page-cache for 
0bb0: 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 0a  temporary files.
0bc0: 20 20 63 72 65 61 74 65 64 20 62 79 20 53 51 4c    created by SQL
0bd0: 69 74 65 20 74 6f 20 73 74 6f 72 65 20 69 6e 74  ite to store int
0be0: 65 72 6d 65 64 69 61 74 65 20 72 65 73 75 6c 74  ermediate result
0bf0: 73 2c 20 69 6e 20 70 61 67 65 73 2e 20 49 74 20  s, in pages. It 
0c00: 64 6f 65 73 0a 20 20 6e 6f 74 20 61 66 66 65 63  does.  not affec
0c10: 74 20 74 68 65 20 70 61 67 65 2d 63 61 63 68 65  t the page-cache
0c20: 20 66 6f 72 20 74 68 65 20 74 65 6d 70 20 64 61   for the temp da
0c30: 74 61 62 61 73 65 2c 20 77 68 65 72 65 20 74 61  tabase, where ta
0c40: 62 6c 65 73 20 63 72 65 61 74 65 64 0a 20 20 75  bles created.  u
0c50: 73 69 6e 67 20 5b 43 52 45 41 54 45 20 54 41 42  sing [CREATE TAB
0c60: 4c 45 20 7c 20 43 52 45 41 54 45 20 54 45 4d 50  LE | CREATE TEMP
0c70: 20 54 41 42 4c 45 5d 20 61 72 65 20 73 74 6f 72   TABLE] are stor
0c80: 65 64 2e 20 54 68 65 20 64 65 66 61 75 6c 74 20  ed. The default 
0c90: 76 61 6c 75 65 0a 20 20 69 73 20 35 30 30 2e 0a  value.  is 500..
0ca0: 7d 0a 3c 2f 74 63 6c 3e 0a 0a 3c 68 32 3e 31 2e  }.</tcl>..<h2>1.
0cb0: 32 20 4f 70 74 69 6f 6e 73 20 54 6f 20 53 65 74  2 Options To Set
0cc0: 20 53 69 7a 65 20 4c 69 6d 69 74 73 3c 2f 68 32   Size Limits</h2
0cd0: 3e 0a 0a 3c 70 3e 54 68 65 72 65 20 61 72 65 20  >..<p>There are 
0ce0: 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70 74  compile-time opt
0cf0: 69 6f 6e 73 20 74 68 61 74 20 77 69 6c 6c 20 73  ions that will s
0d00: 65 74 20 75 70 70 65 72 20 62 6f 75 6e 64 73 0a  et upper bounds.
0d10: 6f 6e 20 74 68 65 20 73 69 7a 65 73 20 6f 66 20  on the sizes of 
0d20: 76 61 72 69 6f 75 73 20 73 74 72 75 63 74 75 72  various structur
0d30: 65 73 20 69 6e 20 53 51 4c 69 74 65 2e 20 20 54  es in SQLite.  T
0d40: 68 65 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a  he compile-time.
0d50: 6f 70 74 69 6f 6e 73 20 6e 6f 72 6d 61 6c 6c 79  options normally
0d60: 20 73 65 74 20 61 20 68 61 72 64 20 75 70 70 65   set a hard uppe
0d70: 72 20 62 6f 75 6e 64 20 77 68 69 63 68 20 63 61  r bound which ca
0d80: 6e 20 62 65 20 63 68 61 6e 67 65 64 0a 61 74 20  n be changed.at 
0d90: 72 75 6e 2d 74 69 6d 65 20 6f 6e 20 69 6e 64 69  run-time on indi
0da0: 76 69 64 75 61 6c 20 5b 64 61 74 61 62 61 73 65  vidual [database
0db0: 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 5d 20 75 73   connections] us
0dc0: 69 6e 67 20 74 68 65 0a 5b 73 71 6c 69 74 65 33  ing the.[sqlite3
0dd0: 5f 6c 69 6d 69 74 28 29 5d 20 69 6e 74 65 72 66  _limit()] interf
0de0: 61 63 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65  ace.</p>..<p>The
0df0: 20 63 6f 6d 70 69 6c 65 2d 74 69 6d 65 20 6f 70   compile-time op
0e00: 74 69 6f 6e 73 20 66 6f 72 20 73 65 74 74 69 6e  tions for settin
0e10: 67 20 75 70 70 65 72 20 62 6f 75 6e 64 73 20 61  g upper bounds a
0e20: 72 65 0a 5b 6c 69 6d 69 74 73 20 7c 20 64 6f 63  re.[limits | doc
0e30: 75 6d 65 6e 74 65 64 20 73 65 70 61 72 61 74 65  umented separate
0e40: 6c 79 5d 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77  ly].  The follow
0e50: 69 6e 67 20 69 73 20 61 20 6c 69 73 74 20 6f 66  ing is a list of
0e60: 0a 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 73  .the available s
0e70: 65 74 74 69 6e 67 73 3a 3c 2f 70 3e 0a 0a 3c 75  ettings:</p>..<u
0e80: 6c 3e 0a 3c 6c 69 3e 20 5b 53 51 4c 49 54 45 5f  l>.<li> [SQLITE_
0e90: 4d 41 58 5f 41 54 54 41 43 48 45 44 5d 20 20 3c  MAX_ATTACHED]  <
0ea0: 2f 6c 69 3e 0a 3c 6c 69 3e 20 5b 53 51 4c 49 54  /li>.<li> [SQLIT
0eb0: 45 5f 4d 41 58 5f 43 4f 4c 55 4d 4e 5d 20 20 3c  E_MAX_COLUMN]  <
0ec0: 2f 6c 69 3e 0a 3c 6c 69 3e 20 5b 53 51 4c 49 54  /li>.<li> [SQLIT
0ed0: 45 5f 4d 41 58 5f 43 4f 4d 50 4f 55 4e 44 5f 53  E_MAX_COMPOUND_S
0ee0: 45 4c 45 43 54 5d 20 20 3c 2f 6c 69 3e 0a 3c 6c  ELECT]  </li>.<l
0ef0: 69 3e 20 5b 53 51 4c 49 54 45 5f 4d 41 58 5f 45  i> [SQLITE_MAX_E
0f00: 58 50 52 5f 44 45 50 54 48 5d 20 20 3c 2f 6c 69  XPR_DEPTH]  </li
0f10: 3e 0a 3c 6c 69 3e 20 5b 53 51 4c 49 54 45 5f 4d  >.<li> [SQLITE_M
0f20: 41 58 5f 46 55 4e 43 54 49 4f 4e 5f 41 52 47 5d  AX_FUNCTION_ARG]
0f30: 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 20 5b 53 51    </li>.<li> [SQ
0f40: 4c 49 54 45 5f 4d 41 58 5f 4c 45 4e 47 54 48 5d  LITE_MAX_LENGTH]
0f50: 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 20 5b 53 51    </li>.<li> [SQ
0f60: 4c 49 54 45 5f 4d 41 58 5f 4c 49 4b 45 5f 50 41  LITE_MAX_LIKE_PA
0f70: 54 54 45 52 4e 5f 4c 45 4e 47 54 48 5d 20 20 3c  TTERN_LENGTH]  <
0f80: 2f 6c 69 3e 0a 3c 6c 69 3e 20 5b 53 51 4c 49 54  /li>.<li> [SQLIT
0f90: 45 5f 4d 41 58 5f 50 41 47 45 5f 43 4f 55 4e 54  E_MAX_PAGE_COUNT
0fa0: 5d 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e 20 5b 53  ]  </li>.<li> [S
0fb0: 51 4c 49 54 45 5f 4d 41 58 5f 50 41 47 45 5f 53  QLITE_MAX_PAGE_S
0fc0: 49 5a 45 5d 20 20 3c 2f 6c 69 3e 0a 3c 6c 69 3e  IZE]  </li>.<li>
0fd0: 20 5b 53 51 4c 49 54 45 5f 4d 41 58 5f 53 51 4c   [SQLITE_MAX_SQL
0fe0: 5f 4c 45 4e 47 54 48 5d 20 20 3c 2f 6c 69 3e 0a  _LENGTH]  </li>.
0ff0: 3c 6c 69 3e 20 5b 53 51 4c 49 54 45 5f 4d 41 58  <li> [SQLITE_MAX
1000: 5f 56 41 52 49 41 42 4c 45 5f 4e 55 4d 42 45 52  _VARIABLE_NUMBER
1010: 5d 20 20 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a  ]  </li>.</ul>..
1020: 3c 61 20 6e 61 6d 65 3d 22 63 6f 6e 74 72 6f 6c  <a name="control
1030: 66 65 61 74 75 72 65 73 22 3e 3c 2f 61 3e 0a 3c  features"></a>.<
1040: 68 32 3e 31 2e 33 20 4f 70 74 69 6f 6e 73 20 54  h2>1.3 Options T
1050: 6f 20 43 6f 6e 74 72 6f 6c 20 4f 70 65 72 61 74  o Control Operat
1060: 69 6e 67 20 43 68 61 72 61 63 74 65 72 69 73 74  ing Characterist
1070: 69 63 73 3c 2f 68 32 3e 0a 0a 3c 74 63 6c 3e 0a  ics</h2>..<tcl>.
1080: 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b  COMPILE_OPTION {
1090: 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53 41 46  SQLITE_THREADSAF
10a0: 45 3d 3c 69 3e 26 6c 74 3b 30 20 6f 72 20 31 26  E=<i>&lt;0 or 1&
10b0: 67 74 3b 3c 2f 69 3e 7d 20 7b 0a 20 20 54 68 69  gt;</i>} {.  Thi
10c0: 73 20 6f 70 74 69 6f 6e 20 63 6f 6e 74 72 6f 6c  s option control
10d0: 73 20 77 68 65 74 68 65 72 20 6f 72 20 6e 6f 74  s whether or not
10e0: 20 63 6f 64 65 20 69 73 20 69 6e 63 6c 75 64 65   code is include
10f0: 64 20 69 6e 20 53 51 4c 69 74 65 20 74 6f 0a 20  d in SQLite to. 
1100: 20 65 6e 61 62 6c 65 20 69 74 20 74 6f 20 6f 70   enable it to op
1110: 65 72 61 74 65 20 73 61 66 65 6c 79 20 69 6e 20  erate safely in 
1120: 61 20 6d 75 6c 74 69 74 68 72 65 61 64 65 64 20  a multithreaded 
1130: 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 20 20 54 68  environment.  Th
1140: 65 0a 20 20 64 65 66 61 75 6c 74 20 69 73 20 53  e.  default is S
1150: 51 4c 49 54 45 5f 54 48 52 45 41 44 53 41 46 45  QLITE_THREADSAFE
1160: 3d 31 20 77 68 69 63 68 20 69 73 20 73 61 66 65  =1 which is safe
1170: 20 66 6f 72 20 75 73 65 20 69 6e 20 61 20 6d 75   for use in a mu
1180: 6c 74 69 74 68 72 65 61 64 65 64 0a 20 20 65 6e  ltithreaded.  en
1190: 76 69 72 6f 6e 6d 65 6e 74 2e 20 20 57 68 65 6e  vironment.  When
11a0: 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 53   compiled with S
11b0: 51 4c 49 54 45 5f 54 48 52 45 41 44 53 41 46 45  QLITE_THREADSAFE
11c0: 3d 30 20 61 6c 6c 20 6d 75 74 65 78 69 6e 67 20  =0 all mutexing 
11d0: 63 6f 64 65 0a 20 20 69 73 20 6f 6d 69 74 74 65  code.  is omitte
11e0: 64 20 61 6e 64 20 69 74 20 69 73 20 75 6e 73 61  d and it is unsa
11f0: 66 65 20 74 6f 20 75 73 65 20 53 51 4c 69 74 65  fe to use SQLite
1200: 20 69 6e 20 61 20 6d 75 6c 74 69 74 68 72 65 61   in a multithrea
1210: 64 65 64 20 70 72 6f 67 72 61 6d 2e 0a 0a 20 20  ded program...  
1220: 54 68 65 20 76 61 6c 75 65 20 6f 66 20 53 51 4c  The value of SQL
1230: 49 54 45 5f 54 48 52 45 41 44 53 41 46 45 20 63  ITE_THREADSAFE c
1240: 61 6e 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64  an be determined
1250: 20 61 74 20 72 75 6e 2d 74 69 6d 65 0a 20 20 75   at run-time.  u
1260: 73 69 6e 67 20 74 68 65 20 5b 73 71 6c 69 74 65  sing the [sqlite
1270: 33 5f 74 68 72 65 61 64 73 61 66 65 28 29 5d 20  3_threadsafe()] 
1280: 69 6e 74 65 72 66 61 63 65 2e 0a 0a 20 20 57 68  interface...  Wh
1290: 65 6e 20 53 51 4c 69 74 65 20 68 61 73 20 62 65  en SQLite has be
12a0: 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68  en compiled with
12b0: 20 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53 41   SQLITE_THREADSA
12c0: 46 45 3d 31 20 74 68 65 6e 20 6d 75 74 65 78 69  FE=1 then mutexi
12d0: 6e 67 0a 20 20 63 61 6e 20 62 65 20 64 69 73 61  ng.  can be disa
12e0: 62 6c 65 64 20 61 74 20 72 75 6e 2d 74 69 6d 65  bled at run-time
12f0: 20 75 73 69 6e 67 20 74 68 65 20 5b 73 71 6c 69   using the [sqli
1300: 74 65 33 5f 63 6f 6e 66 69 67 28 29 5d 20 69 6e  te3_config()] in
1310: 74 65 72 66 61 63 65 20 74 6f 67 65 74 68 65 72  terface together
1320: 0a 20 20 77 69 74 68 20 74 68 65 20 5b 53 51 4c  .  with the [SQL
1330: 49 54 45 5f 43 4f 4e 46 49 47 5f 53 49 4e 47 4c  ITE_CONFIG_SINGL
1340: 45 54 48 52 45 41 44 5d 2c 20 5b 53 51 4c 49 54  ETHREAD], [SQLIT
1350: 45 5f 43 4f 4e 46 49 47 5f 4d 55 4c 54 49 54 48  E_CONFIG_MULTITH
1360: 52 45 41 44 5d 2c 20 61 6e 64 0a 20 20 5b 53 51  READ], and.  [SQ
1370: 4c 49 54 45 5f 43 4f 4e 46 49 47 5f 53 45 52 49  LITE_CONFIG_SERI
1380: 41 4c 49 5a 45 44 5d 20 76 65 72 62 73 2e 0a 7d  ALIZED] verbs..}
1390: 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e  ..COMPILE_OPTION
13a0: 20 7b 53 51 4c 49 54 45 5f 54 45 4d 50 5f 53 54   {SQLITE_TEMP_ST
13b0: 4f 52 45 3d 3c 69 3e 26 6c 74 3b 30 20 74 68 72  ORE=<i>&lt;0 thr
13c0: 6f 75 67 68 20 33 26 67 74 3b 3c 2f 69 3e 7d 20  ough 3&gt;</i>} 
13d0: 7b 0a 20 20 54 68 69 73 20 6f 70 74 69 6f 6e 20  {.  This option 
13e0: 63 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72  controls whether
13f0: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73   temporary files
1400: 20 61 72 65 20 73 74 6f 72 65 64 20 6f 6e 20 64   are stored on d
1410: 69 73 6b 20 6f 72 0a 20 20 69 6e 20 6d 65 6d 6f  isk or.  in memo
1420: 72 79 2e 20 20 54 68 65 20 6d 65 61 6e 69 6e 67  ry.  The meaning
1430: 73 20 66 6f 72 20 76 61 72 69 6f 75 73 20 73 65  s for various se
1440: 74 74 69 6e 67 73 20 6f 66 20 74 68 69 73 20 63  ttings of this c
1450: 6f 6d 70 69 6c 65 2d 74 69 6d 65 0a 20 20 6f 70  ompile-time.  op
1460: 74 69 6f 6e 20 61 72 65 20 61 73 20 66 6f 6c 6c  tion are as foll
1470: 6f 77 73 3a 0a 0a 20 20 3c 74 61 62 6c 65 20 63  ows:..  <table c
1480: 65 6c 6c 70 61 64 64 69 6e 67 3d 22 32 22 20 62  ellpadding="2" b
1490: 6f 72 64 65 72 3d 22 31 22 3e 0a 20 20 3c 74 72  order="1">.  <tr
14a0: 3e 3c 74 68 3e 53 51 4c 49 54 45 5f 54 45 4d 50  ><th>SQLITE_TEMP
14b0: 5f 53 54 4f 52 45 3c 2f 74 68 3e 3c 74 68 3e 4d  _STORE</th><th>M
14c0: 65 61 6e 69 6e 67 3c 2f 74 68 3e 3c 2f 74 72 3e  eaning</th></tr>
14d0: 0a 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e  .  <tr><td align
14e0: 3d 22 63 65 6e 74 65 72 22 3e 30 3c 2f 74 64 3e  ="center">0</td>
14f0: 3c 74 64 3e 41 6c 77 61 79 73 20 75 73 65 20 74  <td>Always use t
1500: 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 3c 2f  emporary files</
1510: 74 64 3e 3c 2f 74 72 3e 0a 20 20 3c 74 72 3e 3c  td></tr>.  <tr><
1520: 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72  td align="center
1530: 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 55 73 65 20  ">1</td><td>Use 
1540: 66 69 6c 65 73 20 62 79 20 64 65 66 61 75 6c 74  files by default
1550: 20 62 75 74 20 61 6c 6c 6f 77 20 74 68 65 0a 20   but allow the. 
1560: 20 5b 50 52 41 47 4d 41 20 74 65 6d 70 5f 73 74   [PRAGMA temp_st
1570: 6f 72 65 5d 20 63 6f 6d 6d 61 6e 64 20 74 6f 20  ore] command to 
1580: 6f 76 65 72 72 69 64 65 3c 2f 74 64 3e 3c 2f 74  override</td></t
1590: 72 3e 0a 20 20 3c 74 72 3e 3c 74 64 20 61 6c 69  r>.  <tr><td ali
15a0: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 32 3c 2f 74  gn="center">2</t
15b0: 64 3e 3c 74 64 3e 55 73 65 20 6d 65 6d 6f 72 79  d><td>Use memory
15c0: 20 62 79 20 64 65 66 61 75 6c 74 20 62 75 74 20   by default but 
15d0: 61 6c 6c 6f 77 20 74 68 65 0a 20 20 5b 50 52 41  allow the.  [PRA
15e0: 47 4d 41 20 74 65 6d 70 5f 73 74 6f 72 65 5d 20  GMA temp_store] 
15f0: 63 6f 6d 6d 61 6e 64 20 74 6f 20 6f 76 65 72 72  command to overr
1600: 69 64 65 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 20 20  ide</td></tr>.  
1610: 3c 74 72 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 63  <tr><td align="c
1620: 65 6e 74 65 72 22 3e 33 3c 2f 74 64 3e 3c 74 64  enter">3</td><td
1630: 3e 41 6c 77 61 79 73 20 75 73 65 20 6d 65 6d 6f  >Always use memo
1640: 72 79 3c 2f 74 64 3e 3c 2f 74 72 3e 0a 20 20 3c  ry</td></tr>.  <
1650: 2f 74 61 62 6c 65 3e 0a 0a 20 20 54 68 65 20 64  /table>..  The d
1660: 65 66 61 75 6c 74 20 73 65 74 74 69 6e 67 20 69  efault setting i
1670: 73 20 31 2e 20 20 0a 20 20 41 64 64 69 74 69 6f  s 1.  .  Additio
1680: 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  nal information 
1690: 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 20  can be found in 
16a0: 5b 74 65 6d 70 73 74 6f 72 65 20 7c 20 74 65 6d  [tempstore | tem
16b0: 70 66 69 6c 65 73 2e 68 74 6d 6c 5d 2e 0a 7d 0a  pfiles.html]..}.
16c0: 3c 2f 74 63 6c 3e 0a 0a 3c 61 20 6e 61 6d 65 3d  </tcl>..<a name=
16d0: 22 65 6e 61 62 6c 65 66 65 61 74 75 72 65 73 22  "enablefeatures"
16e0: 3e 3c 2f 61 3e 0a 3c 68 32 3e 31 2e 34 20 4f 70  ></a>.<h2>1.4 Op
16f0: 74 69 6f 6e 73 20 54 6f 20 45 6e 61 62 6c 65 20  tions To Enable 
1700: 46 65 61 74 75 72 65 73 20 4e 6f 72 6d 61 6c 6c  Features Normall
1710: 79 20 54 75 72 6e 65 64 20 4f 66 66 3c 2f 68 32  y Turned Off</h2
1720: 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 6f 6d 69 74  >..<a name="omit
1730: 66 65 61 74 75 72 65 73 22 3e 3c 2f 61 3e 0a 3c  features"></a>.<
1740: 68 32 3e 31 2e 35 20 4f 70 74 69 6f 6e 73 20 54  h2>1.5 Options T
1750: 6f 20 4f 6d 69 74 20 46 65 61 74 75 72 65 73 3c  o Omit Features<
1760: 2f 68 32 3e 0a 0a 3c 70 3e 54 68 65 20 66 6f 6c  /h2>..<p>The fol
1770: 6c 6f 77 69 6e 67 20 6f 70 74 69 6f 6e 73 20 61  lowing options a
1780: 72 65 20 75 73 65 64 20 74 6f 20 72 65 64 75 63  re used to reduc
1790: 65 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68  e the size of th
17a0: 65 20 63 6f 6d 70 69 6c 65 64 0a 6c 69 62 72 61  e compiled.libra
17b0: 72 79 20 62 79 20 6f 6d 69 74 69 6e 67 20 6f 70  ry by omiting op
17c0: 74 69 6f 6e 61 6c 20 66 65 61 74 75 72 65 73 2e  tional features.
17d0: 20 54 68 69 73 20 69 73 20 70 72 6f 62 61 62 6c   This is probabl
17e0: 79 20 6f 6e 6c 79 20 75 73 65 66 75 6c 0a 69 6e  y only useful.in
17f0: 20 65 6d 62 65 64 64 65 64 20 73 79 73 74 65 6d   embedded system
1800: 73 20 77 68 65 72 65 20 73 70 61 63 65 20 69 73  s where space is
1810: 20 65 73 70 65 63 69 61 6c 6c 79 20 74 69 67 68   especially tigh
1820: 74 2c 20 61 73 20 65 76 65 6e 20 77 69 74 68 20  t, as even with 
1830: 61 6c 6c 0a 66 65 61 74 75 72 65 73 20 69 6e 63  all.features inc
1840: 6c 75 64 65 64 20 74 68 65 20 53 51 4c 69 74 65  luded the SQLite
1850: 20 6c 69 62 72 61 72 79 20 69 73 20 72 65 6c 61   library is rela
1860: 74 69 76 65 6c 79 20 73 6d 61 6c 6c 2e 20 44 6f  tively small. Do
1870: 6e 27 74 20 66 6f 72 67 65 74 0a 74 6f 20 74 65  n't forget.to te
1880: 6c 6c 20 79 6f 75 72 20 63 6f 6d 70 69 6c 65 72  ll your compiler
1890: 20 74 6f 20 6f 70 74 69 6d 69 7a 65 20 66 6f 72   to optimize for
18a0: 20 62 69 6e 61 72 79 20 73 69 7a 65 21 20 28 74   binary size! (t
18b0: 68 65 20 2d 4f 73 20 6f 70 74 69 6f 6e 20 69 66  he -Os option if
18c0: 0a 75 73 69 6e 67 20 47 43 43 29 2e 3c 2f 70 3e  .using GCC).</p>
18d0: 0a 0a 3c 70 3e 54 68 65 20 6d 61 63 72 6f 73 20  ..<p>The macros 
18e0: 69 6e 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20  in this section 
18f0: 64 6f 20 6e 6f 74 20 72 65 71 75 69 72 65 20 76  do not require v
1900: 61 6c 75 65 73 2e 20 54 68 65 20 66 6f 6c 6c 6f  alues. The follo
1910: 77 69 6e 67 20 0a 63 6f 6d 70 69 6c 61 74 69 6f  wing .compilatio
1920: 6e 20 73 77 69 74 63 68 65 73 20 61 6c 6c 20 68  n switches all h
1930: 61 76 65 20 74 68 65 20 73 61 6d 65 20 65 66 66  ave the same eff
1940: 65 63 74 3a 3c 62 72 3e 0a 2d 44 53 51 4c 49 54  ect:<br>.-DSQLIT
1950: 45 5f 4f 4d 49 54 5f 41 4c 54 45 52 54 41 42 4c  E_OMIT_ALTERTABL
1960: 45 3c 62 72 3e 0a 2d 44 53 51 4c 49 54 45 5f 4f  E<br>.-DSQLITE_O
1970: 4d 49 54 5f 41 4c 54 45 52 54 41 42 4c 45 3d 31  MIT_ALTERTABLE=1
1980: 3c 62 72 3e 0a 2d 44 53 51 4c 49 54 45 5f 4f 4d  <br>.-DSQLITE_OM
1990: 49 54 5f 41 4c 54 45 52 54 41 42 4c 45 3d 30 0a  IT_ALTERTABLE=0.
19a0: 3c 2f 70 3e 0a 0a 3c 70 3e 49 66 20 61 6e 79 20  </p>..<p>If any 
19b0: 6f 66 20 74 68 65 73 65 20 6f 70 74 69 6f 6e 73  of these options
19c0: 20 61 72 65 20 64 65 66 69 6e 65 64 2c 20 74 68   are defined, th
19d0: 65 6e 20 74 68 65 20 73 61 6d 65 20 73 65 74 20  en the same set 
19e0: 6f 66 20 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 58  of SQLITE_OMIT_X
19f0: 58 58 0a 6f 70 74 69 6f 6e 73 20 6d 75 73 74 20  XX.options must 
1a00: 61 6c 73 6f 20 62 65 20 64 65 66 69 6e 65 64 20  also be defined 
1a10: 77 68 65 6e 20 75 73 69 6e 67 20 74 68 65 20 27  when using the '
1a20: 6c 65 6d 6f 6e 27 20 74 6f 6f 6c 20 74 6f 20 67  lemon' tool to g
1a30: 65 6e 65 72 61 74 65 20 61 20 70 61 72 73 65 2e  enerate a parse.
1a40: 63 0a 66 69 6c 65 2e 20 42 65 63 61 75 73 65 20  c.file. Because 
1a50: 6f 66 20 74 68 69 73 2c 20 74 68 65 73 65 20 6f  of this, these o
1a60: 70 74 69 6f 6e 73 20 6d 61 79 20 6f 6e 6c 79 20  ptions may only 
1a70: 75 73 65 64 20 77 68 65 6e 20 74 68 65 20 6c 69  used when the li
1a80: 62 72 61 72 79 20 69 73 20 62 75 69 6c 74 0a 66  brary is built.f
1a90: 72 6f 6d 20 73 6f 75 72 63 65 2c 20 6e 6f 74 20  rom source, not 
1aa0: 66 72 6f 6d 20 74 68 65 20 63 6f 6c 6c 65 63 74  from the collect
1ab0: 69 6f 6e 20 6f 66 20 70 72 65 2d 70 61 63 6b 61  ion of pre-packa
1ac0: 67 65 64 20 43 20 66 69 6c 65 73 20 70 72 6f 76  ged C files prov
1ad0: 69 64 65 64 20 66 6f 72 0a 6e 6f 6e 2d 55 4e 49  ided for.non-UNI
1ae0: 58 20 6c 69 6b 65 20 70 6c 61 74 66 6f 72 6d 73  X like platforms
1af0: 20 6f 6e 20 74 68 65 20 77 65 62 73 69 74 65 2e   on the website.
1b00: 0a 3c 2f 70 3e 0a 0a 3c 74 63 6c 3e 0a 43 4f 4d  .</p>..<tcl>.COM
1b10: 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c  PILE_OPTION {SQL
1b20: 49 54 45 5f 4f 4d 49 54 5f 41 4c 54 45 52 54 41  ITE_OMIT_ALTERTA
1b30: 42 4c 45 7d 20 7b 0a 20 20 57 68 65 6e 20 74 68  BLE} {.  When th
1b40: 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 64 65 66  is option is def
1b50: 69 6e 65 64 2c 20 74 68 65 20 0a 20 20 5b 41 4c  ined, the .  [AL
1b60: 54 45 52 20 54 41 42 4c 45 5d 20 63 6f 6d 6d 61  TER TABLE] comma
1b70: 6e 64 20 69 73 20 6e 6f 74 20 69 6e 63 6c 75 64  nd is not includ
1b80: 65 64 20 69 6e 20 74 68 65 20 0a 20 20 6c 69 62  ed in the .  lib
1b90: 72 61 72 79 2e 20 45 78 65 63 75 74 69 6e 67 20  rary. Executing 
1ba0: 61 6e 20 5b 41 4c 54 45 52 20 54 41 42 4c 45 5d  an [ALTER TABLE]
1bb0: 20 73 74 61 74 65 6d 65 6e 74 20 63 61 75 73 65   statement cause
1bc0: 73 20 61 20 70 61 72 73 65 20 65 72 72 6f 72 2e  s a parse error.
1bd0: 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49  .}..COMPILE_OPTI
1be0: 4f 4e 20 7b 53 51 4c 49 54 45 5f 4f 4d 49 54 5f  ON {SQLITE_OMIT_
1bf0: 41 55 54 48 4f 52 49 5a 41 54 49 4f 4e 7d 20 7b  AUTHORIZATION} {
1c00: 0a 20 20 44 65 66 69 6e 69 6e 67 20 74 68 69 73  .  Defining this
1c10: 20 6f 70 74 69 6f 6e 20 6f 6d 69 74 73 20 74 68   option omits th
1c20: 65 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20  e authorization 
1c30: 63 61 6c 6c 62 61 63 6b 20 66 65 61 74 75 72 65  callback feature
1c40: 20 66 72 6f 6d 20 74 68 65 0a 20 20 6c 69 62 72   from the.  libr
1c50: 61 72 79 2e 20 54 68 65 20 5b 73 71 6c 69 74 65  ary. The [sqlite
1c60: 33 5f 73 65 74 5f 61 75 74 68 6f 72 69 7a 65 72  3_set_authorizer
1c70: 28 29 5d 20 41 50 49 20 66 75 6e 63 74 69 6f 6e  ()] API function
1c80: 20 69 73 20 6e 6f 74 20 70 72 65 73 65 6e 74 0a   is not present.
1c90: 20 20 69 6e 20 74 68 65 20 6c 69 62 72 61 72 79    in the library
1ca0: 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54  ..}..COMPILE_OPT
1cb0: 49 4f 4e 20 7b 53 51 4c 49 54 45 5f 4f 4d 49 54  ION {SQLITE_OMIT
1cc0: 5f 41 55 54 4f 56 41 43 55 55 4d 7d 20 7b 0a 20  _AUTOVACUUM} {. 
1cd0: 20 49 66 20 74 68 69 73 20 6f 70 74 69 6f 6e 20   If this option 
1ce0: 69 73 20 64 65 66 69 6e 65 64 2c 20 74 68 65 20  is defined, the 
1cf0: 6c 69 62 72 61 72 79 20 63 61 6e 6e 6f 74 20 63  library cannot c
1d00: 72 65 61 74 65 20 6f 72 20 77 72 69 74 65 20 74  reate or write t
1d10: 6f 20 0a 20 20 64 61 74 61 62 61 73 65 73 20 74  o .  databases t
1d20: 68 61 74 20 73 75 70 70 6f 72 74 20 5b 61 75 74  hat support [aut
1d30: 6f 5f 76 61 63 75 75 6d 5d 2e 0a 20 20 45 78 65  o_vacuum]..  Exe
1d40: 63 75 74 69 6e 67 20 61 20 5b 50 52 41 47 4d 41  cuting a [PRAGMA
1d50: 20 61 75 74 6f 5f 76 61 63 75 75 6d 5d 20 73 74   auto_vacuum] st
1d60: 61 74 65 6d 65 6e 74 20 69 73 20 6e 6f 74 20 61  atement is not a
1d70: 6e 20 65 72 72 6f 72 0a 20 20 28 73 69 6e 63 65  n error.  (since
1d80: 20 75 6e 6b 6e 6f 77 6e 20 50 52 41 47 4d 41 73   unknown PRAGMAs
1d90: 20 61 72 65 20 73 69 6c 65 6e 74 6c 79 20 69 67   are silently ig
1da0: 6e 6f 72 65 64 29 2c 20 62 75 74 20 64 6f 65 73  nored), but does
1db0: 20 6e 6f 74 20 72 65 74 75 72 6e 20 61 20 76 61   not return a va
1dc0: 6c 75 65 0a 20 20 6f 72 20 6d 6f 64 69 66 79 20  lue.  or modify 
1dd0: 74 68 65 20 61 75 74 6f 2d 76 61 63 75 75 6d 20  the auto-vacuum 
1de0: 66 6c 61 67 20 69 6e 20 74 68 65 20 64 61 74 61  flag in the data
1df0: 62 61 73 65 20 66 69 6c 65 2e 20 49 66 20 61 20  base file. If a 
1e00: 64 61 74 61 62 61 73 65 20 74 68 61 74 0a 20 20  database that.  
1e10: 73 75 70 70 6f 72 74 73 20 61 75 74 6f 2d 76 61  supports auto-va
1e20: 63 75 75 6d 20 69 73 20 6f 70 65 6e 65 64 20 62  cuum is opened b
1e30: 79 20 61 20 6c 69 62 72 61 72 79 20 63 6f 6d 70  y a library comp
1e40: 69 6c 65 64 20 77 69 74 68 20 74 68 69 73 20 6f  iled with this o
1e50: 70 74 69 6f 6e 2c 20 69 74 0a 20 20 69 73 20 61  ption, it.  is a
1e60: 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6f 70 65  utomatically ope
1e70: 6e 65 64 20 69 6e 20 72 65 61 64 2d 6f 6e 6c 79  ned in read-only
1e80: 20 6d 6f 64 65 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c   mode..}..COMPIL
1e90: 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45  E_OPTION {SQLITE
1ea0: 5f 4f 4d 49 54 5f 41 55 54 4f 49 4e 43 52 45 4d  _OMIT_AUTOINCREM
1eb0: 45 4e 54 7d 20 7b 0a 20 20 54 68 69 73 20 6f 70  ENT} {.  This op
1ec0: 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20  tion is used to 
1ed0: 6f 6d 69 74 20 74 68 65 20 0a 20 20 5b 41 55 54  omit the .  [AUT
1ee0: 4f 49 4e 43 52 45 4d 45 4e 54 5d 20 66 75 6e 63  OINCREMENT] func
1ef0: 74 69 6f 6e 61 6c 69 74 79 2e 20 57 68 65 6e 20  tionality. When 
1f00: 74 68 69 73 20 0a 20 20 69 73 20 6d 61 63 72 6f  this .  is macro
1f10: 20 69 73 20 64 65 66 69 6e 65 64 2c 20 63 6f 6c   is defined, col
1f20: 75 6d 6e 73 20 64 65 63 6c 61 72 65 64 20 61 73  umns declared as
1f30: 20 0a 20 20 22 5b 49 4e 54 45 47 45 52 20 50 52   .  "[INTEGER PR
1f40: 49 4d 41 52 59 20 4b 45 59 5d 20 41 55 54 4f 49  IMARY KEY] AUTOI
1f50: 4e 43 52 45 4d 45 4e 54 22 0a 20 20 62 65 68 61  NCREMENT".  beha
1f60: 76 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77  ve in the same w
1f70: 61 79 20 61 73 20 63 6f 6c 75 6d 6e 73 20 64 65  ay as columns de
1f80: 63 6c 61 72 65 64 20 61 73 20 22 5b 49 4e 54 45  clared as "[INTE
1f90: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 5d  GER PRIMARY KEY]
1fa0: 22 20 77 68 65 6e 20 61 20 0a 20 20 4e 55 4c 4c  " when a .  NULL
1fb0: 20 69 73 20 69 6e 73 65 72 74 65 64 2e 20 54 68   is inserted. Th
1fc0: 65 20 73 71 6c 69 74 65 5f 73 65 71 75 65 6e 63  e sqlite_sequenc
1fd0: 65 20 73 79 73 74 65 6d 20 74 61 62 6c 65 20 69  e system table i
1fe0: 73 20 6e 65 69 74 68 65 72 20 63 72 65 61 74 65  s neither create
1ff0: 64 2c 20 6e 6f 72 0a 20 20 72 65 73 70 65 63 74  d, nor.  respect
2000: 65 64 20 69 66 20 69 74 20 61 6c 72 65 61 64 79  ed if it already
2010: 20 65 78 69 73 74 73 2e 0a 7d 0a 0a 43 4f 4d 50   exists..}..COMP
2020: 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49  ILE_OPTION {SQLI
2030: 54 45 5f 4f 4d 49 54 5f 42 4c 4f 42 5f 4c 49 54  TE_OMIT_BLOB_LIT
2040: 45 52 41 4c 7d 20 7b 0a 20 20 57 68 65 6e 20 74  ERAL} {.  When t
2050: 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 64 65  his option is de
2060: 66 69 6e 65 64 2c 20 69 74 20 69 73 20 6e 6f 74  fined, it is not
2070: 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 73 70 65   possible to spe
2080: 63 69 66 79 20 61 20 62 6c 6f 62 20 69 6e 0a 20  cify a blob in. 
2090: 20 61 6e 20 53 51 4c 20 73 74 61 74 65 6d 65 6e   an SQL statemen
20a0: 74 20 75 73 69 6e 67 20 74 68 65 20 58 27 41 42  t using the X'AB
20b0: 43 44 27 20 73 79 6e 74 61 78 2e 0a 7d 0a 0a 43  CD' syntax..}..C
20c0: 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53  OMPILE_OPTION {S
20d0: 51 4c 49 54 45 5f 4f 4d 49 54 5f 43 4f 4d 50 4c  QLITE_OMIT_COMPL
20e0: 45 54 45 7d 20 7b 0a 20 20 54 68 69 73 20 6f 70  ETE} {.  This op
20f0: 74 69 6f 6e 20 63 61 75 73 65 73 20 74 68 65 20  tion causes the 
2100: 5b 73 71 6c 69 74 65 33 5f 63 6f 6d 70 6c 65 74  [sqlite3_complet
2110: 65 28 29 5d 20 61 6e 64 20 5b 73 71 6c 69 74 65  e()] and [sqlite
2120: 33 5f 63 6f 6d 70 6c 65 74 65 31 36 28 29 5d 0a  3_complete16()].
2130: 20 20 69 6e 74 65 72 66 61 63 65 73 20 74 6f 20    interfaces to 
2140: 62 65 20 6f 6d 69 74 74 65 64 2e 0a 7d 0a 0a 43  be omitted..}..C
2150: 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53  OMPILE_OPTION {S
2160: 51 4c 49 54 45 5f 4f 4d 49 54 5f 43 4f 4d 50 4f  QLITE_OMIT_COMPO
2170: 55 4e 44 5f 53 45 4c 45 43 54 7d 20 7b 0a 20 20  UND_SELECT} {.  
2180: 54 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 75  This option is u
2190: 73 65 64 20 74 6f 20 6f 6d 69 74 20 74 68 65 20  sed to omit the 
21a0: 63 6f 6d 70 6f 75 6e 64 20 5b 53 45 4c 45 43 54  compound [SELECT
21b0: 5d 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e  ] functionality.
21c0: 20 0a 20 20 5b 53 45 4c 45 43 54 5d 20 73 74 61   .  [SELECT] sta
21d0: 74 65 6d 65 6e 74 73 20 74 68 61 74 20 75 73 65  tements that use
21e0: 20 74 68 65 20 0a 20 20 55 4e 49 4f 4e 2c 20 55   the .  UNION, U
21f0: 4e 49 4f 4e 20 41 4c 4c 2c 20 49 4e 54 45 52 53  NION ALL, INTERS
2200: 45 43 54 20 6f 72 20 45 58 43 45 50 54 20 63 6f  ECT or EXCEPT co
2210: 6d 70 6f 75 6e 64 20 53 45 4c 45 43 54 20 6f 70  mpound SELECT op
2220: 65 72 61 74 6f 72 73 20 77 69 6c 6c 20 0a 20 20  erators will .  
2230: 63 61 75 73 65 20 61 20 70 61 72 73 65 20 65 72  cause a parse er
2240: 72 6f 72 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f  ror..}..COMPILE_
2250: 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f 4f  OPTION {SQLITE_O
2260: 4d 49 54 5f 43 4f 4e 46 4c 49 43 54 5f 43 4c 41  MIT_CONFLICT_CLA
2270: 55 53 45 7d 20 7b 0a 20 20 49 6e 20 74 68 65 20  USE} {.  In the 
2280: 66 75 74 75 72 65 2c 20 74 68 69 73 20 6f 70 74  future, this opt
2290: 69 6f 6e 20 77 69 6c 6c 20 62 65 20 75 73 65 64  ion will be used
22a0: 20 74 6f 20 6f 6d 69 74 20 74 68 65 20 0a 20 20   to omit the .  
22b0: 5b 4f 4e 20 43 4f 4e 46 4c 49 43 54 5d 20 63 6c  [ON CONFLICT] cl
22c0: 61 75 73 65 20 66 72 6f 6d 20 74 68 65 20 6c 69  ause from the li
22d0: 62 72 61 72 79 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c  brary..}..COMPIL
22e0: 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45  E_OPTION {SQLITE
22f0: 5f 4f 4d 49 54 5f 44 41 54 45 54 49 4d 45 5f 46  _OMIT_DATETIME_F
2300: 55 4e 43 53 7d 20 7b 0a 20 20 49 66 20 74 68 69  UNCS} {.  If thi
2310: 73 20 6f 70 74 69 6f 6e 20 69 73 20 64 65 66 69  s option is defi
2320: 6e 65 64 2c 20 53 51 4c 69 74 65 27 73 20 62 75  ned, SQLite's bu
2330: 69 6c 74 2d 69 6e 20 64 61 74 65 20 61 6e 64 20  ilt-in date and 
2340: 74 69 6d 65 20 6d 61 6e 69 70 75 6c 61 74 69 6f  time manipulatio
2350: 6e 0a 20 20 66 75 6e 63 74 69 6f 6e 73 20 61 72  n.  functions ar
2360: 65 20 6f 6d 69 74 74 65 64 2e 20 53 70 65 63 69  e omitted. Speci
2370: 66 69 63 61 6c 6c 79 2c 20 74 68 65 20 53 51 4c  fically, the SQL
2380: 20 66 75 6e 63 74 69 6f 6e 73 20 6a 75 6c 69 61   functions julia
2390: 6e 64 61 79 28 29 2c 20 64 61 74 65 28 29 2c 0a  nday(), date(),.
23a0: 20 20 74 69 6d 65 28 29 2c 20 64 61 74 65 74 69    time(), dateti
23b0: 6d 65 28 29 20 61 6e 64 20 73 74 72 66 74 69 6d  me() and strftim
23c0: 65 28 29 20 61 72 65 20 6e 6f 74 20 61 76 61 69  e() are not avai
23d0: 6c 61 62 6c 65 2e 20 54 68 65 20 64 65 66 61 75  lable. The defau
23e0: 6c 74 20 63 6f 6c 75 6d 6e 0a 20 20 76 61 6c 75  lt column.  valu
23f0: 65 73 20 43 55 52 52 45 4e 54 5f 54 49 4d 45 2c  es CURRENT_TIME,
2400: 20 43 55 52 52 45 4e 54 5f 44 41 54 45 20 61 6e   CURRENT_DATE an
2410: 64 20 43 55 52 52 45 4e 54 5f 44 41 54 45 54 49  d CURRENT_DATETI
2420: 4d 45 20 61 72 65 20 73 74 69 6c 6c 20 61 76 61  ME are still ava
2430: 69 6c 61 62 6c 65 2e 0a 7d 0a 0a 43 4f 4d 50 49  ilable..}..COMPI
2440: 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54  LE_OPTION {SQLIT
2450: 45 5f 4f 4d 49 54 5f 45 58 50 4c 41 49 4e 7d 20  E_OMIT_EXPLAIN} 
2460: 7b 0a 20 20 44 65 66 69 6e 69 6e 67 20 74 68 69  {.  Defining thi
2470: 73 20 6f 70 74 69 6f 6e 20 63 61 75 73 65 73 20  s option causes 
2480: 74 68 65 20 5b 45 58 50 4c 41 49 4e 5d 20 63 6f  the [EXPLAIN] co
2490: 6d 6d 61 6e 64 20 74 6f 20 62 65 20 6f 6d 69 74  mmand to be omit
24a0: 74 65 64 20 66 72 6f 6d 20 74 68 65 0a 20 20 6c  ted from the.  l
24b0: 69 62 72 61 72 79 2e 20 41 74 74 65 6d 70 74 69  ibrary. Attempti
24c0: 6e 67 20 74 6f 20 65 78 65 63 75 74 65 20 61 6e  ng to execute an
24d0: 20 5b 45 58 50 4c 41 49 4e 5d 20 73 74 61 74 65   [EXPLAIN] state
24e0: 6d 65 6e 74 20 77 69 6c 6c 20 63 61 75 73 65 20  ment will cause 
24f0: 61 20 70 61 72 73 65 0a 20 20 65 72 72 6f 72 2e  a parse.  error.
2500: 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49  .}..COMPILE_OPTI
2510: 4f 4e 20 7b 53 51 4c 49 54 45 5f 4f 4d 49 54 5f  ON {SQLITE_OMIT_
2520: 46 4c 4f 41 54 49 4e 47 5f 50 4f 49 4e 54 7d 20  FLOATING_POINT} 
2530: 7b 0a 20 20 54 68 69 73 20 6f 70 74 69 6f 6e 20  {.  This option 
2540: 69 73 20 75 73 65 64 20 74 6f 20 6f 6d 69 74 20  is used to omit 
2550: 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 6e  floating-point n
2560: 75 6d 62 65 72 20 73 75 70 70 6f 72 74 20 66 72  umber support fr
2570: 6f 6d 20 74 68 65 20 53 51 4c 69 74 65 0a 20 20  om the SQLite.  
2580: 6c 69 62 72 61 72 79 2e 20 57 68 65 6e 20 73 70  library. When sp
2590: 65 63 69 66 69 65 64 2c 20 73 70 65 63 69 66 79  ecified, specify
25a0: 69 6e 67 20 61 20 66 6c 6f 61 74 69 6e 67 20 70  ing a floating p
25b0: 6f 69 6e 74 20 6e 75 6d 62 65 72 20 61 73 20 61  oint number as a
25c0: 20 6c 69 74 65 72 61 6c 20 0a 20 20 28 69 2e 65   literal .  (i.e
25d0: 2e 20 22 31 2e 30 31 22 29 20 72 65 73 75 6c 74  . "1.01") result
25e0: 73 20 69 6e 20 61 20 70 61 72 73 65 20 65 72 72  s in a parse err
25f0: 6f 72 2e 0a 0a 20 20 3c 70 3e 49 6e 20 74 68 65  or...  <p>In the
2600: 20 66 75 74 75 72 65 2c 20 74 68 69 73 20 6f 70   future, this op
2610: 74 69 6f 6e 20 6d 61 79 20 61 6c 73 6f 20 64 69  tion may also di
2620: 73 61 62 6c 65 20 6f 74 68 65 72 20 66 6c 6f 61  sable other floa
2630: 74 69 6e 67 20 70 6f 69 6e 74 20 0a 20 20 66 75  ting point .  fu
2640: 6e 63 74 69 6f 6e 61 6c 69 74 79 2c 20 66 6f 72  nctionality, for
2650: 20 65 78 61 6d 70 6c 65 20 74 68 65 20 5b 73 71   example the [sq
2660: 6c 69 74 65 33 5f 72 65 73 75 6c 74 5f 64 6f 75  lite3_result_dou
2670: 62 6c 65 28 29 5d 2c 20 0a 20 20 5b 73 71 6c 69  ble()], .  [sqli
2680: 74 65 33 5f 62 69 6e 64 5f 64 6f 75 62 6c 65 28  te3_bind_double(
2690: 29 5d 2c 20 5b 73 71 6c 69 74 65 33 5f 76 61 6c  )], [sqlite3_val
26a0: 75 65 5f 64 6f 75 62 6c 65 28 29 5d 20 61 6e 64  ue_double()] and
26b0: 0a 20 20 5b 73 71 6c 69 74 65 33 5f 63 6f 6c 75  .  [sqlite3_colu
26c0: 6d 6e 5f 64 6f 75 62 6c 65 28 29 5d 20 41 50 49  mn_double()] API
26d0: 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 20 20 3c 2f   functions..  </
26e0: 70 3e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50  p>.}..COMPILE_OP
26f0: 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f 4f 4d 49  TION {SQLITE_OMI
2700: 54 5f 46 4f 52 45 49 47 4e 5f 4b 45 59 7d 20 7b  T_FOREIGN_KEY} {
2710: 0a 20 20 49 66 20 74 68 69 73 20 6f 70 74 69 6f  .  If this optio
2720: 6e 20 69 73 20 64 65 66 69 6e 65 64 2c 20 46 4f  n is defined, FO
2730: 52 45 49 47 4e 20 4b 45 59 20 63 6c 61 75 73 65  REIGN KEY clause
2740: 73 20 69 6e 20 63 6f 6c 75 6d 6e 20 64 65 63 6c  s in column decl
2750: 61 72 61 74 69 6f 6e 73 20 61 72 65 0a 20 20 69  arations are.  i
2760: 67 6e 6f 72 65 64 2e 0a 7d 0a 0a 43 4f 4d 50 49  gnored..}..COMPI
2770: 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54  LE_OPTION {SQLIT
2780: 45 5f 4f 4d 49 54 5f 49 4e 54 45 47 52 49 54 59  E_OMIT_INTEGRITY
2790: 5f 43 48 45 43 4b 7d 20 7b 0a 20 20 54 68 69 73  _CHECK} {.  This
27a0: 20 6f 70 74 69 6f 6e 20 6d 61 79 20 62 65 20 75   option may be u
27b0: 73 65 64 20 74 6f 20 6f 6d 69 74 20 74 68 65 20  sed to omit the 
27c0: 0a 20 20 5b 69 6e 74 65 67 72 69 74 79 5f 63 68  .  [integrity_ch
27d0: 65 63 6b 5d 20 50 52 41 47 4d 41 2e 0a 7d 0a 0a  eck] PRAGMA..}..
27e0: 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b  COMPILE_OPTION {
27f0: 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 4d 45 4d 4f  SQLITE_OMIT_MEMO
2800: 52 59 44 42 7d 20 7b 0a 20 20 57 68 65 6e 20 74  RYDB} {.  When t
2810: 68 69 73 20 69 73 20 64 65 66 69 6e 65 64 2c 20  his is defined, 
2820: 74 68 65 20 6c 69 62 72 61 72 79 20 64 6f 65 73  the library does
2830: 20 6e 6f 74 20 72 65 73 70 65 63 74 20 74 68 65   not respect the
2840: 20 73 70 65 63 69 61 6c 20 64 61 74 61 62 61 73   special databas
2850: 65 0a 20 20 6e 61 6d 65 20 22 3a 6d 65 6d 6f 72  e.  name ":memor
2860: 79 3a 22 20 28 6e 6f 72 6d 61 6c 6c 79 20 75 73  y:" (normally us
2870: 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 6e 20  ed to create an 
2880: 69 6e 2d 6d 65 6d 6f 72 79 20 64 61 74 61 62 61  in-memory databa
2890: 73 65 29 2e 20 49 66 20 0a 20 20 22 3a 6d 65 6d  se). If .  ":mem
28a0: 6f 72 79 3a 22 20 69 73 20 70 61 73 73 65 64 20  ory:" is passed 
28b0: 74 6f 20 5b 73 71 6c 69 74 65 33 5f 6f 70 65 6e  to [sqlite3_open
28c0: 28 29 5d 2c 20 5b 73 71 6c 69 74 65 33 5f 6f 70  ()], [sqlite3_op
28d0: 65 6e 31 36 28 29 5d 2c 20 6f 72 0a 20 20 5b 73  en16()], or.  [s
28e0: 71 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32 28 29  qlite3_open_v2()
28f0: 5d 2c 20 61 20 66 69 6c 65 20 77 69 74 68 20 74  ], a file with t
2900: 68 69 73 20 6e 61 6d 65 20 77 69 6c 6c 20 62 65  his name will be
2910: 20 0a 20 20 6f 70 65 6e 65 64 20 6f 72 20 63 72   .  opened or cr
2920: 65 61 74 65 64 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c  eated..}..COMPIL
2930: 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45  E_OPTION {SQLITE
2940: 5f 4f 4d 49 54 5f 50 41 47 45 52 5f 50 52 41 47  _OMIT_PAGER_PRAG
2950: 4d 41 53 7d 20 7b 0a 20 20 44 65 66 69 6e 69 6e  MAS} {.  Definin
2960: 67 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6f 6d  g this option om
2970: 69 74 73 20 70 72 61 67 6d 61 73 20 72 65 6c 61  its pragmas rela
2980: 74 65 64 20 74 6f 20 74 68 65 20 70 61 67 65 72  ted to the pager
2990: 20 73 75 62 73 79 73 74 65 6d 20 66 72 6f 6d 20   subsystem from 
29a0: 0a 20 20 74 68 65 20 62 75 69 6c 64 2e 0a 7d 0a  .  the build..}.
29b0: 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e 20  .COMPILE_OPTION 
29c0: 7b 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 50 52 41  {SQLITE_OMIT_PRA
29d0: 47 4d 41 7d 20 7b 0a 20 20 54 68 69 73 20 6f 70  GMA} {.  This op
29e0: 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 6f 20  tion is used to 
29f0: 6f 6d 69 74 20 74 68 65 20 5b 50 52 41 47 4d 41  omit the [PRAGMA
2a00: 5d 20 63 6f 6d 6d 61 6e 64 0a 20 20 66 72 6f 6d  ] command.  from
2a10: 20 74 68 65 20 6c 69 62 72 61 72 79 2e 20 4e 6f   the library. No
2a20: 74 65 20 74 68 61 74 20 69 74 20 69 73 20 75 73  te that it is us
2a30: 65 66 75 6c 20 74 6f 20 64 65 66 69 6e 65 20 74  eful to define t
2a40: 68 65 20 6d 61 63 72 6f 73 20 74 68 61 74 20 6f  he macros that o
2a50: 6d 69 74 0a 20 20 73 70 65 63 69 66 69 63 20 70  mit.  specific p
2a60: 72 61 67 6d 61 73 20 69 6e 20 61 64 64 69 74 69  ragmas in additi
2a70: 6f 6e 20 74 6f 20 74 68 69 73 2c 20 61 73 20 74  on to this, as t
2a80: 68 65 79 20 6d 61 79 20 61 6c 73 6f 20 72 65 6d  hey may also rem
2a90: 6f 76 65 20 73 75 70 70 6f 72 74 69 6e 67 20 63  ove supporting c
2aa0: 6f 64 65 0a 20 20 69 6e 20 6f 74 68 65 72 20 73  ode.  in other s
2ab0: 75 62 2d 73 79 73 74 65 6d 73 2e 20 54 68 69 73  ub-systems. This
2ac0: 20 6d 61 63 72 6f 20 72 65 6d 6f 76 65 73 20 74   macro removes t
2ad0: 68 65 20 5b 50 52 41 47 4d 41 5d 20 63 6f 6d 6d  he [PRAGMA] comm
2ae0: 61 6e 64 20 6f 6e 6c 79 2e 0a 7d 0a 0a 43 4f 4d  and only..}..COM
2af0: 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c  PILE_OPTION {SQL
2b00: 49 54 45 5f 4f 4d 49 54 5f 50 52 4f 47 52 45 53  ITE_OMIT_PROGRES
2b10: 53 5f 43 41 4c 4c 42 41 43 4b 7d 20 7b 0a 20 20  S_CALLBACK} {.  
2b20: 54 68 69 73 20 6f 70 74 69 6f 6e 20 6d 61 79 20  This option may 
2b30: 62 65 20 64 65 66 69 6e 65 64 20 74 6f 20 6f 6d  be defined to om
2b40: 69 74 20 74 68 65 20 63 61 70 61 62 69 6c 69 74  it the capabilit
2b50: 79 20 74 6f 20 69 73 73 75 65 20 22 70 72 6f 67  y to issue "prog
2b60: 72 65 73 73 22 20 0a 20 20 63 61 6c 6c 62 61 63  ress" .  callbac
2b70: 6b 73 20 64 75 72 69 6e 67 20 6c 6f 6e 67 2d 72  ks during long-r
2b80: 75 6e 6e 69 6e 67 20 53 51 4c 20 73 74 61 74 65  unning SQL state
2b90: 6d 65 6e 74 73 2e 20 54 68 65 20 0a 20 20 5b 73  ments. The .  [s
2ba0: 71 6c 69 74 65 33 5f 70 72 6f 67 72 65 73 73 5f  qlite3_progress_
2bb0: 68 61 6e 64 6c 65 72 28 29 5d 0a 20 20 41 50 49  handler()].  API
2bc0: 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74   function is not
2bd0: 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20   present in the 
2be0: 6c 69 62 72 61 72 79 2e 0a 7d 0a 0a 43 4f 4d 50  library..}..COMP
2bf0: 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49  ILE_OPTION {SQLI
2c00: 54 45 5f 4f 4d 49 54 5f 52 45 49 4e 44 45 58 7d  TE_OMIT_REINDEX}
2c10: 20 7b 0a 20 20 57 68 65 6e 20 74 68 69 73 20 6f   {.  When this o
2c20: 70 74 69 6f 6e 20 69 73 20 64 65 66 69 6e 65 64  ption is defined
2c30: 2c 20 74 68 65 20 5b 52 45 49 4e 44 45 58 5d 0a  , the [REINDEX].
2c40: 20 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74    command is not
2c50: 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65   included in the
2c60: 20 6c 69 62 72 61 72 79 2e 0a 20 20 45 78 65 63   library..  Exec
2c70: 75 74 69 6e 67 20 61 20 5b 52 45 49 4e 44 45 58  uting a [REINDEX
2c80: 5d 20 73 74 61 74 65 6d 65 6e 74 20 63 61 75 73  ] statement caus
2c90: 65 73 20 0a 20 20 61 20 70 61 72 73 65 20 65 72  es .  a parse er
2ca0: 72 6f 72 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45 5f  ror..}..COMPILE_
2cb0: 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f 4f  OPTION {SQLITE_O
2cc0: 4d 49 54 5f 53 43 48 45 4d 41 5f 50 52 41 47 4d  MIT_SCHEMA_PRAGM
2cd0: 41 53 7d 20 7b 0a 20 20 44 65 66 69 6e 69 6e 67  AS} {.  Defining
2ce0: 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6f 6d 69   this option omi
2cf0: 74 73 20 70 72 61 67 6d 61 73 20 66 6f 72 20 71  ts pragmas for q
2d00: 75 65 72 79 69 6e 67 20 74 68 65 20 64 61 74 61  uerying the data
2d10: 62 61 73 65 20 73 63 68 65 6d 61 20 66 72 6f 6d  base schema from
2d20: 20 0a 20 20 74 68 65 20 62 75 69 6c 64 2e 0a 7d   .  the build..}
2d30: 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e  ..COMPILE_OPTION
2d40: 20 7b 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 53 43   {SQLITE_OMIT_SC
2d50: 48 45 4d 41 5f 56 45 52 53 49 4f 4e 5f 50 52 41  HEMA_VERSION_PRA
2d60: 47 4d 41 53 7d 20 7b 0a 20 20 44 65 66 69 6e 69  GMAS} {.  Defini
2d70: 6e 67 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6f  ng this option o
2d80: 6d 69 74 73 20 70 72 61 67 6d 61 73 20 66 6f 72  mits pragmas for
2d90: 20 71 75 65 72 79 69 6e 67 20 61 6e 64 20 6d 6f   querying and mo
2da0: 64 69 66 79 69 6e 67 20 74 68 65 20 0a 20 20 64  difying the .  d
2db0: 61 74 61 62 61 73 65 20 73 63 68 65 6d 61 20 76  atabase schema v
2dc0: 65 72 73 69 6f 6e 20 61 6e 64 20 75 73 65 72 20  ersion and user 
2dd0: 76 65 72 73 69 6f 6e 20 66 72 6f 6d 20 74 68 65  version from the
2de0: 20 62 75 69 6c 64 2e 20 53 70 65 63 69 66 69 63   build. Specific
2df0: 61 6c 6c 79 2c 20 74 68 65 20 0a 20 20 5b 73 63  ally, the .  [sc
2e00: 68 65 6d 61 5f 76 65 72 73 69 6f 6e 5d 20 61 6e  hema_version] an
2e10: 64 20 5b 75 73 65 72 5f 76 65 72 73 69 6f 6e 5d  d [user_version]
2e20: 20 50 52 41 47 4d 41 73 20 61 72 65 20 6f 6d 69   PRAGMAs are omi
2e30: 74 74 65 64 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45  tted..}..COMPILE
2e40: 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f  _OPTION {SQLITE_
2e50: 4f 4d 49 54 5f 53 55 42 51 55 45 52 59 7d 20 7b  OMIT_SUBQUERY} {
2e60: 0a 20 20 49 66 20 64 65 66 69 6e 65 64 2c 20 73  .  If defined, s
2e70: 75 70 70 6f 72 74 20 66 6f 72 20 73 75 62 2d 73  upport for sub-s
2e80: 65 6c 65 63 74 73 20 61 6e 64 20 74 68 65 20 49  elects and the I
2e90: 4e 28 29 20 6f 70 65 72 61 74 6f 72 20 61 72 65  N() operator are
2ea0: 20 6f 6d 69 74 74 65 64 2e 0a 7d 0a 0a 43 4f 4d   omitted..}..COM
2eb0: 50 49 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c  PILE_OPTION {SQL
2ec0: 49 54 45 5f 4f 4d 49 54 5f 54 43 4c 5f 56 41 52  ITE_OMIT_TCL_VAR
2ed0: 49 41 42 4c 45 7d 20 7b 0a 20 20 49 66 20 74 68  IABLE} {.  If th
2ee0: 69 73 20 6d 61 63 72 6f 20 69 73 20 64 65 66 69  is macro is defi
2ef0: 6e 65 64 2c 20 74 68 65 6e 20 74 68 65 20 73 70  ned, then the sp
2f00: 65 63 69 61 6c 20 22 24 3c 76 61 72 69 61 62 6c  ecial "$<variabl
2f10: 65 2d 6e 61 6d 65 3e 22 20 73 79 6e 74 61 78 0a  e-name>" syntax.
2f20: 20 20 75 73 65 64 20 74 6f 20 61 75 74 6f 6d 61    used to automa
2f30: 74 69 63 61 6c 6c 79 20 62 69 6e 64 20 53 51 4c  tically bind SQL
2f40: 20 76 61 72 69 61 62 6c 65 73 20 74 6f 20 54 43   variables to TC
2f50: 4c 20 76 61 72 69 61 62 6c 65 73 20 69 73 20 6f  L variables is o
2f60: 6d 69 74 74 65 64 2e 0a 7d 0a 0a 43 4f 4d 50 49  mitted..}..COMPI
2f70: 4c 45 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54  LE_OPTION {SQLIT
2f80: 45 5f 4f 4d 49 54 5f 54 52 49 47 47 45 52 7d 20  E_OMIT_TRIGGER} 
2f90: 7b 0a 20 20 44 65 66 69 6e 69 6e 67 20 74 68 69  {.  Defining thi
2fa0: 73 20 6f 70 74 69 6f 6e 20 6f 6d 69 74 73 20 73  s option omits s
2fb0: 75 70 70 6f 72 74 20 66 6f 72 20 56 49 45 57 20  upport for VIEW 
2fc0: 6f 62 6a 65 63 74 73 2e 20 4e 65 69 74 68 65 72  objects. Neither
2fd0: 20 74 68 65 20 0a 20 20 5b 43 52 45 41 54 45 20   the .  [CREATE 
2fe0: 54 52 49 47 47 45 52 5d 20 6f 72 20 5b 44 52 4f  TRIGGER] or [DRO
2ff0: 50 20 54 52 49 47 47 45 52 5d 0a 20 20 63 6f 6d  P TRIGGER].  com
3000: 6d 61 6e 64 73 20 61 72 65 20 61 76 61 69 6c 61  mands are availa
3010: 62 6c 65 20 69 6e 20 74 68 69 73 20 63 61 73 65  ble in this case
3020: 2c 20 61 6e 64 20 61 74 74 65 6d 70 74 69 6e 67  , and attempting
3030: 20 74 6f 20 65 78 65 63 75 74 65 0a 20 20 65 69   to execute.  ei
3040: 74 68 65 72 20 77 69 6c 6c 20 72 65 73 75 6c 74  ther will result
3050: 20 69 6e 20 61 20 70 61 72 73 65 20 65 72 72 6f   in a parse erro
3060: 72 2e 0a 0a 20 20 57 41 52 4e 49 4e 47 3a 20 49  r...  WARNING: I
3070: 66 20 74 68 69 73 20 6d 61 63 72 6f 20 69 73 20  f this macro is 
3080: 64 65 66 69 6e 65 64 2c 20 69 74 20 77 69 6c 6c  defined, it will
3090: 20 6e 6f 74 20 62 65 20 70 6f 73 73 69 62 6c 65   not be possible
30a0: 20 74 6f 20 6f 70 65 6e 20 61 20 64 61 74 61 62   to open a datab
30b0: 61 73 65 0a 20 20 66 6f 72 20 77 68 69 63 68 20  ase.  for which 
30c0: 74 68 65 20 73 63 68 65 6d 61 20 63 6f 6e 74 61  the schema conta
30d0: 69 6e 73 20 54 52 49 47 47 45 52 20 6f 62 6a 65  ins TRIGGER obje
30e0: 63 74 73 2e 20 0a 7d 0a 0a 43 4f 4d 50 49 4c 45  cts. .}..COMPILE
30f0: 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f  _OPTION {SQLITE_
3100: 4f 4d 49 54 5f 55 54 46 31 36 7d 20 7b 0a 20 20  OMIT_UTF16} {.  
3110: 54 68 69 73 20 6d 61 63 72 6f 20 69 73 20 75 73  This macro is us
3120: 65 64 20 74 6f 20 6f 6d 69 74 20 73 75 70 70 6f  ed to omit suppo
3130: 72 74 20 66 6f 72 20 55 54 46 31 36 20 74 65 78  rt for UTF16 tex
3140: 74 20 65 6e 63 6f 64 69 6e 67 2e 20 57 68 65 6e  t encoding. When
3150: 20 74 68 69 73 20 69 73 0a 20 20 64 65 66 69 6e   this is.  defin
3160: 65 64 20 61 6c 6c 20 41 50 49 20 66 75 6e 63 74  ed all API funct
3170: 69 6f 6e 73 20 74 68 61 74 20 72 65 74 75 72 6e  ions that return
3180: 20 6f 72 20 61 63 63 65 70 74 20 55 54 46 31 36   or accept UTF16
3190: 20 65 6e 63 6f 64 65 64 20 74 65 78 74 20 61 72   encoded text ar
31a0: 65 0a 20 20 75 6e 61 76 61 69 6c 61 62 6c 65 2e  e.  unavailable.
31b0: 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73   These functions
31c0: 20 63 61 6e 20 62 65 20 69 64 65 6e 74 69 66 69   can be identifi
31d0: 65 64 20 62 79 20 74 68 65 20 66 61 63 74 20 74  ed by the fact t
31e0: 68 61 74 20 74 68 65 79 20 65 6e 64 0a 20 20 77  hat they end.  w
31f0: 69 74 68 20 27 31 36 27 2c 20 66 6f 72 20 65 78  ith '16', for ex
3200: 61 6d 70 6c 65 20 5b 73 71 6c 69 74 65 33 5f 70  ample [sqlite3_p
3210: 72 65 70 61 72 65 31 36 28 29 5d 2c 20 5b 73 71  repare16()], [sq
3220: 6c 69 74 65 33 5f 63 6f 6c 75 6d 6e 5f 74 65 78  lite3_column_tex
3230: 74 31 36 28 29 5d 20 61 6e 64 0a 20 20 5b 73 71  t16()] and.  [sq
3240: 6c 69 74 65 33 5f 62 69 6e 64 5f 74 65 78 74 31  lite3_bind_text1
3250: 36 28 29 5d 2e 0a 7d 0a 0a 43 4f 4d 50 49 4c 45  6()]..}..COMPILE
3260: 5f 4f 50 54 49 4f 4e 20 7b 53 51 4c 49 54 45 5f  _OPTION {SQLITE_
3270: 4f 4d 49 54 5f 56 41 43 55 55 4d 7d 20 7b 0a 20  OMIT_VACUUM} {. 
3280: 20 57 68 65 6e 20 74 68 69 73 20 6f 70 74 69 6f   When this optio
3290: 6e 20 69 73 20 64 65 66 69 6e 65 64 2c 20 74 68  n is defined, th
32a0: 65 20 5b 56 41 43 55 55 4d 5d 0a 20 20 63 6f 6d  e [VACUUM].  com
32b0: 6d 61 6e 64 20 69 73 20 6e 6f 74 20 69 6e 63 6c  mand is not incl
32c0: 75 64 65 64 20 69 6e 20 74 68 65 20 6c 69 62 72  uded in the libr
32d0: 61 72 79 2e 0a 20 20 45 78 65 63 75 74 69 6e 67  ary..  Executing
32e0: 20 61 20 5b 56 41 43 55 55 4d 5d 20 73 74 61 74   a [VACUUM] stat
32f0: 65 6d 65 6e 74 20 63 61 75 73 65 73 20 0a 20 20  ement causes .  
3300: 61 20 70 61 72 73 65 20 65 72 72 6f 72 2e 0a 7d  a parse error..}
3310: 0a 0a 43 4f 4d 50 49 4c 45 5f 4f 50 54 49 4f 4e  ..COMPILE_OPTION
3320: 20 7b 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 56 49   {SQLITE_OMIT_VI
3330: 45 57 7d 20 7b 0a 20 20 44 65 66 69 6e 69 6e 67  EW} {.  Defining
3340: 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6f 6d 69   this option omi
3350: 74 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 56  ts support for V
3360: 49 45 57 20 6f 62 6a 65 63 74 73 2e 20 4e 65 69  IEW objects. Nei
3370: 74 68 65 72 20 74 68 65 20 0a 20 20 5b 43 52 45  ther the .  [CRE
3380: 41 54 45 20 56 49 45 57 5d 20 6e 6f 72 20 74 68  ATE VIEW] nor th
3390: 65 20 5b 44 52 4f 50 20 56 49 45 57 5d 0a 20 20  e [DROP VIEW].  
33a0: 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 61 76 61  commands are ava
33b0: 69 6c 61 62 6c 65 20 69 6e 20 74 68 69 73 20 63  ilable in this c
33c0: 61 73 65 2c 20 61 6e 64 0a 20 20 61 74 74 65 6d  ase, and.  attem
33d0: 70 74 69 6e 67 20 74 6f 20 65 78 65 63 75 74 65  pting to execute
33e0: 20 65 69 74 68 65 72 20 77 69 6c 6c 20 72 65 73   either will res
33f0: 75 6c 74 20 69 6e 20 61 20 70 61 72 73 65 20 65  ult in a parse e
3400: 72 72 6f 72 2e 0a 0a 20 20 57 41 52 4e 49 4e 47  rror...  WARNING
3410: 3a 20 49 66 20 74 68 69 73 20 6d 61 63 72 6f 20  : If this macro 
3420: 69 73 20 64 65 66 69 6e 65 64 2c 20 69 74 20 77  is defined, it w
3430: 69 6c 6c 20 6e 6f 74 20 62 65 20 70 6f 73 73 69  ill not be possi
3440: 62 6c 65 20 74 6f 20 6f 70 65 6e 20 61 20 64 61  ble to open a da
3450: 74 61 62 61 73 65 0a 20 20 66 6f 72 20 77 68 69  tabase.  for whi
3460: 63 68 20 74 68 65 20 73 63 68 65 6d 61 20 63 6f  ch the schema co
3470: 6e 74 61 69 6e 73 20 56 49 45 57 20 6f 62 6a 65  ntains VIEW obje
3480: 63 74 73 2e 20 0a 7d 0a 3c 2f 74 63 6c 3e 0a     cts. .}.</tcl>.