What is the exact sequence of calls?

If you call sqlite3_column_text() on a blob value, the new type will be text 
and a subsequent call to sqlite_column_text16() must by definition perform 
transcoding.

-----Urspr?ngliche Nachricht-----
Von: sqlite-users-bounces at mailinglists.sqlite.org 
[mailto:sqlite-users-bounces at mailinglists.sqlite.org] Im Auftrag von Michael 
Kaufmann
Gesendet: Donnerstag, 17. Dezember 2015 10:41
An: sqlite-users at mailinglists.sqlite.org
Betreff: [sqlite] Missing documentation about BLOB encoding conversions

Hi,

I expected that BLOB data is returned unchanged by sqlite3_column_blob(), 
sqlite3_column_text() and sqlite3_column_text16(). The documentation at 
https://www.sqlite.org/c3ref/column_blob.html says: "Type conversions and 
pointer invalidations might occur in the following cases: ... The initial 
content is a BLOB and sqlite3_column_text() or
sqlite3_column_text16() is called. A zero-terminator might need to be added to 
the string."

I have found out that SQLite does more than just adding a zero terminator. It 
seems that BLOBs are converted from UTF-8 to UTF-16 when 
sqlite3_column_text16() is called.

This is quite unexpected, and it would be nice if the rules for BLOB encodings 
and BLOB encoding conversions were pointed out in the documentation.

Regards,
Michael

_______________________________________________
sqlite-users mailing list
sqlite-users at mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


___________________________________________
 Gunter Hick
Software Engineer
Scientific Games International GmbH
FN 157284 a, HG Wien
Klitschgasse 2-4, A-1130 Vienna, Austria
Tel: +43 1 80100 0
E-Mail: hick at scigames.at

This communication (including any attachments) is intended for the use of the 
intended recipient(s) only and may contain information that is confidential, 
privileged or legally protected. Any unauthorized use or dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please immediately notify the sender by return e-mail message and 
delete all copies of the original communication. Thank you for your cooperation.


Reply via email to