duckdb 0.5.0 → 0.5.1-dev21.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "duckdb",
3
3
  "main": "./lib/duckdb.js",
4
- "version": "0.5.0",
4
+ "version": "0.5.1-dev21.0",
5
5
  "description": "DuckDB node.js API",
6
6
  "gypfile": true,
7
7
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -64814,6 +64814,7 @@ public:
64814
64814
 
64815
64815
 
64816
64816
 
64817
+
64817
64818
  //===----------------------------------------------------------------------===//
64818
64819
  // DuckDB
64819
64820
  //
@@ -64909,7 +64910,6 @@ private:
64909
64910
 
64910
64911
 
64911
64912
 
64912
-
64913
64913
  #include <algorithm>
64914
64914
  #include <cmath>
64915
64915
  #include <numeric>
@@ -65605,7 +65605,10 @@ struct WindowInputExpression {
65605
65605
 
65606
65606
  inline bool CellIsNull(idx_t i) const {
65607
65607
  D_ASSERT(!chunk.data.empty());
65608
- return FlatVector::IsNull(chunk.data[0], scalar ? 0 : i);
65608
+ if (chunk.data[0].GetVectorType() == VectorType::CONSTANT_VECTOR) {
65609
+ return ConstantVector::IsNull(chunk.data[0]);
65610
+ }
65611
+ return FlatVector::IsNull(chunk.data[0], i);
65609
65612
  }
65610
65613
 
65611
65614
  inline void CopyCell(Vector &target, idx_t target_offset) const {
@@ -151922,6 +151925,7 @@ unique_ptr<NodeStatistics> StatisticsPropagator::PropagateStatistics(LogicalGet
151922
151925
 
151923
151926
 
151924
151927
 
151928
+
151925
151929
  namespace duckdb {
151926
151930
 
151927
151931
  void StatisticsPropagator::PropagateStatistics(LogicalComparisonJoin &join, unique_ptr<LogicalOperator> *node_ptr) {
@@ -151951,10 +151955,15 @@ void StatisticsPropagator::PropagateStatistics(LogicalComparisonJoin &join, uniq
151951
151955
  // semi or inner join on false; entire node can be pruned
151952
151956
  ReplaceWithEmptyResult(*node_ptr);
151953
151957
  return;
151954
- case JoinType::ANTI:
151955
- // anti join: replace entire join with LHS
151956
- *node_ptr = move(join.children[0]);
151958
+ case JoinType::ANTI: {
151959
+ // when the right child has data, return the left child
151960
+ // when the right child has no data, return an empty set
151961
+ auto limit = make_unique<LogicalLimit>(1, 0, nullptr, nullptr);
151962
+ limit->AddChild(move(join.children[1]));
151963
+ auto cross_product = LogicalCrossProduct::Create(move(join.children[0]), move(limit));
151964
+ *node_ptr = move(cross_product);
151957
151965
  return;
151966
+ }
151958
151967
  case JoinType::LEFT:
151959
151968
  // anti/left outer join: replace right side with empty node
151960
151969
  ReplaceWithEmptyResult(join.children[1]);
@@ -151982,10 +151991,15 @@ void StatisticsPropagator::PropagateStatistics(LogicalComparisonJoin &join, uniq
151982
151991
  } else {
151983
151992
  // this is the only condition and it is always true: all conditions are true
151984
151993
  switch (join.join_type) {
151985
- case JoinType::SEMI:
151986
- // semi join on true: replace entire join with LHS
151987
- *node_ptr = move(join.children[0]);
151994
+ case JoinType::SEMI: {
151995
+ // when the right child has data, return the left child
151996
+ // when the right child has no data, return an empty set
151997
+ auto limit = make_unique<LogicalLimit>(1, 0, nullptr, nullptr);
151998
+ limit->AddChild(move(join.children[1]));
151999
+ auto cross_product = LogicalCrossProduct::Create(move(join.children[0]), move(limit));
152000
+ *node_ptr = move(cross_product);
151988
152001
  return;
152002
+ }
151989
152003
  case JoinType::INNER:
151990
152004
  case JoinType::LEFT:
151991
152005
  case JoinType::RIGHT:
@@ -152102,6 +152116,7 @@ unique_ptr<NodeStatistics> StatisticsPropagator::PropagateStatistics(LogicalJoin
152102
152116
  // then propagate into the join conditions
152103
152117
  switch (join.type) {
152104
152118
  case LogicalOperatorType::LOGICAL_COMPARISON_JOIN:
152119
+ case LogicalOperatorType::LOGICAL_DELIM_JOIN:
152105
152120
  PropagateStatistics((LogicalComparisonJoin &)join, node_ptr);
152106
152121
  break;
152107
152122
  case LogicalOperatorType::LOGICAL_ANY_JOIN:
@@ -180860,6 +180875,9 @@ BoundStatement Binder::BindSummarize(ShowStatement &stmt) {
180860
180875
 
180861
180876
 
180862
180877
 
180878
+
180879
+
180880
+
180863
180881
  //===----------------------------------------------------------------------===//
180864
180882
  // DuckDB
180865
180883
  //
@@ -180894,10 +180912,6 @@ protected:
180894
180912
 
180895
180913
 
180896
180914
 
180897
-
180898
-
180899
-
180900
-
180901
180915
  //===----------------------------------------------------------------------===//
180902
180916
  // DuckDB
180903
180917
  //
@@ -180930,6 +180944,8 @@ public:
180930
180944
  };
180931
180945
  } // namespace duckdb
180932
180946
 
180947
+
180948
+
180933
180949
  #include <algorithm>
180934
180950
 
180935
180951
  namespace duckdb {
@@ -181100,10 +181116,10 @@ BoundStatement Binder::Bind(UpdateStatement &stmt) {
181100
181116
  if (column.Generated()) {
181101
181117
  throw BinderException("Cant update column \"%s\" because it is a generated column!", column.Name());
181102
181118
  }
181103
- if (std::find(update->columns.begin(), update->columns.end(), column.Oid()) != update->columns.end()) {
181119
+ if (std::find(update->columns.begin(), update->columns.end(), column.StorageOid()) != update->columns.end()) {
181104
181120
  throw BinderException("Multiple assignments to same column \"%s\"", colname);
181105
181121
  }
181106
- update->columns.push_back(column.Oid());
181122
+ update->columns.push_back(column.StorageOid());
181107
181123
 
181108
181124
  if (expr->type == ExpressionType::VALUE_DEFAULT) {
181109
181125
  update->expressions.push_back(make_unique<BoundDefaultExpression>(column.Type()));
@@ -186039,6 +186055,7 @@ unique_ptr<TableFilter> ConjunctionAndFilter::Deserialize(FieldReader &source) {
186039
186055
 
186040
186056
 
186041
186057
 
186058
+
186042
186059
  namespace duckdb {
186043
186060
 
186044
186061
  ConstantFilter::ConstantFilter(ExpressionType comparison_type_p, Value constant_p)
@@ -186062,7 +186079,7 @@ FilterPropagateResult ConstantFilter::CheckStatistics(BaseStatistics &stats) {
186062
186079
  case PhysicalType::DOUBLE:
186063
186080
  return ((NumericStatistics &)stats).CheckZonemap(comparison_type, constant);
186064
186081
  case PhysicalType::VARCHAR:
186065
- return ((StringStatistics &)stats).CheckZonemap(comparison_type, constant.ToString());
186082
+ return ((StringStatistics &)stats).CheckZonemap(comparison_type, StringValue::Get(constant));
186066
186083
  default:
186067
186084
  return FilterPropagateResult::NO_PRUNING_POSSIBLE;
186068
186085
  }
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 "109f932c4"
15
- #define DUCKDB_VERSION "v0.5.0"
14
+ #define DUCKDB_SOURCE_ID "cf4b8dcee"
15
+ #define DUCKDB_VERSION "v0.5.1-dev21"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //
@@ -3372,8 +3372,8 @@ public:
3372
3372
  DUCKDB_API AllocatedData(Allocator &allocator, data_ptr_t pointer, idx_t allocated_size);
3373
3373
  DUCKDB_API ~AllocatedData();
3374
3374
  // disable copy constructors
3375
- DUCKDB_API AllocatedData(const AllocatedData &other) = delete;
3376
- DUCKDB_API AllocatedData &operator=(const AllocatedData &) = delete;
3375
+ AllocatedData(const AllocatedData &other) = delete;
3376
+ AllocatedData &operator=(const AllocatedData &) = delete;
3377
3377
  //! enable move constructors
3378
3378
  DUCKDB_API AllocatedData(AllocatedData &&other) noexcept;
3379
3379
  DUCKDB_API AllocatedData &operator=(AllocatedData &&) noexcept;