duckdb 0.2.7.0 → 0.2.8.0

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: 309d9f5ae00645a93cd5bf8bd706f12391e1386336516d172e1963b963df5ab4
4
- data.tar.gz: 8814748ae38a1b501d21b69f47b262124771ddc382dfcdbba3d7b3b88b3cb691
3
+ metadata.gz: a07cf98bca895ec39cc43754e6f69544e22c16cab023554daa632dc0be14d527
4
+ data.tar.gz: d2e96a7556e9ab139fb4b03f8306961d011c80ff9eb259bb8f29cdbd390ea757
5
5
  SHA512:
6
- metadata.gz: 96d87f3dfa1e8366e98a0a93e1f6506508c885131eb4287ec2463eea8040fb1cc87436a10871cecb83b524d97173443d9b1c42330a5f311c210ffb921b64a7d9
7
- data.tar.gz: fed84bbde6a9c6b696e9a52bf769810788b7b49d845ddca065cafcfc535540d62127d395524ca4fee86cfba9213c82fe74204063ea674d14498d7f82f0c34e33
6
+ metadata.gz: fc64b4021083e0837de1c22470b015be7337f2e43754771c36b4265f133542bb7161762fa51a46f2ec9f9ac992bf67bb45e7d8031206f4cd385f248bddcff14d
7
+ data.tar.gz: 131cb3b1ee245cb765b8b7081d8fb900634055cf6570e6220121991e275d53e7be44ac1c1274c64f4c8991cd3252823274fd887fa3b49a31c8dc9578dd4aade6
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: macos-latest
8
8
  strategy:
9
9
  matrix:
10
- ruby: ['2.5.8', '2.6.7', '2.7.3', '3.0.1', 'head']
10
+ ruby: ['2.5.8', '2.6.8', '2.7.4', '3.0.2', 'head']
11
11
 
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -8,8 +8,8 @@ jobs:
8
8
  runs-on: ubuntu-latest
9
9
  strategy:
10
10
  matrix:
11
- ruby: ['2.5.8', '2.6.7', '2.7.3', '3.0.1', 'head']
12
- duckdb: ['0.2.6', '0.2.7']
11
+ ruby: ['2.5.8', '2.6.8', '2.7.4', '3.0.2', 'head']
12
+ duckdb: ['0.2.8', '0.2.7']
13
13
 
14
14
  steps:
15
15
  - uses: actions/checkout@v2
@@ -19,14 +19,14 @@ jobs:
19
19
  with:
20
20
  ruby-version: ${{ matrix.ruby }}
21
21
 
22
- - name: duckdb 0.2.6 cache
23
- id: duckdb-cache-v0_2_6
22
+ - name: duckdb 0.2.8 cache
23
+ id: duckdb-cache-v0_2_8
24
24
  uses: actions/cache@v1.1.0
25
25
  with:
26
- path: duckdb-v0.2.6
27
- key: ${{ runner.os }}-duckdb-v0_2_6_001
26
+ path: duckdb-v0.2.8
27
+ key: ${{ runner.os }}-duckdb-v0_2_8_001
28
28
  restore-keys: |
29
- ${{ runner.os }}-duckdb-v0_2_6
29
+ ${{ runner.os }}-duckdb-v0_2_8
30
30
 
31
31
  - name: duckdb 0.2.7 cache
32
32
  id: duckdb-cache-v0_2_7
@@ -37,15 +37,15 @@ jobs:
37
37
  restore-keys: |
38
38
  ${{ runner.os }}-duckdb-v0_2_7
39
39
 
40
- - name: Build duckdb 0.2.6
41
- if: steps.duckdb-cache-v0_2_6.outputs.cache-hit != 'true'
40
+ - name: Build duckdb 0.2.8
41
+ if: steps.duckdb-cache-v0_2_8.outputs.cache-hit != 'true'
42
42
  run: |
43
- git clone -b v0.2.6 https://github.com/cwida/duckdb.git duckdb-tmp-v0.2.6
44
- cd duckdb-tmp-v0.2.6 && make && cd ..
45
- rm -rf duckdb-v0.2.6
46
- mkdir -p duckdb-v0.2.6/build/release/src duckdb-v0.2.6/src
47
- cp -rip duckdb-tmp-v0.2.6/build/release/src/*.so duckdb-v0.2.6/build/release/src
48
- cp -rip duckdb-tmp-v0.2.6/src/include duckdb-v0.2.6/src/
43
+ git clone -b v0.2.8 https://github.com/cwida/duckdb.git duckdb-tmp-v0.2.8
44
+ cd duckdb-tmp-v0.2.8 && make && cd ..
45
+ rm -rf duckdb-v0.2.8
46
+ mkdir -p duckdb-v0.2.8/build/release/src duckdb-v0.2.8/src
47
+ cp -rip duckdb-tmp-v0.2.8/build/release/src/*.so duckdb-v0.2.8/build/release/src
48
+ cp -rip duckdb-tmp-v0.2.8/src/include duckdb-v0.2.8/src/
49
49
 
50
50
  - name: Build duckdb 0.2.7
51
51
  if: steps.duckdb-cache-v0_2_7.outputs.cache-hit != 'true'
data/.travis.yml CHANGED
@@ -2,17 +2,17 @@ language: ruby
2
2
  cache:
3
3
  bundler: true
4
4
  directories:
5
- - ${HOME}/duckdb-v0.2.7
5
+ - ${HOME}/duckdb-v0.2.8
6
6
  before_install:
7
7
  - yes | gem update --system
8
- - if [[ ! -d ${HOME}/duckdb-v0.2.7/build ]]; then cd ${HOME} && git clone -b v0.2.7 https://github.com/cwida/duckdb.git duckdb-v0.2.7 && cd duckdb-v0.2.7 && make && cd ${TRAVIS_BUILD_DIR}; fi
8
+ - if [[ ! -d ${HOME}/duckdb-v0.2.8/build ]]; then cd ${HOME} && git clone -b v0.2.8 https://github.com/cwida/duckdb.git duckdb-v0.2.8 && cd duckdb-v0.2.8 && make && cd ${TRAVIS_BUILD_DIR}; fi
9
9
 
10
10
  env:
11
- - DUCKDB_VERSION=0.2.7
11
+ - DUCKDB_VERSION=0.2.8
12
12
  rvm:
13
13
  - 2.5.8
14
- - 2.6.7
15
- - 2.7.3
16
- - 3.0.1
14
+ - 2.6.8
15
+ - 2.7.4
16
+ - 3.0.2
17
17
  - ruby-head
18
18
  script: bundle exec rake -- --with-duckdb-include=${HOME}/duckdb-v${DUCKDB_VERSION}/src/include --with-duckdb-lib=${HOME}/duckdb-v${DUCKDB_VERSION}/build/release/src/
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # ChangeLog
2
2
 
3
+ - DuckDB::Database.open accepts 2-nd argument as DuckDB::Config object.
4
+ - add DuckDB::Config
5
+ - bump duckdb to 0.2.8 in CI
6
+ - bump Ruby to 2.6.8, 2.7.4, 3.0.2 in CI
7
+
3
8
  # 0.2.7.0
4
9
 
5
10
  - call duckdb_free after calling duckdb_value_blob, duckdb_value_varchar.
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- duckdb (0.2.7.0)
4
+ duckdb (0.2.8.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  minitest (5.14.4)
10
- rake (13.0.3)
10
+ rake (13.0.6)
11
11
  rake-compiler (1.1.1)
12
12
  rake
13
13
 
@@ -22,4 +22,4 @@ DEPENDENCIES
22
22
  rake-compiler
23
23
 
24
24
  BUNDLED WITH
25
- 2.2.17
25
+ 2.2.25
data/README.md CHANGED
@@ -149,3 +149,21 @@ end
149
149
  # prepare 0.230457 0.000000 0.230457 ( 0.230460 )
150
150
  # append 0.012666 0.000000 0.012666 ( 0.012670 )
151
151
  ```
152
+
153
+ ### Configuration
154
+
155
+ Config class provides Ruby interface of [DuckDB configuration](https://duckdb.org/docs/api/c/config).
156
+
157
+ ```
158
+ require 'duckdb'
159
+ config = DuckDB::Config.new
160
+ config['default_order'] = 'DESC'
161
+ db = DuckDB::Database.open(nil, config)
162
+ con = db.connect
163
+ con.query('CREATE TABLE numbers (number INTEGER)')
164
+ con.query('INSERT INTO numbers VALUES (2), (1), (4), (3)')
165
+
166
+ # number is ordered by descending.
167
+ r = con.query('SELECT number FROM numbers ORDER BY number')
168
+ r.first.first # => 4
169
+ ```
@@ -0,0 +1,80 @@
1
+ #include "ruby-duckdb.h"
2
+
3
+ #ifdef HAVE_DUCKDB_CREATE_CONFIG
4
+
5
+ VALUE cDuckDBConfig;
6
+
7
+ static void deallocate(void *);
8
+ static VALUE allocate(VALUE klass);
9
+ static VALUE config_s_size(VALUE klass);
10
+ static VALUE config_s_get_config_flag(VALUE self, VALUE value);
11
+ static VALUE config_initialize(VALUE self);
12
+ static VALUE config_set_config(VALUE self, VALUE key, VALUE value);
13
+
14
+ static void deallocate(void * ctx)
15
+ {
16
+ rubyDuckDBConfig *p = (rubyDuckDBConfig *)ctx;
17
+
18
+ duckdb_destroy_config(&(p->config));
19
+ xfree(p);
20
+ }
21
+
22
+ static VALUE allocate(VALUE klass)
23
+ {
24
+ rubyDuckDBConfig *ctx = xcalloc((size_t)1, sizeof(rubyDuckDBConfig));
25
+ return Data_Wrap_Struct(klass, NULL, deallocate, ctx);
26
+ }
27
+
28
+ static VALUE config_initialize(VALUE self) {
29
+ rubyDuckDBConfig *ctx;
30
+
31
+ Data_Get_Struct(self, rubyDuckDBConfig, ctx);
32
+
33
+ if (duckdb_create_config(&(ctx->config)) == DuckDBError) {
34
+ rb_raise(eDuckDBError, "failed to create config");
35
+ }
36
+ return self;
37
+ }
38
+
39
+ static VALUE config_s_size(VALUE self) {
40
+ return INT2NUM(duckdb_config_count());
41
+ }
42
+
43
+ static VALUE config_s_get_config_flag(VALUE klass, VALUE value) {
44
+ const char *pkey;
45
+ const char *pdesc;
46
+
47
+ size_t i = NUM2INT(value);
48
+
49
+ if (duckdb_get_config_flag(i, &pkey, &pdesc) == DuckDBError) {
50
+ rb_raise(eDuckDBError, "failed to get config information of index %ld", i);
51
+ }
52
+
53
+ return rb_ary_new3(2, rb_str_new2(pkey), rb_str_new2(pdesc));
54
+ }
55
+
56
+ static VALUE config_set_config(VALUE self, VALUE key, VALUE value) {
57
+ const char *pkey = StringValuePtr(key);
58
+ const char *pval = StringValuePtr(value);
59
+
60
+ rubyDuckDBConfig *ctx;
61
+ Data_Get_Struct(self, rubyDuckDBConfig, ctx);
62
+
63
+ if (duckdb_set_config(ctx->config, pkey, pval) == DuckDBError) {
64
+ rb_raise(eDuckDBError, "failed to set config %s => %s", pkey, pval);
65
+ }
66
+ return self;
67
+ }
68
+
69
+ void init_duckdb_config(void) {
70
+ cDuckDBConfig = rb_define_class_under(mDuckDB, "Config", rb_cObject);
71
+ rb_define_alloc_func(cDuckDBConfig, allocate);
72
+ rb_define_singleton_method(cDuckDBConfig, "size", config_s_size, 0);
73
+ rb_define_singleton_method(cDuckDBConfig, "get_config_flag", config_s_get_config_flag, 1);
74
+
75
+ rb_define_method(cDuckDBConfig, "initialize", config_initialize, 0);
76
+ rb_define_method(cDuckDBConfig, "set_config", config_set_config, 2);
77
+ }
78
+
79
+ #endif
80
+
@@ -0,0 +1,18 @@
1
+ #ifndef RUBY_DUCKDB_CONFIG_H
2
+ #define RUBY_DUCKDB_CONFIG_H
3
+
4
+ #ifdef HAVE_DUCKDB_CREATE_CONFIG
5
+
6
+ struct _rubyDuckDBConfig {
7
+ duckdb_config config;
8
+ };
9
+
10
+ typedef struct _rubyDuckDBConfig rubyDuckDBConfig;
11
+
12
+ void init_duckdb_config(void);
13
+
14
+ #endif
15
+
16
+ #endif
17
+
18
+
@@ -2,6 +2,12 @@
2
2
 
3
3
  VALUE cDuckDBDatabase;
4
4
 
5
+ static void close_database(rubyDuckDB *p);
6
+ static void deallocate(void * ctx);
7
+ static VALUE allocate(VALUE klass);
8
+ static VALUE duckdb_database_s_open(int argc, VALUE *argv, VALUE cDuckDBDatabase);
9
+ static VALUE duckdb_database_s_open_ext(int argc, VALUE *argv, VALUE cDuckDBDatabase);
10
+
5
11
  static void close_database(rubyDuckDB *p)
6
12
  {
7
13
  duckdb_close(&(p->db));
@@ -25,6 +31,7 @@ static VALUE duckdb_database_s_open(int argc, VALUE *argv, VALUE cDuckDBDatabase
25
31
  {
26
32
  rubyDuckDB *ctx;
27
33
  VALUE obj;
34
+
28
35
  char *pfile = NULL;
29
36
  VALUE file = Qnil;
30
37
 
@@ -36,13 +43,49 @@ static VALUE duckdb_database_s_open(int argc, VALUE *argv, VALUE cDuckDBDatabase
36
43
 
37
44
  obj = allocate(cDuckDBDatabase);
38
45
  Data_Get_Struct(obj, rubyDuckDB, ctx);
39
- if (duckdb_open(pfile, &(ctx->db)) == DuckDBError)
40
- {
46
+ if (duckdb_open(pfile, &(ctx->db)) == DuckDBError) {
41
47
  rb_raise(eDuckDBError, "Failed to open database"); /* FIXME */
42
48
  }
43
49
  return obj;
44
50
  }
45
51
 
52
+ #ifdef HAVE_DUCKDB_OPEN_EXT
53
+ static VALUE duckdb_database_s_open_ext(int argc, VALUE *argv, VALUE cDuckDBDatabase)
54
+ {
55
+ rubyDuckDB *ctx;
56
+ VALUE obj;
57
+ rubyDuckDBConfig *ctx_config;
58
+ char *perror;
59
+
60
+ char *pfile = NULL;
61
+ VALUE file = Qnil;
62
+ VALUE config = Qnil;
63
+
64
+ rb_scan_args(argc, argv, "02", &file, &config);
65
+
66
+ if (!NIL_P(file)) {
67
+ pfile = StringValuePtr(file);
68
+ }
69
+
70
+ obj = allocate(cDuckDBDatabase);
71
+ Data_Get_Struct(obj, rubyDuckDB, ctx);
72
+ if (!NIL_P(config)) {
73
+ if (!rb_obj_is_kind_of(config, cDuckDBConfig)) {
74
+ rb_raise(rb_eTypeError, "The second argument must be DuckDB::Config object.");
75
+ }
76
+ Data_Get_Struct(config, rubyDuckDBConfig, ctx_config);
77
+ if (duckdb_open_ext(pfile, &(ctx->db), ctx_config->config, &perror) == DuckDBError) {
78
+ rb_raise(eDuckDBError, "Failed to open database %s", perror);
79
+ }
80
+ } else {
81
+ if (duckdb_open(pfile, &(ctx->db)) == DuckDBError) {
82
+ rb_raise(eDuckDBError, "Failed to open database"); /* FIXME */
83
+ }
84
+ }
85
+ return obj;
86
+ }
87
+ #endif /* HAVE_DUCKDB_OPEN_EXT */
88
+
46
89
  static VALUE duckdb_database_connect(VALUE self)
47
90
  {
48
91
  return create_connection(self);
@@ -67,6 +110,9 @@ void init_duckdb_database(void)
67
110
  cDuckDBDatabase = rb_define_class_under(mDuckDB, "Database", rb_cObject);
68
111
  rb_define_alloc_func(cDuckDBDatabase, allocate);
69
112
  rb_define_singleton_method(cDuckDBDatabase, "_open", duckdb_database_s_open, -1);
113
+ #ifdef HAVE_DUCKDB_OPEN_EXT
114
+ rb_define_singleton_method(cDuckDBDatabase, "_open_ext", duckdb_database_s_open_ext, -1);
115
+ #endif
70
116
  rb_define_private_method(cDuckDBDatabase, "_connect", duckdb_database_connect, 0);
71
117
  rb_define_method(cDuckDBDatabase, "close", duckdb_database_close, 0);
72
118
  }
data/ext/duckdb/duckdb.c CHANGED
@@ -24,4 +24,10 @@ Init_duckdb_native(void)
24
24
  init_duckdb_appender();
25
25
 
26
26
  #endif /* HAVE_DUCKDB_APPENDER_CREATE */
27
+
28
+ #ifdef HAVE_DUCKDB_CREATE_CONFIG
29
+
30
+ init_duckdb_config();
31
+
32
+ #endif /* HAVE_DUCKDB_CREATE_CONFIG */
27
33
  }
@@ -6,5 +6,7 @@ if have_library('duckdb')
6
6
  have_func('duckdb_bind_blob', 'duckdb.h')
7
7
  have_func('duckdb_appender_create', 'duckdb.h')
8
8
  have_func('duckdb_free', 'duckdb.h')
9
+ have_func('duckdb_create_config', 'duckdb.h')
10
+ have_func('duckdb_open_ext', 'duckdb.h')
9
11
  create_makefile('duckdb/duckdb_native')
10
12
  end
@@ -21,6 +21,12 @@
21
21
 
22
22
  #endif /* HAVE_DUCKDB_APPENDER_CREATE */
23
23
 
24
+ #ifdef HAVE_DUCKDB_CREATE_CONFIG
25
+
26
+ #include "./config.h"
27
+
28
+ #endif /* HAVE_DUCKDB_CREATE_CONFIG */
29
+
24
30
  extern VALUE mDuckDB;
25
31
  extern VALUE cDuckDBDatabase;
26
32
  extern VALUE cDuckDBConnection;
@@ -31,6 +37,12 @@ extern VALUE cDuckDBBlob;
31
37
 
32
38
  #endif /* HAVE_DUCKDB_VALUE_BLOB */
33
39
 
40
+ #ifdef HAVE_DUCKDB_CREATE_CONFIG
41
+
42
+ extern VALUE cDuckDBConfig;
43
+
44
+ #endif /* HAVE_DUCKDB_CREATE_CONFIG */
45
+
34
46
  extern VALUE eDuckDBError;
35
47
 
36
48
  #endif
@@ -12,9 +12,9 @@ module DuckDB
12
12
  # appender.append_row(1, 'Alice')
13
13
  #
14
14
  class Appender
15
- RANGE_INT16 = (-32_768..32_767).freeze
16
- RANGE_INT32 = (-2_147_483_648..2_147_483_647).freeze
17
- RANGE_INT64 = (-9_223_372_036_854_775_808..9_223_372_036_854_775_807).freeze
15
+ RANGE_INT16 = -32_768..32_767
16
+ RANGE_INT32 = -2_147_483_648..2_147_483_647
17
+ RANGE_INT64 = -9_223_372_036_854_775_808..9_223_372_036_854_775_807
18
18
 
19
19
  def append_hugeint(value)
20
20
  case value
@@ -0,0 +1,65 @@
1
+ module DuckDB
2
+ if defined?(DuckDB::Config)
3
+ # The DuckDB::Config encapsulates DuckDB Configuration.
4
+ #
5
+ # require 'duckdb'
6
+ # config = DuckDB::Config.new
7
+ # config['default_order'] = 'DESC'
8
+ # db = DuckDB::Database.open(nil, config)
9
+ # con = db.connect
10
+ # con.query('CREATE TABLE numbers (number INTEGER)')
11
+ # con.query('INSERT INTO numbers VALUES (2), (1), (4), (3)')
12
+ #
13
+ # # number is ordered by descending.
14
+ # r = con.query('SELECT number FROM numbers ORDER BY number)
15
+ # r.first.first # => 4
16
+ class Config
17
+ class << self
18
+ #
19
+ # returns available configuration name and the description.
20
+ # The return value is array object. The first element is the configuration
21
+ # name. The second is the description.
22
+ #
23
+ # key, desc = DuckDB::Config.key_description(0)
24
+ # key # => "access_mode"
25
+ # desc # => "Access mode of the database ([AUTOMATIC], READ_ONLY or READ_WRITE)"
26
+ #
27
+ alias key_description get_config_flag
28
+
29
+ #
30
+ # returns the Hash object of all available configuration names and
31
+ # the descriptions.
32
+ #
33
+ # configs = DuckDB::Config.key_descriptions
34
+ # configs['default_order'] # => "The order type used when none is specified ([ASC] or DESC)"
35
+ #
36
+ def key_descriptions
37
+ return @key_descriptions if @key_descriptions
38
+
39
+ n = size
40
+ @key_descriptions = (0...n).each_with_object({}) do |i, hash|
41
+ key, description = key_description(i)
42
+ hash[key] = description
43
+ end
44
+ end
45
+ end
46
+
47
+ #
48
+ # set configuration value
49
+ #
50
+ # config = DuckDB::Config.new
51
+ # # config.set_config('default_order', 'DESC')
52
+ # config['default_order'] = 'DESC'
53
+ #
54
+ # db = DuckDB::Database.open(nil, config)
55
+ # con = db.connect
56
+ # con.query('CREATE TABLE numbers (number INTEGER)')
57
+ # con.query('INSERT INTO numbers VALUES (2), (1), (4), (3)')
58
+ #
59
+ # # numbers are ordered by descending.
60
+ # r = con.query('SELECT number FROM numbers ORDER BY number)
61
+ # r.first.first # => 4
62
+ alias []= set_config
63
+ end
64
+ end
65
+ end
@@ -21,6 +21,7 @@ module DuckDB
21
21
  #
22
22
  class Database
23
23
  private_class_method :_open
24
+ private_class_method :_open_ext if defined?(DuckDB::Config)
24
25
 
25
26
  class << self
26
27
  ##
@@ -38,8 +39,8 @@ module DuckDB
38
39
  # con.query('CREATE TABLE users (id INTEGER, name VARCHAR(30))')
39
40
  # end
40
41
  #
41
- def open(*args)
42
- db = _open(*args)
42
+ def open(dbpath = nil, config = nil)
43
+ db = _db_open(dbpath, config)
43
44
  return db unless block_given?
44
45
 
45
46
  begin
@@ -48,6 +49,18 @@ module DuckDB
48
49
  db.close
49
50
  end
50
51
  end
52
+
53
+ private
54
+
55
+ def _db_open(dbpath, config)
56
+ if defined?(DuckDB::Config) && config
57
+ _open_ext(dbpath, config)
58
+ elsif config
59
+ _open(dbpath, config)
60
+ else
61
+ _open(dbpath)
62
+ end
63
+ end
51
64
  end
52
65
 
53
66
  ##
@@ -1,5 +1,5 @@
1
1
  module DuckDB
2
2
  # The version string of ruby-duckdb.
3
3
  # Currently, ruby-duckdb is NOT semantic versioning.
4
- VERSION = '0.2.7.0'.freeze
4
+ VERSION = '0.2.8.0'.freeze
5
5
  end
data/lib/duckdb.rb CHANGED
@@ -5,6 +5,7 @@ require 'duckdb/connection'
5
5
  require 'duckdb/result'
6
6
  require 'duckdb/prepared_statement'
7
7
  require 'duckdb/appender'
8
+ require 'duckdb/config'
8
9
 
9
10
  # DuckDB provides Ruby interface of DuckDB.
10
11
  module DuckDB
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.2.7.0
4
+ version: 0.2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaki Suketa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-19 00:00:00.000000000 Z
11
+ date: 2021-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -93,6 +93,8 @@ files:
93
93
  - ext/duckdb/appender.h
94
94
  - ext/duckdb/blob.c
95
95
  - ext/duckdb/blob.h
96
+ - ext/duckdb/config.c
97
+ - ext/duckdb/config.h
96
98
  - ext/duckdb/connection.c
97
99
  - ext/duckdb/connection.h
98
100
  - ext/duckdb/database.c
@@ -108,6 +110,7 @@ files:
108
110
  - ext/duckdb/ruby-duckdb.h
109
111
  - lib/duckdb.rb
110
112
  - lib/duckdb/appender.rb
113
+ - lib/duckdb/config.rb
111
114
  - lib/duckdb/connection.rb
112
115
  - lib/duckdb/database.rb
113
116
  - lib/duckdb/prepared_statement.rb
@@ -135,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
138
  - !ruby/object:Gem::Version
136
139
  version: '0'
137
140
  requirements: []
138
- rubygems_version: 3.2.15
141
+ rubygems_version: 3.2.22
139
142
  signing_key:
140
143
  specification_version: 4
141
144
  summary: This module is Ruby binding for DuckDB database engine.