Parse common table expressions.  But do not do anything with them (yet).
Update the parser so that sub-queries and CTEs may have WITH clauses.
Add code to handle non-recursive CTEs in the same way as SQL views.
Fix some memory leaks and crashes that could follow an OOM condition during WITH clause parsing.
Add code to handle recursive CTEs.
Use the user-supplied table name in WITH RECURSIVE tables as the internal
name of the table and the name of the table in VDBE comments.
Disable the flattening optimization if the sub-query is a recursive CTE.
Don't try to verify the schema of transient table (such as generated inside
a WITH clause) when generating code for "IN table" operators.
Return an error if a CTE specifies a different number of columns than its SELECT statement returns.
When resolving names, consider a reference to a recursive CTE column as equivalent to a reference to the outermost name-context. This ensures that correlated sub-queries are correctly identified as such.
Disable automatic indices on recursive CTE references.
Add a header comment to the searchWith() routine.
Further comments on WITH-clause processing routines in select.c.
Fixes so that SQLITE_OMIT_CTE builds work.
Remove an ALWAYS() that is no longer always true.
Merge trunk changes.  Fix a possible NULL-pointer deference in WITH clause
name resolution.
Disable the flattening optimization if the parent query is the recursive part of a recursive CTE and the sub-query is a compound query.
Allow only a single recursive reference in a recursive CTE. Also require that this reference is not part of a sub-query.
Improve the error messages used to report illegal recursive cte references.
Tweaks to error message text.