duckdb 0.9.1 → 0.9.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2948812978266d6ca2040d2071479f0484fe39719be860282e238b1e786a53e7
4
- data.tar.gz: 3a3d10a5dd8e318b7a6274e6e32f0fc4850eeafada95673b42ed6c6121a36af5
3
+ metadata.gz: 6f3ac463fffc2fc6362c34abbfa5b862a7b8c993052ede087ca4403542c98dc8
4
+ data.tar.gz: c5ea1236f240a62165b7e371ae48033447868d119261def6c5310d3911e9df91
5
5
  SHA512:
6
- metadata.gz: f4bf27bf6c3e378650584e9226bd0c2e16a76a2d5e68c96451f5abafb4dfe6fbb4df705ceb754ac8df30ed36bc6fe67299f61861fa882ef11acac79dea1e80cf
7
- data.tar.gz: 71f42787f8368ab322c5d8c9a9a74227117dbf0454601d9ac3ec407188497c34e437fd5de14bec2038d6f3df3233098b580a8e116f8590dedd8004b7ba934f5a
6
+ metadata.gz: 210fe783740da4b6eb7991de416a7b5581403d8ad3661625110e275c030fe9dc1192d6fe2d73dcb778e53408b0e349eb28f37f2a1308d31ff30b0b783be5e498
7
+ data.tar.gz: b6fcc8d47c20ff9ce053122d9d9c03f4b19f1a72d9cd56addc1704d862ab7cfda4b3bec88bb3d8580befa006dcfeeee76138e00a2a34f065cca630bde523fb7d
@@ -3,7 +3,7 @@ name: MacOS
3
3
  on:
4
4
  push:
5
5
  branches:
6
- - master
6
+ - main
7
7
  pull_request:
8
8
  types:
9
9
  - opened
@@ -3,7 +3,7 @@ name: Ubuntu
3
3
  on:
4
4
  push:
5
5
  branches:
6
- - master
6
+ - main
7
7
  pull_request:
8
8
  types:
9
9
  - opened
@@ -3,7 +3,7 @@ name: Windows
3
3
  on:
4
4
  push:
5
5
  branches:
6
- - master
6
+ - main
7
7
  pull_request:
8
8
  types:
9
9
  - opened
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # ChangeLog
2
2
 
3
+ # 0.9.1.1
4
+ - change default branch to main from master.
5
+ - add DuckDB::PendingResult class.
6
+ - add DuckDB::PendingResult#state.
7
+ - add DuckDB::PendingResult#execute_task.
8
+ - add DuckDB::PendingResult#execute_pending.
9
+ - add DuckDB::PreparedStatement#pending_prepared.
10
+
11
+ ## Breaking Changes
12
+ - drop duckdb v0.7.x.
13
+
3
14
  # 0.9.1
4
15
  - add `DuckDB::PreparedStatement#parameter_name`.
5
16
  - bump duckdb to 0.9.1.
@@ -11,7 +22,7 @@
11
22
  # 0.9.0
12
23
  - bump duckdb to 0.9.0.
13
24
 
14
- ## Breaking Change
25
+ ## Breaking Changes
15
26
  - deprecation warning when DuckDB::Result.each calling with `DuckDB::Result.use_chunk_each` is false.
16
27
  The `each` behavior will be same as `DuckDB::Result.chunk_each` in the future.
17
28
  set `DuckDB::Result.use_chunk_each = true` to suppress the warning.
@@ -54,7 +65,7 @@
54
65
  - support enum type in DuckDB::Result#chunk_each.
55
66
  - support uuid type in DuckDB::Result#chunk_each.
56
67
 
57
- ## Breaking Change
68
+ ## Breaking Changes
58
69
 
59
70
  - DuckDB::Config.set_config does not raise exception when invalid key specified.
60
71
  Instead, DuckDB::Database.open raises DuckDB::Error with invalid key configuration.
@@ -64,7 +75,7 @@
64
75
  - add DuckDB::Result#_to_decimal_internal
65
76
  - add DuckDB::Result#_to_hugeint_internal
66
77
 
67
- ## Breaking Change
78
+ ## Breaking Changes
68
79
  - DuckDB::Result returns BigDecimal object instead of String object if the column type is DECIMAL.
69
80
 
70
81
  # 0.7.1
@@ -81,7 +92,7 @@
81
92
  - add DuckDB::Result#__to_decimal_internal
82
93
  - add Ruby 3.2.1 on CI test
83
94
  - add Ruby mswin on CI test
84
- ## Breaking Change
95
+ ## Breaking Changes
85
96
  - drop Ruby 2.6
86
97
 
87
98
  # 0.6.1
@@ -95,7 +106,7 @@
95
106
  - bump Ruby to 3.2.0rc1
96
107
  - bump duckdb to 0.6.0
97
108
 
98
- ## Breaking Change
109
+ ## Breaking Changes
99
110
  - drop duckdb <= 0.4.x. ruby-duckdb supports duckdb >= 0.5.0
100
111
 
101
112
  # 0.5.1.1
@@ -114,7 +125,7 @@
114
125
  - add DuckDB::Result#row_count, DuckDB::Result#row_size(alias of row_count).
115
126
  - add DuckDB::Result#column_count, DuckDB::Result#column_size(alias of column_count).
116
127
 
117
- ## Breaking Change
128
+ ## Breaking Changes
118
129
  - bind_varchar does not raised DuckDB::Error when the binding column is date or datetime.
119
130
 
120
131
  # 0.3.4.0
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- duckdb (0.9.1)
4
+ duckdb (0.9.1.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  benchmark-ips (2.12.0)
10
- mini_portile2 (2.8.4)
10
+ mini_portile2 (2.8.5)
11
11
  minitest (5.20.0)
12
12
  nokogiri (1.15.4)
13
13
  mini_portile2 (~> 2.8.2)
@@ -15,7 +15,7 @@ GEM
15
15
  nokogiri (1.15.4-x86_64-linux)
16
16
  racc (~> 1.4)
17
17
  racc (1.7.1)
18
- rake (13.0.6)
18
+ rake (13.1.0)
19
19
  rake-compiler (1.2.5)
20
20
  rake
21
21
  ruby_memcheck (2.2.0)
data/ext/duckdb/duckdb.c CHANGED
@@ -28,6 +28,7 @@ Init_duckdb_native(void) {
28
28
  init_duckdb_result();
29
29
  init_duckdb_column();
30
30
  init_duckdb_prepared_statement();
31
+ init_duckdb_pending_result();
31
32
  init_duckdb_blob();
32
33
  init_duckdb_appender();
33
34
  init_duckdb_config();
@@ -20,13 +20,8 @@ end
20
20
 
21
21
  dir_config('duckdb')
22
22
 
23
- check_duckdb_library('duckdb_extract_statements', '0.7.0')
24
-
25
- # check duckdb >= 0.7.0
26
- have_func('duckdb_extract_statements', 'duckdb.h')
27
-
28
23
  # check duckdb >= 0.8.0
29
- have_func('duckdb_string_is_inlined', 'duckdb.h')
24
+ check_duckdb_library('duckdb_string_is_inlined', '0.8.0')
30
25
 
31
26
  # check duckdb >= 0.9.0
32
27
  have_func('duckdb_bind_parameter_index', 'duckdb.h')
@@ -0,0 +1,100 @@
1
+ #include "ruby-duckdb.h"
2
+
3
+ static VALUE cDuckDBPendingResult;
4
+
5
+ static void deallocate(void *ctx);
6
+ static VALUE allocate(VALUE klass);
7
+ static size_t memsize(const void *p);
8
+ static VALUE duckdb_pending_result_initialize(VALUE self, VALUE oDuckDBPreparedStatement);
9
+ static VALUE duckdb_pending_result_execute_task(VALUE self);
10
+ static VALUE duckdb_pending_result_execute_pending(VALUE self);
11
+
12
+ #ifdef HAVE_DUCKDB_H_GE_V090
13
+ static VALUE duckdb_pending_result_execution_finished_p(VALUE self);
14
+ #endif
15
+
16
+ static VALUE duckdb_pending_result__state(VALUE self);
17
+
18
+ static const rb_data_type_t pending_result_data_type = {
19
+ "DuckDB/PendingResult",
20
+ {NULL, deallocate, memsize,},
21
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY
22
+ };
23
+
24
+ static void deallocate(void *ctx) {
25
+ rubyDuckDBPendingResult *p = (rubyDuckDBPendingResult *)ctx;
26
+
27
+ duckdb_destroy_pending(&(p->pending_result));
28
+ xfree(p);
29
+ }
30
+
31
+ static VALUE allocate(VALUE klass) {
32
+ rubyDuckDBPendingResult *ctx = xcalloc((size_t)1, sizeof(rubyDuckDBPendingResult));
33
+ ctx->state = DUCKDB_PENDING_RESULT_NOT_READY;
34
+ return TypedData_Wrap_Struct(klass, &pending_result_data_type, ctx);
35
+ }
36
+
37
+ static size_t memsize(const void *p) {
38
+ return sizeof(rubyDuckDBPendingResult);
39
+ }
40
+
41
+ static VALUE duckdb_pending_result_initialize(VALUE self, VALUE oDuckDBPreparedStatement) {
42
+ rubyDuckDBPendingResult *ctx = get_struct_pending_result(self);
43
+ rubyDuckDBPreparedStatement *stmt = get_struct_prepared_statement(oDuckDBPreparedStatement);
44
+
45
+ if (duckdb_pending_prepared(stmt->prepared_statement, &(ctx->pending_result)) == DuckDBError) {
46
+ rb_raise(eDuckDBError, "%s", duckdb_pending_error(ctx->pending_result));
47
+ }
48
+ return self;
49
+ }
50
+
51
+ static VALUE duckdb_pending_result_execute_task(VALUE self) {
52
+ rubyDuckDBPendingResult *ctx = get_struct_pending_result(self);
53
+ ctx->state = duckdb_pending_execute_task(ctx->pending_result);
54
+ return Qnil;
55
+ }
56
+
57
+ #ifdef HAVE_DUCKDB_H_GE_V090
58
+ static VALUE duckdb_pending_result_execution_finished_p(VALUE self) {
59
+ rubyDuckDBPendingResult *ctx = get_struct_pending_result(self);
60
+ return duckdb_pending_execution_is_finished(ctx->state) ? Qtrue : Qfalse;
61
+ }
62
+ #endif
63
+
64
+ static VALUE duckdb_pending_result_execute_pending(VALUE self) {
65
+ rubyDuckDBPendingResult *ctx;
66
+ rubyDuckDBResult *ctxr;
67
+ VALUE result = create_result();
68
+
69
+ TypedData_Get_Struct(self, rubyDuckDBPendingResult, &pending_result_data_type, ctx);
70
+ ctxr = get_struct_result(result);
71
+ if (duckdb_execute_pending(ctx->pending_result, &(ctxr->result)) == DuckDBError) {
72
+ rb_raise(eDuckDBError, "%s", duckdb_pending_error(ctx->pending_result));
73
+ }
74
+ return result;
75
+ }
76
+
77
+ static VALUE duckdb_pending_result__state(VALUE self) {
78
+ rubyDuckDBPendingResult *ctx = get_struct_pending_result(self);
79
+ return INT2FIX(ctx->state);
80
+ }
81
+
82
+ rubyDuckDBPendingResult *get_struct_pending_result(VALUE obj) {
83
+ rubyDuckDBPendingResult *ctx;
84
+ TypedData_Get_Struct(obj, rubyDuckDBPendingResult, &pending_result_data_type, ctx);
85
+ return ctx;
86
+ }
87
+
88
+ void init_duckdb_pending_result(void) {
89
+ cDuckDBPendingResult = rb_define_class_under(mDuckDB, "PendingResult", rb_cObject);
90
+ rb_define_alloc_func(cDuckDBPendingResult, allocate);
91
+
92
+ rb_define_method(cDuckDBPendingResult, "initialize", duckdb_pending_result_initialize, 1);
93
+ rb_define_method(cDuckDBPendingResult, "execute_task", duckdb_pending_result_execute_task, 0);
94
+ rb_define_method(cDuckDBPendingResult, "execute_pending", duckdb_pending_result_execute_pending, 0);
95
+
96
+ #ifdef HAVE_DUCKDB_H_GE_V090
97
+ rb_define_method(cDuckDBPendingResult, "execution_finished?", duckdb_pending_result_execution_finished_p, 0);
98
+ #endif
99
+ rb_define_private_method(cDuckDBPendingResult, "_state", duckdb_pending_result__state, 0);
100
+ }
@@ -0,0 +1,13 @@
1
+ #ifndef RUBY_DUCKDB_PENDING_RESULT_H
2
+ #define RUBY_DUCKDB_PENDING_RESULT_H
3
+
4
+ struct _rubyDuckDBPendingResult {
5
+ duckdb_pending_result pending_result;
6
+ duckdb_pending_state state;
7
+ };
8
+
9
+ typedef struct _rubyDuckDBPendingResult rubyDuckDBPendingResult;
10
+
11
+ rubyDuckDBPendingResult *get_struct_pending_result(VALUE obj);
12
+ void init_duckdb_pending_result(void);
13
+ #endif
@@ -341,6 +341,12 @@ static VALUE duckdb_prepared_statement__bind_hugeint(VALUE self, VALUE vidx, VAL
341
341
  return self;
342
342
  }
343
343
 
344
+ rubyDuckDBPreparedStatement *get_struct_prepared_statement(VALUE self) {
345
+ rubyDuckDBPreparedStatement *ctx;
346
+ TypedData_Get_Struct(self, rubyDuckDBPreparedStatement, &prepared_statement_data_type, ctx);
347
+ return ctx;
348
+ }
349
+
344
350
  void init_duckdb_prepared_statement(void) {
345
351
  cDuckDBPreparedStatement = rb_define_class_under(mDuckDB, "PreparedStatement", rb_cObject);
346
352
 
@@ -356,7 +362,6 @@ void init_duckdb_prepared_statement(void) {
356
362
  rb_define_method(cDuckDBPreparedStatement, "parameter_name", duckdb_prepared_statement_parameter_name, 1);
357
363
  #endif
358
364
  #endif
359
-
360
365
  rb_define_method(cDuckDBPreparedStatement, "bind_bool", duckdb_prepared_statement_bind_bool, 2);
361
366
  rb_define_method(cDuckDBPreparedStatement, "bind_int8", duckdb_prepared_statement_bind_int8, 2);
362
367
  rb_define_method(cDuckDBPreparedStatement, "bind_int16", duckdb_prepared_statement_bind_int16, 2);
@@ -8,6 +8,7 @@ struct _rubyDuckDBPreparedStatement {
8
8
 
9
9
  typedef struct _rubyDuckDBPreparedStatement rubyDuckDBPreparedStatement;
10
10
 
11
+ rubyDuckDBPreparedStatement *get_struct_prepared_statement(VALUE self);
11
12
  void init_duckdb_prepared_statement(void);
12
13
 
13
14
  #endif
data/ext/duckdb/result.c CHANGED
@@ -37,7 +37,6 @@ static VALUE duckdb_result__enum_internal_type(VALUE oDuckDBResult, VALUE col_id
37
37
  static VALUE duckdb_result__enum_dictionary_size(VALUE oDuckDBResult, VALUE col_idx);
38
38
  static VALUE duckdb_result__enum_dictionary_value(VALUE oDuckDBResult, VALUE col_idx, VALUE idx);
39
39
 
40
- #ifdef HAVE_DUCKDB_H_GE_V080
41
40
  static VALUE vector_date(void *vector_data, idx_t row_idx);
42
41
  static VALUE vector_timestamp(void* vector_data, idx_t row_idx);
43
42
  static VALUE vector_interval(void* vector_data, idx_t row_idx);
@@ -52,7 +51,6 @@ static VALUE vector_struct(duckdb_logical_type ty, duckdb_vector vector, idx_t r
52
51
  static VALUE vector_uuid(void* vector_data, idx_t row_idx);
53
52
  static VALUE vector_value(duckdb_vector vector, idx_t row_idx);
54
53
  static VALUE duckdb_result_chunk_each(VALUE oDuckDBResult);
55
- #endif
56
54
 
57
55
  static const rb_data_type_t result_data_type = {
58
56
  "DuckDB/Result",
@@ -403,7 +401,6 @@ VALUE create_result(void) {
403
401
  return allocate(cDuckDBResult);
404
402
  }
405
403
 
406
- #ifdef HAVE_DUCKDB_H_GE_V080
407
404
  static VALUE vector_date(void *vector_data, idx_t row_idx) {
408
405
  duckdb_date_struct date = duckdb_from_date(((duckdb_date *) vector_data)[row_idx]);
409
406
 
@@ -719,7 +716,6 @@ static VALUE duckdb_result_chunk_each(VALUE oDuckDBResult) {
719
716
  }
720
717
  return Qnil;
721
718
  }
722
- #endif
723
719
 
724
720
  void init_duckdb_result(void) {
725
721
  cDuckDBResult = rb_define_class_under(mDuckDB, "Result", rb_cObject);
@@ -746,7 +742,5 @@ void init_duckdb_result(void) {
746
742
  rb_define_private_method(cDuckDBResult, "_enum_internal_type", duckdb_result__enum_internal_type, 1);
747
743
  rb_define_private_method(cDuckDBResult, "_enum_dictionary_size", duckdb_result__enum_dictionary_size, 1);
748
744
  rb_define_private_method(cDuckDBResult, "_enum_dictionary_value", duckdb_result__enum_dictionary_value, 2);
749
- #ifdef HAVE_DUCKDB_H_GE_V080
750
745
  rb_define_method(cDuckDBResult, "chunk_each", duckdb_result_chunk_each, 0);
751
- #endif
752
746
  }
@@ -4,14 +4,6 @@
4
4
  #include "ruby.h"
5
5
  #include <duckdb.h>
6
6
 
7
- #ifdef HAVE_DUCKDB_EXTRACT_STATEMENTS
8
- #define HAVE_DUCKDB_H_GE_V070 1
9
- #endif
10
-
11
- #ifdef HAVE_DUCKDB_STRING_IS_INLINED
12
- #define HAVE_DUCKDB_H_GE_V080 1
13
- #endif
14
-
15
7
  #ifdef HAVE_DUCKDB_BIND_PARAMETER_INDEX
16
8
  #define HAVE_DUCKDB_H_GE_V090 1
17
9
  #endif
@@ -22,6 +14,7 @@
22
14
  #include "./result.h"
23
15
  #include "./column.h"
24
16
  #include "./prepared_statement.h"
17
+ #include "./pending_result.h"
25
18
  #include "./util.h"
26
19
  #include "./converter.h"
27
20
 
@@ -1,3 +1,3 @@
1
1
  module DuckDB
2
- LIBRARY_VERSION = library_version[1..] if defined? library_version
2
+ LIBRARY_VERSION = library_version[1..]
3
3
  end
@@ -0,0 +1,39 @@
1
+ module DuckDB
2
+ # The DuckDB::PendingResult encapsulates connection with DuckDB pending
3
+ # result.
4
+ # PendingResult provides methods to execute SQL asynchronousely and check
5
+ # if the result is ready and to get the result.
6
+ #
7
+ # require 'duckdb'
8
+ #
9
+ # DuckDB::Result.use_chunk_each = true
10
+ #
11
+ # db = DuckDB::Database.open
12
+ # con = db.connect
13
+ # stmt = con.prepared_statement(VERY_SLOW_QUERY)
14
+ # pending_result = stmt.pending_prepared
15
+ # while pending_result.state == :not_ready
16
+ # print '.'
17
+ # sleep(0.01)
18
+ # pending_result.execute_task
19
+ # end
20
+ # result = pending_result.execute_pending
21
+ class PendingResult
22
+ STATES = %i[ready not_ready error no_tasks].freeze
23
+
24
+ # returns the state of the pending result.
25
+ # The result can be :ready, :not_ready, :error, :no_tasks.
26
+ # (:no_tasks is available only with duckdb 0.9.0 or later.)
27
+ #
28
+ # :ready means the result is ready to be fetched, and
29
+ # you can call `execute_pending` to get the result.
30
+ #
31
+ # :not_ready means the result is not ready yet, so
32
+ # you need to call `execute_task`.
33
+ #
34
+ # @return [Symbol] :ready, :not_ready, :error, :no_tasks
35
+ def state
36
+ STATES[_state]
37
+ end
38
+ end
39
+ end
@@ -20,6 +20,10 @@ module DuckDB
20
20
  RANGE_INT32 = -2_147_483_648..2_147_483_647
21
21
  RANGE_INT64 = -9_223_372_036_854_775_808..9_223_372_036_854_775_807
22
22
 
23
+ def pending_prepared
24
+ PendingResult.new(self)
25
+ end
26
+
23
27
  # binds i-th parameter with SQL prepared statement.
24
28
  # The first argument is index of parameter.
25
29
  # The index of first parameter is 1 not 0.
data/lib/duckdb/result.rb CHANGED
@@ -25,7 +25,7 @@ module DuckDB
25
25
  class Result
26
26
  include Enumerable
27
27
 
28
- ToRuby = {
28
+ TO_METHODS = Hash.new(:_to_string).merge(
29
29
  1 => :_to_boolean,
30
30
  3 => :_to_smallint,
31
31
  4 => :_to_integer,
@@ -35,21 +35,25 @@ module DuckDB
35
35
  16 => :_to_hugeint_internal,
36
36
  18 => :_to_blob,
37
37
  19 => :_to_decimal_internal
38
- }
39
-
40
- ToRuby.default = :_to_string
38
+ ).freeze
41
39
 
42
40
  alias column_size column_count
43
41
  alias row_size row_count
44
42
 
45
- def self.use_chunk_each=(val)
46
- raise DuckDB::Error, 'chunk_each is not available. Install duckdb >= 0.8.0 and rerun `gem install duckdb`.' unless instance_methods.include?(:chunk_each)
43
+ class << self
44
+ def new
45
+ raise DuckDB::Error, 'DuckDB::Result cannot be instantiated directly.'
46
+ end
47
47
 
48
- @use_chunk_each = val
49
- end
48
+ def use_chunk_each=(val)
49
+ raise DuckDB::Error, 'chunk_each is not available. Install duckdb >= 0.8.0 and rerun `gem install duckdb`.' unless instance_methods.include?(:chunk_each)
50
50
 
51
- def self.use_chunk_each?
52
- !!@use_chunk_each
51
+ @use_chunk_each = val
52
+ end
53
+
54
+ def use_chunk_each?
55
+ !!@use_chunk_each
56
+ end
53
57
  end
54
58
 
55
59
  def each
@@ -58,7 +62,7 @@ module DuckDB
58
62
 
59
63
  chunk_each { |row| yield row }
60
64
  else
61
- warn('this `each` behavior will be deprecated in the future. set `Result.use_chunk_each = true` to use new `each` behavior.')
65
+ warn('this `each` behavior will be deprecated in the future. set `DuckDB::Result.use_chunk_each = true` to use new `each` behavior.')
62
66
  return to_enum { row_size } unless block_given?
63
67
 
64
68
  row_count.times do |row_index|
@@ -76,7 +80,7 @@ module DuckDB
76
80
  end
77
81
 
78
82
  def to_value(row_index, col_index)
79
- send(ToRuby[_column_type(col_index)], row_index, col_index)
83
+ send(TO_METHODS[_column_type(col_index)], row_index, col_index)
80
84
  end
81
85
 
82
86
  def enum_dictionary_values(col_index)
@@ -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.9.1'
6
+ VERSION = '0.9.1.1'
7
7
  end
data/lib/duckdb.rb CHANGED
@@ -8,6 +8,7 @@ require 'duckdb/database'
8
8
  require 'duckdb/connection'
9
9
  require 'duckdb/result'
10
10
  require 'duckdb/prepared_statement'
11
+ require 'duckdb/pending_result'
11
12
  require 'duckdb/appender'
12
13
  require 'duckdb/config'
13
14
  require 'duckdb/column'
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.9.1
4
+ version: 0.9.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: 2023-10-14 00:00:00.000000000 Z
11
+ date: 2023-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,6 +115,8 @@ files:
115
115
  - ext/duckdb/error.c
116
116
  - ext/duckdb/error.h
117
117
  - ext/duckdb/extconf.rb
118
+ - ext/duckdb/pending_result.c
119
+ - ext/duckdb/pending_result.h
118
120
  - ext/duckdb/prepared_statement.c
119
121
  - ext/duckdb/prepared_statement.h
120
122
  - ext/duckdb/result.c
@@ -132,6 +134,7 @@ files:
132
134
  - lib/duckdb/database.rb
133
135
  - lib/duckdb/interval.rb
134
136
  - lib/duckdb/library_version.rb
137
+ - lib/duckdb/pending_result.rb
135
138
  - lib/duckdb/prepared_statement.rb
136
139
  - lib/duckdb/result.rb
137
140
  - lib/duckdb/version.rb