duckdb 0.10.0.0 → 0.10.1.1

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: e5855147af5fe02372c4bf0f67e5f5c4c046305e3d77fee7d6578d63b7d31aa7
4
- data.tar.gz: 88701d3c0213ce6fbbe45185f82cbc823d7eb5ee6ff531ab19a720bfd72f3939
3
+ metadata.gz: 3d937467c3c4f50946242d38224cfd0954d17a2a5ade0a3a5b72d7611a482e45
4
+ data.tar.gz: 69ca3178c0aaeab610ee663e0a1f47f3b96f685db84f4f4816be0d142a7276c4
5
5
  SHA512:
6
- metadata.gz: 955bf24278d0eff8138690a9fa2dbb465c5ab94654e7be07f8001d7eeb8863af461d94c9bbdd0af4260bac0090c13bb1b18f3dd8608b55dec1d23e057577eac9
7
- data.tar.gz: 9c2ce6b1648cd95ee16418abb01203c18f8f1d7f0360f242866c97aadd5ee1af92c1c4ba9da29146ea54904cd1acc45873ebf3cf5c0db42a6d94c4212dbeef96
6
+ metadata.gz: 39735bf906776ac331c4eb3daef1091dda9d70668216825b9eab4aafd82f7c667045677aba13f8438d7ff13213b3ee9c8dba8e806e20c9eec377a67ab4c1e741
7
+ data.tar.gz: b53af70bbeeea1eea3cf5f3c161faea38249dacbc1ee26b13416540818edac64632f07a3af67cd9c79457c2c5aad85abb4183f878c97c5cbdd48b87adbf0e5ed
@@ -16,7 +16,7 @@ jobs:
16
16
  strategy:
17
17
  matrix:
18
18
  ruby: ['3.0.6', '3.1.4', '3.2.3', '3.3.0', 'head']
19
- duckdb: ['0.9.2', '0.10.0']
19
+ duckdb: ['0.9.2', '0.10.0', '0.10.1']
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v3
@@ -16,7 +16,7 @@ jobs:
16
16
  strategy:
17
17
  matrix:
18
18
  ruby: ['3.0.6', '3.1.4', '3.2.3', '3.3.0', 'head']
19
- duckdb: ['0.9.2', '0.10.0']
19
+ duckdb: ['0.9.2', '0.10.0', '0.10.1']
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v3
@@ -16,7 +16,7 @@ jobs:
16
16
  strategy:
17
17
  matrix:
18
18
  ruby: ['3.0.6', '3.1.4', '3.2.2', '3.3.0', 'ucrt', 'mingw', 'mswin', 'head']
19
- duckdb: ['0.9.2', '0.10.0']
19
+ duckdb: ['0.9.2', '0.10.0', '0.10.1']
20
20
 
21
21
  steps:
22
22
  - uses: actions/checkout@v3
data/CHANGELOG.md CHANGED
@@ -4,15 +4,23 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ # 0.10.1.1 - 2024-03-31
8
+ - fix error using binding with name (issue #612).
9
+ Thanks to pere73.
10
+
11
+ # 0.10.1.0 - 2024-03-22
12
+ - drop duckdb v0.8.x.
13
+ - fix column type failures with duckdb v0.10.1.
14
+
7
15
  # 0.10.0.0 - 2024-02-18
8
- - bump to duckdb 0.10.0.
16
+ - bump to duckdb v0.10.0.
9
17
  - fix building error with duckdb v0.10.0.
10
18
  - bundle update to bump nokogiri from 1.16.0 to 1.16.2.
11
19
  - fix Decimal type conversion.
12
20
 
13
21
  ## Breaking changes
14
22
 
15
- - `DuckDB::Connection#query_progress` returns `DuckDB::QueryProgress` object only when duckdb library version is 0.10.0.
23
+ - `DuckDB::Connection#query_progress` returns `DuckDB::QueryProgress` object only when duckdb library version is 0.10.0 or later.
16
24
  - The available methods are `DuckDB::QueryProgress#percentage`, `DuckDB::QueryProgress#rows_processed`, `DuckDB::QueryProgress#total_rows_to_process`.
17
25
 
18
26
  # 0.9.2.3 - 2023-12-29
data/Gemfile.lock CHANGED
@@ -1,20 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- duckdb (0.10.0.0)
4
+ duckdb (0.10.1.1)
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.13.0)
11
- bigdecimal (3.1.6)
11
+ bigdecimal (3.1.7)
12
12
  mini_portile2 (2.8.5)
13
- minitest (5.22.2)
14
- nokogiri (1.16.2)
13
+ minitest (5.22.3)
14
+ nokogiri (1.16.3)
15
15
  mini_portile2 (~> 2.8.2)
16
16
  racc (~> 1.4)
17
- nokogiri (1.16.2-x86_64-linux)
17
+ nokogiri (1.16.3-x86_64-linux)
18
18
  racc (~> 1.4)
19
19
  racc (1.7.3)
20
20
  rake (13.1.0)
data/README.md CHANGED
@@ -42,6 +42,13 @@ Using `brew install` is recommended.
42
42
  brew install duckdb
43
43
  ```
44
44
 
45
+ ## Pre-requisite setup (Windows):
46
+
47
+ Using [Ruby + Devkit](https://rubyinstaller.org/downloads/) is recommended.
48
+
49
+ 1. Download libduckdb-windows-amd64.zip from [DuckDB](https://github.com/duckdb/duckdb/releases) and extranct it.
50
+ 2. Copy `duckdb.dll` into `C:\Windows\System32`
51
+
45
52
  ## How to install
46
53
 
47
54
  ```sh
@@ -50,7 +57,7 @@ gem install duckdb
50
57
 
51
58
  After you've run the above pre-requisite setup, this should work fine.
52
59
 
53
- If it doesn't, you may habe to specify the location of the C header and library files:
60
+ If it doesn't, you may have to specify the location of the C header and library files:
54
61
 
55
62
  ```sh
56
63
  gem install duckdb -- --with-duckdb-include=/duckdb_header_directory --with-duckdb-lib=/duckdb_library_directory
@@ -6,12 +6,8 @@ static void deallocate(void *ctx);
6
6
  static VALUE allocate(VALUE klass);
7
7
  static size_t memsize(const void *p);
8
8
  static VALUE duckdb_connection_disconnect(VALUE self);
9
-
10
- #ifdef HAVE_DUCKDB_H_GE_V090
11
9
  static VALUE duckdb_connection_interrupt(VALUE self);
12
10
  static VALUE duckdb_connection_query_progress(VALUE self);
13
- #endif
14
-
15
11
  static VALUE duckdb_connection_connect(VALUE self, VALUE oDuckDBDatabase);
16
12
  static VALUE duckdb_connection_query_sql(VALUE self, VALUE str);
17
13
 
@@ -69,7 +65,6 @@ static VALUE duckdb_connection_disconnect(VALUE self) {
69
65
  return self;
70
66
  }
71
67
 
72
- #ifdef HAVE_DUCKDB_H_GE_V090
73
68
  /*
74
69
  * call-seq:
75
70
  * connection.interrupt -> nil
@@ -126,7 +121,6 @@ static VALUE duckdb_connection_query_progress(VALUE self) {
126
121
  return DBL2NUM(progress);
127
122
  #endif
128
123
  }
129
- #endif
130
124
 
131
125
  static VALUE duckdb_connection_connect(VALUE self, VALUE oDuckDBDatabase) {
132
126
  rubyDuckDBConnection *ctx;
@@ -169,10 +163,8 @@ void rbduckdb_init_duckdb_connection(void) {
169
163
  rb_define_alloc_func(cDuckDBConnection, allocate);
170
164
 
171
165
  rb_define_method(cDuckDBConnection, "disconnect", duckdb_connection_disconnect, 0);
172
- #ifdef HAVE_DUCKDB_H_GE_V090
173
166
  rb_define_method(cDuckDBConnection, "interrupt", duckdb_connection_interrupt, 0);
174
167
  rb_define_method(cDuckDBConnection, "query_progress", duckdb_connection_query_progress, 0);
175
- #endif
176
168
  rb_define_private_method(cDuckDBConnection, "_connect", duckdb_connection_connect, 1);
177
169
  rb_define_private_method(cDuckDBConnection, "query_sql", duckdb_connection_query_sql, 1);
178
170
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'mkmf'
4
4
 
5
- DUCKDB_REQUIRED_VERSION = '0.8.0'
5
+ DUCKDB_REQUIRED_VERSION = '0.9.0'
6
6
 
7
7
  def check_duckdb_header(header, version)
8
8
  found = find_header(
@@ -26,6 +26,7 @@ def check_duckdb_library(library, func, version)
26
26
  '/opt/homebrew/opt/duckdb/lib',
27
27
  '/opt/local/lib'
28
28
  )
29
+ have_func(func, 'duckdb.h')
29
30
  return if found
30
31
 
31
32
  library_name = duckdb_library_name(library)
@@ -51,9 +52,7 @@ end
51
52
  dir_config('duckdb')
52
53
 
53
54
  check_duckdb_header('duckdb.h', DUCKDB_REQUIRED_VERSION)
54
-
55
- # check duckdb >= 0.8.0
56
- check_duckdb_library('duckdb', 'duckdb_string_is_inlined', DUCKDB_REQUIRED_VERSION)
55
+ check_duckdb_library('duckdb', 'duckdb_bind_parameter_index', DUCKDB_REQUIRED_VERSION)
57
56
 
58
57
  # check duckdb >= 0.9.0
59
58
  have_func('duckdb_bind_parameter_index', 'duckdb.h')
@@ -8,11 +8,7 @@ static size_t memsize(const void *p);
8
8
  static VALUE duckdb_pending_result_initialize(int argc, VALUE *args, VALUE self);
9
9
  static VALUE duckdb_pending_result_execute_task(VALUE self);
10
10
  static VALUE duckdb_pending_result_execute_pending(VALUE self);
11
-
12
- #ifdef HAVE_DUCKDB_H_GE_V090
13
11
  static VALUE duckdb_pending_result_execution_finished_p(VALUE self);
14
- #endif
15
-
16
12
  static VALUE duckdb_pending_result__state(VALUE self);
17
13
 
18
14
  static const rb_data_type_t pending_result_data_type = {
@@ -81,12 +77,10 @@ static VALUE duckdb_pending_result_execute_task(VALUE self) {
81
77
  return Qnil;
82
78
  }
83
79
 
84
- #ifdef HAVE_DUCKDB_H_GE_V090
85
80
  static VALUE duckdb_pending_result_execution_finished_p(VALUE self) {
86
81
  rubyDuckDBPendingResult *ctx = get_struct_pending_result(self);
87
82
  return duckdb_pending_execution_is_finished(ctx->state) ? Qtrue : Qfalse;
88
83
  }
89
- #endif
90
84
 
91
85
  /*
92
86
  * call-seq:
@@ -131,9 +125,6 @@ void rbduckdb_init_duckdb_pending_result(void) {
131
125
  rb_define_method(cDuckDBPendingResult, "initialize", duckdb_pending_result_initialize, -1);
132
126
  rb_define_method(cDuckDBPendingResult, "execute_task", duckdb_pending_result_execute_task, 0);
133
127
  rb_define_method(cDuckDBPendingResult, "execute_pending", duckdb_pending_result_execute_pending, 0);
134
-
135
- #ifdef HAVE_DUCKDB_H_GE_V090
136
128
  rb_define_method(cDuckDBPendingResult, "execution_finished?", duckdb_pending_result_execution_finished_p, 0);
137
- #endif
138
129
  rb_define_private_method(cDuckDBPendingResult, "_state", duckdb_pending_result__state, 0);
139
130
  }
@@ -10,12 +10,10 @@ static VALUE duckdb_prepared_statement_nparams(VALUE self);
10
10
  static VALUE duckdb_prepared_statement_execute(VALUE self);
11
11
  static idx_t check_index(VALUE vidx);
12
12
 
13
- #ifdef HAVE_DUCKDB_H_GE_V090
14
13
  static VALUE duckdb_prepared_statement_bind_parameter_index(VALUE self, VALUE name);
15
14
  #ifdef HAVE_DUCKDB_PARAMETER_NAME
16
15
  static VALUE duckdb_prepared_statement_parameter_name(VALUE self, VALUE vidx);
17
16
  #endif
18
- #endif
19
17
 
20
18
  static VALUE duckdb_prepared_statement_bind_bool(VALUE self, VALUE vidx, VALUE val);
21
19
  static VALUE duckdb_prepared_statement_bind_int8(VALUE self, VALUE vidx, VALUE val);
@@ -101,7 +99,6 @@ static idx_t check_index(VALUE vidx) {
101
99
  return idx;
102
100
  }
103
101
 
104
- #ifdef HAVE_DUCKDB_H_GE_V090
105
102
  static VALUE duckdb_prepared_statement_bind_parameter_index(VALUE self, VALUE name) {
106
103
  rubyDuckDBPreparedStatement *ctx;
107
104
  idx_t idx;
@@ -132,7 +129,6 @@ static VALUE duckdb_prepared_statement_parameter_name(VALUE self, VALUE vidx) {
132
129
  return vname;
133
130
  }
134
131
  #endif /* HAVE_DUCKDB_PARAMETER_NAME */
135
- #endif /* HAVE_DUCKDB_H_GE_V090 */
136
132
 
137
133
  static VALUE duckdb_prepared_statement_bind_bool(VALUE self, VALUE vidx, VALUE val) {
138
134
  rubyDuckDBPreparedStatement *ctx;
@@ -355,13 +351,12 @@ void rbduckdb_init_duckdb_prepared_statement(void) {
355
351
  rb_define_method(cDuckDBPreparedStatement, "initialize", duckdb_prepared_statement_initialize, 2);
356
352
  rb_define_method(cDuckDBPreparedStatement, "execute", duckdb_prepared_statement_execute, 0);
357
353
  rb_define_method(cDuckDBPreparedStatement, "nparams", duckdb_prepared_statement_nparams, 0);
358
-
359
- #ifdef HAVE_DUCKDB_H_GE_V090
360
354
  rb_define_method(cDuckDBPreparedStatement, "bind_parameter_index", duckdb_prepared_statement_bind_parameter_index, 1);
355
+
361
356
  #ifdef HAVE_DUCKDB_PARAMETER_NAME
362
357
  rb_define_method(cDuckDBPreparedStatement, "parameter_name", duckdb_prepared_statement_parameter_name, 1);
363
358
  #endif
364
- #endif
359
+
365
360
  rb_define_method(cDuckDBPreparedStatement, "bind_bool", duckdb_prepared_statement_bind_bool, 2);
366
361
  rb_define_method(cDuckDBPreparedStatement, "bind_int8", duckdb_prepared_statement_bind_int8, 2);
367
362
  rb_define_method(cDuckDBPreparedStatement, "bind_int16", duckdb_prepared_statement_bind_int16, 2);
@@ -4,10 +4,6 @@
4
4
  #include "ruby.h"
5
5
  #include <duckdb.h>
6
6
 
7
- #ifdef HAVE_DUCKDB_BIND_PARAMETER_INDEX
8
- #define HAVE_DUCKDB_H_GE_V090 1
9
- #endif
10
-
11
7
  #ifdef HAVE_DUCKDB_APPENDER_COLUMN_COUNT
12
8
  #define HAVE_DUCKDB_H_GE_V0_10_0 1
13
9
  #endif
data/lib/duckdb/column.rb CHANGED
@@ -48,7 +48,7 @@ module DuckDB
48
48
  uuid
49
49
  json
50
50
  ]
51
- if Gem::Version.new(DuckDB::LIBRARY_VERSION) >= Gem::Version.new('0.10.0')
51
+ if Gem::Version.new(DuckDB::LIBRARY_VERSION) == Gem::Version.new('0.10.0')
52
52
  types[17, 0] = :uhugeint
53
53
  end
54
54
  index = _type
data/lib/duckdb/result.rb CHANGED
@@ -24,7 +24,7 @@ module DuckDB
24
24
  # end
25
25
  class Result
26
26
  include Enumerable
27
- TO_METHODS = if Gem::Version.new(DuckDB::LIBRARY_VERSION) >= Gem::Version.new('0.10.0')
27
+ TO_METHODS = if Gem::Version.new(DuckDB::LIBRARY_VERSION) == Gem::Version.new('0.10.0')
28
28
  Hash.new(:_to_string).merge(
29
29
  1 => :_to_boolean,
30
30
  3 => :_to_smallint,
@@ -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 = '0.10.0.0'
6
+ VERSION = '0.10.1.1'
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duckdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0.0
4
+ version: 0.10.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaki Suketa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-17 00:00:00.000000000 Z
11
+ date: 2024-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal