Documentation Source Text

Hex Artifact Content
Login

Artifact 10fda1f76faabd154186d31f7eb21a3ab63abf86:


0000: 3c 74 69 74 6c 65 3e 55 6e 69 66 6f 72 6d 20 52  <title>Uniform R
0010: 65 73 6f 75 72 63 65 20 49 64 65 6e 74 69 66 69  esource Identifi
0020: 65 72 73 3c 2f 74 69 74 6c 65 3e 0a 3c 74 63 6c  ers</title>.<tcl
0030: 3e 0a 68 64 5f 6b 65 79 77 6f 72 64 73 20 7b 55  >.hd_keywords {U
0040: 52 49 7d 20 7b 55 6e 69 66 6f 72 6d 20 52 65 73  RI} {Uniform Res
0050: 6f 75 72 63 65 20 49 64 65 6e 74 69 66 69 65 72  ource Identifier
0060: 7d 20 7b 55 52 49 20 66 69 6c 65 6e 61 6d 65 7d  } {URI filename}
0070: 20 7b 55 52 49 20 66 69 6c 65 6e 61 6d 65 73 7d   {URI filenames}
0080: 0a 3c 2f 74 63 6c 3e 0a 0a 3c 68 31 3e 31 2e 30  .</tcl>..<h1>1.0
0090: 20 55 52 49 20 46 69 6c 65 6e 61 6d 65 73 20 49   URI Filenames I
00a0: 6e 20 53 51 4c 69 74 65 3c 2f 68 31 3e 0a 0a 3c  n SQLite</h1>..<
00b0: 70 3e 0a 42 65 67 69 6e 6e 69 6e 67 20 77 69 74  p>.Beginning wit
00c0: 68 20 5b 76 65 72 73 69 6f 6e 20 33 2e 37 2e 37  h [version 3.7.7
00d0: 5d 2c 20 74 68 65 20 53 51 4c 69 74 65 20 64 61  ], the SQLite da
00e0: 74 61 62 61 73 65 20 66 69 6c 65 20 61 72 67 75  tabase file argu
00f0: 6d 65 6e 74 20 74 6f 20 74 68 65 0a 5b 73 71 6c  ment to the.[sql
0100: 69 74 65 33 5f 6f 70 65 6e 28 29 5d 2c 20 5b 73  ite3_open()], [s
0110: 71 6c 69 74 65 33 5f 6f 70 65 6e 31 36 28 29 5d  qlite3_open16()]
0120: 2c 20 61 6e 64 20 5b 73 71 6c 69 74 65 33 5f 6f  , and [sqlite3_o
0130: 70 65 6e 5f 76 32 28 29 5d 20 69 6e 74 65 72 66  pen_v2()] interf
0140: 61 63 65 73 0a 61 6e 64 20 74 6f 20 74 68 65 20  aces.and to the 
0150: 5b 41 54 54 41 43 48 5d 20 63 6f 6d 6d 61 6e 64  [ATTACH] command
0160: 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65   can be specifie
0170: 64 0a 65 69 74 68 65 72 20 61 73 20 61 6e 20 6f  d.either as an o
0180: 72 64 69 6e 61 72 79 20 66 69 6c 65 6e 61 6d 65  rdinary filename
0190: 20 6f 72 20 61 73 20 61 20 55 6e 69 66 6f 72 6d   or as a Uniform
01a0: 20 52 65 73 6f 75 72 63 65 20 49 64 65 6e 74 69   Resource Identi
01b0: 66 69 65 72 20 6f 72 20 55 52 49 2e 0a 54 68 65  fier or URI..The
01c0: 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20 75 73   advantage of us
01d0: 69 6e 67 20 61 20 55 52 49 20 66 69 6c 65 6e 61  ing a URI filena
01e0: 6d 65 20 69 73 20 74 68 61 74 20 71 75 65 72 79  me is that query
01f0: 20 70 61 72 61 6d 65 74 65 72 73 20 6f 6e 20 74   parameters on t
0200: 68 65 20 55 52 49 20 63 61 6e 0a 62 65 20 75 73  he URI can.be us
0210: 65 64 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 64 65  ed to control de
0220: 74 61 69 6c 73 20 6f 66 20 74 68 65 20 6e 65 77  tails of the new
0230: 6c 79 20 63 72 65 61 74 65 64 20 64 61 74 61 62  ly created datab
0240: 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a  ase connection..
0250: 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 6e 20  For example, an 
0260: 61 6c 74 65 72 6e 61 74 69 76 65 20 5b 56 46 53  alternative [VFS
0270: 5d 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69  ] can be specifi
0280: 65 64 20 75 73 69 6e 67 20 22 76 66 73 3d 22 20  ed using "vfs=" 
0290: 71 75 65 72 79 20 70 61 72 61 6d 65 74 65 72 2e  query parameter.
02a0: 0a 4f 72 20 74 68 65 20 64 61 74 61 62 61 73 65  .Or the database
02b0: 20 63 61 6e 20 62 65 20 6f 70 65 6e 65 64 20 72   can be opened r
02c0: 65 61 64 2d 6f 6e 6c 79 20 62 79 20 75 73 69 6e  ead-only by usin
02d0: 67 20 22 6d 6f 64 65 3d 72 6f 22 20 61 73 20 61  g "mode=ro" as a
02e0: 20 71 75 65 72 79 0a 70 61 72 61 6d 65 74 65 72   query.parameter
02f0: 2e 0a 3c 2f 70 3e 0a 0a 3c 68 31 3e 32 2e 30 20  ..</p>..<h1>2.0 
0300: 42 61 63 6b 77 61 72 64 73 20 43 6f 6d 70 61 74  Backwards Compat
0310: 69 62 69 6c 69 74 79 3c 2f 68 31 3e 0a 0a 3c 70  ibility</h1>..<p
0320: 3e 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20 6d 61  >.In order to ma
0330: 69 6e 74 61 69 6e 20 66 75 6c 6c 20 62 61 63 6b  intain full back
0340: 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c  wards compatibil
0350: 69 74 79 20 66 6f 72 20 6c 65 67 61 63 79 20 61  ity for legacy a
0360: 70 70 6c 69 63 61 74 69 6f 6e 73 2c 0a 74 68 65  pplications,.the
0370: 20 55 52 49 20 66 69 6c 65 6e 61 6d 65 20 63 61   URI filename ca
0380: 70 61 62 69 6c 69 74 79 20 69 73 20 64 69 73 61  pability is disa
0390: 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2e  bled by default.
03a0: 20 20 0a 5e 28 49 6e 20 6f 72 64 65 72 20 66 6f    .^(In order fo
03b0: 72 20 55 52 49 20 66 69 6c 65 6e 61 6d 65 73 0a  r URI filenames.
03c0: 74 6f 20 77 6f 72 6b 2c 20 6f 6e 65 20 6f 72 20  to work, one or 
03d0: 6d 6f 72 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c  more of the foll
03e0: 6f 77 69 6e 67 20 6d 75 73 74 20 62 65 20 74 72  owing must be tr
03f0: 75 65 3a 0a 3c 2f 70 3e 0a 0a 3c 6f 6c 3e 0a 3c  ue:.</p>..<ol>.<
0400: 6c 69 3e 3c 70 3e 54 68 65 20 53 51 4c 69 74 65  li><p>The SQLite
0410: 20 6c 69 62 72 61 72 79 20 69 73 20 63 6f 6d 70   library is comp
0420: 69 6c 65 64 20 77 69 74 68 20 74 68 65 20 5b 53  iled with the [S
0430: 51 4c 49 54 45 5f 55 53 45 5f 55 52 49 5d 20 0a  QLITE_USE_URI] .
0440: 20 20 20 20 20 20 20 63 6f 6d 70 69 6c 65 2d 74         compile-t
0450: 69 6d 65 20 6f 70 74 69 6f 6e 2e 3c 2f 70 3e 3c  ime option.</p><
0460: 2f 6c 69 3e 0a 3c 6c 69 3e 3c 70 3e 54 68 65 20  /li>.<li><p>The 
0470: 5b 73 71 6c 69 74 65 33 5f 63 6f 6e 66 69 67 5d  [sqlite3_config]
0480: 28 5b 53 51 4c 49 54 45 5f 43 4f 4e 46 49 47 5f  ([SQLITE_CONFIG_
0490: 55 52 49 5d 2c 20 31 29 3b 20 63 6f 6e 66 69 67  URI], 1); config
04a0: 75 72 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 0a 20  uration option. 
04b0: 20 20 20 20 20 20 69 73 20 73 65 74 20 61 74 20        is set at 
04c0: 61 70 70 6c 69 63 61 74 69 6f 6e 20 73 74 61 72  application star
04d0: 74 2d 74 69 6d 65 2e 3c 2f 70 3e 3c 2f 6c 69 3e  t-time.</p></li>
04e0: 0a 3c 6c 69 3e 3c 70 3e 54 68 65 20 5b 53 51 4c  .<li><p>The [SQL
04f0: 49 54 45 5f 4f 50 45 4e 5f 55 52 49 5d 20 62 69  ITE_OPEN_URI] bi
0500: 74 20 69 73 20 4f 52 2d 65 64 20 69 6e 20 77 69  t is OR-ed in wi
0510: 74 68 20 74 68 65 20 73 65 74 20 62 69 74 73 20  th the set bits 
0520: 70 61 73 73 65 64 20 69 6e 0a 20 20 20 20 20 20  passed in.      
0530: 20 61 73 20 74 68 65 20 33 72 64 20 70 61 72 61   as the 3rd para
0540: 6d 65 74 65 72 20 74 6f 20 74 68 65 20 5b 73 71  meter to the [sq
0550: 6c 69 74 65 33 5f 6f 70 65 6e 5f 76 32 28 29 5d  lite3_open_v2()]
0560: 20 69 6e 74 65 72 66 61 63 65 2e 3c 2f 70 3e 3c   interface.</p><
0570: 2f 6c 69 3e 0a 3c 2f 6f 6c 3e 29 5e 0a 0a 3c 70  /li>.</ol>)^..<p
0580: 3e 0a 5e 49 66 20 55 52 49 20 66 69 6c 65 6e 61  >.^If URI filena
0590: 6d 65 73 20 61 72 65 20 72 65 63 6f 67 6e 69 7a  mes are recogniz
05a0: 65 64 20 77 68 65 6e 20 74 68 65 20 64 61 74 61  ed when the data
05b0: 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  base connection 
05c0: 69 73 20 6f 72 69 67 69 6e 61 6c 6c 79 0a 6f 70  is originally.op
05d0: 65 6e 65 64 2c 20 74 68 65 6e 20 55 52 49 20 66  ened, then URI f
05e0: 69 6c 65 6e 61 6d 65 73 20 77 69 6c 6c 20 61 6c  ilenames will al
05f0: 73 6f 20 62 65 20 72 65 63 6f 67 6e 69 7a 65 64  so be recognized
0600: 20 6f 6e 20 5b 41 54 54 41 43 48 5d 20 73 74 61   on [ATTACH] sta
0610: 74 65 6d 65 6e 65 74 73 2e 0a 5e 53 69 6d 69 6c  temenets..^Simil
0620: 61 72 6c 79 2c 20 69 66 20 55 52 49 20 66 69 6c  arly, if URI fil
0630: 65 6e 61 6d 65 73 20 61 72 65 20 6e 6f 74 20 72  enames are not r
0640: 65 63 6f 67 6e 69 7a 65 64 20 77 68 65 6e 20 74  ecognized when t
0650: 68 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e  he database conn
0660: 65 63 74 69 6f 6e 0a 69 73 20 66 69 72 73 74 20  ection.is first 
0670: 6f 70 65 6e 65 64 2c 20 74 68 65 79 20 77 69 6c  opened, they wil
0680: 6c 20 6e 6f 74 20 62 65 20 72 65 63 6f 67 6e 69  l not be recogni
0690: 7a 65 64 20 62 79 20 5b 41 54 54 41 43 48 5d 2e  zed by [ATTACH].
06a0: 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 53 69 6e 63 65  .</p>..<p>.Since
06b0: 20 53 51 4c 69 74 65 20 61 6c 77 61 79 73 20 69   SQLite always i
06c0: 6e 74 65 72 70 72 65 74 73 20 61 6e 79 20 66 69  nterprets any fi
06d0: 6c 65 6e 61 6d 65 20 74 68 61 74 20 64 6f 65 73  lename that does
06e0: 20 6e 6f 74 20 62 65 67 69 6e 20 0a 77 69 74 68   not begin .with
06f0: 20 22 3c 74 74 3e 66 69 6c 65 3a 3c 2f 74 74 3e   "<tt>file:</tt>
0700: 22 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64  " is interpreted
0710: 0a 61 73 20 61 6e 20 6f 72 64 69 6e 61 72 79 20  .as an ordinary 
0720: 66 69 6c 65 6e 61 6d 65 20 72 65 67 61 72 64 6c  filename regardl
0730: 65 73 73 20 6f 66 20 74 68 65 20 55 52 49 20 73  ess of the URI s
0740: 65 74 74 69 6e 67 2c 20 61 6e 64 20 62 65 63 61  etting, and beca
0750: 75 73 65 20 69 74 20 69 73 0a 76 65 72 79 20 75  use it is.very u
0760: 6e 75 73 75 61 6c 20 74 6f 20 68 61 76 65 20 61  nusual to have a
0770: 6e 20 61 63 74 75 61 6c 20 66 69 6c 65 20 74 68  n actual file th
0780: 61 74 20 62 65 69 6e 67 73 20 77 69 74 68 20 22  at beings with "
0790: 3c 74 74 3e 66 69 6c 65 3a 3c 2f 74 74 3e 22 2c  <tt>file:</tt>",
07a0: 20 66 6f 72 0a 6d 6f 73 74 20 61 70 70 6c 69 63   for.most applic
07b0: 61 74 69 6f 6e 73 20 69 74 20 69 73 20 73 61 66  ations it is saf
07c0: 65 20 74 6f 20 65 6e 61 62 6c 65 20 55 52 49 20  e to enable URI 
07d0: 70 72 6f 63 65 73 73 69 6e 67 20 65 76 65 6e 20  processing even 
07e0: 69 66 20 55 52 49 20 66 69 6c 65 6e 61 6d 65 73  if URI filenames
07f0: 0a 61 72 65 20 6e 6f 74 20 63 75 72 72 65 6e 74  .are not current
0800: 6c 79 20 62 65 69 6e 67 20 75 73 65 64 2e 0a 3c  ly being used..<
0810: 2f 70 3e 0a 0a 3c 68 31 3e 33 2e 30 20 55 52 49  /p>..<h1>3.0 URI
0820: 20 46 6f 72 6d 61 74 3c 2f 68 31 3e 0a 0a 3c 70   Format</h1>..<p
0830: 3e 0a 41 63 63 6f 72 64 69 6e 67 20 74 6f 20 5b  >.According to [
0840: 68 74 74 70 3a 2f 2f 74 6f 6f 6c 73 2e 69 65 74  http://tools.iet
0850: 66 2e 6f 72 67 2f 68 74 6d 6c 2f 72 66 63 33 39  f.org/html/rfc39
0860: 38 36 20 7c 20 52 46 43 20 33 39 38 36 5d 2c 20  86 | RFC 3986], 
0870: 61 20 55 52 49 20 63 6f 6e 73 69 73 74 73 0a 6f  a URI consists.o
0880: 66 20 61 20 73 63 68 65 6d 65 2c 20 61 6e 20 61  f a scheme, an a
0890: 75 74 68 6f 72 69 74 79 2c 20 61 20 70 61 74 68  uthority, a path
08a0: 2c 20 61 20 71 75 65 72 79 20 73 74 72 69 6e 67  , a query string
08b0: 2c 20 61 6e 64 20 61 20 66 72 61 67 6d 65 6e 74  , and a fragment
08c0: 2e 20 20 54 68 65 0a 73 63 68 65 6d 65 20 69 73  .  The.scheme is
08d0: 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64   always required
08e0: 2e 20 20 4f 6e 65 20 6f 66 20 65 69 74 68 65 72  .  One of either
08f0: 20 74 68 65 20 61 75 74 68 6f 72 69 74 79 20 6f   the authority o
0900: 72 20 74 68 65 20 70 61 74 68 20 69 73 20 61 6c  r the path is al
0910: 73 6f 0a 61 6c 77 61 79 73 20 72 65 71 75 69 72  so.always requir
0920: 65 64 2e 20 20 54 68 65 20 71 75 65 72 79 20 73  ed.  The query s
0930: 74 72 69 6e 67 20 61 6e 64 20 66 72 61 67 6d 65  tring and fragme
0940: 6e 74 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 2e  nt are optional.
0950: 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 53 51 4c 69 74  .</p>..<p>.SQLit
0960: 65 20 75 73 65 73 20 74 68 65 20 22 3c 74 74 3e  e uses the "<tt>
0970: 66 69 6c 65 3a 3c 2f 74 74 3e 22 20 55 52 49 20  file:</tt>" URI 
0980: 73 79 6e 74 61 78 20 74 6f 20 69 64 65 6e 74 69  syntax to identi
0990: 66 79 20 64 61 74 61 62 61 73 65 20 66 69 6c 65  fy database file
09a0: 73 2e 0a 53 51 4c 69 74 65 20 73 74 72 69 76 65  s..SQLite strive
09b0: 73 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 66  s to interpret f
09c0: 69 6c 65 3a 20 55 52 49 73 20 69 6e 20 65 78 61  ile: URIs in exa
09d0: 63 74 6c 79 20 74 68 65 20 73 61 6d 65 20 77 61  ctly the same wa
09e0: 79 20 61 73 0a 70 6f 70 75 6c 61 72 20 77 65 62  y as.popular web
09f0: 2d 62 72 6f 77 73 65 72 73 20 73 75 63 68 20 61  -browsers such a
0a00: 73 20 0a 5b 68 74 74 70 3a 2f 2f 77 77 77 2e 6d  s .[http://www.m
0a10: 6f 7a 69 6c 6c 61 2e 63 6f 6d 2f 65 6e 2d 55 53  ozilla.com/en-US
0a20: 2f 66 69 72 65 66 6f 78 2f 6e 65 77 2f 20 7c 20  /firefox/new/ | 
0a30: 46 69 72 65 66 6f 78 5d 2c 20 0a 5b 68 74 74 70  Firefox], .[http
0a40: 3a 2f 2f 77 77 77 2e 67 6f 6f 67 6c 65 2e 63 6f  ://www.google.co
0a50: 6d 2f 63 68 72 6f 6d 65 2f 20 7c 20 43 68 72 6f  m/chrome/ | Chro
0a60: 6d 65 5d 2c 20 0a 5b 68 74 74 70 3a 2f 2f 77 77  me], .[http://ww
0a70: 77 2e 61 70 70 6c 65 2e 63 6f 6d 2f 73 61 66 61  w.apple.com/safa
0a80: 72 69 2f 20 7c 20 53 61 66 61 72 69 5d 2c 20 0a  ri/ | Safari], .
0a90: 5b 68 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 2e  [http://windows.
0aa0: 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 65 6e  microsoft.com/en
0ab0: 2d 55 53 2f 69 6e 74 65 72 6e 65 74 2d 65 78 70  -US/internet-exp
0ac0: 6c 6f 72 65 72 2f 70 72 6f 64 75 63 74 73 2f 69  lorer/products/i
0ad0: 65 2f 68 6f 6d 65 20 7c 20 49 6e 74 65 72 6e 65  e/home | Interne
0ae0: 74 20 45 78 70 6c 6f 72 65 72 5d 2c 20 61 6e 64  t Explorer], and
0af0: 0a 5b 68 74 74 70 3a 2f 2f 77 77 77 2e 6f 70 65  .[http://www.ope
0b00: 72 61 2e 63 6f 6d 2f 20 7c 20 4f 70 65 72 61 5d  ra.com/ | Opera]
0b10: 2c 0a 61 6e 64 20 63 6f 6d 6d 61 6e 64 2d 6c 69  ,.and command-li
0b20: 6e 65 20 70 72 6f 67 72 61 6d 73 20 73 75 63 68  ne programs such
0b30: 20 61 73 20 0a 5b 68 74 74 70 3a 2f 2f 77 77 77   as .[http://www
0b40: 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 72  .microsoft.com/r
0b50: 65 73 6f 75 72 63 65 73 2f 64 6f 63 75 6d 65 6e  esources/documen
0b60: 74 61 74 69 6f 6e 2f 77 69 6e 64 6f 77 73 2f 78  tation/windows/x
0b70: 70 2f 61 6c 6c 2f 70 72 6f 64 64 6f 63 73 2f 65  p/all/proddocs/e
0b80: 6e 2d 75 73 2f 73 74 61 72 74 2e 6d 73 70 78 20  n-us/start.mspx 
0b90: 7c 20 57 69 6e 64 6f 77 73 20 22 73 74 61 72 74  | Windows "start
0ba0: 22 5d 20 61 6e 64 20 74 68 65 0a 5b 68 74 74 70  "] and the.[http
0bb0: 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 61 70 70  ://developer.app
0bc0: 6c 65 2e 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d  le.com/library/m
0bd0: 61 63 2f 23 64 6f 63 75 6d 65 6e 74 61 74 69 6f  ac/#documentatio
0be0: 6e 2f 44 61 72 77 69 6e 2f 52 65 66 65 72 65 6e  n/Darwin/Referen
0bf0: 63 65 2f 4d 61 6e 50 61 67 65 73 2f 6d 61 6e 31  ce/ManPages/man1
0c00: 2f 6f 70 65 6e 2e 31 2e 68 74 6d 6c 20 7c 20 22  /open.1.html | "
0c10: 6f 70 65 6e 22 5d 20 63 6f 6d 6d 61 6e 64 20 6f  open"] command o
0c20: 6e 20 4d 61 63 20 4f 53 2d 58 2e 0a 41 20 73 75  n Mac OS-X..A su
0c30: 63 63 69 6e 63 74 20 73 75 6d 6d 61 72 79 20 6f  ccinct summary o
0c40: 66 20 74 68 65 20 55 52 49 20 70 61 72 73 69 6e  f the URI parsin
0c50: 67 20 72 75 6c 65 73 20 66 6f 6c 6c 6f 77 73 3a  g rules follows:
0c60: 0a 3c 2f 70 3e 0a 0a 3c 75 6c 3e 0a 3c 6c 69 3e  .</p>..<ul>.<li>
0c70: 20 5e 28 54 68 65 20 73 63 68 65 6d 65 20 6f 66   ^(The scheme of
0c80: 20 74 68 65 20 55 52 49 20 6d 75 73 74 20 62 65   the URI must be
0c90: 20 22 3c 74 74 3e 66 69 6c 65 3a 3c 2f 74 74 3e   "<tt>file:</tt>
0ca0: 22 2e 20 20 41 6e 79 20 6f 74 68 65 72 20 73 63  ".  Any other sc
0cb0: 68 65 6d 65 0a 20 20 20 20 20 72 65 73 75 6c 74  heme.     result
0cc0: 73 20 69 6e 20 74 68 65 20 69 6e 70 75 74 20 62  s in the input b
0cd0: 65 69 6e 67 20 74 72 65 61 74 65 64 20 61 73 20  eing treated as 
0ce0: 61 6e 20 6f 72 64 69 6e 61 72 79 20 66 69 6c 65  an ordinary file
0cf0: 6e 61 6d 65 2e 29 5e 0a 3c 6c 69 3e 20 5e 28 54  name.)^.<li> ^(T
0d00: 68 65 20 61 75 74 68 6f 72 69 74 79 20 6d 61 79  he authority may
0d10: 20 62 65 20 6f 6d 69 74 74 65 64 2c 20 6d 61 79   be omitted, may
0d20: 20 62 65 20 62 6c 61 6e 6b 2c 20 6f 72 20 6d 61   be blank, or ma
0d30: 79 20 62 65 0a 20 20 20 20 20 20 22 3c 74 74 3e  y be.      "<tt>
0d40: 6c 6f 63 61 6c 68 6f 73 74 3c 2f 74 74 3e 22 2e  localhost</tt>".
0d50: 20 20 41 6e 79 20 6f 74 68 65 72 20 61 75 74 68    Any other auth
0d60: 6f 72 69 74 79 20 72 65 73 75 6c 74 73 20 69 6e  ority results in
0d70: 20 61 6e 20 65 72 72 6f 72 2e 29 5e 0a 3c 6c 69   an error.)^.<li
0d80: 3e 20 5e 54 68 65 20 70 61 74 68 20 69 73 20 6f  > ^The path is o
0d90: 70 74 69 6f 6e 61 6c 20 69 66 20 74 68 65 20 61  ptional if the a
0da0: 75 74 68 6f 72 69 74 79 20 69 73 20 70 72 65 73  uthority is pres
0db0: 65 6e 74 2e 20 20 5e 49 66 20 74 68 65 20 61 75  ent.  ^If the au
0dc0: 74 68 6f 72 69 74 79 0a 20 20 20 20 20 69 73 20  thority.     is 
0dd0: 6f 6d 69 74 74 65 64 20 74 68 65 6e 20 74 68 65  omitted then the
0de0: 20 70 61 74 68 20 69 73 20 72 65 71 75 69 72 65   path is require
0df0: 64 2e 20 0a 3c 6c 69 3e 20 5e 54 68 65 20 71 75  d. .<li> ^The qu
0e00: 65 72 79 20 73 74 72 69 6e 67 20 69 73 20 6f 70  ery string is op
0e10: 74 69 6f 6e 61 6c 2e 20 20 5e 49 66 20 74 68 65  tional.  ^If the
0e20: 20 71 75 65 72 79 20 73 74 72 69 6e 67 20 69 73   query string is
0e30: 20 70 72 65 73 65 6e 74 2c 20 74 68 65 6e 0a 20   present, then. 
0e40: 20 20 20 20 20 61 6c 6c 20 71 75 65 72 79 20 70       all query p
0e50: 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 70 61  arameters are pa
0e60: 73 73 65 64 20 74 68 72 6f 75 67 68 20 69 6e 74  ssed through int
0e70: 6f 20 74 68 65 20 78 4f 70 65 6e 20 6d 65 74 68  o the xOpen meth
0e80: 6f 64 20 6f 66 0a 20 20 20 20 20 20 74 68 65 20  od of.      the 
0e90: 75 6e 64 65 72 6c 79 69 6e 67 20 5b 56 46 53 5d  underlying [VFS]
0ea0: 2e 20 20 0a 3c 6c 69 3e 20 5e 28 54 68 65 20 66  .  .<li> ^(The f
0eb0: 72 61 67 6d 65 6e 74 20 69 73 20 6f 70 74 69 6f  ragment is optio
0ec0: 6e 61 6c 2e 20 20 49 66 20 70 72 65 73 65 6e 74  nal.  If present
0ed0: 2c 20 69 74 20 69 73 20 69 67 6e 6f 72 65 64 2e  , it is ignored.
0ee0: 29 5e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 3e 5e 5a 65  )^.</ul>..<p>^Ze
0ef0: 72 6f 20 6f 72 20 6d 6f 72 65 20 65 73 63 61 70  ro or more escap
0f00: 65 20 73 65 71 75 65 6e 63 65 73 20 6f 66 20 74  e sequences of t
0f10: 68 65 20 66 6f 72 6d 20 20 22 3c 62 3e 25 3c 69  he form  "<b>%<i
0f20: 3e 48 48 3c 2f 69 3e 3c 2f 62 3e 22 20 0a 28 77  >HH</i></b>" .(w
0f30: 68 65 72 65 20 3c 62 3e 3c 69 3e 48 3c 2f 69 3e  here <b><i>H</i>
0f40: 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e 74 73 20  </b> represents 
0f50: 61 6e 79 20 68 65 78 61 64 65 63 69 6d 61 6c 20  any hexadecimal 
0f60: 64 69 67 69 74 29 20 63 61 6e 20 6f 63 63 75 72  digit) can occur
0f70: 20 0a 69 6e 20 74 68 65 20 70 61 74 68 2c 20 71   .in the path, q
0f80: 75 65 72 79 20 73 74 72 69 6e 67 2c 20 6f 72 20  uery string, or 
0f90: 66 72 61 67 6d 65 6e 74 2e 3c 2f 70 3e 0a 0a 3c  fragment.</p>..<
0fa0: 70 3e 5e 41 20 66 69 6c 65 6e 61 6d 65 20 74 68  p>^A filename th
0fb0: 61 74 20 69 73 20 6e 6f 74 20 61 20 77 65 6c 6c  at is not a well
0fc0: 2d 66 6f 72 6d 65 64 20 55 52 49 20 69 73 20 69  -formed URI is i
0fd0: 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 6e  nterpreted as an
0fe0: 0a 6f 72 64 69 6e 61 72 79 20 66 69 6c 65 6e 61  .ordinary filena
0ff0: 6d 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 5e 55 52 49  me.</p>..<p>^URI
1000: 73 20 61 72 65 20 70 72 6f 63 65 73 73 65 64 20  s are processed 
1010: 61 73 20 55 54 46 38 20 74 65 78 74 2e 0a 5e 54  as UTF8 text..^T
1020: 68 65 20 66 69 6c 65 6e 61 6d 65 20 61 72 67 75  he filename argu
1030: 6d 65 6e 74 20 73 71 6c 69 74 65 33 5f 6f 70 65  ment sqlite3_ope
1040: 6e 31 36 28 29 20 69 73 20 63 6f 6e 76 65 72 74  n16() is convert
1050: 65 64 20 66 72 6f 6d 20 55 54 46 31 36 20 0a 6e  ed from UTF16 .n
1060: 61 74 69 76 65 20 62 79 74 65 20 6f 72 64 65 72  ative byte order
1070: 20 69 6e 74 6f 20 55 54 46 38 20 70 72 69 6f 72   into UTF8 prior
1080: 20 74 6f 20 70 72 6f 63 65 73 73 69 6e 67 2e 0a   to processing..
1090: 0a 3c 68 32 3e 33 2e 31 20 54 68 65 20 55 52 49  .<h2>3.1 The URI
10a0: 20 50 61 74 68 3c 2f 68 32 3e 0a 0a 3c 70 3e 5e   Path</h2>..<p>^
10b0: 54 68 65 20 70 61 74 68 20 63 6f 6d 70 6f 6e 65  The path compone
10c0: 6e 74 20 6f 66 20 74 68 65 20 55 52 49 20 73 70  nt of the URI sp
10d0: 65 63 69 66 69 65 73 20 74 68 65 20 64 69 73 6b  ecifies the disk
10e0: 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 74 68   file that is th
10f0: 65 0a 53 51 4c 69 74 65 20 64 61 74 61 62 61 73  e.SQLite databas
1100: 65 20 74 6f 20 62 65 20 6f 70 65 6e 65 64 2e 20  e to be opened. 
1110: 20 5e 28 49 66 20 74 68 65 20 70 61 74 68 20 63   ^(If the path c
1120: 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 6f 6d 69 74  omponent is omit
1130: 74 65 64 2c 20 74 68 65 6e 0a 61 20 74 65 6d 70  ted, then.a temp
1140: 6f 72 61 72 79 20 66 69 6c 65 73 20 69 73 20 6f  orary files is o
1150: 70 65 6e 65 64 20 61 73 20 61 20 6e 65 77 20 64  pened as a new d
1160: 61 74 61 62 61 73 65 20 74 68 61 74 20 77 69 6c  atabase that wil
1170: 6c 20 62 65 20 61 75 74 6f 6d 61 74 69 63 61 6c  l be automatical
1180: 6c 79 0a 64 65 6c 65 74 65 64 20 77 68 65 6e 20  ly.deleted when 
1190: 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e  the database con
11a0: 6e 65 63 74 69 6f 6e 20 63 6c 6f 73 65 73 2e 29  nection closes.)
11b0: 5e 20 20 5e 49 66 20 74 68 65 20 61 75 74 68 6f  ^  ^If the autho
11c0: 72 69 74 79 20 73 65 63 74 69 6f 6e 0a 69 73 20  rity section.is 
11d0: 70 72 65 73 65 6e 74 2c 20 74 68 65 6e 20 74 68  present, then th
11e0: 65 20 70 61 74 68 20 69 73 20 61 6c 77 61 79 20  e path is alway 
11f0: 61 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68  an absolute path
1200: 6e 61 6d 65 2e 20 20 5e 49 66 20 74 68 65 20 0a  name.  ^If the .
1210: 61 75 74 68 6f 72 69 74 79 20 73 65 63 74 69 6f  authority sectio
1220: 6e 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 74 68  n is omitted, th
1230: 65 6e 20 74 68 65 20 70 61 74 68 20 69 73 20 61  en the path is a
1240: 6e 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 6e  n absolute pathn
1250: 61 6d 65 20 69 66 20 69 74 0a 62 65 67 69 6e 73  ame if it.begins
1260: 20 77 69 74 68 20 74 68 65 20 22 2f 22 20 63 68   with the "/" ch
1270: 61 72 61 63 74 65 72 20 28 41 53 43 49 49 20 63  aracter (ASCII c
1280: 6f 64 65 20 30 78 32 66 29 20 61 6e 64 20 69 73  ode 0x2f) and is
1290: 20 61 20 72 65 6c 61 74 69 76 65 0a 70 61 74 68   a relative.path
12a0: 6e 61 6d 65 20 6f 74 68 65 72 77 69 73 65 2e 20  name otherwise. 
12b0: 20 5e 28 4f 6e 20 77 69 6e 64 6f 77 73 2c 20 69   ^(On windows, i
12c0: 66 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 70  f the absolute p
12d0: 61 74 68 20 62 65 67 69 6e 73 20 77 69 74 68 0a  ath begins with.
12e0: 22 3c 62 3e 2f 3c 69 3e 58 3c 2f 69 3e 3a 2f 3c  "<b>/<i>X</i>:/<
12f0: 2f 62 3e 22 20 77 68 65 72 65 20 3c 62 3e 3c 69  /b>" where <b><i
1300: 3e 58 3c 2f 69 3e 3c 2f 62 3e 20 69 73 20 61 6e  >X</i></b> is an
1310: 79 20 73 69 6e 67 6c 65 20 41 53 43 49 49 20 61  y single ASCII a
1320: 6c 70 68 61 62 65 74 69 63 0a 63 68 61 72 61 63  lphabetic.charac
1330: 74 65 72 20 28 22 61 22 20 74 68 72 6f 75 67 68  ter ("a" through
1340: 20 22 7a 22 20 6f 72 20 22 41 22 20 74 68 72 6f   "z" or "A" thro
1350: 75 67 68 20 22 5a 22 29 20 74 68 65 6e 20 74 68  ugh "Z") then th
1360: 65 20 22 3c 62 3e 3c 69 3e 58 3a 3c 2f 69 3e 3c  e "<b><i>X:</i><
1370: 2f 62 3e 22 0a 69 73 20 75 6e 64 65 72 73 74 6f  /b>".is understo
1380: 6f 64 20 74 6f 20 62 65 20 74 68 65 20 64 72 69  od to be the dri
1390: 76 65 20 6c 65 74 74 65 72 20 6f 66 20 74 68 65  ve letter of the
13a0: 20 74 68 65 20 76 6f 6c 75 6d 65 20 63 6f 6e 74   the volume cont
13b0: 61 69 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 2c  aining the file,
13c0: 0a 6e 6f 74 20 74 68 65 20 74 6f 70 6c 65 76 65  .not the topleve
13d0: 6c 20 64 69 72 65 63 74 6f 72 79 2e 29 5e 0a 0a  l directory.)^..
13e0: 3c 70 3e 41 6e 20 6f 72 64 69 6e 61 72 79 20 66  <p>An ordinary f
13f0: 69 6c 65 6e 61 6d 65 20 63 61 6e 20 75 73 75 61  ilename can usua
1400: 6c 6c 79 20 62 65 20 63 6f 6e 76 65 72 74 65 64  lly be converted
1410: 20 69 6e 74 6f 20 61 6e 20 65 71 75 69 76 61 6c   into an equival
1420: 65 6e 74 20 55 52 49 20 0a 62 79 20 74 68 65 20  ent URI .by the 
1430: 73 74 65 70 20 73 68 6f 77 6e 20 62 65 6c 6f 77  step shown below
1440: 2e 20 20 54 68 65 20 6f 6e 65 20 65 78 63 65 70  .  The one excep
1450: 74 69 6f 6e 20 69 73 20 74 68 61 74 20 61 20 72  tion is that a r
1460: 65 6c 61 74 69 76 65 20 77 69 6e 64 6f 77 73 0a  elative windows.
1470: 70 61 74 68 6e 61 6d 65 20 77 69 74 68 20 61 20  pathname with a 
1480: 64 72 69 76 65 20 6c 65 74 74 65 72 20 63 61 6e  drive letter can
1490: 6e 6f 74 20 62 65 20 63 6f 6e 76 65 72 74 65 64  not be converted
14a0: 20 64 69 72 65 63 74 6c 79 20 69 6e 74 6f 20 61   directly into a
14b0: 20 55 52 49 3b 20 69 74 20 6d 75 73 74 0a 62 65   URI; it must.be
14c0: 20 63 68 61 6e 67 65 64 20 69 6e 74 6f 20 61 6e   changed into an
14d0: 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 6e 61   absolute pathna
14e0: 6d 65 20 66 69 72 73 74 2e 3c 2f 70 3e 0a 0a 3c  me first.</p>..<
14f0: 6f 6c 3e 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20  ol>.<li>Convert 
1500: 61 6c 6c 20 22 3c 74 74 3e 3f 3c 2f 74 74 3e 22  all "<tt>?</tt>"
1510: 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 74 6f   characters into
1520: 20 22 3c 74 74 3e 25 33 66 3c 2f 74 74 3e 22 2e   "<tt>%3f</tt>".
1530: 0a 3c 6c 69 3e 43 6f 6e 76 65 72 74 20 61 6c 6c  .<li>Convert all
1540: 20 22 3c 74 74 3e 23 3c 2f 74 74 3e 22 20 63 68   "<tt>#</tt>" ch
1550: 61 72 61 63 74 65 72 73 20 69 6e 74 6f 20 22 3c  aracters into "<
1560: 74 74 3e 25 32 33 3c 2f 74 74 3e 22 2e 0a 3c 6c  tt>%23</tt>"..<l
1570: 69 3e 4f 6e 20 77 69 6e 64 6f 77 73 20 6f 6e 6c  i>On windows onl
1580: 79 2c 20 63 6f 6e 76 65 72 74 20 61 6c 6c 20 22  y, convert all "
1590: 3c 74 74 3e 5c 3c 2f 74 74 3e 22 20 63 68 61 72  <tt>\</tt>" char
15a0: 61 63 74 65 72 73 20 69 6e 74 6f 20 22 3c 74 74  acters into "<tt
15b0: 3e 2f 3c 2f 74 74 3e 22 2e 0a 3c 6c 69 3e 43 6f  >/</tt>"..<li>Co
15c0: 6e 76 65 72 74 20 61 6c 6c 20 73 65 71 75 65 6e  nvert all sequen
15d0: 63 65 73 20 6f 66 20 74 77 6f 20 6f 72 20 6d 6f  ces of two or mo
15e0: 72 65 20 22 3c 74 74 3e 2f 3c 2f 74 74 3e 22 20  re "<tt>/</tt>" 
15f0: 63 68 61 72 61 63 74 65 72 73 20 69 6e 74 6f 20  characters into 
1600: 61 0a 20 20 20 20 73 69 6e 67 6c 65 20 22 3c 74  a.    single "<t
1610: 74 3e 2f 3c 2f 74 74 3e 22 20 63 68 61 72 61 63  t>/</tt>" charac
1620: 74 65 72 2e 0a 3c 6c 69 3e 4f 6e 20 77 69 6e 64  ter..<li>On wind
1630: 6f 77 73 20 6f 6e 6c 79 2c 20 69 66 20 74 68 65  ows only, if the
1640: 20 66 69 6c 65 6e 61 6d 65 20 62 65 67 69 6e 73   filename begins
1650: 20 77 69 74 68 20 61 20 64 72 69 76 65 20 6c 65   with a drive le
1660: 74 74 65 72 2c 20 70 72 65 70 65 6e 64 0a 20 20  tter, prepend.  
1670: 20 20 61 20 73 69 6e 67 6c 65 20 22 3c 74 74 3e    a single "<tt>
1680: 2f 3c 2f 74 74 3e 22 20 63 68 61 72 61 63 74 65  /</tt>" characte
1690: 72 2e 0a 3c 6c 69 3e 50 72 65 70 65 6e 64 20 74  r..<li>Prepend t
16a0: 68 65 20 22 3c 74 74 3e 66 69 6c 65 3a 3c 2f 74  he "<tt>file:</t
16b0: 74 3e 22 20 73 63 68 65 6d 65 2e 0a 3c 2f 6f 6c  t>" scheme..</ol
16c0: 3e 0a 0a 3c 68 32 3e 33 2e 32 20 51 75 65 72 79  >..<h2>3.2 Query
16d0: 20 53 74 72 69 6e 67 3c 2f 68 32 3e 0a 0a 3c 70   String</h2>..<p
16e0: 3e 5e 41 20 55 52 49 20 66 69 6c 65 6e 61 6d 65  >^A URI filename
16f0: 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20   can optionally 
1700: 62 65 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61  be followed by a
1710: 20 71 75 65 72 79 20 73 74 72 69 6e 67 2e 0a 5e   query string..^
1720: 54 68 65 20 71 75 65 72 79 20 73 74 72 69 6e 67  The query string
1730: 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 65 78   consists of tex
1740: 74 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20  t following the 
1750: 66 69 72 73 74 20 22 3c 74 74 3e 3f 3c 2f 74 74  first "<tt>?</tt
1760: 3e 22 0a 63 68 61 72 61 63 74 65 72 20 62 75 74  >".character but
1770: 20 65 78 6c 75 64 69 6e 67 20 74 68 65 20 6f 70   exluding the op
1780: 74 69 6f 6e 61 6c 20 66 72 61 67 6d 65 6e 74 20  tional fragment 
1790: 74 68 61 74 20 62 65 67 69 6e 73 20 77 69 74 68  that begins with
17a0: 20 77 69 74 68 0a 22 3c 74 74 3e 23 3c 2f 74 74   with."<tt>#</tt
17b0: 3e 22 2e 20 20 5e 54 68 65 20 71 75 65 72 79 20  >".  ^The query 
17c0: 73 74 72 69 6e 67 20 69 73 20 64 69 76 69 64 65  string is divide
17d0: 64 20 69 6e 74 6f 20 6b 65 79 2f 76 61 6c 75 65  d into key/value
17e0: 20 70 61 69 72 73 2e 0a 57 65 20 75 73 75 61 6c   pairs..We usual
17f0: 6c 79 20 72 65 66 65 72 20 74 6f 20 74 68 65 73  ly refer to thes
1800: 65 20 6b 65 79 2f 76 61 6c 75 65 20 70 61 69 72  e key/value pair
1810: 73 20 61 73 20 22 71 75 65 72 79 20 70 61 72 61  s as "query para
1820: 6d 65 74 65 72 73 22 2e 0a 5e 4b 65 79 2f 76 61  meters"..^Key/va
1830: 6c 75 65 20 70 61 69 72 73 20 61 72 65 20 73 65  lue pairs are se
1840: 70 61 72 61 74 65 64 20 62 79 20 61 20 73 69 6e  parated by a sin
1850: 67 6c 65 20 22 3c 74 74 3e 26 61 6d 70 3b 3c 2f  gle "<tt>&amp;</
1860: 74 74 3e 22 20 63 68 61 72 61 63 74 65 72 2e 0a  tt>" character..
1870: 5e 54 68 65 20 6b 65 79 20 63 6f 6d 65 73 20 66  ^The key comes f
1880: 69 72 73 74 20 61 6e 64 20 69 73 20 73 65 70 61  irst and is sepa
1890: 72 61 74 65 64 20 66 72 6f 6d 20 74 68 65 20 76  rated from the v
18a0: 61 6c 75 65 20 62 79 20 61 20 73 69 6e 67 6c 65  alue by a single
18b0: 0a 22 3c 74 74 3e 3d 3c 2f 74 74 3e 22 20 63 68  ."<tt>=</tt>" ch
18c0: 61 72 61 63 74 65 72 2e 0a 5e 42 6f 74 68 20 6b  aracter..^Both k
18d0: 65 79 20 61 6e 64 20 76 61 6c 75 65 20 6d 61 79  ey and value may
18e0: 20 63 6f 6e 74 61 69 6e 20 3c 62 3e 25 48 48 3c   contain <b>%HH<
18f0: 2f 62 3e 20 65 73 63 61 70 65 20 73 65 71 75 65  /b> escape seque
1900: 6e 63 65 73 2e 3c 2f 70 3e 0a 0a 3c 70 3e 0a 5e  nces.</p>..<p>.^
1910: 54 68 65 20 74 65 78 74 20 6f 66 20 71 75 65 72  The text of quer
1920: 79 20 70 61 72 61 6d 65 74 65 72 73 20 69 73 20  y parameters is 
1930: 61 70 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20  appended to the 
1940: 66 69 6c 65 6e 61 6d 65 20 61 72 67 75 6d 65 6e  filename argumen
1950: 74 20 74 6f 0a 74 68 65 20 78 4f 70 65 6e 20 6d  t to.the xOpen m
1960: 65 74 68 6f 64 20 6f 66 20 74 68 65 20 5b 56 46  ethod of the [VF
1970: 53 5d 2e 0a 5e 41 6e 79 20 25 48 48 20 65 73 63  S]..^Any %HH esc
1980: 61 70 65 20 73 65 71 75 65 6e 63 65 73 20 69 6e  ape sequences in
1990: 20 74 68 65 20 71 75 65 72 79 20 70 61 72 61 6d   the query param
19a0: 65 74 65 72 73 20 61 72 65 20 72 65 73 6f 6c 76  eters are resolv
19b0: 65 64 20 70 72 69 6f 72 20 74 6f 0a 62 65 69 6e  ed prior to.bein
19c0: 67 20 61 70 70 65 6e 64 65 64 20 6f 74 20 74 68  g appended ot th
19d0: 65 20 78 4f 70 65 6e 20 66 69 6c 65 6e 61 6d 65  e xOpen filename
19e0: 2e 0a 5e 41 20 73 69 6e 67 6c 65 20 7a 65 72 6f  ..^A single zero
19f0: 2d 62 79 74 65 20 73 65 70 61 72 61 74 65 73 20  -byte separates 
1a00: 74 68 65 20 78 4f 70 65 6e 20 66 69 6c 65 6e 61  the xOpen filena
1a10: 6d 65 20 61 72 67 75 6d 65 6e 74 20 66 72 6f 6d  me argument from
1a20: 20 74 68 65 20 6b 65 79 20 6f 66 0a 74 68 65 20   the key of.the 
1a30: 66 69 72 73 74 20 71 75 65 72 79 20 70 61 72 61  first query para
1a40: 6d 65 74 65 72 73 2c 20 65 61 63 68 20 6b 65 79  meters, each key
1a50: 20 61 6e 64 20 76 61 6c 75 65 2c 20 61 6e 64 20   and value, and 
1a60: 65 61 63 68 20 73 75 62 73 65 71 75 65 6e 74 20  each subsequent 
1a70: 6b 65 79 0a 66 72 6f 6d 20 74 68 65 20 70 72 69  key.from the pri
1a80: 6f 72 20 76 61 6c 75 65 2e 0a 5e 54 68 65 20 6c  or value..^The l
1a90: 69 73 74 20 71 75 65 72 79 20 70 61 72 61 6d 65  ist query parame
1aa0: 74 65 72 73 20 70 61 72 61 6d 65 74 65 72 73 20  ters parameters 
1ab0: 61 70 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20  appended to the 
1ac0: 78 4f 70 65 6e 20 66 69 6c 65 6e 61 6d 65 0a 69  xOpen filename.i
1ad0: 73 20 74 65 72 6d 69 6e 61 74 65 64 20 62 79 20  s terminated by 
1ae0: 61 20 73 69 6e 67 6c 65 20 7a 65 72 6f 2d 6c 65  a single zero-le
1af0: 6e 67 74 68 20 6b 65 79 2e 0a 4e 6f 74 65 20 74  ngth key..Note t
1b00: 68 61 74 20 74 68 65 20 76 61 6c 75 65 20 6f 66  hat the value of
1b10: 20 61 20 71 75 65 72 79 20 70 61 72 61 6d 65 74   a query paramet
1b20: 65 72 20 63 61 6e 20 62 65 20 61 6e 20 65 6d 70  er can be an emp
1b30: 74 79 20 73 74 72 69 6e 67 2e 0a 3c 2f 70 3e 0a  ty string..</p>.
1b40: 0a 3c 74 63 6c 3e 68 64 5f 66 72 61 67 6d 65 6e  .<tcl>hd_fragmen
1b50: 74 20 63 6f 72 65 71 70 20 7b 71 75 65 72 79 20  t coreqp {query 
1b60: 70 61 72 61 6d 65 74 65 72 73 20 77 69 74 68 20  parameters with 
1b70: 73 70 65 63 69 61 6c 20 6d 65 61 6e 69 6e 67 20  special meaning 
1b80: 74 6f 20 53 51 4c 69 74 65 7d 3c 2f 74 63 6c 3e  to SQLite}</tcl>
1b90: 0a 3c 68 32 3e 33 2e 33 20 52 65 63 6f 67 6e 69  .<h2>3.3 Recogni
1ba0: 7a 65 64 20 51 75 65 72 79 20 50 61 72 61 6d 65  zed Query Parame
1bb0: 74 65 72 73 3c 2f 68 32 3e 0a 0a 3c 70 3e 0a 53  ters</h2>..<p>.S
1bc0: 6f 6d 65 20 71 75 65 72 79 20 70 61 72 61 6d 65  ome query parame
1bd0: 74 65 72 73 20 61 72 65 20 69 6e 74 65 72 70 72  ters are interpr
1be0: 65 74 65 64 20 62 79 20 74 68 65 20 53 51 4c 69  eted by the SQLi
1bf0: 74 65 20 63 6f 72 65 20 61 6e 64 20 75 73 65 64  te core and used
1c00: 20 74 6f 20 0a 6d 6f 64 69 66 79 20 74 68 65 20   to .modify the 
1c10: 63 68 61 72 61 63 74 65 72 69 73 74 69 63 73 20  characteristics 
1c20: 6f 66 20 74 68 65 20 6e 65 77 20 63 6f 6e 6e 65  of the new conne
1c30: 63 74 69 6f 6e 2e 20 20 5e 41 6c 6c 20 71 75 65  ction.  ^All que
1c40: 72 79 20 70 61 72 61 6d 65 74 65 72 73 0a 61 72  ry parameters.ar
1c50: 65 20 61 6c 77 61 79 73 20 70 61 73 73 65 64 20  e always passed 
1c60: 74 68 72 6f 75 67 68 20 69 6e 74 6f 20 74 68 65  through into the
1c70: 20 78 4f 70 65 6e 20 6d 65 74 68 6f 64 20 6f 66   xOpen method of
1c80: 20 74 68 65 20 5b 56 46 53 5d 20 65 76 65 6e 20   the [VFS] even 
1c90: 69 66 0a 74 68 65 79 20 61 72 65 20 70 72 65 76  if.they are prev
1ca0: 69 6f 75 73 6c 79 20 72 65 61 64 20 61 6e 64 20  iously read and 
1cb0: 69 6e 74 65 72 70 72 65 74 65 64 20 62 79 20 74  interpreted by t
1cc0: 68 65 20 53 51 4c 69 74 65 20 63 6f 72 65 2e 0a  he SQLite core..
1cd0: 3c 2f 70 3e 0a 0a 3c 70 3e 0a 54 68 65 20 66 6f  </p>..<p>.The fo
1ce0: 6c 6c 6f 77 69 6e 67 20 71 75 65 72 79 20 70 61  llowing query pa
1cf0: 72 61 6d 65 74 65 72 73 20 61 72 65 20 72 65 63  rameters are rec
1d00: 6f 67 6e 69 7a 65 64 20 62 79 20 53 51 4c 69 74  ognized by SQLit
1d10: 65 20 61 73 20 6f 66 20 76 65 72 73 69 6f 6e 20  e as of version 
1d20: 33 2e 37 2e 37 2e 0a 4f 74 68 65 72 20 71 75 65  3.7.7..Other que
1d30: 72 79 20 70 61 72 61 6d 65 74 65 72 73 20 6d 69  ry parameters mi
1d40: 67 68 74 20 62 65 20 61 64 64 65 64 20 74 6f 20  ght be added to 
1d50: 74 68 69 73 20 73 65 74 20 69 6e 20 66 75 74 75  this set in futu
1d60: 72 65 20 72 65 6c 65 61 73 65 73 2e 0a 3c 2f 70  re releases..</p
1d70: 3e 0a 0a 3c 64 6c 3e 0a 3c 64 74 3e 3c 62 3e 76  >..<dl>.<dt><b>v
1d80: 66 73 3d 3c 2f 62 3e 3c 69 3e 4e 41 4d 45 3c 2f  fs=</b><i>NAME</
1d90: 69 3e 3c 2f 64 74 3e 0a 3c 64 64 3e 3c 70 3e 5e  i></dt>.<dd><p>^
1da0: 54 68 69 73 20 71 75 65 72 79 20 70 61 72 61 6d  This query param
1db0: 65 74 65 72 20 63 61 73 65 73 20 74 68 65 20 64  eter cases the d
1dc0: 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69  atabase connecti
1dd0: 6f 6e 20 74 6f 20 62 65 20 6f 70 65 6e 65 64 0a  on to be opened.
1de0: 75 73 69 6e 67 20 74 68 65 20 5b 56 46 53 5d 20  using the [VFS] 
1df0: 63 61 6c 6c 65 64 20 3c 69 3e 4e 41 4d 45 3c 2f  called <i>NAME</
1e00: 69 3e 2e 0a 5e 54 68 65 20 6f 70 65 6e 20 61 74  i>..^The open at
1e10: 74 65 6d 70 74 20 66 61 69 6c 73 20 69 66 20 3c  tempt fails if <
1e20: 69 3e 4e 41 4d 45 3c 2f 69 3e 20 69 73 20 6e 6f  i>NAME</i> is no
1e30: 74 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20  t the name of a 
1e40: 5b 56 46 53 5d 20 74 68 61 74 0a 69 73 20 62 75  [VFS] that.is bu
1e50: 69 6c 74 20 69 6e 74 6f 20 53 51 4c 69 74 65 20  ilt into SQLite 
1e60: 6f 72 20 74 68 61 74 20 68 61 73 20 62 65 65 6e  or that has been
1e70: 20 70 72 65 76 69 6f 75 73 6c 79 20 72 65 67 69   previously regi
1e80: 73 74 65 72 65 64 20 75 73 69 6e 67 0a 5b 73 71  stered using.[sq
1e90: 6c 69 74 65 33 5f 76 66 73 5f 72 65 67 69 73 74  lite3_vfs_regist
1ea0: 65 72 28 29 5d 2e 3c 2f 64 64 3e 0a 0a 3c 64 74  er()].</dd>..<dt
1eb0: 3e 3c 62 3e 6d 6f 64 65 3d 72 6f 3c 62 72 3e 6d  ><b>mode=ro<br>m
1ec0: 6f 64 65 3d 72 77 3c 62 72 3e 6d 6f 64 65 3d 72  ode=rw<br>mode=r
1ed0: 77 63 3c 2f 62 3e 3c 2f 64 74 3e 0a 3c 64 64 3e  wc</b></dt>.<dd>
1ee0: 3c 70 3e 5e 54 68 65 73 65 20 71 75 65 72 79 20  <p>^These query 
1ef0: 70 61 72 61 6d 65 74 65 72 73 20 64 65 74 65 72  parameters deter
1f00: 6d 69 6e 65 20 69 66 20 74 68 65 20 6e 65 77 20  mine if the new 
1f10: 64 61 74 61 62 61 73 65 20 69 73 20 6f 70 65 6e  database is open
1f20: 65 64 0a 72 65 61 64 2d 6f 6e 6c 79 2c 20 72 65  ed.read-only, re
1f30: 61 64 2d 77 72 69 74 65 2c 20 6f 72 20 72 65 61  ad-write, or rea
1f40: 64 2d 77 72 69 74 65 20 61 6e 64 20 63 72 65 61  d-write and crea
1f50: 74 65 64 20 69 66 20 69 74 20 64 6f 65 73 20 6e  ted if it does n
1f60: 6f 74 20 65 78 69 73 74 2c 0a 72 65 73 70 65 63  ot exist,.respec
1f70: 74 69 76 65 6c 79 2e 0a 3c 2f 64 64 3e 0a 0a 3c  tively..</dd>..<
1f80: 64 74 3e 3c 62 3e 63 61 63 68 65 3d 73 68 61 72  dt><b>cache=shar
1f90: 65 64 3c 62 72 3e 63 61 63 68 65 3d 70 72 69 76  ed<br>cache=priv
1fa0: 61 74 65 3c 2f 62 3e 3c 2f 64 74 3e 0a 3c 64 64  ate</b></dt>.<dd
1fb0: 3e 3c 70 3e 5e 54 68 65 73 65 20 71 75 65 72 79  ><p>^These query
1fc0: 20 70 61 72 61 6d 65 74 65 72 73 20 64 65 74 65   parameters dete
1fd0: 72 6d 69 6e 65 20 69 66 20 74 68 65 20 6e 65 77  rmine if the new
1fe0: 20 64 61 74 61 62 61 73 65 20 69 73 20 6f 70 65   database is ope
1ff0: 6e 65 64 0a 75 73 69 6e 67 20 5b 73 68 61 72 65  ned.using [share
2000: 64 20 63 61 63 68 65 20 6d 6f 64 65 5d 20 6f 72  d cache mode] or
2010: 20 77 69 74 68 20 61 20 70 72 69 76 61 74 65 20   with a private 
2020: 63 61 63 68 65 2c 20 72 65 73 70 65 63 74 69 76  cache, respectiv
2030: 65 6c 79 2e 0a 3c 2f 64 64 3e 0a 3c 2f 64 6c 3e  ely..</dd>.</dl>
2040: 0a 0a 3c 68 31 3e 34 2e 30 20 53 65 65 20 41 6c  ..<h1>4.0 See Al
2050: 73 6f 3c 2f 68 31 3e 0a 0a 3c 75 6c 3e 0a 3c 6c  so</h1>..<ul>.<l
2060: 69 3e 20 5b 55 52 49 20 66 69 6c 65 6e 61 6d 65  i> [URI filename
2070: 73 20 69 6e 20 73 71 6c 69 74 65 33 5f 6f 70 65  s in sqlite3_ope
2080: 6e 28 29 5d 0a 3c 6c 69 3e 20 5b 55 52 49 20 66  n()].<li> [URI f
2090: 69 6c 65 6e 61 6d 65 20 65 78 61 6d 70 6c 65 73  ilename examples
20a0: 5d 0a 3c 2f 75 6c 3e 0a                          ].</ul>.