I was verifying how
length(x) works on BLOBs with SQLite, and I was surprised to find that the length of
randomblob(0) is 1, even more so as the the length of
zeroblob(0) is 0 as shown below. Shouldn't
zeroblob(0) both have 0 length? If not, why?
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select length(zeroblob(0));
sqlite> select length(zeroblob(1));
sqlite> select length(zeroblob(2));
sqlite> select length(randomblob(0));
sqlite> select length(randomblob(1));
sqlite> select length(randomblob(2));
The sqlite documentation says:
The randomblob(N) function return an N-byte blob containing pseudo-random bytes. If N is less than 1 then a 1-byte random blob is returned.
I should have read your whole question before bashing the answer in. Anyhow, here it still is.