All notable changes to this project will be documented in this file.
- DuckDB::Result supports TIMESTAMPTZ column type (only when DuckDB::Result.use_chunk_each is true).
- Supporting TIMESTAMPTZ is experimental.
- DuckDB::Result supports TIMETZ column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports TIMESTAMP_NS column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports TIMESTAMP_MS column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports TIMESTAMP_S column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports STRUCT column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports MAP column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports UNION column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports BIT column type (only when DuckDB::Result.use_chunk_each is true).
- support fetch the value from UHUGEINT type column.
- add
DuckDB::Appender#append_uhugeint
. - DuckDB::Result supports ARRAY column type (only when DuckDB::Result.use_chunk_each is true).
- DuckDB::Result supports LIST column type (only when DuckDB::Result.use_chunk_each is true). Thanks to stephenprater.
- bump duckdb to 1.0.0.
- add
DuckDB::ExtractedStatements
class. - add
DuckDB::ExtractedStatements#size
. - add
DuckDB::ExtractedStatements#prepared_statement
. - raise error when
DuckDB::ExtractedStatements#new
is called with invalid SQL. - The following public/private methods will be deprecated.
DuckDB::Result#streaming?
DuckDB::Result#_null?
DuckDB::Result#_to_boolean
DuckDB::Result#_to_smallint
DuckDB::Result#_to_utinyint
DuckDB::Result#_to_integer
DuckDB::Result#_to_bigint
DuckDB::Result#_to_hugeint
DuckDB::Result#_to_hugeint_internal
DuckDB::Result#__to_hugeint_internal
DuckDB::Result#_to_decimal
DuckDB::Result#_to_decimal_internal
DuckDB::Result#__to_decimal_internal
DuckDB::Result#_to_float
DuckDB::Result#_to_double
DuckDB::Result#_to_string
DuckDB::Result#_to_string_internal
DuckDB::Result#_to_blob
DuckDB::Result.use_chunk_each=
DuckDB::Result#use_chunk_each?
- DuckDB::Result.use_chunk_each is true by default.
If you want to use the old behavior, set
DuckDB::Result.use_chunk_each = false
. But the old behavior will be removed in the future release.
- bump to duckdb v0.10.3.
- remove version from docker-compose.yml.
- bump to duckdb v0.10.2.
- fix error using binding with name (issue #612). Thanks to pere73.
- drop duckdb v0.8.x.
- fix column type failures with duckdb v0.10.1.
- bump to duckdb v0.10.0.
- fix building error with duckdb v0.10.0.
- bundle update to bump nokogiri from 1.16.0 to 1.16.2.
- fix Decimal type conversion.
DuckDB::Connection#query_progress
returnsDuckDB::QueryProgress
object only when duckdb library version is 0.10.0 or later.- The available methods are
DuckDB::QueryProgress#percentage
,DuckDB::QueryProgress#rows_processed
,DuckDB::QueryProgress#total_rows_to_process
.
- The available methods are
- fix bigdecimal warning with Ruby 3.3.0.
- bump Ruby to 3.3.0 on CI.
- drop Ruby 2.7.
- support Time column in
DuckDB#Result#chunk_each
. - add
DuckDB::Interval#eql?
.
- add
DuckDB::Connection#async_query_stream
. DuckDB::PendingResult
accepts second argument. If the second argument is true,PendingResult#execute_pending
returns streamingDuckDB::Result
object.- add
DuckDB::PreparedStatement#pending_prepared_stream
- add
DuckDB::Result#streaming?
.
- add
DuckDB::Connection#interrupt
,DuckDB::Connection#query_progress
. - add
DuckDB::Connection#async_query
, alias methodasync_execute
.
- change default branch to main from master.
- add
DuckDB::PendingResult
class. - add
DuckDB::PendingResult#state
. - add
DuckDB::PendingResult#execute_task
. - add
DuckDB::PendingResult#execute_pending
. - add
DuckDB::PreparedStatement#pending_prepared
.
- drop duckdb v0.7.x.
- add
DuckDB::PreparedStatement#parameter_name
. - bump duckdb to 0.9.1.
- add
DuckDB::PreparedStatement#bind_parameter_index
. DuckDB::Connection#query
accepts SQL with named bind parameters.
- bump duckdb to 0.9.0.
- deprecation warning when
DuckDB::Result.each
calling withDuckDB::Result.use_chunk_each
is false. Theeach
behavior will be same asDuckDB::Result.chunk_each
in the future. setDuckDB::Result.use_chunk_each = true
to suppress the warning. DuckDB::Result#chunk_each
returnsDuckDB::Interval
class when the column type is INTERVAL.
- Fix BigDecimal conversion.
- Fix BigDecimal conversion when the value is 0. Thanks to shreeve.
- DuckDB::Result#chunk_each supports:
- UTINYINT
- USMALLINT
- UINTEGER
- UBIGINT
- fix memory leak of:
DuckDB::Result#_enum_dictionary_value
DuckDB::Result#_enum_dictionary_size
DuckDB::Result#_enum_internal_type
- bump duckdb to 0.8.1.
- add
DuckDB::Result#chunk_each
,DuckDB::Result.use_chunk_each=
,DuckDB::Result#use_chunk_each?
The current behavior ofDuckDB::Result#each
is same as older version. ButDuckDB::Result#each
behavior will be changed like asDuckDB::Result#chunk_each
in near future release. And there are some breaking changes. WriteDuckdDB::Result.use_chunk_each = true
if you want to try new behavior.Thanks to @stephenprater.DuckDB::Result.use_chunk_each = true result = con.query('SELECT ....') result.each do |record| # <= each method behavior is same as DuckDB::Result#chunk_each ... end
- support enum type in DuckDB::Result#chunk_each.
- support uuid type in DuckDB::Result#chunk_each.
- DuckDB::Config.set_config does not raise exception when invalid key specified. Instead, DuckDB::Database.open raises DuckDB::Error with invalid key configuration.
- bump duckdb to 0.8.0
- add DuckDB::Result#_to_decimal_internal
- add DuckDB::Result#_to_hugeint_internal
- DuckDB::Result returns BigDecimal object instead of String object if the column type is DECIMAL.
- bump duckdb to 0.7.1
- fix docker build error on M1 Mac
- bump duckdb to 0.7.0
- fix have_func argument order
- remove unused variable in test
- add DuckDB::LIBRARY_VERSION
- add DuckDB::Result#_to_string_internal
- add DuckDB::Result#__to_hugeint_internal
- add DuckDB::Result#__to_decimal_internal
- add Ruby 3.2.1 on CI test
- add Ruby mswin on CI test
- drop Ruby 2.6
- bump Ruby to 3.2.0 on CI
- fix deprected warning (double_heap is deprecated in GC.verify_compaction_references) with Ruby 3.2.0 on CI
- bump duckdb to 0.6.1 on CI
- add DuckDB::PreparedStatement#bind_hugeint_internal
- fix gem install error on M1 MacOS
- implement DuckDB.library_version
- use duckdb_value_string instead of duckdb_value_varchar if duckdb_value_string is available.
- bump Ruby to 3.2.0rc1
- bump duckdb to 0.6.0
- drop duckdb <= 0.4.x. ruby-duckdb supports duckdb >= 0.5.0
- bug fix: reading the boolean column
- bump duckdb to 0.5.1
- update bundle version of Gemfile.lock
- add ruby ucrt test on Windows
- use TypedData_Wrap_Struct, TypedData_Get_Struct
- bump duckdb to 0.5.0
- fix utf-8 encoding.
- add DuckDB::Result#enum_dictionary_values
- add DuckDB::Result#row_count, DuckDB::Result#row_size(alias of row_count).
- add DuckDB::Result#column_count, DuckDB::Result#column_size(alias of column_count).
- bind_varchar does not raised DuckDB::Error when the binding column is date or datetime.
- bump duckdb to 0.3.4
- DuckDB::Column#type supports :decimal.
- bump duckdb to 0.3.3.
- bump Ruby to 2.6.10, 2.7.6, 3.0.4, 3.1.2.
- bind_time, bind_timestamp, bind_date, bind_timeinterval to DuckDB::PreparedStatement
- bump duckdb 0.3.2
- bump Ruby to 3.1.1, add Ruby mingw in CI.
- bump Ruby to 2.6.9, 2.7.5, 3.0.3 in CI.
- drop duckdb <= 0.2.8
- bump duckdb to 0.3.1 in CI.
- bump duckdb to 0.3.0 in CI.
- append_time, append_date, append_timestamp of DuckDB::Appender accept argument having to_str to convert time string.
- add DuckDB::Appender#append
- breaking change.
- append_timestamp is called when the argument is Time object.
- append_date is called when the argument is Date object.
- breaking change.
- add DuckDB::Appender#append_timestamp.
- add DuckDB::Appender#append_interval. append_interval is expremental.
- add DuckDB::Result#rows_changed
- refactoring DuckDB::Append#append_hugeint with duckdb v0.2.9
- test 2 versions of duckdb on github actions macos CI.
- fix windows CI failes
- update github actions CI on ubuntu
- fix to build with duckdb v0.2.9
- use duckdb_prepare_error when get error message of prepared statement.
- add DuckDB::Appender#append_date
- add DuckDB::Appender#append_time
- DuckDB::Database.open accepts 2-nd argument as DuckDB::Config object.
- add DuckDB::Config
- bump duckdb to 0.2.8 in CI
- bump Ruby to 2.6.8, 2.7.4, 3.0.2 in CI
- call duckdb_free after calling duckdb_value_blob, duckdb_value_varchar.
- bump DuckDB to v0.2.7 in CI
- rake build on Windows in github actions.
- There is a issue (LoadError) when running rake test on Windows (in GitHub actions).
- add DuckDB::PreparedStatement#bind_int8
- DuckDB::Connection#appender accepts block.
- add DuckDB::Appender#append_row.
- support HUGEINT type.
- add DuckDB::Appender#append.
- rename PreparedStatement#bind_boolean to PreparedStatement#bind_bool.
- add DuckDB::Connection#appender.
- change version policy
- ruby-duckdb W.X.Y.Z supports duckdb W.X.Y
- add DuckDB::Appender
- bump DuckDB to v0.2.6 in CI.
- remove unnecessary duckdb header file from MacOS CI.
- add DuckDB::Connection#prepared_statement.
- bump DuckDB to v0.2.5
- support BLOB type (with DuckDB version 0.2.5 or later)
- fix failure in test_close in test/duckdb_test/database_test.rb because DuckDB error message was changed.
- bump DuckDb to v0.2.4
- add test CI with Ruby 3.0.0
- add test CI on MacOS.
- bunp DuckDB to v0.2.3
- bump DuckDB to v0.2.2
- fix to build failure on MacOS.
- bump DuckDB to v0.2.1
- bump Ruby to v2.7.2
- bunmp DuckDB to v0.2.0
- update Gemfile.lock
- unsupport Ruby 2.4
- remove test with Ruby 2.4.10
- bump DuckDB to v0.1.8
- bump DuckDB to v0.1.8
- bump DuckDB to v0.1.7
- current ruby-duckdb supports DuckDB version 0.1.5 and 0.1.6
- support Ruby 2.7.1
- bump DuckDB to v0.1.6
- current ruby-duckdb supports DuckDB version 0.1.5 and 0.1.6
- DuckDB::Connection#connect accepts block
- add DuckDB::Connection#connect
- DuckDB::Database#connect accepts block
- DuckDB::Database.open accepts block
- update duckdb.gemspec, required ruby version >= 2.4.0
- bump DuckDB to v0.1.5
- DuckDB version must be 0.1.5 or later.
- add DuckDB::Connection#connect, alias method open
- add DuckDB::Connection#disconnect, alias method close
- add DuckDB::Database#close
- add alias
execute
ofDuckDB::Connection#query
- support
duckdb version 0.1.3
- add
DuckDB:PreparedStatement
- create CI (GitHub Actions / Travis-CI)
- create database only once in result_test.rb
- add
DuckDB::Error
DuckDB::Result#each
convert DuckDB number value to Ruby's numberDuckDB::Result#each
convert DuckDB NULL value to nilDuckDB::Result#each
returns Enumerator object when block is not givenDuckDB::Result
includeEnumerable
- add test for
DuckDB::Result
- add test for
DuckDB::Connection
- fix description in duckdb.gemspec
- add test for
DuckDB::Database
- rename module name to
DuckDB
fromDuckdb
- rename native extension name to duckdb_native
- fix gem install error
- first release