unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Johannes Grødem" <fjas@grdm.no>
To: 54591@debbugs.gnu.org
Subject: bug#54591: 29.0.50; sqlite-select returns blob result as multibyte string
Date: Sat, 02 Apr 2022 08:33:55 +0200	[thread overview]
Message-ID: <87ilrsro30.fsf@flokut.localdomain> (raw)
In-Reply-To: <C353DC4E-D4B0-4A0C-B4A9-E7A942B37A88@gmail.com>

Eli Zaretskii <eliz@gnu.org> writes:
> This would be leaving the responsibility for the issue to the caller,
> I think.

I think that makes sense.

> Does SQLite TEXT allow the superset of UTF-8 encoding Emacs uses
> internally to store characters that are not in Unicode? If it does, we
> could indeed assume that any BLOB is binary data and not attempt
> encoding/decoding it.

SQLite documentation says this...

  TEXT. The value is a text string, stored using the database encoding
  (UTF-8, UTF-16BE or UTF-16LE).

...but it's still possible to store byte sequences that are not legal
Unicode in there. This breaks the mentioned Python SQLite3 API, and
possibly others, so maybe not great if someone wants to read tables from
something else than Emacs.

Python-SQLite3 will attempt to decode it as UTF8 unless cast as a blob:

  SELECT CAST(bad_text AS blob) FROM foo

(It works with the sqlite3 CLI, though.)

>> Couldn't the Emacs interface just use vectors of byte values for BLOBs
>> both ways?
> Why?  Unibyte strings are easier and more flexible in Emacs.

Sorry, just my lack of knowledge of Emacs types. Unibyte strings seem
fine for this.






  reply	other threads:[~2022-04-02  6:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-27  5:49 bug#54591: 29.0.50; sqlite-select returns blob result as multibyte string Yuan Fu
2022-03-27  6:40 ` Eli Zaretskii
2022-03-27 12:04   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-03-27 14:56     ` Eli Zaretskii
2022-03-29 14:38   ` Lars Ingebrigtsen
2022-03-29 15:38     ` Eli Zaretskii
2022-03-31 11:54       ` Lars Ingebrigtsen
2022-04-01 18:34         ` Johannes Grødem
2022-04-02  5:31           ` Eli Zaretskii
2022-04-02  6:33             ` Johannes Grødem [this message]
2022-04-02  6:52               ` Eli Zaretskii
2022-04-02 12:59           ` Lars Ingebrigtsen
2022-04-02 13:51             ` Eli Zaretskii
2022-04-02 13:59               ` Lars Ingebrigtsen
2022-04-02 14:22                 ` Eli Zaretskii
2022-04-02 14:38                   ` Lars Ingebrigtsen
2022-04-02 15:26                     ` Eli Zaretskii
2022-04-02 15:28                       ` Lars Ingebrigtsen
2022-04-02 15:40                         ` Lars Ingebrigtsen
2022-04-03 10:42                           ` Rudolf Schlatte
2022-04-03 11:43                             ` Lars Ingebrigtsen
2022-04-02 14:06           ` Lars Ingebrigtsen
2022-04-28 12:58             ` Lars Ingebrigtsen
2022-04-29  4:59         ` Yuan Fu
2022-04-29 10:04           ` Lars Ingebrigtsen
2022-04-30  5:27             ` Yuan Fu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ilrsro30.fsf@flokut.localdomain \
    --to=fjas@grdm.no \
    --cc=54591@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).