duckdb 0.4.1-dev1016.0 → 0.4.1-dev1019.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.4.1-dev1016.0",
4
+ "version": "0.4.1-dev1019.0",
5
5
  "description": "DuckDB node.js API",
6
6
  "gypfile": true,
7
7
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -79499,18 +79499,21 @@ unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalWindow &op
79499
79499
  types.resize(output_idx);
79500
79500
 
79501
79501
  // Identify streaming windows
79502
- vector<idx_t> window_expressions;
79503
- bool process_streaming = true;
79502
+ vector<idx_t> blocking_windows;
79503
+ vector<idx_t> streaming_windows;
79504
79504
  for (idx_t expr_idx = 0; expr_idx < op.expressions.size(); expr_idx++) {
79505
- window_expressions.push_back(expr_idx);
79506
- if (!IsStreamingWindow(op.expressions[expr_idx])) {
79507
- process_streaming = false;
79505
+ if (IsStreamingWindow(op.expressions[expr_idx])) {
79506
+ streaming_windows.push_back(expr_idx);
79507
+ } else {
79508
+ blocking_windows.push_back(expr_idx);
79508
79509
  }
79509
79510
  }
79511
+
79510
79512
  // Process the window functions by sharing the partition/order definitions
79511
79513
  vector<idx_t> evaluation_order;
79512
- while (!window_expressions.empty()) {
79513
- auto &remaining = window_expressions;
79514
+ while (!blocking_windows.empty() || !streaming_windows.empty()) {
79515
+ const bool process_streaming = blocking_windows.empty();
79516
+ auto &remaining = process_streaming ? streaming_windows : blocking_windows;
79514
79517
 
79515
79518
  // Find all functions that share the partitioning of the first remaining expression
79516
79519
  const auto over_idx = remaining[0];
@@ -79547,7 +79550,7 @@ unique_ptr<PhysicalOperator> PhysicalPlanGenerator::CreatePlan(LogicalWindow &op
79547
79550
  plan = move(window);
79548
79551
 
79549
79552
  // Remember the projection order if we changed it
79550
- if (!remaining.empty() || !evaluation_order.empty()) {
79553
+ if (!streaming_windows.empty() || !blocking_windows.empty() || !evaluation_order.empty()) {
79551
79554
  evaluation_order.insert(evaluation_order.end(), matching.begin(), matching.end());
79552
79555
  }
79553
79556
  }
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 "6937493e4"
15
- #define DUCKDB_VERSION "v0.4.1-dev1016"
14
+ #define DUCKDB_SOURCE_ID "dd29735fe"
15
+ #define DUCKDB_VERSION "v0.4.1-dev1019"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //