- Fix passing nil transform to
DB#prepare - Remove support for Ruby 3.2, 3.3
- Update benchmark results in README
- Prevent extension loading using
load_extensionSQL function - Remove
wal: trueoption, addlegacy: trueoption for - Change default behaviour to set WAL journal mode + synchronous + foreign keys
- Add transform DSL
- Add support for type coercion in transforms
- Add
Extralite::Transformclass for transforming rows into an object graph
- Update bundled SQLite to 3.53.3
- Update dependencies
- Update bundled SQLite to 3.51.2
- Update dependencies
- Update bundled SQLite to version 30.50.4
- Update README performance numbers
- Reimplement trace, provide trace proc with bound parameters #80
- Remove support for Ruby versions older than 3.2.
- Expand SQL given to trace proc #80
- Update bundled SQLite to version 3.49.0.
- Update dependencies, test matrix.
- Update bundled SQLite to version 3.48.0.
- Optimize getting column names when returning rows as hashes.
- Update bundled SQLite to version 3.46.0. #74
- Update bundled sqlite to version 3.45.3.
- Fix
Database#executefor SQL ending with a comment. #72
- Improve documentation.
- Implement
Database#wal_checkpoint. - Rename query modes:
hash(the default mode),array,splat, simplify querying APIs. #69
- Fix API docs.
- Improve progress handler API, add mode, period, tick options, global progress handler. #68
- Rework
Database#initializeoptions. - Add argv row mode (for passing column values as argv).
- Streamline and improve query methods. #67
- Implement row transforms.
- Implement changeset API. #58
- Reorganize README, update benchmarks. #63
- Implement progress handler API. #62
- Implement savepoint methods.
- Update bundled sqlite to version 3.45.0.
- Implement
Database#batch_queryand related methods. 53 - Accept more options in
Database#initialize. 48 - Fix
Database#pragmato return single value when reading pragma value. - Accept database name in
Database#tablesmethod. - Improve
Database#batch_execute- now accepts Enumerable and Callable parameters. 52 - Rename
Database#execute_multitoDatabase#batch_execute. - Implement
Query#clone. 51 - Add support for GC compaction.
- Remove support for Ruby 2.7.
- Implement
Query#<<. 49 - Allow passing parameters in array.
- Add support for ractors. #50
- Implement GVL release threshold. #46
- Implement write barriers for better GC performance.
- Add support for binding large numbers and symbols. #43
- Implement Database#transaction. #42
- Add support for binding BLOBs. #40
- Minor fixes and cleanup of C-code.
- Fix
Database#inspectfor a closed database instance #37 - Add support for binding named parameters from Struct and Data classes #30
- Update bundled SQLite code to version 3.44.2 #32
- Update bundled SQLite to version 3.44.0 (#29)
- Set correct encoding for strings values in query results (#27)
- Reset query after running it in Sequel adapter (#26)
- Implement
Database#execute,Query#executefor data-manipulation queries - Add option for opening databases for read only access
- Fix Sequel migrations (#8)
- Redesign prepared statement functionality (#24)
- Rewrite
Extralite::PreparedStatementintoExtralite::Querywith breaking API changes - Add
Extralite::Iteratorclass for external iteration - Add
Query#each_xxx,Query#to_a_xxxmethod - Add
Query#eof?method
- Rewrite
- Fix execution of prepared statements in Sequel adapter (#23 @gschlager)
- Update bundled sqlite code to version 3.42.0 (#22 @gschlager)
- Improve documentation
- Remove bundled sqlite3 source files from extralite.gemspec
- Restore testing on Ruby 2.7
- Fix closing database with open statements
- Improve error reporting in
Database#initialize - Fix
extralite-bundlegem compilation - Improve error handling, add methods for error information
- Use extended result codes
- Add
Database#errcode - Add
Database#errmsg - Add
Database#error_offset
- Add
Database#trace(#21) - Add
Database#total_changes(#20) - Add
Database#busy_timeout=(#19) - Add
Database#limit(#16) - Improve error handling
- Improve documentation (#17)
- Update bundled sqlite to version 3.40.1 (#18)
- Fix compilation error (#15 @sitano)
- Add status methods
Extralite.runtime_status,Database#status,PreparedStatement#status(#14 @sitano) - Add
Database#interrupt(#13 @sitano) - Add
Database#backup(#11 @sitano) - Derive
Extralite::ErrorfromStandardError(#10 @sitano)
- Add
Database#execute_multi - Add
PreparedStatement#execute_multi
- Fix usage with system sqlite3 lib where
load_extensionis disabled
- Fix
Database#tablesto work on older version of sqlite (pre 3.33.0)
- Fix
Database#pragmato always return array of records
- Add
Database#pragmamethod - Add
Database#tablesmethod
- Introduce
extralite-bundlegem for bundling SQLite, use system lib by default.
- Fix compilation on TruffleRuby
- Implement prepared statements (#7)
- Update SQLite to 3.38.0 (#6)
- Add
Extralite.sqlite3_versionmethod - Bundle sqlite3 in gem
- Fix compilation on MacOS (#3)
- Fix mutliple parameter binding with hash
- Add support for reading BLOBs
- Add documentation
- Add extralite Sequel adapter
- Add support for binding hash parameters
- Release GVL while fetching rows
- Release GVL while preparing statements
- Use
sqlite3_prepare_v2instead of deprecatedsqlite_prepare
- Fix possible segfault in cleanup_stmt
- Pin error classes (for better compatibility with
GC.compact)
- Add support for big integers
- Add
#close,#closed?methods
- Refactor C code
- Use
rb_ensureto finalize stmt - Remove bundled
sqlite3.h, use system-wide header file instead
- Add more specific errors:
SQLError,BusyError
- Implement
Database#query_single_row
- Add support for loading extensions
- Add support for running multiple statements
- Implement
Database#transaction_active? - Add tests
- First release