This issue is used to track those features that possible in duckdb but not yet implemented. ## Table DDL/DML - [x] `CREATE TABLE`: https://github.com/lance-format/lance-duckdb/issues/62 - [x] #67 - [x] #71 - [x] `INSERT INTO ... VALUES / SELECT ...`: https://github.com/lance-format/lance-duckdb/issues/59 - [ ] `INSERT OVERWRITE` / `INSERT INTO ... ON CONFLICT ...` - [x] `DELETE FROM ... WHERE <predicate>`: https://github.com/lance-format/lance-duckdb/issues/61 - [x] `UPDATE ... SET ... WHERE <predicate>`: https://github.com/lance-format/lance-duckdb/issues/60 - [x] `MERGE INTO ...`: https://github.com/lance-format/lance-duckdb/pull/156 ## Schema Evolution - [x] https://github.com/lance-format/lance-duckdb/pull/77 - `ALTER TABLE ... ADD COLUMN ...` - `ALTER TABLE ... DROP COLUMN ...` - `ALTER TABLE ... ALTER COLUMN ...` - [ ] `COMMENT ON TABLE/COLUMN` / `ALTER TABLE SET/UNSET` ## Index - [x] https://github.com/lance-format/lance-duckdb/pull/76 - `CREATE INDEX` for vector - `CREATE INDEX` for scalar - `DROP INDEX` - [x] #83 - [ ] reindex (need to figure out how to expose it in SQL) - [ ] prewarm (need to figure out how to expose it in SQL) ## Versions - [ ] #88 - [ ] list versions - [ ] `CREATE TAG` / `DROP TAG` / `ALTER TAG` - [ ] `CREATE BRANCH` / `DROP BRANCH` / `CHECKOUT BRANCH` - [ ] `OPTIMIZE` - [ ] `VACUUM` ## Optimize - [x] #75 - [x] #86 - [x] #80 - [x] #84 - [x] #79 - [x] #90 - [x] https://github.com/lance-format/lance-duckdb/pull/94 - [x] #109 - [ ] More duckdb types (like binary/uuid/time/interval) pushdown - [ ] TRY_CAST constant pushdown ## Search - [ ] Allow Hybrid search to use index - [ ] Allow search multi-vector - [ ] Allow search UINT8[] - [ ] Allow search results to include `_rowid` - [ ] Rewrite `ORDER BY <distance_expr> LIMIT k` into `lance_vector_search` - [ ] Allow `prefilter=true` to fallback while not possible ## Storage - Add more storage support: https://github.com/lance-format/lance-duckdb/pull/113 - [ ] azure - [ ] gcs
This issue is used to track those features that possible in duckdb but not yet implemented.
Table DDL/DML
CREATE TABLE: Add CREATE TABEL support #62DROP TABLE#67TRUNCATE TABLE#71INSERT INTO ... VALUES / SELECT ...: Add INSERT INTO ... VALUES ... Support #59INSERT OVERWRITE/INSERT INTO ... ON CONFLICT ...DELETE FROM ... WHERE <predicate>: Add DELETE support #61UPDATE ... SET ... WHERE <predicate>: Add UPDATE support #60MERGE INTO ...: feat: add MERGE INTO support for Lance tables #156Schema Evolution
ALTER TABLE ... ADD COLUMN ...ALTER TABLE ... DROP COLUMN ...ALTER TABLE ... ALTER COLUMN ...COMMENT ON TABLE/COLUMN/ALTER TABLE SET/UNSETIndex
CREATE INDEXfor vectorCREATE INDEXfor scalarDROP INDEXSHOW INDEXES#83Versions
CREATE TAG/DROP TAG/ALTER TAGCREATE BRANCH/DROP BRANCH/CHECKOUT BRANCHOPTIMIZEVACUUMOptimize
LIMIT/OFFSETpushdown #75TABLESAMPLEpushdown #86ANALYZE+ optimizer stats #80SELECT ... WHERE _rowid IN (...)#84LIKE/ILIKEpushdown #79regexp_matches/SIMILAR TOpushdown #90starts_with/ends_with/contains/lower/upperfunctions pushdown #109Search
_rowidORDER BY <distance_expr> LIMIT kintolance_vector_searchprefilter=trueto fallback while not possibleStorage