[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/sqlite d377241: Make sqlite string encoding more efficient
From: |
Lars Ingebrigtsen |
Subject: |
scratch/sqlite d377241: Make sqlite string encoding more efficient |
Date: |
Tue, 7 Dec 2021 00:35:32 -0500 (EST) |
branch: scratch/sqlite
commit d37724174a89a8d890d64562a3cada93543389d7
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Make sqlite string encoding more efficient
---
src/sqlite.c | 7 +++++--
test/src/sqlite-tests.el | 19 +++++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/sqlite.c b/src/sqlite.c
index cdfc97b..abffa12 100644
--- a/src/sqlite.c
+++ b/src/sqlite.c
@@ -108,8 +108,11 @@ bind_values (sqlite3 *db, sqlite3_stmt *stmt, Lisp_Object
values)
if (EQ (type, Qstring))
{
- Lisp_Object encoded =
- code_convert_string_norecord (value, Qutf_8, true);
+ Lisp_Object encoded;
+ if (STRING_MULTIBYTE (value))
+ encoded = encode_string_utf_8 (value, Qnil, 0, Qt, Qt);
+ else
+ encoded = value;
ret = sqlite3_bind_text (stmt, i + 1,
SSDATA (encoded), SBYTES (encoded),
NULL);
diff --git a/test/src/sqlite-tests.el b/test/src/sqlite-tests.el
index 808939b..eaae159 100644
--- a/test/src/sqlite-tests.el
+++ b/test/src/sqlite-tests.el
@@ -140,4 +140,23 @@
db "select * from test4 where col2 = ?" [1])
'(("foo" 1))))))
+(ert-deftest sqlite-binary ()
+ (skip-unless (sqlite-available-p))
+ (let (db)
+ (setq db (sqlite-open))
+ (sqlite-execute
+ db "create table if not exists test5 (col1 text, col2 number)")
+ (let ((string (with-temp-buffer
+ (set-buffer-multibyte nil)
+ (insert 0 1 2)
+ (buffer-string))))
+ (should-not (multibyte-string-p string))
+ (sqlite-execute
+ db
+ "insert into test5 values (?, ?)"
+ (list string 2))
+ (let ((out (caar
+ (sqlite-select db "select col1 from test5 where col2 = 2"))))
+ (should (equal out string))))))
+
;;; sqlite-tests.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- scratch/sqlite d377241: Make sqlite string encoding more efficient,
Lars Ingebrigtsen <=