Regarding the new pointer value/result pseudo-null API:

void *sqlite3_value_pointer(sqlite3_value*);
void sqlite3_result_pointer(sqlite3_context*, void*);

Assuming sqlite3_value_type() returns SQLITE_NULL for these pseudo-nulls,
and thinking ahead, an additional pointer type API pair would be natural
here:

int sqlite3_result_pointer_type(sqlite3_context*, void*); could receive a
matching user defined pointer_type from a second form
sqlite3_result_pointer call:

void sqlite3_result_pointer(sqlite3_context*, void*,int pointer_type);

One feature of passing pointers as SQLITE_BLOB is that byte size can be
inspected to somewhat validate pointer type. For wider applicability of the
new value_pointer's, adding pointer_type information to the API would be
very helpful.  For one, I could upgrade many value_blob pointers to
value_pointer right away.

Here is a proposal about how int sqlite3_value_pointer_type(sqlite3_value*)
could work:

Regular NULL would return -1 or other suitable sentinel while value_pointer
NULL set by the first form sqlite3_result_pointer(C,P) would return
value_pointer_type 0.  Then, value_pointer NULL set by the second form
sqlite3_result_pointer(C,P,T) would return value_pointer_type according to
the third parameter, int pointer_type T.

In addition to conveying a user defined type, this arrangement would also
support unambiguous conveyance of a null value_pointer.

A fuller implementation of value_pointer pseudo-nulls along these lines
would be most welcome and  immediately applied to testing cycles of my
projects under 3.20.0.

Peter


On Thu, Jul 13, 2017 at 11:49 AM, Richard Hipp <d...@sqlite.org> wrote:

> The 3.20.0 release of SQLite is expected in about a week.  Please
> report any issues that you have with the beta as soon as possible.
>
> Code is available in the "prerelease snapshot" at
> https://sqlite.org/download.html
>
> An overview of changes is at https://sqlite.org/draft/
> releaselog/3_20_0.html
>
> You can send issues to this email list, or directly to me.
>
> --
> D. Richard Hipp
> d...@sqlite.org
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to