duckdb 1.1.1.0 → 1.1.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 +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
|