duckdb 1.4.1.0 → 1.4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 172cad0f5262bd839bcae9bd60455db2ae92c3d2777856a807448749b4982d63
4
- data.tar.gz: 7af629371eb57967458add2ad62d88bf22f4c01eb3fc8e07ec67456c9d0edcb0
3
+ metadata.gz: adaff2ee87481121a0ca497a39e6aa688896413ab9beba54534950eb2047efcc
4
+ data.tar.gz: 0b19ad7ffbdfff8a4c6a2454e06e0b5407c5cba871eebe1b82b55f6f5e9f710b
5
5
  SHA512:
6
- metadata.gz: 92aa3a8b950008ff7327a27f98a76ba8e519d5f7ea1e3120b4d5310dd27bc15a7b330b5893d2a766da3533acf95a1e3b65614e28e9564a22286d8b493988fa9f
7
- data.tar.gz: 53660ec068a0a15f6065d67c15323612d13b5e91fc578a81554a8e8728c92888096cf817d2649fc15d4af6bb1045ed9f4bdf2232cb67fd8701a4578c37c34e0a
6
+ metadata.gz: 4c62ecc82ea831f6d0c2a869ae00617c1e11f15ece59c1d69a6b31194ba0a395fcd366157966bb56386e9f85bd98a3445018f6af13ddcbf16c5f9e630fb0320d
7
+ data.tar.gz: bb987eebd8103b516401e8803dd222fbe98f4e0b16cdea8ad6a8d920dd3da5510e5010c1d972c6bc7ddee06bc896e6702bfe31feb9f22fc67c2397f57ee34849
@@ -15,8 +15,8 @@ jobs:
15
15
  runs-on: macos-latest
16
16
  strategy:
17
17
  matrix:
18
- ruby: ['3.2.9', '3.3.10', '3.4.7', 'head', '3.5.0-preview1']
19
- duckdb: ['1.4.1', '1.3.2']
18
+ ruby: ['3.2.9', '3.3.10', '3.4.8', '4.0.0', 'head']
19
+ duckdb: ['1.4.2', '1.3.2']
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v4
@@ -15,8 +15,8 @@ jobs:
15
15
  runs-on: ubuntu-latest
16
16
  strategy:
17
17
  matrix:
18
- ruby: ['3.2.9', '3.3.10', '3.4.7', 'head', '3.5.0-preview1']
19
- duckdb: ['1.4.1', '1.3.2']
18
+ ruby: ['3.2.9', '3.3.10', '3.4.8', '4.0.0', 'head']
19
+ duckdb: ['1.4.2', '1.3.2']
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v4
@@ -15,8 +15,8 @@ jobs:
15
15
  runs-on: windows-latest
16
16
  strategy:
17
17
  matrix:
18
- ruby: ['3.2.9', '3.3.10', '3.4.7', 'ucrt', 'mingw', 'mswin', 'head']
19
- duckdb: ['1.4.1', '1.3.2']
18
+ ruby: ['3.2.9', '3.3.10', '3.4.8', 'ucrt', 'mingw', 'mswin', 'head']
19
+ duckdb: ['1.4.2', '1.3.2']
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v4
data/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  # Unreleased
6
6
 
7
+ # 1.4.2.0 - 2025-12-27
8
+ - support Ruby 4.0.0, add Ruby 4.0.0 on CI.
9
+ - drop duckdb v1.2.x.
10
+ - bump duckdb to 1.3.0.
11
+ - bump duckdb to 1.4.2 on CI.
12
+
13
+ # 1.4.1.1 - 2025-11-03
14
+ - DuckDB::Connection#appender_from_query accepts block.
7
15
  # 1.4.1.0 - 2025-11-01
8
16
  - add DuckDB::Connection#appender_from_query.
9
17
  - add DuckDB::Appender.create_query.
data/Dockerfile CHANGED
@@ -1,7 +1,7 @@
1
- ARG RUBY_VERSION=3.4.4
1
+ ARG RUBY_VERSION=4.0.0
2
2
  FROM ruby:${RUBY_VERSION}
3
3
 
4
- ARG DUCKDB_VERSION=1.3.1
4
+ ARG DUCKDB_VERSION=1.4.2
5
5
  ARG VALGRIND_VERSION=3.21.0
6
6
 
7
7
  RUN apt-get update -qq && \
data/Gemfile.lock CHANGED
@@ -1,32 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- duckdb (1.4.1.0)
4
+ duckdb (1.4.2.0)
5
5
  bigdecimal (>= 3.1.4)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  benchmark-ips (2.14.0)
11
- bigdecimal (3.3.1)
11
+ bigdecimal (4.0.1)
12
12
  mini_portile2 (2.8.9)
13
- minitest (5.26.0)
13
+ minitest (5.27.0)
14
14
  nokogiri (1.18.10)
15
15
  mini_portile2 (~> 2.8.2)
16
16
  racc (~> 1.4)
17
- nokogiri (1.18.10-aarch64-linux-gnu)
18
- racc (~> 1.4)
19
- nokogiri (1.18.10-arm-linux-gnu)
20
- racc (~> 1.4)
21
- nokogiri (1.18.10-arm64-darwin)
22
- racc (~> 1.4)
23
- nokogiri (1.18.10-x86_64-darwin)
24
- racc (~> 1.4)
25
- nokogiri (1.18.10-x86_64-linux-gnu)
26
- racc (~> 1.4)
27
17
  racc (1.8.1)
28
18
  rake (13.3.1)
29
- rake-compiler (1.3.0)
19
+ rake-compiler (1.3.1)
30
20
  rake
31
21
  ruby_memcheck (3.0.1)
32
22
  nokogiri
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'mkmf'
4
4
 
5
- DUCKDB_REQUIRED_VERSION = '1.2.0'
5
+ DUCKDB_REQUIRED_VERSION = '1.3.0'
6
6
 
7
7
  def check_duckdb_header(header, version)
8
8
  found = find_header(
@@ -56,10 +56,7 @@ end
56
56
  dir_config('duckdb')
57
57
 
58
58
  check_duckdb_header('duckdb.h', DUCKDB_REQUIRED_VERSION)
59
- check_duckdb_library('duckdb', 'duckdb_create_instance_cache', DUCKDB_REQUIRED_VERSION)
60
-
61
- # check duckdb >= 1.2.0
62
- have_func('duckdb_create_instance_cache', 'duckdb.h')
59
+ check_duckdb_library('duckdb', 'duckdb_get_table_names', DUCKDB_REQUIRED_VERSION)
63
60
 
64
61
  # check duckdb >= 1.3.0
65
62
  have_func('duckdb_get_table_names', 'duckdb.h')
@@ -8,10 +8,6 @@
8
8
  #include "ruby/thread.h"
9
9
  #include <duckdb.h>
10
10
 
11
- #ifdef HAVE_DUCKDB_GET_TABLE_NAMES
12
- #define HAVE_DUCKDB_H_GE_V1_3_0 1
13
- #endif
14
-
15
11
  #ifdef HAVE_DUCKDB_APPENDER_CREATE_QUERY
16
12
  #define HAVE_DUCKDB_H_GE_V1_4_0 1
17
13
  #endif
@@ -126,14 +126,9 @@ module DuckDB
126
126
 
127
127
  # returns Appender object.
128
128
  # The first argument is table name
129
- def appender(table)
129
+ def appender(table, &)
130
130
  appender = create_appender(table)
131
-
132
- return appender unless block_given?
133
-
134
- yield appender
135
- appender.flush
136
- appender.close
131
+ run_appender_block(appender, &)
137
132
  end
138
133
 
139
134
  if Appender.respond_to?(:create_query)
@@ -141,8 +136,10 @@ module DuckDB
141
136
  # connection.appender_from_query(query, types, table_name = nil, column_names = nil) -> DuckDB::Appender
142
137
  #
143
138
  # Creates an appender object that executes the given query with any data appended to it.
144
- # The `table_name` parameter is used to refer to the appended data in the query. If omitted, it defaults to "appended_data".
145
- # The `column_names` parameter provides names for the columns of the appended data. If omitted, it defaults to "col1", "col2", etc.
139
+ # The `table_name` parameter is used to refer to the appended data in the query. If omitted, it defaults
140
+ # to "appended_data".
141
+ # The `column_names` parameter provides names for the columns of the appended data. If omitted, it
142
+ # defaults to "col1", "col2", etc.
146
143
  #
147
144
  # require 'duckdb'
148
145
  # db = DuckDB::Database.open
@@ -153,13 +150,22 @@ module DuckDB
153
150
  # appender = con.appender_from_query(query, types, 'my_appended_data', %w[i val])
154
151
  # appender.append_row(1, 'hello world')
155
152
  # appender.close
156
- def appender_from_query(query, types, table_name = nil, column_names = nil)
157
- Appender.create_query(self, query, types, table_name, column_names)
153
+ def appender_from_query(query, types, table_name = nil, column_names = nil, &)
154
+ appender = Appender.create_query(self, query, types, table_name, column_names)
155
+ run_appender_block(appender, &)
158
156
  end
159
157
  end
160
158
 
161
159
  private
162
160
 
161
+ def run_appender_block(appender, &)
162
+ return appender unless block_given?
163
+
164
+ yield appender
165
+ appender.flush
166
+ appender.close
167
+ end
168
+
163
169
  def create_appender(table)
164
170
  t1, t2 = table.split('.')
165
171
  t2 ? Appender.new(self, t1, t2) : Appender.new(self, t2, t1)
@@ -3,5 +3,5 @@
3
3
  module DuckDB
4
4
  # The version string of ruby-duckdb.
5
5
  # Currently, ruby-duckdb is NOT semantic versioning.
6
- VERSION = '1.4.1.0'
6
+ VERSION = '1.4.2.0'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duckdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1.0
4
+ version: 1.4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaki Suketa
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
- rubygems_version: 3.6.9
195
+ rubygems_version: 4.0.3
196
196
  specification_version: 4
197
197
  summary: This module is Ruby binding for DuckDB database engine.
198
198
  test_files: []