Hello. In this mail I'd like to point out some minor problems with the SQLite documentation. (By the way, let me thank you for adding named anchors to every heading in the docs so I can link to them easily. A lot of webpages don't do this.)
1. In Compilation Options For SQLite "http://sqlite.org/compile.html", under HAVE_MALLOC_USABLE_SIZE, "Apply systems" is probably a typo for "Apple systems". Please fix it, because it's confusing. If it does not mean Apple systems, then please clarify in the text what it means. 2. In the same document, in chapter 1.7, this sentence is confusing: "Any SQLITE_OMIT_* options which can be used directly with the amalgamation are listed below, however, the warnings in the following paragraph should be noted." The document should either explain which of the omit options can be used with the amalgamation, or explicitly tell that the "http://sqlite.org/howtocompile.html" document (that this sentence links to) tells which options can't be used with the amalgamation. As a fix, I suggest you replace that paragraph and the following one with this. <blockquote><p><i><b>Important Note:</b> The SQLITE_OMIT_* options do not work with the <a href="amalgamation.html">amalgamation</a>. SQLITE_OMIT_* compile-time options only work correctly when SQLite is built from canonical source files.</i></blockquote> <p>If any of these options are defined, then the same set of SQLITE_OMIT_* options must also be defined when using the 'lemon' tool to generate the parse.c file and when compiling the 'mkkeywordhash' tool which generates the keywordhash.h file. Because of this, some of these options may only be used when the library is built from canonical source, not from the amalgamation, nor from the collection of pre-packaged C files provided on the website to build older versions of SQLite for non-Unix like platforms. <a href="http://sqlite.org/howtocompile.html">How To Compile SQLite</a> lists the options that can't be used directly with the amalgamation. 3. There's something of a contradiction between the reference Compilation Options For SQLite "http://sqlite.org/compile.html" and the introductory document How To Compile SQLite "http://sqlite.org/howtocompile.html#cli". The former document says that "All of the SQLITE_OMIT_* options are unsupported". The latter document, which describes the easiest ways to build SQLite, however, says "If these features are not required, then they can be omitted using SQLITE_OMIT_LOAD_EXTENSION compile-time option" without mentioning that the option is unsupported. Either something in the former should claim that the SQLITE_OMIT_LOAD_EXTENSION option is supported as an exception, or the latter document should not mention this option or should mention it only with a note that it's unsupported. Marking this compilation option as supported would be preferable if you take the claims of SQLite Is Self-Contained "http://sqlite.org/selfcontained.html" seriously, since that document says "SQLite is written in ANSI-C and should be easily compiled by any standard C compiler. It makes minimal use of the standard C library". 4. The permuted index "http://www.sqlite.org/draft/sitemap.html#pindex" has several entries starting with "SQLite". Most of those are superfluous, because the whole index is about SQLite documentation only. I think you should remove most of them. Keep "SQLite As An Application File Format", "SQLite Consortium", "SQLite In 5 Minutes Or Less" (unless you add an index entry at "5 Minutes" instead), "SQLite Is Self-Contained", "SQLite Is Serverless", "SQLite Is Transactional". Make sure every entry you remove has an entry elsewhere in the permuted index. ----- The following minor problems with the documentation are repeats from older mails I sent. 5. Something in the documentation should say explicitly that you're not allowed to use parameters (placeholders) in expressions where the expression itself would be stored in the schema. Recent versions of SQLite seem to enforce this in all the cases I've tested, but "http://www.sqlite.org/draft/lang_expr.html#varparam" doesn't mention it. 6. There are some typos on the documentation page for SQLite Result codes "http://sqlite.org/rescode.html". Under the heading "(1038) SQLITE_CANTOPEN_CONVPATH", the paragraph talks about the error code "SQLITE_CANTOPEN_SEEK". That constant does not exist. The text probably means "SQLITE_CANTOPEN_CONVPATH" instead. Similarly, under the heading "(6410) SQLITE_IOERR_GETTEMPPATH" and "(6666) SQLITE_IOERR_CONVPATH", the text mentions "SQLITE_IOERR_SEEK" which is an existing error code, but is probably not the one meant. The meaning of several error codes are also not documented on this page, such as those of SQLITE_ABORT, SQLITE_CANTOPEN, SQLITE_EMPTY, SQLITE_FORMAT, SQLITE_IOERR, SQLITE_MISMATCH, SQLITE_IOERR_READ, SQLITE_IOERR_WRITE, etc. This may not be a bug. The sqlite3.h header file has short comments next to each primary error code at least. 7. The Indexes On Expressions "http://sqlite.org/draft/expridx.html" document should be linked from "http://sqlite.org/draft/docs.html", probably from under the heading "SQLite Features and Extensions". -- Ambrus