all messages for Emacs-related lists mirrored at yhetil.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

* 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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.