Not implemented Error: Indexes cannot contain BLOBs that contain null-terminated bytes.
when trying to insert a random blob (containing one or more zero bytes) into a UNIQUE blob column into this table schema:
CREATE SEQUENCE IF NOT EXISTS seq_hashes START 1;
CREATE TABLE IF NOT EXISTS "Hashes" (
"id" bigint PRIMARY KEY DEFAULT nextval('seq_hashes'),
"hash" bytea NOT NULL UNIQUE
);
Removing the UNIQUE keyword lets me insert the rows. Checked it to see if the error message is legit and it is.
The concept of null-termination doesn't make any sense for BLOBs, so the error message is misleading, wrongly suggesting that I intend to misuse the BLOB datatype, but I want to use it for the exact reason it is made for, to represent raw bytes of any size.
My natural assumption was that unimplemented SQL statemements must fail early, that is, the above table creation should not be allowed to execute, meaning that I would like to see "Not implemented Error" thrown upon table creation immediately.
Is it possible to have a clear roadmap TODO list of the missing features from basic commands like UNIQUE, PRIMARY KEY, REFERENCES, and postgres datatypes not being supported fully in some operations?
Thanks for having this cool project, thrilled to see it develop to the maturity level of sqlite3!
Hi, I think this is an issue for the DuckDB Project as go-duckdb only links against the DuckDB C API and provides a Go driver. We have no influence over features that affect DuckDB.
In v1.4.1, I get this error:
Not implemented Error: Indexes cannot contain BLOBs that contain null-terminated bytes.
when trying to insert a random blob (containing one or more zero bytes) into a UNIQUE blob column into this table schema:Is it possible to have a clear roadmap TODO list of the missing features from basic commands like UNIQUE, PRIMARY KEY, REFERENCES, and postgres datatypes not being supported fully in some operations?
Thanks for having this cool project, thrilled to see it develop to the maturity level of sqlite3!