> Le 21 juil. 2017 à 18:50, Richard Hipp <d...@sqlite.org> a écrit : > > On 7/21/17, Gwendal Roué <gwendal.r...@gmail.com> wrote: >> >> First, this strcmp() give a lot of work to languages that wrap SQLite and >> lack support for "static strings". > > But sqlite3_result_pointer() and sqlite3_bind_pointer() are not > invoked from those languages. The _pointer() routines are invoked > from C, and C does easily support string literals that are static > strings. > > A C-language wrapper around sqlite3_result_pointer() and > sqlite3_bind_pointer() that interfaces to the non-static-string > language can simply insert the required static string. > > We do not want the static string to be a parameter to a generic > higher-level interface. That defeats the purpose of the static > string. Remember, the string is a "pointer type". We do not want to > support interfaces that provide access to pointers of any type the > user wants. We are not trying to recreate C++ templates or other > interfaces that work with arbitrary types. Each use of _pointer() is > intended to be used for a single narrowly defined purpose.
If I understand you correctly, no wrapper library in a foreign language should ever claim "New! Support for pointer functions introduced in SQLite 3.20.0". Instead, it could claim: "New! Support for SQLite 3.32.0, including the new FTS6 full-text engine". The support for this hypothetical FTS6 engine would imply the use of pointer functions by the wrapper, but not by its clients. FTS6 would have its own "narrowly defined purposes" for function pointers. I see the point, and the fact that you don't want "to support interfaces that provide access to pointers of any type the user wants". I don't want to discuss that. Still, I feel that static strings are a weird way to define keys. For example, value subtypes in SQLite have the same requirement of needing "unique subtype identifiers", and those subtypes are, today, ints. Not strings compared with strcmp(). Is there anything special with pointer functions that have them require something different than ints for identifying pointers? Gwendal Roué _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users