Menu

DuckDB Log in to Edit

marsupilami79

About

The DuckDB driver is a driver for DuckDB. It is based on DuckDB 1.1.3, so should be compatible to all versions of DuckDB 1.x.x starting with version 1.1.3. Any DuckDB with a version number 2.0.0 or higher might be incompatible.

ToDo

While implementing the first version of the driver, I intentionally left out some things that should be taken care of later on:
* currently it is not possible to use the configuration options for DuckDB because we don't support creating an configuration object that has to be used with duckdb_open_ext
* transaction support is not implemented - StartTransaction, Commit and RollBack will raise errors. Also Setting AutoCommit to false will raise an error.
* changing the schema search order is not implemented. Setting the catalog property to anything but an empty sting or main will result in an Exception.
* Currency, BCD and FMTBCD are converted to double before binding them to a prepared statement
* The current statement derives from TZAbstractBeginnerPreparedStatement. While this speeds up development, it has some shortcomings. Deriving from TZRawPreparedStatement will be better but lead to more work.
* Currently the Statement always unprepares queries before preparing them again because we don't know if the SQL has changed. Finding a way around this might yield in better performance.
* the metadata object implementation for DuckDB is incomplete. Currently only the reading of catalogs, tables and table columns are implemented.
* No change of the Transaction isolation level is implemented. It is unclear, which level(s) DuckDB implements and how to change them.
* Setting "UseMetadata" has no effect currently. But getting metadata is not implemented (yet) anyway.
* getting metadata is not implemented (yet) - it can only be done after the finalization of a first result set.
* The first go at a result uses the Safe Fetch Functions. While they are deprecated and slow, they are easy to use and yield in a shorter development time. Writing a result set based on duckdb_result_get_chunk should give a better performance. Also using duckdb_pending_prepared might give better performance with large result sets.


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.