duckdb 0.6.1-dev157.0 → 0.6.1-dev162.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
@@ -2,7 +2,7 @@
2
2
  "name": "duckdb",
3
3
  "main": "./lib/duckdb.js",
4
4
  "types": "./lib/duckdb.d.ts",
5
- "version": "0.6.1-dev157.0",
5
+ "version": "0.6.1-dev162.0",
6
6
  "description": "DuckDB node.js API",
7
7
  "gypfile": true,
8
8
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -90635,6 +90635,8 @@ struct LogicalExtensionOperator : public LogicalOperator {
90635
90635
  : LogicalOperator(LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR, move(expressions)) {
90636
90636
  }
90637
90637
 
90638
+ static unique_ptr<LogicalExtensionOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
90639
+
90638
90640
  virtual unique_ptr<PhysicalOperator> CreatePlan(ClientContext &context, PhysicalPlanGenerator &generator) = 0;
90639
90641
  };
90640
90642
  } // namespace duckdb
@@ -198288,6 +198290,7 @@ JoinSide JoinSide::GetJoinSide(const unordered_set<idx_t> &bindings, unordered_s
198288
198290
 
198289
198291
 
198290
198292
 
198293
+
198291
198294
  namespace duckdb {
198292
198295
 
198293
198296
  const uint64_t PLAN_SERIALIZATION_VERSION = 1;
@@ -198619,7 +198622,8 @@ unique_ptr<LogicalOperator> LogicalOperator::Deserialize(Deserializer &deseriali
198619
198622
  result = LogicalSimple::Deserialize(state, reader);
198620
198623
  break;
198621
198624
  case LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR:
198622
- throw SerializationException("Invalid type for operator deserialization");
198625
+ result = LogicalExtensionOperator::Deserialize(state, reader);
198626
+ break;
198623
198627
  case LogicalOperatorType::LOGICAL_INVALID:
198624
198628
  /* no default here to trigger a warning if we forget to implement deserialize for a new operator */
198625
198629
  throw SerializationException("Invalid type for operator deserialization");
@@ -199614,6 +199618,24 @@ vector<idx_t> LogicalExpressionGet::GetTableIndex() const {
199614
199618
 
199615
199619
 
199616
199620
 
199621
+ namespace duckdb {
199622
+ unique_ptr<LogicalExtensionOperator> LogicalExtensionOperator::Deserialize(LogicalDeserializationState &state,
199623
+ FieldReader &reader) {
199624
+ auto &config = DBConfig::GetConfig(state.gstate.context);
199625
+
199626
+ auto extension_name = reader.ReadRequired<std::string>();
199627
+ for (auto &extension : config.operator_extensions) {
199628
+ if (extension->GetName() == extension_name) {
199629
+ return extension->Deserialize(state, reader);
199630
+ }
199631
+ }
199632
+
199633
+ throw SerializationException("No serialization method exists for extension: " + extension_name);
199634
+ }
199635
+ } // namespace duckdb
199636
+
199637
+
199638
+
199617
199639
 
199618
199640
  namespace duckdb {
199619
199641
 
@@ -200584,7 +200606,7 @@ void Planner::CreatePlan(SQLStatement &statement) {
200584
200606
  this->plan = nullptr;
200585
200607
  for (auto &extension_op : config.operator_extensions) {
200586
200608
  auto bound_statement =
200587
- extension_op.Bind(context, *this->binder, extension_op.operator_info.get(), statement);
200609
+ extension_op->Bind(context, *this->binder, extension_op->operator_info.get(), statement);
200588
200610
  if (bound_statement.plan != nullptr) {
200589
200611
  this->names = bound_statement.names;
200590
200612
  this->types = bound_statement.types;
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 "8510cce102"
15
- #define DUCKDB_VERSION "v0.6.1-dev157"
14
+ #define DUCKDB_SOURCE_ID "67694989c8"
15
+ #define DUCKDB_VERSION "v0.6.1-dev162"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //
@@ -18920,6 +18920,9 @@ struct OperatorExtensionInfo {
18920
18920
  typedef BoundStatement (*bind_function_t)(ClientContext &context, Binder &binder, OperatorExtensionInfo *info,
18921
18921
  SQLStatement &statement);
18922
18922
 
18923
+ // forward declaration to avoid circular reference
18924
+ struct LogicalExtensionOperator;
18925
+
18923
18926
  class OperatorExtension {
18924
18927
  public:
18925
18928
  bind_function_t Bind;
@@ -18927,6 +18930,10 @@ public:
18927
18930
  //! Additional info passed to the CreatePlan & Bind functions
18928
18931
  shared_ptr<OperatorExtensionInfo> operator_info;
18929
18932
 
18933
+ virtual std::string GetName() = 0;
18934
+ virtual std::unique_ptr<LogicalExtensionOperator> Deserialize(LogicalDeserializationState &state,
18935
+ FieldReader &reader) = 0;
18936
+
18930
18937
  DUCKDB_API virtual ~OperatorExtension() {
18931
18938
  }
18932
18939
  };
@@ -19072,7 +19079,7 @@ public:
19072
19079
  //! A reference to the (shared) default allocator (Allocator::DefaultAllocator)
19073
19080
  shared_ptr<Allocator> default_allocator;
19074
19081
  //! Extensions made to binder
19075
- vector<OperatorExtension> operator_extensions;
19082
+ vector<std::unique_ptr<OperatorExtension>> operator_extensions;
19076
19083
 
19077
19084
  public:
19078
19085
  DUCKDB_API static DBConfig &GetConfig(ClientContext &context);