Wiki page
[todolist] by
dan
2013-05-07 14:31:55.
D 2013-05-07T14:31:55.982
L todolist
U dan
W 3148
<ol>
<li> Add support for a SHARD KEY in the table definition. This is passed
down into the storage engine as a hint. The storage engine is free to
ignore the hint.
<li> Add a COVERING clause to CREATE INDEX. The value of the key/value entry
for each index row is the union of the indexed columns and the covering
columns. Short-hand notation "COVERING ALL" generates a covering index.
<li> Send PRAGMA commands into the storage engine as is done with SQLite3.
<li> Forward port all query optimizer enhancements implemented in SQLite3
over the previous year into SQLite4.
<li> Review all other changes made to SQLite over the previous year and
forward port all that seem appropriate.
<li> Use decimal arithmetic everywhere within the code. Avoid the use of
IEEE 754 binary floating point, except for APIs that have "double"
parameters or return values.
<li> Carefully review the entire API and look for other ways to make it
simpler and more robust.
<li> Add an extra "unsigned int flags" parameter to sqlite4_close().
Currently unused. Reserved for future features.
<li> Change the callback of sqlite4_exec() to pass down an array of
sqlite4_value pointers rather than an array of strings.
<li> Change memory allocation routines to be methods of sqlite4_mm instead
of methods of sqlite4_env.
<ol>
<li> sqlite4_mprintf()
<LI> sqlite4_vmprintf()
<li> sqlite4_malloc()
<li> sqlite4_free()
<li> sqlite4_realloc()
</ol>
<li> Provide a new routine: sqlite4_msize().
<li> In sqlite4_prepare(), instead of returning a pointer to the first
character past the end of the parse, return the number of bytes of
SQL text consumed by the parser.
<li> Remove the sqlite4_memory_used and sqlite4_memory_highwater
interfaces. The functionality is subsumed by sqlite4_mm_stat().
<li> Get rid of sqlite4_create_function_v2(). Let there be just a single
interface for creating functions.
<li> Rename some poorly named interfaces:
<ol>
<li> sqlite4_user_data -> sqlite4_context_appdata
<li> sqlite4_get_auxdata -> sqlite4_auxdata_fetch
<li> sqlite4_set_auxdata -> sqlite4_auxdata_store
<li> sqlite4_get_autocommit -> sqlite4_db_transaction_status
<li> sqlite4_sql -> sqlite4_stmt_sql
</ol>
Maybe suggest different alternative names
<li> For routines like sqlite4_column_text, sqlite4_value_text(),
sqlite4_column_blob(), sqlite4_value_blob(), and so forth, add an
extra OUT parameter which returns the number of bytes in the string
or blob.
<li> Change the type of text values in places like "sqlite4_column_text()"
to "char*" instead of "unsigned char*".
<li> sqlite3_set_authorizer() needs to be two routines: sqlite4_authorizer_push()
and sqlite4_authorizer_pop() and there needs to be a destructor.
<li> Add a new extended error code for every error where doing so makes
any sense at all.
</ol>
Z bc9eaa13ef98d482b4b67c328ad797de