*** DRAFT ***

SQLite Requirement Matrix Details
uri.html

Index Summary Markup Original


R-02982-34736-45462-50381-10151-04149-50124-39087 tcl slt th3 src

In order to maintain full backwards compatibility for legacy applications, the URI filename capability is disabled by default.

src/global.c:156

/* IMP: R-02982-34736 */
# EVIDENCE-OF: R-02982-34736 In order to maintain full backwards
# compatibility for legacy applications, the URI filename capability is
# disabled by default.

R-38799-08373-51877-49685-25873-19436-11233-20221 tcl slt th3 src

URI filenames can be enabled or disabled using the SQLITE_USE_URI=1 or SQLITE_USE_URI=0 compile-time options.

src/global.c:160

/* IMP: R-38799-08373 */
# EVIDENCE-OF: R-38799-08373 URI filenames can be enabled or disabled
# using the SQLITE_USE_URI=1 or SQLITE_USE_URI=0 compile-time options.

R-55548-33817-29284-24020-20403-44127-42701-15933 tcl slt th3 src

The compile-time setting for URI filenames can be changed at start-time using the sqlite3_config(SQLITE_CONFIG_URI,1) or sqlite3_config(SQLITE_CONFIG_URI,0) configuration calls.

src/main.c:632   th3/th3main.c:969

/* IMP: R-55548-33817 */
# EVIDENCE-OF: R-55548-33817 The compile-time setting for URI filenames
# can be changed at start-time using the
# sqlite3_config(SQLITE_CONFIG_URI,1) or
# sqlite3_config(SQLITE_CONFIG_URI,0) configuration calls.

R-50779-31451-02741-56798-14558-26402-32929-36548 tcl slt th3 src

Regardless of the compile-time or start-time settings, URI filenames can be enabled for individual database connections by including the SQLITE_OPEN_URI bit in the set of bits passed as the F parameter to sqlite3_open_v2(N,P,F,V).

th3/th3script.c:986   th3/th3scriptDemo.c:179

/* IMP: R-50779-31451 */
# EVIDENCE-OF: R-50779-31451 Regardless of the compile-time or
# start-time settings, URI filenames can be enabled for individual
# database connections by including the SQLITE_OPEN_URI bit in the set
# of bits passed as the F parameter to sqlite3_open_v2(N,P,F,V).

R-57313-56280-52259-04296-10229-37412-19300-33360 tcl slt th3 src

If URI filenames are recognized when the database connection is originally opened, then URI filenames will also be recognized on ATTACH statements.

/* IMP: R-57313-56280 */
# EVIDENCE-OF: R-57313-56280 If URI filenames are recognized when the
# database connection is originally opened, then URI filenames will also
# be recognized on ATTACH statements.

R-37099-37053-38363-03939-37447-24344-49731-34436 tcl slt th3 src

Similarly, if URI filenames are not recognized when the database connection is first opened, they will not be recognized by ATTACH.

/* IMP: R-37099-37053 */
# EVIDENCE-OF: R-37099-37053 Similarly, if URI filenames are not
# recognized when the database connection is first opened, they will not
# be recognized by ATTACH.

R-57884-37496-29952-23489-26945-21299-05103-05410 tcl slt th3 src

The scheme of the URI must be "file:". Any other scheme results in the input being treated as an ordinary filename.

src/main.c:2944

/* IMP: R-57884-37496 */
# EVIDENCE-OF: R-57884-37496 The scheme of the URI must be "file:". Any
# other scheme results in the input being treated as an ordinary
# filename.

R-24784-09209-65529-37322-41810-39114-37590-65280 tcl slt th3 src

The authority may be omitted, may be blank, or may be "localhost". Any other authority results in an error.

/* IMP: R-24784-09209 */
# EVIDENCE-OF: R-24784-09209 The authority may be omitted, may be blank,
# or may be "localhost". Any other authority results in an error.

R-23702-41282-42393-06958-42086-21645-30380-61682 tcl slt th3 src

The path is optional if the authority is present.

/* IMP: R-23702-41282 */
# EVIDENCE-OF: R-23702-41282 The path is optional if the authority is
# present.

R-44289-63209-61315-10942-18523-19279-36717-48244 tcl slt th3 src

If the authority is omitted then the path is required.

/* IMP: R-44289-63209 */
# EVIDENCE-OF: R-44289-63209 If the authority is omitted then the path
# is required.

R-34023-52929-12261-02515-22772-45177-48508-47679 tcl slt th3 src

The query string is optional.

/* IMP: R-34023-52929 */
# EVIDENCE-OF: R-34023-52929 The query string is optional.

R-38577-07276-49824-55947-21917-12317-50155-56118 tcl slt th3 src

If the query string is present, then all query parameters are passed through into the xOpen method of the underlying VFS.

/* IMP: R-38577-07276 */
# EVIDENCE-OF: R-38577-07276 If the query string is present, then all
# query parameters are passed through into the xOpen method of the
# underlying VFS.

R-51132-22354-55296-53634-47929-60689-49370-19301 tcl slt th3 src

The fragment is optional. If present, it is ignored.

/* IMP: R-51132-22354 */
# EVIDENCE-OF: R-51132-22354 The fragment is optional. If present, it is
# ignored.

R-51332-60960-52674-22540-45151-35167-25354-18137 tcl slt th3 src

Zero or more escape sequences of the form "%HH" (where H represents any hexadecimal digit) can occur in the path, query string, or fragment.

/* IMP: R-51332-60960 */
# EVIDENCE-OF: R-51332-60960 Zero or more escape sequences of the form
# "%HH" (where H represents any hexadecimal digit) can occur in the
# path, query string, or fragment.

R-48245-15045-20041-46563-30518-58270-45669-62749 tcl slt th3 src

A filename that is not a well-formed URI is interpreted as an ordinary filename.

/* IMP: R-48245-15045 */
# EVIDENCE-OF: R-48245-15045 A filename that is not a well-formed URI is
# interpreted as an ordinary filename.

R-26031-07851-20661-23903-48754-42738-42414-42677 tcl slt th3 src

URIs are processed as UTF8 text.

/* IMP: R-26031-07851 */
# EVIDENCE-OF: R-26031-07851 URIs are processed as UTF8 text.

R-39448-56079-43024-42660-00434-04264-13777-54050 tcl slt th3 src

The filename argument sqlite3_open16() is converted from UTF16 native byte order into UTF8 prior to processing.

/* IMP: R-39448-56079 */
# EVIDENCE-OF: R-39448-56079 The filename argument sqlite3_open16() is
# converted from UTF16 native byte order into UTF8 prior to processing.

R-21426-10262-16472-16411-19241-49098-31695-43338 tcl slt th3 src

The path component of the URI specifies the disk file that is the SQLite database to be opened.

/* IMP: R-21426-10262 */
# EVIDENCE-OF: R-21426-10262 The path component of the URI specifies the
# disk file that is the SQLite database to be opened.

R-31883-14373-53297-17557-08649-10879-14648-40339 tcl slt th3 src

If the path component is omitted, then the database is stored in a temporary file that will be automatically deleted when the database connection closes.

/* IMP: R-31883-14373 */
# EVIDENCE-OF: R-31883-14373 If the path component is omitted, then the
# database is stored in a temporary file that will be automatically
# deleted when the database connection closes.

R-26810-60950-31083-35442-30714-31340-57644-05934 tcl slt th3 src

If the authority section is present, then the path is always an absolute pathname.

/* IMP: R-26810-60950 */
# EVIDENCE-OF: R-26810-60950 If the authority section is present, then
# the path is always an absolute pathname.

R-53994-49363-33213-19869-13324-28404-40753-33810 tcl slt th3 src

If the authority section is omitted, then the path is an absolute pathname if it begins with the "/" character (ASCII code 0x2f) and is a relative pathname otherwise.

/* IMP: R-53994-49363 */
# EVIDENCE-OF: R-53994-49363 If the authority section is omitted, then
# the path is an absolute pathname if it begins with the "/" character
# (ASCII code 0x2f) and is a relative pathname otherwise.

R-31984-08010-07046-54406-16085-56792-07633-10679 tcl slt th3 src

On windows, if the absolute path begins with "/X:/" where X is any single ASCII alphabetic character ("a" through "z" or "A" through "Z") then the "X:" is understood to be the drive letter of the volume containing the file, not the toplevel directory.

/* IMP: R-31984-08010 */
# EVIDENCE-OF: R-31984-08010 On windows, if the absolute path begins
# with "/X:/" where X is any single ASCII alphabetic character ("a"
# through "z" or "A" through "Z") then the "X:" is understood to be the
# drive letter of the volume containing the file, not the toplevel
# directory.

R-52830-19955-18632-16869-37447-04753-28772-23279 tcl slt th3 src

A URI filename can optionally be followed by a query string.

/* IMP: R-52830-19955 */
# EVIDENCE-OF: R-52830-19955 A URI filename can optionally be followed
# by a query string.

R-12831-20703-43607-22542-46423-65070-13678-01417 tcl slt th3 src

The query string consists of text following the first "?" character but excluding the optional fragment that begins with "#".

/* IMP: R-12831-20703 */
# EVIDENCE-OF: R-12831-20703 The query string consists of text following
# the first "?" character but excluding the optional fragment that
# begins with "#".

R-47688-18802-24758-22650-17797-24943-61288-58043 tcl slt th3 src

The query string is divided into key/value pairs.

/* IMP: R-47688-18802 */
# EVIDENCE-OF: R-47688-18802 The query string is divided into key/value
# pairs.

R-60324-39271-63103-21591-25385-29112-09183-41163 tcl slt th3 src

Key/value pairs are separated by a single "&" character.

/* IMP: R-60324-39271 */
# EVIDENCE-OF: R-60324-39271 Key/value pairs are separated by a single
# "&" character.

R-00013-61831-22423-62410-56475-12017-42000-15640 tcl slt th3 src

The key comes first and is separated from the value by a single "=" character.

/* IMP: R-00013-61831 */
# EVIDENCE-OF: R-00013-61831 The key comes first and is separated from
# the value by a single "=" character.

R-44270-63173-43365-51432-46246-26535-62506-06270 tcl slt th3 src

Both key and value may contain %HH escape sequences.

/* IMP: R-44270-63173 */
# EVIDENCE-OF: R-44270-63173 Both key and value may contain %HH escape
# sequences.

R-29753-05667-59108-06137-58483-55469-25582-30166 tcl slt th3 src

The text of query parameters is appended to the filename argument of the xOpen method of the VFS.

/* IMP: R-29753-05667 */
# EVIDENCE-OF: R-29753-05667 The text of query parameters is appended to
# the filename argument of the xOpen method of the VFS.

R-37783-42715-27194-59163-53660-14941-49401-50024 tcl slt th3 src

Any %HH escape sequences in the query parameters are resolved prior to being appended to the xOpen filename.

/* IMP: R-37783-42715 */
# EVIDENCE-OF: R-37783-42715 Any %HH escape sequences in the query
# parameters are resolved prior to being appended to the xOpen filename.

R-04239-46396-01814-35437-09500-15330-29656-29388 tcl slt th3 src

A single zero-byte separates the xOpen filename argument from the key of the first query parameters, each key and value, and each subsequent key from the prior value.

/* IMP: R-04239-46396 */
# EVIDENCE-OF: R-04239-46396 A single zero-byte separates the xOpen
# filename argument from the key of the first query parameters, each key
# and value, and each subsequent key from the prior value.

R-50436-30597-52741-48231-49256-06993-48572-34850 tcl slt th3 src

The list of query parameters appended to the xOpen filename is terminated by a single zero-length key.

/* IMP: R-50436-30597 */
# EVIDENCE-OF: R-50436-30597 The list of query parameters appended to
# the xOpen filename is terminated by a single zero-length key.

R-60626-59740-27448-56337-63939-00650-38940-26585 tcl slt th3 src

All query parameters are always passed through into the xOpen method of the VFS even if they are previously read and interpreted by the SQLite core.

/* IMP: R-60626-59740 */
# EVIDENCE-OF: R-60626-59740 All query parameters are always passed
# through into the xOpen method of the VFS even if they are previously
# read and interpreted by the SQLite core.

R-06268-22533-04308-14386-21741-11230-29946-31155 tcl slt th3 src

The cache query parameter determines if the new database is opened using shared cache mode or with a private cache.

/* IMP: R-06268-22533 */
# EVIDENCE-OF: R-06268-22533 The cache query parameter determines if the
# new database is opened using shared cache mode or with a private
# cache.

R-38650-02327-39862-58764-51816-33051-52085-34596 tcl slt th3 src

The immutable query parameter is a boolean that signals to SQLite that the underlying database file is held on read-only media and cannot be modified, even by another process with elevated privileges.

/* IMP: R-38650-02327 */
# EVIDENCE-OF: R-38650-02327 The immutable query parameter is a boolean
# that signals to SQLite that the underlying database file is held on
# read-only media and cannot be modified, even by another process with
# elevated privileges.

R-01750-40559-52065-12470-48383-41757-44468-25443 tcl slt th3 src

SQLite always opens immutable database files read-only and it skips all file locking and change detection on immutable database files.

/* IMP: R-01750-40559 */
# EVIDENCE-OF: R-01750-40559 SQLite always opens immutable database
# files read-only and it skips all file locking and change detection on
# immutable database files.

R-24023-61156-56094-16008-29634-01440-59018-40109 tcl slt th3 src

The mode query parameter determines if the new database is opened read-only, read-write, read-write and created if it does not exist, or that the database is a pure in-memory database that never interacts with disk, respectively.

/* IMP: R-24023-61156 */
# EVIDENCE-OF: R-24023-61156 The mode query parameter determines if the
# new database is opened read-only, read-write, read-write and created
# if it does not exist, or that the database is a pure in-memory
# database that never interacts with disk, respectively.

R-40233-33496-43567-58551-03815-59938-27256-59385 tcl slt th3 src

The nolock query parameter is a boolean that disables all calls to the xLock, xUnlock, and xCheckReservedLock methods of the VFS when true.

/* IMP: R-40233-33496 */
# EVIDENCE-OF: R-40233-33496 The nolock query parameter is a boolean
# that disables all calls to the xLock, xUnlock, and xCheckReservedLock
# methods of the VFS when true.

R-15825-58263-40535-43132-40682-17971-55847-38484 tcl slt th3 src

The psow query parameter overrides the powersafe overwrite property of the database file being opened.

/* IMP: R-15825-58263 */
# EVIDENCE-OF: R-15825-58263 The psow query parameter overrides the
# powersafe overwrite property of the database file being opened.

R-18043-40700-22598-52813-64197-51522-53393-10304 tcl slt th3 src

The psow query parameter works with the default windows and unix VFSes but might be a no-op for other proprietary or non-standard VFSes.

/* IMP: R-18043-40700 */
# EVIDENCE-OF: R-18043-40700 The psow query parameter works with the
# default windows and unix VFSes but might be a no-op for other
# proprietary or non-standard VFSes.

R-21827-30701-03148-53639-55860-16366-16292-16032 tcl slt th3 src

The vfs query parameter causes the database connection to be opened using the VFS called NAME.

/* IMP: R-21827-30701 */
# EVIDENCE-OF: R-21827-30701 The vfs query parameter causes the database
# connection to be opened using the VFS called NAME.

R-34706-05629-19212-06603-14274-22035-31068-37221 tcl slt th3 src

The open attempt fails if NAME is not the name of a VFS that is built into SQLite or that has been previously registered using sqlite3_vfs_register().

/* IMP: R-34706-05629 */
# EVIDENCE-OF: R-34706-05629 The open attempt fails if NAME is not the
# name of a VFS that is built into SQLite or that has been previously
# registered using sqlite3_vfs_register().