On Wed, Aug 6, 2014 at 6:34 AM, Tony Papadimitriou <[email protected]> wrote:
> Unless I'm misusing it, I believe the shell readfile() function reads a
> file as text, not binary. I haven't checked writefile() for the same
> problem on writing.
>
> This is how I use it, is this not correct?
>
> create table t1(a blob);
> insert into t1 values(readfile('binfile'));
> select * from t1;
>
> I always see text and I expect to see one of the following cases:
> 1. a hex sequence regardless of file type
> 2. text (if the file was text), or a hex sequence if it was binary.
>
> Instead, I see text when dealing with text files, and truncated text (up
> to the first zero) when dealing with binary.
>
> Am I misusing it?
>
To see hex output, use
SELECT quote(a) FROM t1;
The shell always prints BLOBs as just the bytes within the blob, not
translated to hex. It has always done this. For 14 years. Example:
CREATE TABLE t1(a BLOB);
INSERT INTO t1(a) VALUES(x'78797a7a79');
SELECT a FROM t1;
The above prints: xyzzy
--
D. Richard Hipp
[email protected]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users