duckdb 1.1.1.0 → 1.1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test_on_macos.yml +2 -2
- data/.github/workflows/test_on_ubuntu.yml +2 -2
- data/.github/workflows/test_on_windows.yml +1 -1
- data/.gitignore +1 -0
- data/CHANGELOG.md +7 -1
- data/CONTRIBUTION.md +1 -1
- data/Dockerfile +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/ext/duckdb/prepared_statement.c +24 -2
- data/lib/duckdb/connection.rb +6 -0
- data/lib/duckdb/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b6ad88562489a943d5ed0a4fcf56c4f84c9c3aa1a9f28d6d1fc6431c3fcea0b
|
4
|
+
data.tar.gz: ac3047cf0098642db942d3547d1e8069fdb53ac0c8eb7f757a0f15c31465b895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5614558f8685681f3369dfb4d8e36ead416b7ba1e4b0de48ff5edcc375a99c43bc1c3d996eca1f083d2df0352ced146f1e6d23bff99fa193035c9f996674e63d
|
7
|
+
data.tar.gz: 2ace009816b0dfee961d8db1b0864e512239186ebf7b8b0ffe20a360e0a247a68afd11c4b97993e350f7b2a7f8eb29d4b4b3fcb367b31c575a6163d1d9d333c6
|
@@ -15,8 +15,8 @@ jobs:
|
|
15
15
|
runs-on: macos-latest
|
16
16
|
strategy:
|
17
17
|
matrix:
|
18
|
-
ruby: ['3.1.6', '3.2.5', '3.3.5', '3.4.0-
|
19
|
-
duckdb: ['1.1.
|
18
|
+
ruby: ['3.1.6', '3.2.5', '3.3.5', '3.4.0-preview2', 'head']
|
19
|
+
duckdb: ['1.1.2', '1.1.1', '1.0.0']
|
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.1.6', '3.2.5', '3.3.5', '3.4.0-
|
19
|
-
duckdb: ['1.1.
|
18
|
+
ruby: ['3.1.6', '3.2.5', '3.3.5', '3.4.0-preview2', 'head']
|
19
|
+
duckdb: ['1.1.2', '1.1.1', '1.0.0']
|
20
20
|
|
21
21
|
steps:
|
22
22
|
- uses: actions/checkout@v4
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -3,8 +3,14 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
# Unreleased
|
5
5
|
|
6
|
+
# 1.1.2.0 - 2024-10-20
|
7
|
+
- bump duckdb to 1.1.2.
|
8
|
+
- add `DuckDB::PreparedStatement#destroy`.
|
9
|
+
- `DuckDB::Connection#query`, `DuckDB::Connection#async_query`, `DuckDB::Connection#async_query_stream` call
|
10
|
+
`DuckDB::PreparedStatement#destroy` to free the prepared statement immediately (#775, #781).
|
11
|
+
|
6
12
|
# 1.1.1.0 - 2024-10-06
|
7
|
-
- bump duckdb 1.1.1.
|
13
|
+
- bump duckdb to 1.1.1.
|
8
14
|
## Breaking changes
|
9
15
|
- drop duckdb v0.10.x.
|
10
16
|
|
data/CONTRIBUTION.md
CHANGED
@@ -14,7 +14,7 @@ docker compose run --rm ubuntu bash
|
|
14
14
|
|
15
15
|
In case you want custom ruby or duckdb versions, use `--build-arg` options
|
16
16
|
```
|
17
|
-
docker
|
17
|
+
docker compose build ubuntu --build-arg RUBY_VERSION=3.1.3 --build-arg DUCKDB_VERSION=1.0.0
|
18
18
|
```
|
19
19
|
|
20
20
|
### Without docker
|
data/Dockerfile
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,12 +2,14 @@
|
|
2
2
|
|
3
3
|
VALUE cDuckDBPreparedStatement;
|
4
4
|
|
5
|
+
static void destroy_prepared_statement(rubyDuckDBPreparedStatement *p);
|
5
6
|
static void deallocate(void *ctx);
|
6
7
|
static VALUE allocate(VALUE klass);
|
7
8
|
static size_t memsize(const void *p);
|
8
9
|
static VALUE duckdb_prepared_statement_initialize(VALUE self, VALUE con, VALUE query);
|
9
10
|
static VALUE duckdb_prepared_statement_nparams(VALUE self);
|
10
11
|
static VALUE duckdb_prepared_statement_execute(VALUE self);
|
12
|
+
static VALUE duckdb_prepared_statement_destroy(VALUE self);
|
11
13
|
static idx_t check_index(VALUE vidx);
|
12
14
|
|
13
15
|
static VALUE duckdb_prepared_statement_bind_parameter_index(VALUE self, VALUE name);
|
@@ -37,10 +39,17 @@ static const rb_data_type_t prepared_statement_data_type = {
|
|
37
39
|
0, 0, RUBY_TYPED_FREE_IMMEDIATELY
|
38
40
|
};
|
39
41
|
|
42
|
+
static void destroy_prepared_statement(rubyDuckDBPreparedStatement *p) {
|
43
|
+
if (p->prepared_statement) {
|
44
|
+
duckdb_destroy_prepare(&(p->prepared_statement));
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
40
48
|
static void deallocate(void *ctx) {
|
41
49
|
rubyDuckDBPreparedStatement *p = (rubyDuckDBPreparedStatement *)ctx;
|
42
50
|
|
43
|
-
|
51
|
+
destroy_prepared_statement(p);
|
52
|
+
// duckdb_destroy_prepare(&(p->prepared_statement));
|
44
53
|
xfree(p);
|
45
54
|
}
|
46
55
|
|
@@ -91,7 +100,6 @@ static VALUE duckdb_prepared_statement_nparams(VALUE self) {
|
|
91
100
|
return ULL2NUM(duckdb_nparams(ctx->prepared_statement));
|
92
101
|
}
|
93
102
|
|
94
|
-
|
95
103
|
static VALUE duckdb_prepared_statement_execute(VALUE self) {
|
96
104
|
rubyDuckDBPreparedStatement *ctx;
|
97
105
|
rubyDuckDBResult *ctxr;
|
@@ -105,6 +113,19 @@ static VALUE duckdb_prepared_statement_execute(VALUE self) {
|
|
105
113
|
return result;
|
106
114
|
}
|
107
115
|
|
116
|
+
/*
|
117
|
+
* :nodoc:
|
118
|
+
*/
|
119
|
+
static VALUE duckdb_prepared_statement_destroy(VALUE self) {
|
120
|
+
rubyDuckDBPreparedStatement *ctx;
|
121
|
+
TypedData_Get_Struct(self, rubyDuckDBPreparedStatement, &prepared_statement_data_type, ctx);
|
122
|
+
destroy_prepared_statement(ctx);
|
123
|
+
/*
|
124
|
+
ctx->prepared_statement = NULL;
|
125
|
+
*/
|
126
|
+
return Qnil;
|
127
|
+
}
|
128
|
+
|
108
129
|
static idx_t check_index(VALUE vidx) {
|
109
130
|
idx_t idx = NUM2ULL(vidx);
|
110
131
|
if (idx <= 0) {
|
@@ -391,6 +412,7 @@ void rbduckdb_init_duckdb_prepared_statement(void) {
|
|
391
412
|
|
392
413
|
rb_define_method(cDuckDBPreparedStatement, "initialize", duckdb_prepared_statement_initialize, 2);
|
393
414
|
rb_define_method(cDuckDBPreparedStatement, "execute", duckdb_prepared_statement_execute, 0);
|
415
|
+
rb_define_method(cDuckDBPreparedStatement, "destroy", duckdb_prepared_statement_destroy, 0);
|
394
416
|
rb_define_method(cDuckDBPreparedStatement, "nparams", duckdb_prepared_statement_nparams, 0);
|
395
417
|
rb_define_method(cDuckDBPreparedStatement, "bind_parameter_index", duckdb_prepared_statement_bind_parameter_index, 1);
|
396
418
|
rb_define_method(cDuckDBPreparedStatement, "parameter_name", duckdb_prepared_statement_parameter_name, 1);
|
data/lib/duckdb/connection.rb
CHANGED
@@ -31,6 +31,8 @@ module DuckDB
|
|
31
31
|
stmt = PreparedStatement.new(self, sql)
|
32
32
|
stmt.bind_args(*args, **kwargs)
|
33
33
|
stmt.execute
|
34
|
+
ensure
|
35
|
+
stmt&.destroy
|
34
36
|
end
|
35
37
|
|
36
38
|
#
|
@@ -53,6 +55,8 @@ module DuckDB
|
|
53
55
|
stmt = PreparedStatement.new(self, sql)
|
54
56
|
stmt.bind_args(*args, **kwargs)
|
55
57
|
stmt.pending_prepared
|
58
|
+
ensure
|
59
|
+
stmt&.destroy
|
56
60
|
end
|
57
61
|
|
58
62
|
#
|
@@ -76,6 +80,8 @@ module DuckDB
|
|
76
80
|
stmt = PreparedStatement.new(self, sql)
|
77
81
|
stmt.bind_args(*args, **kwargs)
|
78
82
|
stmt.pending_prepared_stream
|
83
|
+
ensure
|
84
|
+
stmt&.destroy
|
79
85
|
end
|
80
86
|
|
81
87
|
#
|
data/lib/duckdb/version.rb
CHANGED
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: 1.1.
|
4
|
+
version: 1.1.2.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: 2024-10-
|
11
|
+
date: 2024-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bigdecimal
|