On Sun, Jan 21, 2018 at 7:42 AM, Clemens Ladisch <clem...@ladisch.de> wrote:
> J Decker wrote: > > insert into test (a,b) values ( ?,? ) > > bind 'hello\0world.' 'te\0st' > > <http://www.sqlite.org/c3ref/bind_blob.html> says: > | If a non-negative fourth parameter is provided to sqlite3_bind_text() > | or sqlite3_bind_text16() or sqlite3_bind_text64() then that parameter > | must be the byte offset where the NUL terminator would occur assuming > | the string were NUL terminated. > > *If any NUL characters occur at byte| offsets less than the value of the > fourth parameter then the resulting| string value will contain embedded > NULs.* So it's best used as data, and not keys and I see unless custom aggregate()s or function()s ... > The result of expressions > | involving strings with embedded NULs is undefined. > > A JSON dump which would be an addition to not break other compatibility could store the correct value.... the .dump works from a sqlite_value which has text() and bytes() which would encode in json with '\0' since it needs \, 0, " (n, f, t, b, u (for very high characters) ) etc all escaped... then it's also reading from a different command pipe (importing a file) As a side question insert into ? (?,?) values(?,?) with bind ( 'ta\0le', '\0','\1', 'hello\0','\0world' ) bad things happen :) but what if I ? > Regards, > Clemens > _______________________________________________ > 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