duckdb 0.5.2-dev2245.0 → 0.5.2-dev2256.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 +124 -13
- package/src/duckdb.hpp +3 -2
- package/src/parquet-amalgamation.cpp +37571 -37571
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;
|
|
@@ -81718,6 +81718,16 @@ bool ParallelCSVReader::SetPosition(DataChunk &insert_chunk) {
|
|
|
81718
81718
|
if (buffer->buffer->IsCSVFileFirstBuffer() && start_buffer == position_buffer &&
|
|
81719
81719
|
start_buffer == buffer->buffer->GetStart()) {
|
|
81720
81720
|
// First buffer doesn't need any setting
|
|
81721
|
+
// Unless we have a header
|
|
81722
|
+
if (options.header && options.auto_detect) {
|
|
81723
|
+
for (; position_buffer < end_buffer; position_buffer++) {
|
|
81724
|
+
if (StringUtil::CharacterIsNewline((*buffer)[position_buffer])) {
|
|
81725
|
+
position_buffer++;
|
|
81726
|
+
return true;
|
|
81727
|
+
}
|
|
81728
|
+
}
|
|
81729
|
+
return false;
|
|
81730
|
+
}
|
|
81721
81731
|
return true;
|
|
81722
81732
|
}
|
|
81723
81733
|
|
|
@@ -81841,8 +81851,9 @@ normal : {
|
|
|
81841
81851
|
goto add_value;
|
|
81842
81852
|
} else if (StringUtil::CharacterIsNewline(c)) {
|
|
81843
81853
|
// newline: add row
|
|
81844
|
-
|
|
81845
|
-
|
|
81854
|
+
if (column > 0 || try_add_line) {
|
|
81855
|
+
goto add_row;
|
|
81856
|
+
}
|
|
81846
81857
|
}
|
|
81847
81858
|
}
|
|
81848
81859
|
if (!BufferRemainder()) {
|
|
@@ -82016,9 +82027,8 @@ final_state : {
|
|
|
82016
82027
|
}
|
|
82017
82028
|
// If this is the last buffer, we have to read the last value
|
|
82018
82029
|
if (buffer->buffer->IsCSVFileLastBuffer() || (buffer->next_buffer->IsCSVFileLastBuffer())) {
|
|
82019
|
-
if (column > 0 ||
|
|
82030
|
+
if (column > 0 || try_add_line) {
|
|
82020
82031
|
// remaining values to be added to the chunk
|
|
82021
|
-
D_ASSERT(column == insert_chunk.ColumnCount() - 1);
|
|
82022
82032
|
AddValue(buffer->GetValue(start_buffer, position_buffer, offset), column, escape_positions, has_quotes);
|
|
82023
82033
|
if (try_add_line) {
|
|
82024
82034
|
bool success = column == sql_types.size();
|
|
@@ -86768,6 +86778,7 @@ public:
|
|
|
86768
86778
|
vector<ColumnBinding> GetColumnBindings() override;
|
|
86769
86779
|
void Serialize(FieldWriter &writer) const override;
|
|
86770
86780
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
86781
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
86771
86782
|
|
|
86772
86783
|
protected:
|
|
86773
86784
|
void ResolveTypes() override;
|
|
@@ -87387,6 +87398,7 @@ public:
|
|
|
87387
87398
|
public:
|
|
87388
87399
|
void Serialize(FieldWriter &writer) const override;
|
|
87389
87400
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
87401
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
87390
87402
|
|
|
87391
87403
|
protected:
|
|
87392
87404
|
void ResolveTypes() override {
|
|
@@ -87453,6 +87465,7 @@ public:
|
|
|
87453
87465
|
public:
|
|
87454
87466
|
void Serialize(FieldWriter &writer) const override;
|
|
87455
87467
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
87468
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
87456
87469
|
|
|
87457
87470
|
protected:
|
|
87458
87471
|
void ResolveTypes() override {
|
|
@@ -87590,6 +87603,7 @@ public:
|
|
|
87590
87603
|
public:
|
|
87591
87604
|
void Serialize(FieldWriter &writer) const override;
|
|
87592
87605
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
87606
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
87593
87607
|
|
|
87594
87608
|
protected:
|
|
87595
87609
|
void ResolveTypes() override {
|
|
@@ -87729,6 +87743,7 @@ public:
|
|
|
87729
87743
|
public:
|
|
87730
87744
|
void Serialize(FieldWriter &writer) const override;
|
|
87731
87745
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
87746
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
87732
87747
|
|
|
87733
87748
|
protected:
|
|
87734
87749
|
vector<ColumnBinding> GetColumnBindings() override {
|
|
@@ -88099,6 +88114,9 @@ public:
|
|
|
88099
88114
|
}
|
|
88100
88115
|
void Serialize(FieldWriter &writer) const override;
|
|
88101
88116
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
88117
|
+
idx_t EstimateCardinality(ClientContext &context) override {
|
|
88118
|
+
return 0;
|
|
88119
|
+
}
|
|
88102
88120
|
|
|
88103
88121
|
protected:
|
|
88104
88122
|
void ResolveTypes() override {
|
|
@@ -88245,6 +88263,9 @@ public:
|
|
|
88245
88263
|
public:
|
|
88246
88264
|
void Serialize(FieldWriter &writer) const override;
|
|
88247
88265
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
88266
|
+
idx_t EstimateCardinality(ClientContext &context) override {
|
|
88267
|
+
return 3;
|
|
88268
|
+
}
|
|
88248
88269
|
|
|
88249
88270
|
protected:
|
|
88250
88271
|
void ResolveTypes() override {
|
|
@@ -88419,6 +88440,9 @@ public:
|
|
|
88419
88440
|
}
|
|
88420
88441
|
void Serialize(FieldWriter &writer) const override;
|
|
88421
88442
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
88443
|
+
idx_t EstimateCardinality(ClientContext &context) override {
|
|
88444
|
+
return expressions.size();
|
|
88445
|
+
}
|
|
88422
88446
|
|
|
88423
88447
|
protected:
|
|
88424
88448
|
void ResolveTypes() override {
|
|
@@ -89126,6 +89150,8 @@ protected:
|
|
|
89126
89150
|
types.emplace_back(LogicalType::BIGINT);
|
|
89127
89151
|
}
|
|
89128
89152
|
}
|
|
89153
|
+
|
|
89154
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
89129
89155
|
};
|
|
89130
89156
|
} // namespace duckdb
|
|
89131
89157
|
|
|
@@ -89419,6 +89445,7 @@ public:
|
|
|
89419
89445
|
public:
|
|
89420
89446
|
void Serialize(FieldWriter &writer) const override;
|
|
89421
89447
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
89448
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
89422
89449
|
|
|
89423
89450
|
protected:
|
|
89424
89451
|
void ResolveTypes() override {
|
|
@@ -89472,6 +89499,7 @@ public:
|
|
|
89472
89499
|
public:
|
|
89473
89500
|
void Serialize(FieldWriter &writer) const override;
|
|
89474
89501
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
89502
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
89475
89503
|
|
|
89476
89504
|
protected:
|
|
89477
89505
|
void ResolveTypes() override {
|
|
@@ -89818,6 +89846,7 @@ public:
|
|
|
89818
89846
|
public:
|
|
89819
89847
|
void Serialize(FieldWriter &writer) const override;
|
|
89820
89848
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
89849
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
89821
89850
|
|
|
89822
89851
|
protected:
|
|
89823
89852
|
void ResolveTypes() override {
|
|
@@ -90054,6 +90083,7 @@ public:
|
|
|
90054
90083
|
public:
|
|
90055
90084
|
void Serialize(FieldWriter &writer) const override;
|
|
90056
90085
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
90086
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
90057
90087
|
|
|
90058
90088
|
protected:
|
|
90059
90089
|
void ResolveTypes() override {
|
|
@@ -90128,6 +90158,7 @@ public:
|
|
|
90128
90158
|
}
|
|
90129
90159
|
void Serialize(FieldWriter &writer) const override;
|
|
90130
90160
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
90161
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
90131
90162
|
|
|
90132
90163
|
protected:
|
|
90133
90164
|
void ResolveTypes() override {
|
|
@@ -90236,6 +90267,7 @@ public:
|
|
|
90236
90267
|
public:
|
|
90237
90268
|
void Serialize(FieldWriter &writer) const override;
|
|
90238
90269
|
static unique_ptr<LogicalOperator> Deserialize(LogicalDeserializationState &state, FieldReader &reader);
|
|
90270
|
+
idx_t EstimateCardinality(ClientContext &context) override;
|
|
90239
90271
|
|
|
90240
90272
|
protected:
|
|
90241
90273
|
vector<ColumnBinding> GetColumnBindings() override {
|
|
@@ -126385,13 +126417,10 @@ static unique_ptr<GlobalTableFunctionState> ParallelCSVInitGlobal(ClientContext
|
|
|
126385
126417
|
return make_unique<ParallelCSVGlobalState>();
|
|
126386
126418
|
}
|
|
126387
126419
|
unique_ptr<CSVFileHandle> file_handle;
|
|
126388
|
-
|
|
126389
|
-
|
|
126390
|
-
|
|
126391
|
-
|
|
126392
|
-
bind_data.options.file_path = bind_data.files[0];
|
|
126393
|
-
file_handle = ReadCSV::OpenCSV(bind_data.options, context);
|
|
126394
|
-
}
|
|
126420
|
+
|
|
126421
|
+
bind_data.options.file_path = bind_data.files[0];
|
|
126422
|
+
file_handle = ReadCSV::OpenCSV(bind_data.options, context);
|
|
126423
|
+
|
|
126395
126424
|
idx_t rows_to_skip = bind_data.options.skip_rows + (bind_data.options.has_header ? 1 : 0);
|
|
126396
126425
|
return make_unique<ParallelCSVGlobalState>(context, move(file_handle), bind_data.files,
|
|
126397
126426
|
context.db->NumberOfThreads(), bind_data.options.buffer_size,
|
|
@@ -126663,6 +126692,19 @@ void CSVComplexFilterPushdown(ClientContext &context, LogicalGet &get, FunctionD
|
|
|
126663
126692
|
}
|
|
126664
126693
|
}
|
|
126665
126694
|
|
|
126695
|
+
unique_ptr<NodeStatistics> CSVReaderCardinality(ClientContext &context, const FunctionData *bind_data_p) {
|
|
126696
|
+
auto &bind_data = (ReadCSVData &)*bind_data_p;
|
|
126697
|
+
idx_t per_file_cardinality = 0;
|
|
126698
|
+
if (bind_data.initial_reader && bind_data.initial_reader->file_handle) {
|
|
126699
|
+
auto estimated_row_width = (bind_data.sql_types.size() * 5);
|
|
126700
|
+
per_file_cardinality = bind_data.initial_reader->file_handle->FileSize() / estimated_row_width;
|
|
126701
|
+
} else {
|
|
126702
|
+
// determined through the scientific method as the average amount of rows in a CSV file
|
|
126703
|
+
per_file_cardinality = 42;
|
|
126704
|
+
}
|
|
126705
|
+
return make_unique<NodeStatistics>(bind_data.files.size() * per_file_cardinality);
|
|
126706
|
+
}
|
|
126707
|
+
|
|
126666
126708
|
void BufferedCSVReaderOptions::Serialize(FieldWriter &writer) const {
|
|
126667
126709
|
// common options
|
|
126668
126710
|
writer.WriteField<bool>(has_delimiter);
|
|
@@ -126757,6 +126799,7 @@ TableFunction ReadCSVTableFunction::GetFunction(bool list_parameter) {
|
|
|
126757
126799
|
read_csv.serialize = CSVReaderSerialize;
|
|
126758
126800
|
read_csv.deserialize = CSVReaderDeserialize;
|
|
126759
126801
|
read_csv.get_batch_index = CSVReaderGetBatchIndex;
|
|
126802
|
+
read_csv.cardinality = CSVReaderCardinality;
|
|
126760
126803
|
ReadCSVAddNamedParameters(read_csv);
|
|
126761
126804
|
return read_csv;
|
|
126762
126805
|
}
|
|
@@ -126770,6 +126813,7 @@ TableFunction ReadCSVTableFunction::GetAutoFunction(bool list_parameter) {
|
|
|
126770
126813
|
read_csv_auto.serialize = CSVReaderSerialize;
|
|
126771
126814
|
read_csv_auto.deserialize = CSVReaderDeserialize;
|
|
126772
126815
|
read_csv_auto.get_batch_index = CSVReaderGetBatchIndex;
|
|
126816
|
+
read_csv_auto.cardinality = CSVReaderCardinality;
|
|
126773
126817
|
ReadCSVAddNamedParameters(read_csv_auto);
|
|
126774
126818
|
return read_csv_auto;
|
|
126775
126819
|
}
|
|
@@ -198594,6 +198638,14 @@ unique_ptr<LogicalOperator> LogicalAggregate::Deserialize(LogicalDeserialization
|
|
|
198594
198638
|
return move(result);
|
|
198595
198639
|
}
|
|
198596
198640
|
|
|
198641
|
+
idx_t LogicalAggregate::EstimateCardinality(ClientContext &context) {
|
|
198642
|
+
if (groups.empty()) {
|
|
198643
|
+
// ungrouped aggregate
|
|
198644
|
+
return 1;
|
|
198645
|
+
}
|
|
198646
|
+
return LogicalOperator::EstimateCardinality(context);
|
|
198647
|
+
}
|
|
198648
|
+
|
|
198597
198649
|
} // namespace duckdb
|
|
198598
198650
|
|
|
198599
198651
|
|
|
@@ -198762,6 +198814,10 @@ unique_ptr<LogicalOperator> LogicalCopyToFile::Deserialize(LogicalDeserializatio
|
|
|
198762
198814
|
return move(result);
|
|
198763
198815
|
}
|
|
198764
198816
|
|
|
198817
|
+
idx_t LogicalCopyToFile::EstimateCardinality(ClientContext &context) {
|
|
198818
|
+
return 1;
|
|
198819
|
+
}
|
|
198820
|
+
|
|
198765
198821
|
} // namespace duckdb
|
|
198766
198822
|
|
|
198767
198823
|
|
|
@@ -198782,6 +198838,10 @@ unique_ptr<LogicalOperator> LogicalCreate::Deserialize(LogicalDeserializationSta
|
|
|
198782
198838
|
return make_unique<LogicalCreate>(state.type, move(info), schema_catalog_entry);
|
|
198783
198839
|
}
|
|
198784
198840
|
|
|
198841
|
+
idx_t LogicalCreate::EstimateCardinality(ClientContext &context) {
|
|
198842
|
+
return 1;
|
|
198843
|
+
}
|
|
198844
|
+
|
|
198785
198845
|
} // namespace duckdb
|
|
198786
198846
|
|
|
198787
198847
|
|
|
@@ -198846,6 +198906,10 @@ unique_ptr<LogicalOperator> LogicalCreateTable::Deserialize(LogicalDeserializati
|
|
|
198846
198906
|
return make_unique<LogicalCreateTable>(schema, move(info));
|
|
198847
198907
|
}
|
|
198848
198908
|
|
|
198909
|
+
idx_t LogicalCreateTable::EstimateCardinality(ClientContext &context) {
|
|
198910
|
+
return 1;
|
|
198911
|
+
}
|
|
198912
|
+
|
|
198849
198913
|
} // namespace duckdb
|
|
198850
198914
|
|
|
198851
198915
|
|
|
@@ -198938,6 +199002,10 @@ unique_ptr<LogicalOperator> LogicalDelete::Deserialize(LogicalDeserializationSta
|
|
|
198938
199002
|
return move(result);
|
|
198939
199003
|
}
|
|
198940
199004
|
|
|
199005
|
+
idx_t LogicalDelete::EstimateCardinality(ClientContext &context) {
|
|
199006
|
+
return return_chunk ? LogicalOperator::EstimateCardinality(context) : 1;
|
|
199007
|
+
}
|
|
199008
|
+
|
|
198941
199009
|
} // namespace duckdb
|
|
198942
199010
|
|
|
198943
199011
|
|
|
@@ -199424,6 +199492,10 @@ unique_ptr<LogicalOperator> LogicalInsert::Deserialize(LogicalDeserializationSta
|
|
|
199424
199492
|
return move(result);
|
|
199425
199493
|
}
|
|
199426
199494
|
|
|
199495
|
+
idx_t LogicalInsert::EstimateCardinality(ClientContext &context) {
|
|
199496
|
+
return return_chunk ? LogicalOperator::EstimateCardinality(context) : 1;
|
|
199497
|
+
}
|
|
199498
|
+
|
|
199427
199499
|
} // namespace duckdb
|
|
199428
199500
|
|
|
199429
199501
|
|
|
@@ -199544,6 +199616,7 @@ unique_ptr<LogicalOperator> LogicalLimit::Deserialize(LogicalDeserializationStat
|
|
|
199544
199616
|
auto offset = reader.ReadOptional<Expression>(nullptr, state.gstate);
|
|
199545
199617
|
return make_unique<LogicalLimit>(limit_val, offset_val, move(limit), move(offset));
|
|
199546
199618
|
}
|
|
199619
|
+
|
|
199547
199620
|
} // namespace duckdb
|
|
199548
199621
|
|
|
199549
199622
|
|
|
@@ -199564,6 +199637,15 @@ unique_ptr<LogicalOperator> LogicalLimitPercent::Deserialize(LogicalDeserializat
|
|
|
199564
199637
|
auto offset = reader.ReadOptional<Expression>(nullptr, state.gstate);
|
|
199565
199638
|
return make_unique<LogicalLimitPercent>(limit_percent, offset_val, move(limit), move(offset));
|
|
199566
199639
|
}
|
|
199640
|
+
|
|
199641
|
+
idx_t LogicalLimitPercent::EstimateCardinality(ClientContext &context) {
|
|
199642
|
+
auto child_cardinality = LogicalOperator::EstimateCardinality(context);
|
|
199643
|
+
if (limit_percent < 0 || limit_percent > 100) {
|
|
199644
|
+
return child_cardinality;
|
|
199645
|
+
}
|
|
199646
|
+
return idx_t(child_cardinality * (limit_percent / 100.0));
|
|
199647
|
+
}
|
|
199648
|
+
|
|
199567
199649
|
} // namespace duckdb
|
|
199568
199650
|
|
|
199569
199651
|
|
|
@@ -199597,6 +199679,10 @@ unique_ptr<LogicalOperator> LogicalPragma::Deserialize(LogicalDeserializationSta
|
|
|
199597
199679
|
throw NotImplementedException(LogicalOperatorToString(state.type));
|
|
199598
199680
|
}
|
|
199599
199681
|
|
|
199682
|
+
idx_t LogicalPragma::EstimateCardinality(ClientContext &context) {
|
|
199683
|
+
return 1;
|
|
199684
|
+
}
|
|
199685
|
+
|
|
199600
199686
|
} // namespace duckdb
|
|
199601
199687
|
|
|
199602
199688
|
|
|
@@ -199610,6 +199696,10 @@ unique_ptr<LogicalOperator> LogicalPrepare::Deserialize(LogicalDeserializationSt
|
|
|
199610
199696
|
throw NotImplementedException(LogicalOperatorToString(state.type));
|
|
199611
199697
|
}
|
|
199612
199698
|
|
|
199699
|
+
idx_t LogicalPrepare::EstimateCardinality(ClientContext &context) {
|
|
199700
|
+
return 1;
|
|
199701
|
+
}
|
|
199702
|
+
|
|
199613
199703
|
} // namespace duckdb
|
|
199614
199704
|
|
|
199615
199705
|
|
|
@@ -199722,6 +199812,10 @@ unique_ptr<LogicalOperator> LogicalSet::Deserialize(LogicalDeserializationState
|
|
|
199722
199812
|
return make_unique<LogicalSet>(name, value, scope);
|
|
199723
199813
|
}
|
|
199724
199814
|
|
|
199815
|
+
idx_t LogicalSet::EstimateCardinality(ClientContext &context) {
|
|
199816
|
+
return 1;
|
|
199817
|
+
}
|
|
199818
|
+
|
|
199725
199819
|
} // namespace duckdb
|
|
199726
199820
|
|
|
199727
199821
|
|
|
@@ -199773,6 +199867,10 @@ unique_ptr<LogicalOperator> LogicalSimple::Deserialize(LogicalDeserializationSta
|
|
|
199773
199867
|
throw NotImplementedException(LogicalOperatorToString(state.type));
|
|
199774
199868
|
}
|
|
199775
199869
|
|
|
199870
|
+
idx_t LogicalSimple::EstimateCardinality(ClientContext &context) {
|
|
199871
|
+
return 1;
|
|
199872
|
+
}
|
|
199873
|
+
|
|
199776
199874
|
} // namespace duckdb
|
|
199777
199875
|
|
|
199778
199876
|
|
|
@@ -199791,6 +199889,15 @@ unique_ptr<LogicalOperator> LogicalTopN::Deserialize(LogicalDeserializationState
|
|
|
199791
199889
|
auto limit = reader.ReadRequired<idx_t>();
|
|
199792
199890
|
return make_unique<LogicalTopN>(move(orders), limit, offset);
|
|
199793
199891
|
}
|
|
199892
|
+
|
|
199893
|
+
idx_t LogicalTopN::EstimateCardinality(ClientContext &context) {
|
|
199894
|
+
auto child_cardinality = LogicalOperator::EstimateCardinality(context);
|
|
199895
|
+
if (limit >= 0 && child_cardinality < idx_t(limit)) {
|
|
199896
|
+
return limit;
|
|
199897
|
+
}
|
|
199898
|
+
return child_cardinality;
|
|
199899
|
+
}
|
|
199900
|
+
|
|
199794
199901
|
} // namespace duckdb
|
|
199795
199902
|
|
|
199796
199903
|
|
|
@@ -199861,6 +199968,10 @@ unique_ptr<LogicalOperator> LogicalUpdate::Deserialize(LogicalDeserializationSta
|
|
|
199861
199968
|
return move(result);
|
|
199862
199969
|
}
|
|
199863
199970
|
|
|
199971
|
+
idx_t LogicalUpdate::EstimateCardinality(ClientContext &context) {
|
|
199972
|
+
return return_chunk ? LogicalOperator::EstimateCardinality(context) : 1;
|
|
199973
|
+
}
|
|
199974
|
+
|
|
199864
199975
|
} // namespace duckdb
|
|
199865
199976
|
|
|
199866
199977
|
|
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 "47bb125a91"
|
|
15
|
+
#define DUCKDB_VERSION "v0.5.2-dev2256"
|
|
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 {
|