*** DRAFT ***

SQLite Requirement Matrix Details
vfs.html

Index Summary Markup Original


R-36859-05333-15357-38800-46653-01342-64657-49103 tcl slt th3 src

SQLite guarantees that the zFilename parameter to xOpen is either a NULL pointer or string obtained from xFullPathname() with an optional suffix added.

th3/cov1/pager25.test:26   th3/th3testvfs.c:210   th3/th3testvfs.c:464

/* IMP: R-36859-05333 */
# EVIDENCE-OF: R-36859-05333 SQLite guarantees that the zFilename
# parameter to xOpen is either a NULL pointer or string obtained from
# xFullPathname() with an optional suffix added.

R-52502-32617-59424-01442-19182-34788-24122-07279 tcl slt th3 src

If a suffix is added to the zFilename parameter, it will consist of a single "-" character followed by no more than 11 alphanumeric and/or "-" characters.

th3/th3testvfs.c:231

/* IMP: R-52502-32617 */
# EVIDENCE-OF: R-52502-32617 If a suffix is added to the zFilename
# parameter, it will consist of a single "-" character followed by no
# more than 11 alphanumeric and/or "-" characters.

R-49080-64834-49066-11889-43527-52313-57456-24143 tcl slt th3 src

SQLite further guarantees that the string will be valid and unchanged until xClose() is called.

th3/th3testvfs.c:1257

/* IMP: R-49080-64834 */
# EVIDENCE-OF: R-49080-64834 SQLite further guarantees that the string
# will be valid and unchanged until xClose() is called.

R-16263-09274-39662-25002-11330-48229-57034-52902 tcl slt th3 src

Whenever the xFilename parameter is NULL it will also be the case that the flags parameter will include SQLITE_OPEN_DELETEONCLOSE.

th3/th3testvfs.c:511

/* IMP: R-16263-09274 */
# EVIDENCE-OF: R-16263-09274 Whenever the xFilename parameter is NULL it
# will also be the case that the flags parameter will include
# SQLITE_OPEN_DELETEONCLOSE.

R-45262-28997-10763-36487-00906-22281-55952-21771 tcl slt th3 src

SQLite will also add one of the following flags to the xOpen() call, depending on the object being opened:

th3/th3testvfs.c:500

/* IMP: R-45262-28997 */
# EVIDENCE-OF: R-45262-28997 SQLite will also add one of the following
# flags to the xOpen() call, depending on the object being opened:
# SQLITE_OPEN_MAIN_DB SQLITE_OPEN_MAIN_JOURNAL SQLITE_OPEN_TEMP_DB
# SQLITE_OPEN_TEMP_JOURNAL SQLITE_OPEN_TRANSIENT_DB
# SQLITE_OPEN_SUBJOURNAL SQLITE_OPEN_SUPER_JOURNAL SQLITE_OPEN_WAL

R-62406-19374-15611-19215-61037-24367-51028-27326 tcl slt th3 src

The SQLITE_OPEN_DELETEONCLOSE will be set for TEMP databases and their journals, transient databases, and subjournals.

th3/th3testvfs.c:491

/* IMP: R-62406-19374 */
# EVIDENCE-OF: R-62406-19374 The SQLITE_OPEN_DELETEONCLOSE will be set
# for TEMP databases and their journals, transient databases, and
# subjournals.

R-29901-08836-51888-40758-53445-49475-03703-08720 tcl slt th3 src

The SQLITE_OPEN_EXCLUSIVE flag is always used in conjunction with the SQLITE_OPEN_CREATE flag, which are both directly analogous to the O_EXCL and O_CREAT flags of the POSIX open() API.

th3/th3testvfs.c:484

/* IMP: R-29901-08836 */
# EVIDENCE-OF: R-29901-08836 The SQLITE_OPEN_EXCLUSIVE flag is always
# used in conjunction with the SQLITE_OPEN_CREATE flag, which are both
# directly analogous to the O_EXCL and O_CREAT flags of the POSIX open()
# API.

R-32633-52682-08562-36271-43194-24127-51342-52899 tcl slt th3 src

At least szOsFile bytes of memory are allocated by SQLite to hold the sqlite3_file structure passed as the third argument to xOpen.

th3/th3testvfs.c:475

/* IMP: R-32633-52682 */
# EVIDENCE-OF: R-32633-52682 At least szOsFile bytes of memory are
# allocated by SQLite to hold the sqlite3_file structure passed as the
# third argument to xOpen.

R-53478-59161-12237-18673-01094-03147-04077-16034 tcl slt th3 src

The flags argument to xAccess() may be SQLITE_ACCESS_EXISTS to test for the existence of a file, or SQLITE_ACCESS_READWRITE to test whether a file is readable and writable, or SQLITE_ACCESS_READ to test whether a file is at least readable.

th3/th3testvfs.c:685

/* IMP: R-53478-59161 */
# EVIDENCE-OF: R-53478-59161 The flags argument to xAccess() may be
# SQLITE_ACCESS_EXISTS to test for the existence of a file, or
# SQLITE_ACCESS_READWRITE to test whether a file is readable and
# writable, or SQLITE_ACCESS_READ to test whether a file is at least
# readable.

R-61209-06413-51781-11352-22820-24005-55507-30248 tcl slt th3 src

SQLite will always allocate at least mxPathname+1 bytes for the output buffer xFullPathname.

th3/th3testvfs.c:749

/* IMP: R-61209-06413 */
# EVIDENCE-OF: R-61209-06413 SQLite will always allocate at least
# mxPathname+1 bytes for the output buffer xFullPathname.

R-61562-13487-33758-31073-47966-53384-12179-59162 tcl slt th3 src

The xCurrentTime() method returns a Julian Day Number for the current date and time as a floating point value.

th3/th3testvfs.c:923

/* IMP: R-61562-13487 */
# EVIDENCE-OF: R-61562-13487 The xCurrentTime() method returns a Julian
# Day Number for the current date and time as a floating point value.

R-65415-14215-28340-46015-14060-32761-36485-26152 tcl slt th3 src

The xCurrentTimeInt64() method returns, as an integer, the Julian Day Number multiplied by 86400000 (the number of milliseconds in a 24-hour day).

th3/th3testvfs.c:905

/* IMP: R-65415-14215 */
# EVIDENCE-OF: R-65415-14215 The xCurrentTimeInt64() method returns, as
# an integer, the Julian Day Number multiplied by 86400000 (the number
# of milliseconds in a 24-hour day).

R-49045-42493-00753-52815-20675-33627-44655-32339 tcl slt th3 src

SQLite will use the xCurrentTimeInt64() method to get the current date and time if that method is available (if iVersion is 2 or greater and the function pointer is not NULL) and will fall back to xCurrentTime() if xCurrentTimeInt64() is unavailable.

src/os.c:292

/* IMP: R-49045-42493 */
# EVIDENCE-OF: R-49045-42493 SQLite will use the xCurrentTimeInt64()
# method to get the current date and time if that method is available
# (if iVersion is 2 or greater and the function pointer is not NULL) and
# will fall back to xCurrentTime() if xCurrentTimeInt64() is
# unavailable.

R-16960-46772-37295-51769-03234-47143-37776-03273 tcl slt th3 src

The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces are not used by the SQLite core.

/* IMP: R-16960-46772 */
# EVIDENCE-OF: R-16960-46772 The xSetSystemCall(), xGetSystemCall(), and
# xNestSystemCall() interfaces are not used by the SQLite core.