red-arrow-duckdb 1.0.1 → 1.0.2
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/doc/text/news.md +14 -1
- data/ext/arrow-duckdb/arrow-duckdb-registration.cpp +25 -4
- data/lib/arrow-duckdb/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4e0bd37b9d6cdeb79f8b82668d0b074e1c4fa5acecbb88582fca04655373367
|
4
|
+
data.tar.gz: b9d5fdc73e4eb4a09ef5f46ea80b05750a3c75593fc4d8ead8c3f56991d70483
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65a8a8c0c9474a230dfee8a1a7731701d4d3ecdc22ef87b87d90ec5c2c91bd9cc2cb7ddd2dfe79f912ebb08d6db86888d5395709ea48fae6a77c531561b40e1a
|
7
|
+
data.tar.gz: 1e69ff5db5ca882c607ca20a024d63f096e893080779c4bcd2c43e96f5f2f98ac0f2cc2e77e7cdcd093a2739911c720686d4cffa27904c38841ddeb0dcf855f9
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 1.0.2 - 2022-03-06
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* Added support for timestamp value pushdown.
|
8
|
+
[GitHub#2](https://github.com/red-data-tools/red-arrow-duckdb/issues/2)
|
9
|
+
[Reported by Torsten Sprenger]
|
10
|
+
|
11
|
+
### Thanks
|
12
|
+
|
13
|
+
* Torsten Sprenger
|
14
|
+
|
3
15
|
## 1.0.1 - 2021-11-06
|
4
16
|
|
5
17
|
### Improvements
|
@@ -7,7 +19,8 @@
|
|
7
19
|
* macOS: Don't require specifying `PKG_CONFIG_PATH` on install such
|
8
20
|
as `PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig gem
|
9
21
|
install red-arrow-duckdb`.
|
10
|
-
[GitHub#1]
|
22
|
+
[GitHub#1](https://github.com/red-data-tools/red-arrow-duckdb/issues/2)
|
23
|
+
[Reported by Konstantin Ilchenko]
|
11
24
|
|
12
25
|
### Thanks
|
13
26
|
|
@@ -35,6 +35,22 @@
|
|
35
35
|
#include "arrow-duckdb-registration.hpp"
|
36
36
|
|
37
37
|
namespace {
|
38
|
+
std::shared_ptr<arrow::Scalar>
|
39
|
+
convert_constant_timestamp(duckdb::Value &value, arrow::TimeUnit::type unit)
|
40
|
+
{
|
41
|
+
auto scalar_result =
|
42
|
+
arrow::MakeScalar(arrow::timestamp(unit), value.GetValue<int64_t>());
|
43
|
+
if (!scalar_result.ok()) {
|
44
|
+
throw duckdb::InvalidInputException(
|
45
|
+
"[arrow][filter][pushdown][%s] "
|
46
|
+
"failed to convert to Apache Arrow scalar: %s: <%s>",
|
47
|
+
value.type().ToString(),
|
48
|
+
scalar_result.status().ToString(),
|
49
|
+
value.ToString());
|
50
|
+
}
|
51
|
+
return *scalar_result;
|
52
|
+
}
|
53
|
+
|
38
54
|
std::shared_ptr<arrow::Scalar>
|
39
55
|
convert_constant(duckdb::Value &value)
|
40
56
|
{
|
@@ -55,9 +71,14 @@ namespace {
|
|
55
71
|
// return arrow::MakeScalar(arrow::date32(), value.GetValue<int32_t>());
|
56
72
|
// case duckdb::LogicalTypeId::TIME:
|
57
73
|
// return arrow::MakeScalar(arrow::time64(), value.GetValue<int64_t>());
|
58
|
-
|
59
|
-
|
60
|
-
|
74
|
+
case duckdb::LogicalTypeId::TIMESTAMP_SEC:
|
75
|
+
return convert_constant_timestamp(value, arrow::TimeUnit::SECOND);
|
76
|
+
case duckdb::LogicalTypeId::TIMESTAMP_MS:
|
77
|
+
return convert_constant_timestamp(value, arrow::TimeUnit::MILLI);
|
78
|
+
case duckdb::LogicalTypeId::TIMESTAMP:
|
79
|
+
return convert_constant_timestamp(value, arrow::TimeUnit::MICRO);
|
80
|
+
case duckdb::LogicalTypeId::TIMESTAMP_NS:
|
81
|
+
return convert_constant_timestamp(value, arrow::TimeUnit::NANO);
|
61
82
|
case duckdb::LogicalTypeId::UTINYINT:
|
62
83
|
return arrow::MakeScalar(value.GetValue<uint8_t>());
|
63
84
|
case duckdb::LogicalTypeId::USMALLINT:
|
@@ -75,7 +96,7 @@ namespace {
|
|
75
96
|
// case LogicalTypeId::DECIMAL:
|
76
97
|
default:
|
77
98
|
throw duckdb::NotImplementedException(
|
78
|
-
"[arrow][filter][pushdown] not implemented value type
|
99
|
+
"[arrow][filter][pushdown][%s] not implemented value type",
|
79
100
|
value.type().ToString());
|
80
101
|
}
|
81
102
|
}
|
data/lib/arrow-duckdb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: red-arrow-duckdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sutou Kouhei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: duckdb
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
|
-
rubygems_version: 3.
|
122
|
+
rubygems_version: 3.4.0.dev
|
123
123
|
signing_key:
|
124
124
|
specification_version: 4
|
125
125
|
summary: Red Arrow DuckDB is a library that provides Apache Arrow support to ruby-duckdb.
|