You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Better tracking of prepared statements & other enhancements (#223)
* DBHandle/StmtHandle aliases for Ptr{Cvoid}
* specify types for db and name params
* export SQLiteException
* check[dup]names(): throw SQLiteException
rather than error().
Also show the name of the duplicate column.
* bind!() relax type constraints
* execute/bind(): add params type annotations
using types defined in DBInterface in 2.3.0, so the required version
is updated
* bind! param checks: assert => SQLiteException
assert should be used only as internal logic checks
* bind!(): fix whitespace
* load!(): reduce code duplication
* load!(): escape column names upon insert
* load!(): cleanup getting existing table info
We don't need the special TableInfo structure, in particular if
the table does not exist. The current version
uses execute(f, db, sql) call to avoid leaving behind prepared
statements.
Fixes the table existence check (Query always returns NamesTuple).
* load!()/createtable!(): remove escaped name param
this is confusing and error-prone
* tables/indices/columns(): use execute(f, db, sql)
so that the statement is closed immediately upon completion
* support Bool Julia type (as SQLite INT)
* bind!/execute(): support kwargs for param passing
update the docstring and add (very) basic tests
* DBInterface.execute(): test kwargs for params
* track prepared statements in DB object
- fixes#211
- closes all prepared statements upon close!(db)
- adds SQLite3.finalize_statements!(db) call
- execute(db, sql): close the internal prepared statement immediately,
don't wait for GC
* improve show(DB) test
* basic immediate execute test
* basic commit/rollback tests
* generalize sqlitetype()
so Union{T, Missing} is handled automatically.
This also fixes "BLOB NOT NULL" case.
* sqliteexception(): just the handle is enough
we don't need to create DB just to raise an exception
* sqliteprepare(): param type annotations
* add CI GitHub action
ci.yml taken from JSON3.jl
0 commit comments