Are MATERIALIZED and RETURNING keywords?
(1) By little-brother on 2021-03-15 09:44:50 [source]
They are not in keyword list and the sqlite3_keyword_name() doesn't enumerate them. Is it ok?
In the interest of not breaking backward compatibility, (which is a high priority for the SQLite project), they are treated as keywords only when they appear in certain positions within submitted SQL as shown in the syntax diagrams. You might notice that use of an ordinary identifier in the RETURNING or WITH clauses would be nonsensical and rejected as illegal syntax. Hence, this context-dependent-keyword approach introduces neither ambiguity nor inability to parse older code that may have used those words as identifiers.
This same approach is used for a few other cases.