duckdb 0.5.2-dev2245.0 → 0.5.2-dev2251.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.5.2-dev2245.0",
5
+ "version": "0.5.2-dev2251.0",
6
6
  "description": "DuckDB node.js API",
7
7
  "gypfile": true,
8
8
  "dependencies": {
package/src/duckdb.cpp CHANGED
@@ -9120,8 +9120,8 @@ void BoxRenderer::RenderRowCount(string row_count_str, string shown_str, const s
9120
9120
  }
9121
9121
  auto minimum_length = row_count_str.size() + column_count_str.size() + 6;
9122
9122
  bool render_rows_and_columns = total_length >= minimum_length &&
9123
- ((has_hidden_columns && row_count > 0) || (row_count > 1 && column_count > 1));
9124
- bool render_rows = total_length >= minimum_row_length && row_count != 1;
9123
+ ((has_hidden_columns && row_count > 0) || (row_count >= 10 && column_count > 1));
9124
+ bool render_rows = total_length >= minimum_row_length && (row_count == 0 || row_count >= 10);
9125
9125
  bool render_anything = true;
9126
9126
  if (!render_rows && !render_rows_and_columns) {
9127
9127
  render_anything = false;
@@ -86768,6 +86768,7 @@ public:
86768
86768
  vector<ColumnBinding> GetColumnBindings() override;
86769
86769
  void Serialize(FieldWriter &writer) const override;
86770
86770
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
86771
+ idx_t EstimateCardinality(ClientContext &context) override;
86771
86772
 
86772
86773
  protected:
86773
86774
  void ResolveTypes() override;
@@ -87387,6 +87388,7 @@ public:
87387
87388
  public:
87388
87389
  void Serialize(FieldWriter &writer) const override;
87389
87390
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
87391
+ idx_t EstimateCardinality(ClientContext &context) override;
87390
87392
 
87391
87393
  protected:
87392
87394
  void ResolveTypes() override {
@@ -87453,6 +87455,7 @@ public:
87453
87455
  public:
87454
87456
  void Serialize(FieldWriter &writer) const override;
87455
87457
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
87458
+ idx_t EstimateCardinality(ClientContext &context) override;
87456
87459
 
87457
87460
  protected:
87458
87461
  void ResolveTypes() override {
@@ -87590,6 +87593,7 @@ public:
87590
87593
  public:
87591
87594
  void Serialize(FieldWriter &writer) const override;
87592
87595
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
87596
+ idx_t EstimateCardinality(ClientContext &context) override;
87593
87597
 
87594
87598
  protected:
87595
87599
  void ResolveTypes() override {
@@ -87729,6 +87733,7 @@ public:
87729
87733
  public:
87730
87734
  void Serialize(FieldWriter &writer) const override;
87731
87735
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
87736
+ idx_t EstimateCardinality(ClientContext &context) override;
87732
87737
 
87733
87738
  protected:
87734
87739
  vector<ColumnBinding> GetColumnBindings() override {
@@ -88099,6 +88104,9 @@ public:
88099
88104
  }
88100
88105
  void Serialize(FieldWriter &writer) const override;
88101
88106
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
88107
+ idx_t EstimateCardinality(ClientContext &context) override {
88108
+ return 0;
88109
+ }
88102
88110
 
88103
88111
  protected:
88104
88112
  void ResolveTypes() override {
@@ -88245,6 +88253,9 @@ public:
88245
88253
  public:
88246
88254
  void Serialize(FieldWriter &writer) const override;
88247
88255
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
88256
+ idx_t EstimateCardinality(ClientContext &context) override {
88257
+ return 3;
88258
+ }
88248
88259
 
88249
88260
  protected:
88250
88261
  void ResolveTypes() override {
@@ -88419,6 +88430,9 @@ public:
88419
88430
  }
88420
88431
  void Serialize(FieldWriter &writer) const override;
88421
88432
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
88433
+ idx_t EstimateCardinality(ClientContext &context) override {
88434
+ return expressions.size();
88435
+ }
88422
88436
 
88423
88437
  protected:
88424
88438
  void ResolveTypes() override {
@@ -89126,6 +89140,8 @@ protected:
89126
89140
  types.emplace_back(LogicalType::BIGINT);
89127
89141
  }
89128
89142
  }
89143
+
89144
+ idx_t EstimateCardinality(ClientContext &context) override;
89129
89145
  };
89130
89146
  } // namespace duckdb
89131
89147
 
@@ -89419,6 +89435,7 @@ public:
89419
89435
  public:
89420
89436
  void Serialize(FieldWriter &writer) const override;
89421
89437
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
89438
+ idx_t EstimateCardinality(ClientContext &context) override;
89422
89439
 
89423
89440
  protected:
89424
89441
  void ResolveTypes() override {
@@ -89472,6 +89489,7 @@ public:
89472
89489
  public:
89473
89490
  void Serialize(FieldWriter &writer) const override;
89474
89491
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
89492
+ idx_t EstimateCardinality(ClientContext &context) override;
89475
89493
 
89476
89494
  protected:
89477
89495
  void ResolveTypes() override {
@@ -89818,6 +89836,7 @@ public:
89818
89836
  public:
89819
89837
  void Serialize(FieldWriter &writer) const override;
89820
89838
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
89839
+ idx_t EstimateCardinality(ClientContext &context) override;
89821
89840
 
89822
89841
  protected:
89823
89842
  void ResolveTypes() override {
@@ -90054,6 +90073,7 @@ public:
90054
90073
  public:
90055
90074
  void Serialize(FieldWriter &writer) const override;
90056
90075
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
90076
+ idx_t EstimateCardinality(ClientContext &context) override;
90057
90077
 
90058
90078
  protected:
90059
90079
  void ResolveTypes() override {
@@ -90128,6 +90148,7 @@ public:
90128
90148
  }
90129
90149
  void Serialize(FieldWriter &writer) const override;
90130
90150
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
90151
+ idx_t EstimateCardinality(ClientContext &context) override;
90131
90152
 
90132
90153
  protected:
90133
90154
  void ResolveTypes() override {
@@ -90236,6 +90257,7 @@ public:
90236
90257
  public:
90237
90258
  void Serialize(FieldWriter &writer) const override;
90238
90259
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
90260
+ idx_t EstimateCardinality(ClientContext &context) override;
90239
90261
 
90240
90262
  protected:
90241
90263
  vector<ColumnBinding> GetColumnBindings() override {
@@ -126663,6 +126685,19 @@ void CSVComplexFilterPushdown(ClientContext &context, LogicalGet &get, FunctionD
126663
126685
  }
126664
126686
  }
126665
126687
 
126688
+ unique_ptr<NodeStatistics> CSVReaderCardinality(ClientContext &context, const FunctionData *bind_data_p) {
126689
+ auto &bind_data = (ReadCSVData &)*bind_data_p;
126690
+ idx_t per_file_cardinality = 0;
126691
+ if (bind_data.initial_reader && bind_data.initial_reader->file_handle) {
126692
+ auto estimated_row_width = (bind_data.sql_types.size() * 5);
126693
+ per_file_cardinality = bind_data.initial_reader->file_handle->FileSize() / estimated_row_width;
126694
+ } else {
126695
+ // determined through the scientific method as the average amount of rows in a CSV file
126696
+ per_file_cardinality = 42;
126697
+ }
126698
+ return make_unique<NodeStatistics>(bind_data.files.size() * per_file_cardinality);
126699
+ }
126700
+
126666
126701
  void BufferedCSVReaderOptions::Serialize(FieldWriter &writer) const {
126667
126702
  // common options
126668
126703
  writer.WriteField<bool>(has_delimiter);
@@ -126757,6 +126792,7 @@ TableFunction ReadCSVTableFunction::GetFunction(bool list_parameter) {
126757
126792
  read_csv.serialize = CSVReaderSerialize;
126758
126793
  read_csv.deserialize = CSVReaderDeserialize;
126759
126794
  read_csv.get_batch_index = CSVReaderGetBatchIndex;
126795
+ read_csv.cardinality = CSVReaderCardinality;
126760
126796
  ReadCSVAddNamedParameters(read_csv);
126761
126797
  return read_csv;
126762
126798
  }
@@ -126770,6 +126806,7 @@ TableFunction ReadCSVTableFunction::GetAutoFunction(bool list_parameter) {
126770
126806
  read_csv_auto.serialize = CSVReaderSerialize;
126771
126807
  read_csv_auto.deserialize = CSVReaderDeserialize;
126772
126808
  read_csv_auto.get_batch_index = CSVReaderGetBatchIndex;
126809
+ read_csv_auto.cardinality = CSVReaderCardinality;
126773
126810
  ReadCSVAddNamedParameters(read_csv_auto);
126774
126811
  return read_csv_auto;
126775
126812
  }
@@ -198594,6 +198631,14 @@ unique_ptr<LogicalOperator> LogicalAggregate::Deserialize(LogicalDeserialization
198594
198631
  return move(result);
198595
198632
  }
198596
198633
 
198634
+ idx_t LogicalAggregate::EstimateCardinality(ClientContext &context) {
198635
+ if (groups.empty()) {
198636
+ // ungrouped aggregate
198637
+ return 1;
198638
+ }
198639
+ return LogicalOperator::EstimateCardinality(context);
198640
+ }
198641
+
198597
198642
  } // namespace duckdb
198598
198643
 
198599
198644
 
@@ -198762,6 +198807,10 @@ unique_ptr<LogicalOperator> LogicalCopyToFile::Deserialize(LogicalDeserializatio
198762
198807
  return move(result);
198763
198808
  }
198764
198809
 
198810
+ idx_t LogicalCopyToFile::EstimateCardinality(ClientContext &context) {
198811
+ return 1;
198812
+ }
198813
+
198765
198814
  } // namespace duckdb
198766
198815
 
198767
198816
 
@@ -198782,6 +198831,10 @@ unique_ptr<LogicalOperator> LogicalCreate::Deserialize(LogicalDeserializationSta
198782
198831
  return make_unique<LogicalCreate>(state.type, move(info), schema_catalog_entry);
198783
198832
  }
198784
198833
 
198834
+ idx_t LogicalCreate::EstimateCardinality(ClientContext &context) {
198835
+ return 1;
198836
+ }
198837
+
198785
198838
  } // namespace duckdb
198786
198839
 
198787
198840
 
@@ -198846,6 +198899,10 @@ unique_ptr<LogicalOperator> LogicalCreateTable::Deserialize(LogicalDeserializati
198846
198899
  return make_unique<LogicalCreateTable>(schema, move(info));
198847
198900
  }
198848
198901
 
198902
+ idx_t LogicalCreateTable::EstimateCardinality(ClientContext &context) {
198903
+ return 1;
198904
+ }
198905
+
198849
198906
  } // namespace duckdb
198850
198907
 
198851
198908
 
@@ -198938,6 +198995,10 @@ unique_ptr<LogicalOperator> LogicalDelete::Deserialize(LogicalDeserializationSta
198938
198995
  return move(result);
198939
198996
  }
198940
198997
 
198998
+ idx_t LogicalDelete::EstimateCardinality(ClientContext &context) {
198999
+ return return_chunk ? LogicalOperator::EstimateCardinality(context) : 1;
199000
+ }
199001
+
198941
199002
  } // namespace duckdb
198942
199003
 
198943
199004
 
@@ -199424,6 +199485,10 @@ unique_ptr<LogicalOperator> LogicalInsert::Deserialize(LogicalDeserializationSta
199424
199485
  return move(result);
199425
199486
  }
199426
199487
 
199488
+ idx_t LogicalInsert::EstimateCardinality(ClientContext &context) {
199489
+ return return_chunk ? LogicalOperator::EstimateCardinality(context) : 1;
199490
+ }
199491
+
199427
199492
  } // namespace duckdb
199428
199493
 
199429
199494
 
@@ -199544,6 +199609,7 @@ unique_ptr<LogicalOperator> LogicalLimit::Deserialize(LogicalDeserializationStat
199544
199609
  auto offset = reader.ReadOptional<Expression>(nullptr, state.gstate);
199545
199610
  return make_unique<LogicalLimit>(limit_val, offset_val, move(limit), move(offset));
199546
199611
  }
199612
+
199547
199613
  } // namespace duckdb
199548
199614
 
199549
199615
 
@@ -199564,6 +199630,15 @@ unique_ptr<LogicalOperator> LogicalLimitPercent::Deserialize(LogicalDeserializat
199564
199630
  auto offset = reader.ReadOptional<Expression>(nullptr, state.gstate);
199565
199631
  return make_unique<LogicalLimitPercent>(limit_percent, offset_val, move(limit), move(offset));
199566
199632
  }
199633
+
199634
+ idx_t LogicalLimitPercent::EstimateCardinality(ClientContext &context) {
199635
+ auto child_cardinality = LogicalOperator::EstimateCardinality(context);
199636
+ if (limit_percent < 0 || limit_percent > 100) {
199637
+ return child_cardinality;
199638
+ }
199639
+ return idx_t(child_cardinality * (limit_percent / 100.0));
199640
+ }
199641
+
199567
199642
  } // namespace duckdb
199568
199643
 
199569
199644
 
@@ -199597,6 +199672,10 @@ unique_ptr<LogicalOperator> LogicalPragma::Deserialize(LogicalDeserializationSta
199597
199672
  throw NotImplementedException(LogicalOperatorToString(state.type));
199598
199673
  }
199599
199674
 
199675
+ idx_t LogicalPragma::EstimateCardinality(ClientContext &context) {
199676
+ return 1;
199677
+ }
199678
+
199600
199679
  } // namespace duckdb
199601
199680
 
199602
199681
 
@@ -199610,6 +199689,10 @@ unique_ptr<LogicalOperator> LogicalPrepare::Deserialize(LogicalDeserializationSt
199610
199689
  throw NotImplementedException(LogicalOperatorToString(state.type));
199611
199690
  }
199612
199691
 
199692
+ idx_t LogicalPrepare::EstimateCardinality(ClientContext &context) {
199693
+ return 1;
199694
+ }
199695
+
199613
199696
  } // namespace duckdb
199614
199697
 
199615
199698
 
@@ -199722,6 +199805,10 @@ unique_ptr<LogicalOperator> LogicalSet::Deserialize(LogicalDeserializationState
199722
199805
  return make_unique<LogicalSet>(name, value, scope);
199723
199806
  }
199724
199807
 
199808
+ idx_t LogicalSet::EstimateCardinality(ClientContext &context) {
199809
+ return 1;
199810
+ }
199811
+
199725
199812
  } // namespace duckdb
199726
199813
 
199727
199814
 
@@ -199773,6 +199860,10 @@ unique_ptr<LogicalOperator> LogicalSimple::Deserialize(LogicalDeserializationSta
199773
199860
  throw NotImplementedException(LogicalOperatorToString(state.type));
199774
199861
  }
199775
199862
 
199863
+ idx_t LogicalSimple::EstimateCardinality(ClientContext &context) {
199864
+ return 1;
199865
+ }
199866
+
199776
199867
  } // namespace duckdb
199777
199868
 
199778
199869
 
@@ -199791,6 +199882,15 @@ unique_ptr<LogicalOperator> LogicalTopN::Deserialize(LogicalDeserializationState
199791
199882
  auto limit = reader.ReadRequired<idx_t>();
199792
199883
  return make_unique<LogicalTopN>(move(orders), limit, offset);
199793
199884
  }
199885
+
199886
+ idx_t LogicalTopN::EstimateCardinality(ClientContext &context) {
199887
+ auto child_cardinality = LogicalOperator::EstimateCardinality(context);
199888
+ if (limit >= 0 && child_cardinality < idx_t(limit)) {
199889
+ return limit;
199890
+ }
199891
+ return child_cardinality;
199892
+ }
199893
+
199794
199894
  } // namespace duckdb
199795
199895
 
199796
199896
 
@@ -199861,6 +199961,10 @@ unique_ptr<LogicalOperator> LogicalUpdate::Deserialize(LogicalDeserializationSta
199861
199961
  return move(result);
199862
199962
  }
199863
199963
 
199964
+ idx_t LogicalUpdate::EstimateCardinality(ClientContext &context) {
199965
+ return return_chunk ? LogicalOperator::EstimateCardinality(context) : 1;
199966
+ }
199967
+
199864
199968
  } // namespace duckdb
199865
199969
 
199866
199970
 
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 "5fde799851"
15
- #define DUCKDB_VERSION "v0.5.2-dev2245"
14
+ #define DUCKDB_SOURCE_ID "2d34ffb455"
15
+ #define DUCKDB_VERSION "v0.5.2-dev2251"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //
@@ -16880,6 +16880,7 @@ public:
16880
16880
 
16881
16881
  void Serialize(FieldWriter &writer) const override;
16882
16882
  static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
16883
+ idx_t EstimateCardinality(ClientContext &context) override;
16883
16884
 
16884
16885
  protected:
16885
16886
  void ResolveTypes() override {