duckdb 0.5.1-dev2.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.1-dev2.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
@@ -151925,6 +151925,7 @@ unique_ptr<NodeStatistics> StatisticsPropagator::PropagateStatistics(LogicalGet
151925
151925
 
151926
151926
 
151927
151927
 
151928
+
151928
151929
  namespace duckdb {
151929
151930
 
151930
151931
  void StatisticsPropagator::PropagateStatistics(LogicalComparisonJoin &join, unique_ptr<LogicalOperator> *node_ptr) {
@@ -151954,10 +151955,15 @@ void StatisticsPropagator::PropagateStatistics(LogicalComparisonJoin &join, uniq
151954
151955
  // semi or inner join on false; entire node can be pruned
151955
151956
  ReplaceWithEmptyResult(*node_ptr);
151956
151957
  return;
151957
- case JoinType::ANTI:
151958
- // anti join: replace entire join with LHS
151959
- *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);
151960
151965
  return;
151966
+ }
151961
151967
  case JoinType::LEFT:
151962
151968
  // anti/left outer join: replace right side with empty node
151963
151969
  ReplaceWithEmptyResult(join.children[1]);
@@ -151985,10 +151991,15 @@ void StatisticsPropagator::PropagateStatistics(LogicalComparisonJoin &join, uniq
151985
151991
  } else {
151986
151992
  // this is the only condition and it is always true: all conditions are true
151987
151993
  switch (join.join_type) {
151988
- case JoinType::SEMI:
151989
- // semi join on true: replace entire join with LHS
151990
- *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);
151991
152001
  return;
152002
+ }
151992
152003
  case JoinType::INNER:
151993
152004
  case JoinType::LEFT:
151994
152005
  case JoinType::RIGHT:
@@ -152105,6 +152116,7 @@ unique_ptr<NodeStatistics> StatisticsPropagator::PropagateStatistics(LogicalJoin
152105
152116
  // then propagate into the join conditions
152106
152117
  switch (join.type) {
152107
152118
  case LogicalOperatorType::LOGICAL_COMPARISON_JOIN:
152119
+ case LogicalOperatorType::LOGICAL_DELIM_JOIN:
152108
152120
  PropagateStatistics((LogicalComparisonJoin &)join, node_ptr);
152109
152121
  break;
152110
152122
  case LogicalOperatorType::LOGICAL_ANY_JOIN:
@@ -180863,6 +180875,9 @@ BoundStatement Binder::BindSummarize(ShowStatement &stmt) {
180863
180875
 
180864
180876
 
180865
180877
 
180878
+
180879
+
180880
+
180866
180881
  //===----------------------------------------------------------------------===//
180867
180882
  // DuckDB
180868
180883
  //
@@ -180897,10 +180912,6 @@ protected:
180897
180912
 
180898
180913
 
180899
180914
 
180900
-
180901
-
180902
-
180903
-
180904
180915
  //===----------------------------------------------------------------------===//
180905
180916
  // DuckDB
180906
180917
  //
@@ -180933,6 +180944,8 @@ public:
180933
180944
  };
180934
180945
  } // namespace duckdb
180935
180946
 
180947
+
180948
+
180936
180949
  #include <algorithm>
180937
180950
 
180938
180951
  namespace duckdb {
@@ -181103,10 +181116,10 @@ BoundStatement Binder::Bind(UpdateStatement &stmt) {
181103
181116
  if (column.Generated()) {
181104
181117
  throw BinderException("Cant update column \"%s\" because it is a generated column!", column.Name());
181105
181118
  }
181106
- 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()) {
181107
181120
  throw BinderException("Multiple assignments to same column \"%s\"", colname);
181108
181121
  }
181109
- update->columns.push_back(column.Oid());
181122
+ update->columns.push_back(column.StorageOid());
181110
181123
 
181111
181124
  if (expr->type == ExpressionType::VALUE_DEFAULT) {
181112
181125
  update->expressions.push_back(make_unique<BoundDefaultExpression>(column.Type()));
@@ -186042,6 +186055,7 @@ unique_ptr<TableFilter> ConjunctionAndFilter::Deserialize(FieldReader &source) {
186042
186055
 
186043
186056
 
186044
186057
 
186058
+
186045
186059
  namespace duckdb {
186046
186060
 
186047
186061
  ConstantFilter::ConstantFilter(ExpressionType comparison_type_p, Value constant_p)
@@ -186065,7 +186079,7 @@ FilterPropagateResult ConstantFilter::CheckStatistics(BaseStatistics &stats) {
186065
186079
  case PhysicalType::DOUBLE:
186066
186080
  return ((NumericStatistics &)stats).CheckZonemap(comparison_type, constant);
186067
186081
  case PhysicalType::VARCHAR:
186068
- return ((StringStatistics &)stats).CheckZonemap(comparison_type, constant.ToString());
186082
+ return ((StringStatistics &)stats).CheckZonemap(comparison_type, StringValue::Get(constant));
186069
186083
  default:
186070
186084
  return FilterPropagateResult::NO_PRUNING_POSSIBLE;
186071
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 "d32f82992"
15
- #define DUCKDB_VERSION "v0.5.1-dev2"
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;