Message365582
Hello. I think that I found a bug in how sqlite3 module handle bytes.
The connect function of sqlite3 accepts strings, FilePath objects and bytes. However, it's impossible for me to connect to bytes objects that are read from BufferedReaders. I always get:
"ValueError: embedded null byte"
This is my current code (byteDec is the BytesIO object):
==============================================
byteDec.seek(0)
conn = sqlite3.connect(byteDec.read())
==============================================
That returns the "embedded null byte" error. However, if I do:
==============================================
byteDec.seek(0)
with open("db.db", "wb" as f:
f.write(byteDec.read())
conn = sqlite3.connect("db.db")
==============================================
Everything works flawlessly, so the BufferedReader that I have in-memory is not corrupted in any way, as it's readable from a file. I want to avoid writing to disk at all, so this is not a solution for me.
I attach to this issue a very basic proof of concept to understand the issue.
I'm running Pyhton 3.8.2 amd64 on Windows 10 1909 |
|
| Date |
User |
Action |
Args |
| 2020-04-02 12:23:03 | ferferga | set | recipients:
+ ferferga |
| 2020-04-02 12:23:03 | ferferga | set | messageid: <[email protected]> |
| 2020-04-02 12:23:03 | ferferga | link | issue40154 messages |
| 2020-04-02 12:23:03 | ferferga | create | |
|