duckdb 0.5.2-dev2131.0 → 0.5.2-dev2157.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.
- package/package.json +1 -1
- package/src/duckdb.cpp +31 -5
- package/src/duckdb.hpp +2 -2
- package/src/parquet-amalgamation.cpp +37553 -37553
package/package.json
CHANGED
package/src/duckdb.cpp
CHANGED
|
@@ -45450,6 +45450,7 @@ string Decimal::ToString(hugeint_t value, uint8_t width, uint8_t scale) {
|
|
|
45450
45450
|
|
|
45451
45451
|
|
|
45452
45452
|
#include <functional>
|
|
45453
|
+
#include <cmath>
|
|
45453
45454
|
|
|
45454
45455
|
namespace duckdb {
|
|
45455
45456
|
|
|
@@ -45468,9 +45469,22 @@ hash_t Hash(hugeint_t val) {
|
|
|
45468
45469
|
return murmurhash64(val.lower) ^ murmurhash64(val.upper);
|
|
45469
45470
|
}
|
|
45470
45471
|
|
|
45472
|
+
template <class T>
|
|
45473
|
+
struct FloatingPointEqualityTransform {
|
|
45474
|
+
static void OP(T &val) {
|
|
45475
|
+
if (val == (T)0.0) {
|
|
45476
|
+
// Turn negative zero into positive zero
|
|
45477
|
+
val = (T)0.0;
|
|
45478
|
+
} else if (std::isnan(val)) {
|
|
45479
|
+
val = std::numeric_limits<T>::quiet_NaN();
|
|
45480
|
+
}
|
|
45481
|
+
}
|
|
45482
|
+
};
|
|
45483
|
+
|
|
45471
45484
|
template <>
|
|
45472
45485
|
hash_t Hash(float val) {
|
|
45473
45486
|
static_assert(sizeof(float) == sizeof(uint32_t), "");
|
|
45487
|
+
FloatingPointEqualityTransform<float>::OP(val);
|
|
45474
45488
|
uint32_t uval = *((uint32_t *)&val);
|
|
45475
45489
|
return murmurhash64(uval);
|
|
45476
45490
|
}
|
|
@@ -45478,6 +45492,7 @@ hash_t Hash(float val) {
|
|
|
45478
45492
|
template <>
|
|
45479
45493
|
hash_t Hash(double val) {
|
|
45480
45494
|
static_assert(sizeof(double) == sizeof(uint64_t), "");
|
|
45495
|
+
FloatingPointEqualityTransform<double>::OP(val);
|
|
45481
45496
|
uint64_t uval = *((uint64_t *)&val);
|
|
45482
45497
|
return murmurhash64(uval);
|
|
45483
45498
|
}
|
|
@@ -142055,7 +142070,7 @@ inline bool parse_header(const char *beg, const char *end, T fn) {
|
|
|
142055
142070
|
}
|
|
142056
142071
|
|
|
142057
142072
|
if (p < end) {
|
|
142058
|
-
fn(std::string(beg, key_end),
|
|
142073
|
+
fn(std::string(beg, key_end), std::string(p, end));
|
|
142059
142074
|
return true;
|
|
142060
142075
|
}
|
|
142061
142076
|
|
|
@@ -144895,7 +144910,7 @@ inline bool ClientImpl::redirect(Request &req, Response &res, Error &error) {
|
|
|
144895
144910
|
return false;
|
|
144896
144911
|
}
|
|
144897
144912
|
|
|
144898
|
-
auto location =
|
|
144913
|
+
auto location = res.get_header_value("location");
|
|
144899
144914
|
if (location.empty()) { return false; }
|
|
144900
144915
|
|
|
144901
144916
|
const static Regex re(
|
|
@@ -196196,7 +196211,10 @@ BindResult ColumnAliasBinder::BindAlias(ExpressionBinder &enclosing_binder, Colu
|
|
|
196196
196211
|
// found an alias: bind the alias expression
|
|
196197
196212
|
auto expression = node.original_expressions[alias_entry->second]->Copy();
|
|
196198
196213
|
in_alias = true;
|
|
196199
|
-
|
|
196214
|
+
|
|
196215
|
+
// since the alias has been found, pass a depth of 0. See Issue 4978 (#16)
|
|
196216
|
+
// ColumnAliasBinders are only in Having, Qualify and Where Binders
|
|
196217
|
+
auto result = enclosing_binder.BindExpression(&expression, 0, root_expression);
|
|
196200
196218
|
in_alias = false;
|
|
196201
196219
|
return result;
|
|
196202
196220
|
}
|
|
@@ -200683,9 +200701,17 @@ unique_ptr<LogicalOperator> FlattenDependentJoins::PushDownDependentJoinInternal
|
|
|
200683
200701
|
setop.column_count += correlated_columns.size();
|
|
200684
200702
|
return plan;
|
|
200685
200703
|
}
|
|
200686
|
-
case LogicalOperatorType::LOGICAL_DISTINCT:
|
|
200687
|
-
|
|
200704
|
+
case LogicalOperatorType::LOGICAL_DISTINCT: {
|
|
200705
|
+
auto &distinct = (LogicalDistinct &)*plan;
|
|
200706
|
+
// push down into child
|
|
200707
|
+
distinct.children[0] = PushDownDependentJoin(move(distinct.children[0]));
|
|
200708
|
+
// add all correlated columns to the distinct targets
|
|
200709
|
+
for (idx_t i = 0; i < correlated_columns.size(); i++) {
|
|
200710
|
+
distinct.distinct_targets.push_back(make_unique<BoundColumnRefExpression>(
|
|
200711
|
+
correlated_columns[i].type, ColumnBinding(base_binding.table_index, base_binding.column_index + i)));
|
|
200712
|
+
}
|
|
200688
200713
|
return plan;
|
|
200714
|
+
}
|
|
200689
200715
|
case LogicalOperatorType::LOGICAL_EXPRESSION_GET: {
|
|
200690
200716
|
// expression get
|
|
200691
200717
|
// first we flatten the dependent join in the child
|
package/src/duckdb.hpp
CHANGED
|
@@ -11,8 +11,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
11
11
|
#pragma once
|
|
12
12
|
#define DUCKDB_AMALGAMATION 1
|
|
13
13
|
#define DUCKDB_AMALGAMATION_EXTENDED 1
|
|
14
|
-
#define DUCKDB_SOURCE_ID "
|
|
15
|
-
#define DUCKDB_VERSION "v0.5.2-
|
|
14
|
+
#define DUCKDB_SOURCE_ID "2f1a16b9ce"
|
|
15
|
+
#define DUCKDB_VERSION "v0.5.2-dev2157"
|
|
16
16
|
//===----------------------------------------------------------------------===//
|
|
17
17
|
// DuckDB
|
|
18
18
|
//
|