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 +1 -1
- package/src/duckdb.cpp +106 -2
- package/src/duckdb.hpp +3 -2
- package/src/parquet-amalgamation.cpp +37892 -37892
package/package.json
CHANGED
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
|
|
9124
|
-
bool render_rows = total_length >= minimum_row_length && row_count
|
|
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 "
|
|
15
|
-
#define DUCKDB_VERSION "v0.5.2-
|
|
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 {
|