duckdb 0.3.3-dev835.0 → 0.3.3-dev844.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 +88 -9
- package/src/duckdb.hpp +544 -544
- package/src/parquet-amalgamation.cpp +34837 -34837
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.3.3-
|
|
14
|
+
#define DUCKDB_SOURCE_ID "7ec3bd36e"
|
|
15
|
+
#define DUCKDB_VERSION "v0.3.3-dev844"
|
|
16
16
|
//===----------------------------------------------------------------------===//
|
|
17
17
|
// DuckDB
|
|
18
18
|
//
|
|
@@ -21361,55 +21361,6 @@ private:
|
|
|
21361
21361
|
unique_ptr<StreamWrapper> stream_wrapper;
|
|
21362
21362
|
};
|
|
21363
21363
|
|
|
21364
|
-
} // namespace duckdb
|
|
21365
|
-
//===----------------------------------------------------------------------===//
|
|
21366
|
-
// DuckDB
|
|
21367
|
-
//
|
|
21368
|
-
// duckdb/parser/expression/subquery_expression.hpp
|
|
21369
|
-
//
|
|
21370
|
-
//
|
|
21371
|
-
//===----------------------------------------------------------------------===//
|
|
21372
|
-
|
|
21373
|
-
|
|
21374
|
-
|
|
21375
|
-
|
|
21376
|
-
|
|
21377
|
-
|
|
21378
|
-
|
|
21379
|
-
namespace duckdb {
|
|
21380
|
-
|
|
21381
|
-
//! Represents a subquery
|
|
21382
|
-
class SubqueryExpression : public ParsedExpression {
|
|
21383
|
-
public:
|
|
21384
|
-
SubqueryExpression();
|
|
21385
|
-
|
|
21386
|
-
//! The actual subquery
|
|
21387
|
-
unique_ptr<SelectStatement> subquery;
|
|
21388
|
-
//! The subquery type
|
|
21389
|
-
SubqueryType subquery_type;
|
|
21390
|
-
//! the child expression to compare with (in case of IN, ANY, ALL operators, empty for EXISTS queries and scalar
|
|
21391
|
-
//! subquery)
|
|
21392
|
-
unique_ptr<ParsedExpression> child;
|
|
21393
|
-
//! The comparison type of the child expression with the subquery (in case of ANY, ALL operators), empty otherwise
|
|
21394
|
-
ExpressionType comparison_type;
|
|
21395
|
-
|
|
21396
|
-
public:
|
|
21397
|
-
bool HasSubquery() const override {
|
|
21398
|
-
return true;
|
|
21399
|
-
}
|
|
21400
|
-
bool IsScalar() const override {
|
|
21401
|
-
return false;
|
|
21402
|
-
}
|
|
21403
|
-
|
|
21404
|
-
string ToString() const override;
|
|
21405
|
-
|
|
21406
|
-
static bool Equals(const SubqueryExpression *a, const SubqueryExpression *b);
|
|
21407
|
-
|
|
21408
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21409
|
-
|
|
21410
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21411
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21412
|
-
};
|
|
21413
21364
|
} // namespace duckdb
|
|
21414
21365
|
//===----------------------------------------------------------------------===//
|
|
21415
21366
|
// DuckDB
|
|
@@ -21450,96 +21401,6 @@ public:
|
|
|
21450
21401
|
};
|
|
21451
21402
|
|
|
21452
21403
|
} // namespace duckdb
|
|
21453
|
-
//===----------------------------------------------------------------------===//
|
|
21454
|
-
// DuckDB
|
|
21455
|
-
//
|
|
21456
|
-
// duckdb/parser/expression/conjunction_expression.hpp
|
|
21457
|
-
//
|
|
21458
|
-
//
|
|
21459
|
-
//===----------------------------------------------------------------------===//
|
|
21460
|
-
|
|
21461
|
-
|
|
21462
|
-
|
|
21463
|
-
|
|
21464
|
-
|
|
21465
|
-
|
|
21466
|
-
namespace duckdb {
|
|
21467
|
-
|
|
21468
|
-
//! Represents a conjunction (AND/OR)
|
|
21469
|
-
class ConjunctionExpression : public ParsedExpression {
|
|
21470
|
-
public:
|
|
21471
|
-
DUCKDB_API explicit ConjunctionExpression(ExpressionType type);
|
|
21472
|
-
DUCKDB_API ConjunctionExpression(ExpressionType type, vector<unique_ptr<ParsedExpression>> children);
|
|
21473
|
-
DUCKDB_API ConjunctionExpression(ExpressionType type, unique_ptr<ParsedExpression> left,
|
|
21474
|
-
unique_ptr<ParsedExpression> right);
|
|
21475
|
-
|
|
21476
|
-
vector<unique_ptr<ParsedExpression>> children;
|
|
21477
|
-
|
|
21478
|
-
public:
|
|
21479
|
-
void AddExpression(unique_ptr<ParsedExpression> expr);
|
|
21480
|
-
|
|
21481
|
-
string ToString() const override;
|
|
21482
|
-
|
|
21483
|
-
static bool Equals(const ConjunctionExpression *a, const ConjunctionExpression *b);
|
|
21484
|
-
|
|
21485
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21486
|
-
|
|
21487
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21488
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21489
|
-
|
|
21490
|
-
public:
|
|
21491
|
-
template <class T, class BASE>
|
|
21492
|
-
static string ToString(const T &entry) {
|
|
21493
|
-
string result = entry.children[0]->ToString();
|
|
21494
|
-
for (idx_t i = 1; i < entry.children.size(); i++) {
|
|
21495
|
-
result += " " + ExpressionTypeToOperator(entry.type) + " " + entry.children[i]->ToString();
|
|
21496
|
-
}
|
|
21497
|
-
return result;
|
|
21498
|
-
}
|
|
21499
|
-
};
|
|
21500
|
-
} // namespace duckdb
|
|
21501
|
-
//===----------------------------------------------------------------------===//
|
|
21502
|
-
// DuckDB
|
|
21503
|
-
//
|
|
21504
|
-
// duckdb/parser/expression/between_expression.hpp
|
|
21505
|
-
//
|
|
21506
|
-
//
|
|
21507
|
-
//===----------------------------------------------------------------------===//
|
|
21508
|
-
|
|
21509
|
-
|
|
21510
|
-
|
|
21511
|
-
|
|
21512
|
-
|
|
21513
|
-
namespace duckdb {
|
|
21514
|
-
|
|
21515
|
-
class BetweenExpression : public ParsedExpression {
|
|
21516
|
-
public:
|
|
21517
|
-
BetweenExpression(unique_ptr<ParsedExpression> input, unique_ptr<ParsedExpression> lower,
|
|
21518
|
-
unique_ptr<ParsedExpression> upper);
|
|
21519
|
-
|
|
21520
|
-
unique_ptr<ParsedExpression> input;
|
|
21521
|
-
unique_ptr<ParsedExpression> lower;
|
|
21522
|
-
unique_ptr<ParsedExpression> upper;
|
|
21523
|
-
|
|
21524
|
-
public:
|
|
21525
|
-
string ToString() const override;
|
|
21526
|
-
|
|
21527
|
-
static bool Equals(const BetweenExpression *a, const BetweenExpression *b);
|
|
21528
|
-
|
|
21529
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21530
|
-
|
|
21531
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21532
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21533
|
-
|
|
21534
|
-
public:
|
|
21535
|
-
template <class T, class BASE>
|
|
21536
|
-
static string ToString(const T &entry) {
|
|
21537
|
-
return entry.input->ToString() + " BETWEEN " + entry.lower->ToString() + " AND " + entry.upper->ToString();
|
|
21538
|
-
}
|
|
21539
|
-
};
|
|
21540
|
-
} // namespace duckdb
|
|
21541
|
-
|
|
21542
|
-
|
|
21543
21404
|
//===----------------------------------------------------------------------===//
|
|
21544
21405
|
// DuckDB
|
|
21545
21406
|
//
|
|
@@ -21592,11 +21453,10 @@ public:
|
|
|
21592
21453
|
}
|
|
21593
21454
|
};
|
|
21594
21455
|
} // namespace duckdb
|
|
21595
|
-
|
|
21596
21456
|
//===----------------------------------------------------------------------===//
|
|
21597
21457
|
// DuckDB
|
|
21598
21458
|
//
|
|
21599
|
-
// duckdb/parser/expression/
|
|
21459
|
+
// duckdb/parser/expression/conjunction_expression.hpp
|
|
21600
21460
|
//
|
|
21601
21461
|
//
|
|
21602
21462
|
//===----------------------------------------------------------------------===//
|
|
@@ -21608,101 +21468,22 @@ public:
|
|
|
21608
21468
|
|
|
21609
21469
|
namespace duckdb {
|
|
21610
21470
|
|
|
21611
|
-
//!
|
|
21612
|
-
class
|
|
21613
|
-
public:
|
|
21614
|
-
DUCKDB_API CastExpression(LogicalType target, unique_ptr<ParsedExpression> child, bool try_cast = false);
|
|
21615
|
-
|
|
21616
|
-
//! The child of the cast expression
|
|
21617
|
-
unique_ptr<ParsedExpression> child;
|
|
21618
|
-
//! The type to cast to
|
|
21619
|
-
LogicalType cast_type;
|
|
21620
|
-
//! Whether or not this is a try_cast expression
|
|
21621
|
-
bool try_cast;
|
|
21622
|
-
|
|
21623
|
-
public:
|
|
21624
|
-
string ToString() const override;
|
|
21625
|
-
|
|
21626
|
-
static bool Equals(const CastExpression *a, const CastExpression *b);
|
|
21627
|
-
|
|
21628
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21629
|
-
|
|
21630
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21631
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21632
|
-
|
|
21633
|
-
public:
|
|
21634
|
-
template <class T, class BASE>
|
|
21635
|
-
static string ToString(const T &entry) {
|
|
21636
|
-
return (entry.try_cast ? "TRY_CAST(" : "CAST(") + entry.child->ToString() + " AS " +
|
|
21637
|
-
entry.cast_type.ToString() + ")";
|
|
21638
|
-
}
|
|
21639
|
-
};
|
|
21640
|
-
} // namespace duckdb
|
|
21641
|
-
|
|
21642
|
-
//===----------------------------------------------------------------------===//
|
|
21643
|
-
// DuckDB
|
|
21644
|
-
//
|
|
21645
|
-
// duckdb/parser/expression/collate_expression.hpp
|
|
21646
|
-
//
|
|
21647
|
-
//
|
|
21648
|
-
//===----------------------------------------------------------------------===//
|
|
21649
|
-
|
|
21650
|
-
|
|
21651
|
-
|
|
21652
|
-
|
|
21653
|
-
|
|
21654
|
-
namespace duckdb {
|
|
21655
|
-
|
|
21656
|
-
//! CollateExpression represents a COLLATE statement
|
|
21657
|
-
class CollateExpression : public ParsedExpression {
|
|
21658
|
-
public:
|
|
21659
|
-
CollateExpression(string collation, unique_ptr<ParsedExpression> child);
|
|
21660
|
-
|
|
21661
|
-
//! The child of the cast expression
|
|
21662
|
-
unique_ptr<ParsedExpression> child;
|
|
21663
|
-
//! The collation clause
|
|
21664
|
-
string collation;
|
|
21665
|
-
|
|
21471
|
+
//! Represents a conjunction (AND/OR)
|
|
21472
|
+
class ConjunctionExpression : public ParsedExpression {
|
|
21666
21473
|
public:
|
|
21667
|
-
|
|
21668
|
-
|
|
21669
|
-
|
|
21670
|
-
|
|
21671
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21672
|
-
|
|
21673
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21674
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21675
|
-
};
|
|
21676
|
-
} // namespace duckdb
|
|
21677
|
-
|
|
21678
|
-
|
|
21679
|
-
//===----------------------------------------------------------------------===//
|
|
21680
|
-
// DuckDB
|
|
21681
|
-
//
|
|
21682
|
-
// duckdb/parser/expression/comparison_expression.hpp
|
|
21683
|
-
//
|
|
21684
|
-
//
|
|
21685
|
-
//===----------------------------------------------------------------------===//
|
|
21686
|
-
|
|
21687
|
-
|
|
21688
|
-
|
|
21474
|
+
DUCKDB_API explicit ConjunctionExpression(ExpressionType type);
|
|
21475
|
+
DUCKDB_API ConjunctionExpression(ExpressionType type, vector<unique_ptr<ParsedExpression>> children);
|
|
21476
|
+
DUCKDB_API ConjunctionExpression(ExpressionType type, unique_ptr<ParsedExpression> left,
|
|
21477
|
+
unique_ptr<ParsedExpression> right);
|
|
21689
21478
|
|
|
21479
|
+
vector<unique_ptr<ParsedExpression>> children;
|
|
21690
21480
|
|
|
21691
|
-
namespace duckdb {
|
|
21692
|
-
//! ComparisonExpression represents a boolean comparison (e.g. =, >=, <>). Always returns a boolean
|
|
21693
|
-
//! and has two children.
|
|
21694
|
-
class ComparisonExpression : public ParsedExpression {
|
|
21695
21481
|
public:
|
|
21696
|
-
|
|
21697
|
-
unique_ptr<ParsedExpression> right);
|
|
21698
|
-
|
|
21699
|
-
unique_ptr<ParsedExpression> left;
|
|
21700
|
-
unique_ptr<ParsedExpression> right;
|
|
21482
|
+
void AddExpression(unique_ptr<ParsedExpression> expr);
|
|
21701
21483
|
|
|
21702
|
-
public:
|
|
21703
21484
|
string ToString() const override;
|
|
21704
21485
|
|
|
21705
|
-
static bool Equals(const
|
|
21486
|
+
static bool Equals(const ConjunctionExpression *a, const ConjunctionExpression *b);
|
|
21706
21487
|
|
|
21707
21488
|
unique_ptr<ParsedExpression> Copy() const override;
|
|
21708
21489
|
|
|
@@ -21712,81 +21493,14 @@ public:
|
|
|
21712
21493
|
public:
|
|
21713
21494
|
template <class T, class BASE>
|
|
21714
21495
|
static string ToString(const T &entry) {
|
|
21715
|
-
|
|
21716
|
-
|
|
21717
|
-
|
|
21718
|
-
}
|
|
21719
|
-
|
|
21720
|
-
|
|
21721
|
-
//===----------------------------------------------------------------------===//
|
|
21722
|
-
// DuckDB
|
|
21723
|
-
//
|
|
21724
|
-
// duckdb/parser/expression/constant_expression.hpp
|
|
21725
|
-
//
|
|
21726
|
-
//
|
|
21727
|
-
//===----------------------------------------------------------------------===//
|
|
21728
|
-
|
|
21729
|
-
|
|
21730
|
-
|
|
21731
|
-
|
|
21732
|
-
|
|
21733
|
-
|
|
21734
|
-
namespace duckdb {
|
|
21735
|
-
|
|
21736
|
-
//! ConstantExpression represents a constant value in the query
|
|
21737
|
-
class ConstantExpression : public ParsedExpression {
|
|
21738
|
-
public:
|
|
21739
|
-
DUCKDB_API explicit ConstantExpression(Value val);
|
|
21740
|
-
|
|
21741
|
-
//! The constant value referenced
|
|
21742
|
-
Value value;
|
|
21743
|
-
|
|
21744
|
-
public:
|
|
21745
|
-
string ToString() const override;
|
|
21746
|
-
|
|
21747
|
-
static bool Equals(const ConstantExpression *a, const ConstantExpression *b);
|
|
21748
|
-
hash_t Hash() const override;
|
|
21749
|
-
|
|
21750
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21751
|
-
|
|
21752
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21753
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21754
|
-
};
|
|
21755
|
-
|
|
21756
|
-
} // namespace duckdb
|
|
21757
|
-
|
|
21758
|
-
//===----------------------------------------------------------------------===//
|
|
21759
|
-
// DuckDB
|
|
21760
|
-
//
|
|
21761
|
-
// duckdb/parser/expression/default_expression.hpp
|
|
21762
|
-
//
|
|
21763
|
-
//
|
|
21764
|
-
//===----------------------------------------------------------------------===//
|
|
21765
|
-
|
|
21766
|
-
|
|
21767
|
-
|
|
21768
|
-
|
|
21769
|
-
|
|
21770
|
-
namespace duckdb {
|
|
21771
|
-
//! Represents the default value of a column
|
|
21772
|
-
class DefaultExpression : public ParsedExpression {
|
|
21773
|
-
public:
|
|
21774
|
-
DefaultExpression();
|
|
21775
|
-
|
|
21776
|
-
public:
|
|
21777
|
-
bool IsScalar() const override {
|
|
21778
|
-
return false;
|
|
21496
|
+
string result = entry.children[0]->ToString();
|
|
21497
|
+
for (idx_t i = 1; i < entry.children.size(); i++) {
|
|
21498
|
+
result += " " + ExpressionTypeToOperator(entry.type) + " " + entry.children[i]->ToString();
|
|
21499
|
+
}
|
|
21500
|
+
return result;
|
|
21779
21501
|
}
|
|
21780
|
-
|
|
21781
|
-
string ToString() const override;
|
|
21782
|
-
|
|
21783
|
-
unique_ptr<ParsedExpression> Copy() const override;
|
|
21784
|
-
|
|
21785
|
-
void Serialize(FieldWriter &writer) const override;
|
|
21786
|
-
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21787
21502
|
};
|
|
21788
21503
|
} // namespace duckdb
|
|
21789
|
-
|
|
21790
21504
|
//===----------------------------------------------------------------------===//
|
|
21791
21505
|
// DuckDB
|
|
21792
21506
|
//
|
|
@@ -21901,8 +21615,113 @@ public:
|
|
|
21901
21615
|
}
|
|
21902
21616
|
};
|
|
21903
21617
|
} // namespace duckdb
|
|
21618
|
+
//===----------------------------------------------------------------------===//
|
|
21619
|
+
// DuckDB
|
|
21620
|
+
//
|
|
21621
|
+
// duckdb/parser/expression/default_expression.hpp
|
|
21622
|
+
//
|
|
21623
|
+
//
|
|
21624
|
+
//===----------------------------------------------------------------------===//
|
|
21625
|
+
|
|
21626
|
+
|
|
21627
|
+
|
|
21628
|
+
|
|
21629
|
+
|
|
21630
|
+
namespace duckdb {
|
|
21631
|
+
//! Represents the default value of a column
|
|
21632
|
+
class DefaultExpression : public ParsedExpression {
|
|
21633
|
+
public:
|
|
21634
|
+
DefaultExpression();
|
|
21635
|
+
|
|
21636
|
+
public:
|
|
21637
|
+
bool IsScalar() const override {
|
|
21638
|
+
return false;
|
|
21639
|
+
}
|
|
21640
|
+
|
|
21641
|
+
string ToString() const override;
|
|
21642
|
+
|
|
21643
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21644
|
+
|
|
21645
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21646
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21647
|
+
};
|
|
21648
|
+
} // namespace duckdb
|
|
21649
|
+
//===----------------------------------------------------------------------===//
|
|
21650
|
+
// DuckDB
|
|
21651
|
+
//
|
|
21652
|
+
// duckdb/parser/expression/comparison_expression.hpp
|
|
21653
|
+
//
|
|
21654
|
+
//
|
|
21655
|
+
//===----------------------------------------------------------------------===//
|
|
21656
|
+
|
|
21657
|
+
|
|
21658
|
+
|
|
21659
|
+
|
|
21660
|
+
|
|
21661
|
+
namespace duckdb {
|
|
21662
|
+
//! ComparisonExpression represents a boolean comparison (e.g. =, >=, <>). Always returns a boolean
|
|
21663
|
+
//! and has two children.
|
|
21664
|
+
class ComparisonExpression : public ParsedExpression {
|
|
21665
|
+
public:
|
|
21666
|
+
DUCKDB_API ComparisonExpression(ExpressionType type, unique_ptr<ParsedExpression> left,
|
|
21667
|
+
unique_ptr<ParsedExpression> right);
|
|
21668
|
+
|
|
21669
|
+
unique_ptr<ParsedExpression> left;
|
|
21670
|
+
unique_ptr<ParsedExpression> right;
|
|
21671
|
+
|
|
21672
|
+
public:
|
|
21673
|
+
string ToString() const override;
|
|
21674
|
+
|
|
21675
|
+
static bool Equals(const ComparisonExpression *a, const ComparisonExpression *b);
|
|
21676
|
+
|
|
21677
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21678
|
+
|
|
21679
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21680
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21681
|
+
|
|
21682
|
+
public:
|
|
21683
|
+
template <class T, class BASE>
|
|
21684
|
+
static string ToString(const T &entry) {
|
|
21685
|
+
return entry.left->ToString() + " " + ExpressionTypeToOperator(entry.type) + " " + entry.right->ToString();
|
|
21686
|
+
}
|
|
21687
|
+
};
|
|
21688
|
+
} // namespace duckdb
|
|
21689
|
+
//===----------------------------------------------------------------------===//
|
|
21690
|
+
// DuckDB
|
|
21691
|
+
//
|
|
21692
|
+
// duckdb/parser/expression/constant_expression.hpp
|
|
21693
|
+
//
|
|
21694
|
+
//
|
|
21695
|
+
//===----------------------------------------------------------------------===//
|
|
21696
|
+
|
|
21697
|
+
|
|
21698
|
+
|
|
21699
|
+
|
|
21700
|
+
|
|
21701
|
+
|
|
21702
|
+
namespace duckdb {
|
|
21703
|
+
|
|
21704
|
+
//! ConstantExpression represents a constant value in the query
|
|
21705
|
+
class ConstantExpression : public ParsedExpression {
|
|
21706
|
+
public:
|
|
21707
|
+
DUCKDB_API explicit ConstantExpression(Value val);
|
|
21708
|
+
|
|
21709
|
+
//! The constant value referenced
|
|
21710
|
+
Value value;
|
|
21711
|
+
|
|
21712
|
+
public:
|
|
21713
|
+
string ToString() const override;
|
|
21904
21714
|
|
|
21715
|
+
static bool Equals(const ConstantExpression *a, const ConstantExpression *b);
|
|
21716
|
+
hash_t Hash() const override;
|
|
21717
|
+
|
|
21718
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21719
|
+
|
|
21720
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21721
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21722
|
+
};
|
|
21905
21723
|
|
|
21724
|
+
} // namespace duckdb
|
|
21906
21725
|
//===----------------------------------------------------------------------===//
|
|
21907
21726
|
// DuckDB
|
|
21908
21727
|
//
|
|
@@ -22003,6 +21822,172 @@ public:
|
|
|
22003
21822
|
};
|
|
22004
21823
|
|
|
22005
21824
|
} // namespace duckdb
|
|
21825
|
+
//===----------------------------------------------------------------------===//
|
|
21826
|
+
// DuckDB
|
|
21827
|
+
//
|
|
21828
|
+
// duckdb/parser/expression/between_expression.hpp
|
|
21829
|
+
//
|
|
21830
|
+
//
|
|
21831
|
+
//===----------------------------------------------------------------------===//
|
|
21832
|
+
|
|
21833
|
+
|
|
21834
|
+
|
|
21835
|
+
|
|
21836
|
+
|
|
21837
|
+
namespace duckdb {
|
|
21838
|
+
|
|
21839
|
+
class BetweenExpression : public ParsedExpression {
|
|
21840
|
+
public:
|
|
21841
|
+
BetweenExpression(unique_ptr<ParsedExpression> input, unique_ptr<ParsedExpression> lower,
|
|
21842
|
+
unique_ptr<ParsedExpression> upper);
|
|
21843
|
+
|
|
21844
|
+
unique_ptr<ParsedExpression> input;
|
|
21845
|
+
unique_ptr<ParsedExpression> lower;
|
|
21846
|
+
unique_ptr<ParsedExpression> upper;
|
|
21847
|
+
|
|
21848
|
+
public:
|
|
21849
|
+
string ToString() const override;
|
|
21850
|
+
|
|
21851
|
+
static bool Equals(const BetweenExpression *a, const BetweenExpression *b);
|
|
21852
|
+
|
|
21853
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21854
|
+
|
|
21855
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21856
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21857
|
+
|
|
21858
|
+
public:
|
|
21859
|
+
template <class T, class BASE>
|
|
21860
|
+
static string ToString(const T &entry) {
|
|
21861
|
+
return entry.input->ToString() + " BETWEEN " + entry.lower->ToString() + " AND " + entry.upper->ToString();
|
|
21862
|
+
}
|
|
21863
|
+
};
|
|
21864
|
+
} // namespace duckdb
|
|
21865
|
+
//===----------------------------------------------------------------------===//
|
|
21866
|
+
// DuckDB
|
|
21867
|
+
//
|
|
21868
|
+
// duckdb/parser/expression/positional_reference_expression.hpp
|
|
21869
|
+
//
|
|
21870
|
+
//
|
|
21871
|
+
//===----------------------------------------------------------------------===//
|
|
21872
|
+
|
|
21873
|
+
|
|
21874
|
+
|
|
21875
|
+
|
|
21876
|
+
|
|
21877
|
+
namespace duckdb {
|
|
21878
|
+
class PositionalReferenceExpression : public ParsedExpression {
|
|
21879
|
+
public:
|
|
21880
|
+
DUCKDB_API PositionalReferenceExpression(idx_t index);
|
|
21881
|
+
|
|
21882
|
+
idx_t index;
|
|
21883
|
+
|
|
21884
|
+
public:
|
|
21885
|
+
bool IsScalar() const override {
|
|
21886
|
+
return false;
|
|
21887
|
+
}
|
|
21888
|
+
|
|
21889
|
+
string ToString() const override;
|
|
21890
|
+
|
|
21891
|
+
static bool Equals(const PositionalReferenceExpression *a, const PositionalReferenceExpression *b);
|
|
21892
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21893
|
+
hash_t Hash() const override;
|
|
21894
|
+
|
|
21895
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21896
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21897
|
+
};
|
|
21898
|
+
} // namespace duckdb
|
|
21899
|
+
|
|
21900
|
+
|
|
21901
|
+
|
|
21902
|
+
//===----------------------------------------------------------------------===//
|
|
21903
|
+
// DuckDB
|
|
21904
|
+
//
|
|
21905
|
+
// duckdb/parser/expression/cast_expression.hpp
|
|
21906
|
+
//
|
|
21907
|
+
//
|
|
21908
|
+
//===----------------------------------------------------------------------===//
|
|
21909
|
+
|
|
21910
|
+
|
|
21911
|
+
|
|
21912
|
+
|
|
21913
|
+
|
|
21914
|
+
|
|
21915
|
+
namespace duckdb {
|
|
21916
|
+
|
|
21917
|
+
//! CastExpression represents a type cast from one SQL type to another SQL type
|
|
21918
|
+
class CastExpression : public ParsedExpression {
|
|
21919
|
+
public:
|
|
21920
|
+
DUCKDB_API CastExpression(LogicalType target, unique_ptr<ParsedExpression> child, bool try_cast = false);
|
|
21921
|
+
|
|
21922
|
+
//! The child of the cast expression
|
|
21923
|
+
unique_ptr<ParsedExpression> child;
|
|
21924
|
+
//! The type to cast to
|
|
21925
|
+
LogicalType cast_type;
|
|
21926
|
+
//! Whether or not this is a try_cast expression
|
|
21927
|
+
bool try_cast;
|
|
21928
|
+
|
|
21929
|
+
public:
|
|
21930
|
+
string ToString() const override;
|
|
21931
|
+
|
|
21932
|
+
static bool Equals(const CastExpression *a, const CastExpression *b);
|
|
21933
|
+
|
|
21934
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21935
|
+
|
|
21936
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21937
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21938
|
+
|
|
21939
|
+
public:
|
|
21940
|
+
template <class T, class BASE>
|
|
21941
|
+
static string ToString(const T &entry) {
|
|
21942
|
+
return (entry.try_cast ? "TRY_CAST(" : "CAST(") + entry.child->ToString() + " AS " +
|
|
21943
|
+
entry.cast_type.ToString() + ")";
|
|
21944
|
+
}
|
|
21945
|
+
};
|
|
21946
|
+
} // namespace duckdb
|
|
21947
|
+
|
|
21948
|
+
//===----------------------------------------------------------------------===//
|
|
21949
|
+
// DuckDB
|
|
21950
|
+
//
|
|
21951
|
+
// duckdb/parser/expression/collate_expression.hpp
|
|
21952
|
+
//
|
|
21953
|
+
//
|
|
21954
|
+
//===----------------------------------------------------------------------===//
|
|
21955
|
+
|
|
21956
|
+
|
|
21957
|
+
|
|
21958
|
+
|
|
21959
|
+
|
|
21960
|
+
namespace duckdb {
|
|
21961
|
+
|
|
21962
|
+
//! CollateExpression represents a COLLATE statement
|
|
21963
|
+
class CollateExpression : public ParsedExpression {
|
|
21964
|
+
public:
|
|
21965
|
+
CollateExpression(string collation, unique_ptr<ParsedExpression> child);
|
|
21966
|
+
|
|
21967
|
+
//! The child of the cast expression
|
|
21968
|
+
unique_ptr<ParsedExpression> child;
|
|
21969
|
+
//! The collation clause
|
|
21970
|
+
string collation;
|
|
21971
|
+
|
|
21972
|
+
public:
|
|
21973
|
+
string ToString() const override;
|
|
21974
|
+
|
|
21975
|
+
static bool Equals(const CollateExpression *a, const CollateExpression *b);
|
|
21976
|
+
|
|
21977
|
+
unique_ptr<ParsedExpression> Copy() const override;
|
|
21978
|
+
|
|
21979
|
+
void Serialize(FieldWriter &writer) const override;
|
|
21980
|
+
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
21981
|
+
};
|
|
21982
|
+
} // namespace duckdb
|
|
21983
|
+
|
|
21984
|
+
|
|
21985
|
+
|
|
21986
|
+
|
|
21987
|
+
|
|
21988
|
+
|
|
21989
|
+
|
|
21990
|
+
|
|
22006
21991
|
|
|
22007
21992
|
//===----------------------------------------------------------------------===//
|
|
22008
21993
|
// DuckDB
|
|
@@ -22041,10 +22026,11 @@ public:
|
|
|
22041
22026
|
};
|
|
22042
22027
|
} // namespace duckdb
|
|
22043
22028
|
|
|
22029
|
+
|
|
22044
22030
|
//===----------------------------------------------------------------------===//
|
|
22045
22031
|
// DuckDB
|
|
22046
22032
|
//
|
|
22047
|
-
// duckdb/parser/expression/
|
|
22033
|
+
// duckdb/parser/expression/star_expression.hpp
|
|
22048
22034
|
//
|
|
22049
22035
|
//
|
|
22050
22036
|
//===----------------------------------------------------------------------===//
|
|
@@ -22053,23 +22039,27 @@ public:
|
|
|
22053
22039
|
|
|
22054
22040
|
|
|
22055
22041
|
|
|
22042
|
+
|
|
22056
22043
|
namespace duckdb {
|
|
22057
|
-
|
|
22044
|
+
|
|
22045
|
+
//! Represents a * expression in the SELECT clause
|
|
22046
|
+
class StarExpression : public ParsedExpression {
|
|
22058
22047
|
public:
|
|
22059
|
-
|
|
22048
|
+
StarExpression(string relation_name = string());
|
|
22060
22049
|
|
|
22061
|
-
|
|
22050
|
+
//! The relation name in case of tbl.*, or empty if this is a normal *
|
|
22051
|
+
string relation_name;
|
|
22052
|
+
//! List of columns to exclude from the STAR expression
|
|
22053
|
+
case_insensitive_set_t exclude_list;
|
|
22054
|
+
//! List of columns to replace with another expression
|
|
22055
|
+
case_insensitive_map_t<unique_ptr<ParsedExpression>> replace_list;
|
|
22062
22056
|
|
|
22063
22057
|
public:
|
|
22064
|
-
bool IsScalar() const override {
|
|
22065
|
-
return false;
|
|
22066
|
-
}
|
|
22067
|
-
|
|
22068
22058
|
string ToString() const override;
|
|
22069
22059
|
|
|
22070
|
-
static bool Equals(const
|
|
22060
|
+
static bool Equals(const StarExpression *a, const StarExpression *b);
|
|
22061
|
+
|
|
22071
22062
|
unique_ptr<ParsedExpression> Copy() const override;
|
|
22072
|
-
hash_t Hash() const override;
|
|
22073
22063
|
|
|
22074
22064
|
void Serialize(FieldWriter &writer) const override;
|
|
22075
22065
|
static unique_ptr<ParsedExpression> Deserialize(ExpressionType type, FieldReader &source);
|
|
@@ -22079,7 +22069,7 @@ public:
|
|
|
22079
22069
|
//===----------------------------------------------------------------------===//
|
|
22080
22070
|
// DuckDB
|
|
22081
22071
|
//
|
|
22082
|
-
// duckdb/parser/expression/
|
|
22072
|
+
// duckdb/parser/expression/subquery_expression.hpp
|
|
22083
22073
|
//
|
|
22084
22074
|
//
|
|
22085
22075
|
//===----------------------------------------------------------------------===//
|
|
@@ -22089,24 +22079,35 @@ public:
|
|
|
22089
22079
|
|
|
22090
22080
|
|
|
22091
22081
|
|
|
22082
|
+
|
|
22092
22083
|
namespace duckdb {
|
|
22093
22084
|
|
|
22094
|
-
//! Represents a
|
|
22095
|
-
class
|
|
22085
|
+
//! Represents a subquery
|
|
22086
|
+
class SubqueryExpression : public ParsedExpression {
|
|
22096
22087
|
public:
|
|
22097
|
-
|
|
22088
|
+
SubqueryExpression();
|
|
22098
22089
|
|
|
22099
|
-
//! The
|
|
22100
|
-
|
|
22101
|
-
//!
|
|
22102
|
-
|
|
22103
|
-
//!
|
|
22104
|
-
|
|
22090
|
+
//! The actual subquery
|
|
22091
|
+
unique_ptr<SelectStatement> subquery;
|
|
22092
|
+
//! The subquery type
|
|
22093
|
+
SubqueryType subquery_type;
|
|
22094
|
+
//! the child expression to compare with (in case of IN, ANY, ALL operators, empty for EXISTS queries and scalar
|
|
22095
|
+
//! subquery)
|
|
22096
|
+
unique_ptr<ParsedExpression> child;
|
|
22097
|
+
//! The comparison type of the child expression with the subquery (in case of ANY, ALL operators), empty otherwise
|
|
22098
|
+
ExpressionType comparison_type;
|
|
22105
22099
|
|
|
22106
22100
|
public:
|
|
22101
|
+
bool HasSubquery() const override {
|
|
22102
|
+
return true;
|
|
22103
|
+
}
|
|
22104
|
+
bool IsScalar() const override {
|
|
22105
|
+
return false;
|
|
22106
|
+
}
|
|
22107
|
+
|
|
22107
22108
|
string ToString() const override;
|
|
22108
22109
|
|
|
22109
|
-
static bool Equals(const
|
|
22110
|
+
static bool Equals(const SubqueryExpression *a, const SubqueryExpression *b);
|
|
22110
22111
|
|
|
22111
22112
|
unique_ptr<ParsedExpression> Copy() const override;
|
|
22112
22113
|
|
|
@@ -22116,11 +22117,10 @@ public:
|
|
|
22116
22117
|
} // namespace duckdb
|
|
22117
22118
|
|
|
22118
22119
|
|
|
22119
|
-
|
|
22120
22120
|
//===----------------------------------------------------------------------===//
|
|
22121
22121
|
// DuckDB
|
|
22122
22122
|
//
|
|
22123
|
-
// duckdb/parser/parsed_data/
|
|
22123
|
+
// duckdb/parser/parsed_data/create_collation_info.hpp
|
|
22124
22124
|
//
|
|
22125
22125
|
//
|
|
22126
22126
|
//===----------------------------------------------------------------------===//
|
|
@@ -22132,26 +22132,37 @@ public:
|
|
|
22132
22132
|
|
|
22133
22133
|
namespace duckdb {
|
|
22134
22134
|
|
|
22135
|
-
struct
|
|
22136
|
-
|
|
22137
|
-
|
|
22138
|
-
|
|
22139
|
-
|
|
22140
|
-
|
|
22135
|
+
struct CreateCollationInfo : public CreateInfo {
|
|
22136
|
+
CreateCollationInfo(string name_p, ScalarFunction function_p, bool combinable_p, bool not_required_for_equality_p)
|
|
22137
|
+
: CreateInfo(CatalogType::COLLATION_ENTRY), function(move(function_p)), combinable(combinable_p),
|
|
22138
|
+
not_required_for_equality(not_required_for_equality_p) {
|
|
22139
|
+
this->name = move(name_p);
|
|
22140
|
+
}
|
|
22141
22141
|
|
|
22142
|
-
//!
|
|
22143
|
-
string
|
|
22144
|
-
|
|
22142
|
+
//! The name of the collation
|
|
22143
|
+
string name;
|
|
22144
|
+
//! The collation function to push in case collation is required
|
|
22145
|
+
ScalarFunction function;
|
|
22146
|
+
//! Whether or not the collation can be combined with other collations.
|
|
22147
|
+
bool combinable;
|
|
22148
|
+
//! Whether or not the collation is required for equality comparisons or not. For many collations a binary
|
|
22149
|
+
//! comparison for equality comparisons is correct, allowing us to skip the collation in these cases which greatly
|
|
22150
|
+
//! speeds up processing.
|
|
22151
|
+
bool not_required_for_equality;
|
|
22145
22152
|
|
|
22146
|
-
|
|
22147
|
-
|
|
22153
|
+
public:
|
|
22154
|
+
unique_ptr<CreateInfo> Copy() const override {
|
|
22155
|
+
auto result = make_unique<CreateCollationInfo>(name, function, combinable, not_required_for_equality);
|
|
22156
|
+
CopyProperties(*result);
|
|
22157
|
+
return move(result);
|
|
22158
|
+
}
|
|
22148
22159
|
};
|
|
22149
22160
|
|
|
22150
22161
|
} // namespace duckdb
|
|
22151
22162
|
//===----------------------------------------------------------------------===//
|
|
22152
22163
|
// DuckDB
|
|
22153
22164
|
//
|
|
22154
|
-
// duckdb/parser/parsed_data/
|
|
22165
|
+
// duckdb/parser/parsed_data/vacuum_info.hpp
|
|
22155
22166
|
//
|
|
22156
22167
|
//
|
|
22157
22168
|
//===----------------------------------------------------------------------===//
|
|
@@ -22160,28 +22171,56 @@ struct BoundExportData : public ParseInfo {
|
|
|
22160
22171
|
|
|
22161
22172
|
|
|
22162
22173
|
|
|
22174
|
+
namespace duckdb {
|
|
22163
22175
|
|
|
22176
|
+
enum class LoadType { LOAD, INSTALL, FORCE_INSTALL };
|
|
22164
22177
|
|
|
22178
|
+
struct LoadInfo : public ParseInfo {
|
|
22179
|
+
std::string filename;
|
|
22180
|
+
LoadType load_type;
|
|
22165
22181
|
|
|
22166
|
-
|
|
22182
|
+
public:
|
|
22183
|
+
unique_ptr<LoadInfo> Copy() const {
|
|
22184
|
+
auto result = make_unique<LoadInfo>();
|
|
22185
|
+
result->filename = filename;
|
|
22186
|
+
result->load_type = load_type;
|
|
22187
|
+
return result;
|
|
22188
|
+
}
|
|
22189
|
+
};
|
|
22167
22190
|
|
|
22168
|
-
|
|
22191
|
+
} // namespace duckdb
|
|
22192
|
+
//===----------------------------------------------------------------------===//
|
|
22193
|
+
// DuckDB
|
|
22194
|
+
//
|
|
22195
|
+
// duckdb/parser/parsed_data/show_select_info.hpp
|
|
22196
|
+
//
|
|
22197
|
+
//
|
|
22198
|
+
//===----------------------------------------------------------------------===//
|
|
22169
22199
|
|
|
22170
|
-
CreateTypeInfo() : CreateInfo(CatalogType::TYPE_ENTRY) {
|
|
22171
|
-
}
|
|
22172
22200
|
|
|
22173
|
-
//! Name of the Type
|
|
22174
|
-
string name;
|
|
22175
|
-
//! Logical Type
|
|
22176
|
-
LogicalType type;
|
|
22177
22201
|
|
|
22178
|
-
|
|
22179
|
-
|
|
22180
|
-
|
|
22181
|
-
|
|
22182
|
-
|
|
22183
|
-
|
|
22184
|
-
|
|
22202
|
+
|
|
22203
|
+
|
|
22204
|
+
|
|
22205
|
+
namespace duckdb {
|
|
22206
|
+
|
|
22207
|
+
struct ShowSelectInfo : public ParseInfo {
|
|
22208
|
+
//! Types of projected columns
|
|
22209
|
+
vector<LogicalType> types;
|
|
22210
|
+
//! The QueryNode of select query
|
|
22211
|
+
unique_ptr<QueryNode> query;
|
|
22212
|
+
//! Aliases of projected columns
|
|
22213
|
+
vector<string> aliases;
|
|
22214
|
+
//! Whether or not we are requesting a summary or a describe
|
|
22215
|
+
bool is_summary;
|
|
22216
|
+
|
|
22217
|
+
unique_ptr<ShowSelectInfo> Copy() {
|
|
22218
|
+
auto result = make_unique<ShowSelectInfo>();
|
|
22219
|
+
result->types = types;
|
|
22220
|
+
result->query = query->Copy();
|
|
22221
|
+
result->aliases = aliases;
|
|
22222
|
+
result->is_summary = is_summary;
|
|
22223
|
+
return result;
|
|
22185
22224
|
}
|
|
22186
22225
|
};
|
|
22187
22226
|
|
|
@@ -22230,7 +22269,7 @@ public:
|
|
|
22230
22269
|
//===----------------------------------------------------------------------===//
|
|
22231
22270
|
// DuckDB
|
|
22232
22271
|
//
|
|
22233
|
-
// duckdb/parser/parsed_data/
|
|
22272
|
+
// duckdb/parser/parsed_data/create_type_info.hpp
|
|
22234
22273
|
//
|
|
22235
22274
|
//
|
|
22236
22275
|
//===----------------------------------------------------------------------===//
|
|
@@ -22239,23 +22278,36 @@ public:
|
|
|
22239
22278
|
|
|
22240
22279
|
|
|
22241
22280
|
|
|
22281
|
+
|
|
22282
|
+
|
|
22283
|
+
|
|
22242
22284
|
namespace duckdb {
|
|
22243
22285
|
|
|
22244
|
-
|
|
22286
|
+
struct CreateTypeInfo : public CreateInfo {
|
|
22245
22287
|
|
|
22246
|
-
|
|
22247
|
-
explicit TransactionInfo(TransactionType type) : type(type) {
|
|
22288
|
+
CreateTypeInfo() : CreateInfo(CatalogType::TYPE_ENTRY) {
|
|
22248
22289
|
}
|
|
22249
22290
|
|
|
22250
|
-
//!
|
|
22251
|
-
|
|
22291
|
+
//! Name of the Type
|
|
22292
|
+
string name;
|
|
22293
|
+
//! Logical Type
|
|
22294
|
+
LogicalType type;
|
|
22295
|
+
|
|
22296
|
+
public:
|
|
22297
|
+
unique_ptr<CreateInfo> Copy() const override {
|
|
22298
|
+
auto result = make_unique<CreateTypeInfo>();
|
|
22299
|
+
CopyProperties(*result);
|
|
22300
|
+
result->name = name;
|
|
22301
|
+
result->type = type;
|
|
22302
|
+
return move(result);
|
|
22303
|
+
}
|
|
22252
22304
|
};
|
|
22253
22305
|
|
|
22254
22306
|
} // namespace duckdb
|
|
22255
22307
|
//===----------------------------------------------------------------------===//
|
|
22256
22308
|
// DuckDB
|
|
22257
22309
|
//
|
|
22258
|
-
// duckdb/parser/parsed_data/
|
|
22310
|
+
// duckdb/parser/parsed_data/vacuum_info.hpp
|
|
22259
22311
|
//
|
|
22260
22312
|
//
|
|
22261
22313
|
//===----------------------------------------------------------------------===//
|
|
@@ -22264,34 +22316,17 @@ struct TransactionInfo : public ParseInfo {
|
|
|
22264
22316
|
|
|
22265
22317
|
|
|
22266
22318
|
|
|
22267
|
-
|
|
22268
22319
|
namespace duckdb {
|
|
22269
22320
|
|
|
22270
|
-
struct
|
|
22271
|
-
|
|
22272
|
-
vector<LogicalType> types;
|
|
22273
|
-
//! The QueryNode of select query
|
|
22274
|
-
unique_ptr<QueryNode> query;
|
|
22275
|
-
//! Aliases of projected columns
|
|
22276
|
-
vector<string> aliases;
|
|
22277
|
-
//! Whether or not we are requesting a summary or a describe
|
|
22278
|
-
bool is_summary;
|
|
22279
|
-
|
|
22280
|
-
unique_ptr<ShowSelectInfo> Copy() {
|
|
22281
|
-
auto result = make_unique<ShowSelectInfo>();
|
|
22282
|
-
result->types = types;
|
|
22283
|
-
result->query = query->Copy();
|
|
22284
|
-
result->aliases = aliases;
|
|
22285
|
-
result->is_summary = is_summary;
|
|
22286
|
-
return result;
|
|
22287
|
-
}
|
|
22321
|
+
struct VacuumInfo : public ParseInfo {
|
|
22322
|
+
// nothing for now
|
|
22288
22323
|
};
|
|
22289
22324
|
|
|
22290
22325
|
} // namespace duckdb
|
|
22291
22326
|
//===----------------------------------------------------------------------===//
|
|
22292
22327
|
// DuckDB
|
|
22293
22328
|
//
|
|
22294
|
-
// duckdb/parser/parsed_data/
|
|
22329
|
+
// duckdb/parser/parsed_data/drop_info.hpp
|
|
22295
22330
|
//
|
|
22296
22331
|
//
|
|
22297
22332
|
//===----------------------------------------------------------------------===//
|
|
@@ -22300,17 +22335,42 @@ struct ShowSelectInfo : public ParseInfo {
|
|
|
22300
22335
|
|
|
22301
22336
|
|
|
22302
22337
|
|
|
22338
|
+
|
|
22303
22339
|
namespace duckdb {
|
|
22304
22340
|
|
|
22305
|
-
struct
|
|
22306
|
-
|
|
22341
|
+
struct DropInfo : public ParseInfo {
|
|
22342
|
+
DropInfo() : schema(INVALID_SCHEMA), if_exists(false), cascade(false) {
|
|
22343
|
+
}
|
|
22344
|
+
|
|
22345
|
+
//! The catalog type to drop
|
|
22346
|
+
CatalogType type;
|
|
22347
|
+
//! Schema name to drop from, if any
|
|
22348
|
+
string schema;
|
|
22349
|
+
//! Element name to drop
|
|
22350
|
+
string name;
|
|
22351
|
+
//! Ignore if the entry does not exist instead of failing
|
|
22352
|
+
bool if_exists = false;
|
|
22353
|
+
//! Cascade drop (drop all dependents instead of throwing an error if there
|
|
22354
|
+
//! are any)
|
|
22355
|
+
bool cascade = false;
|
|
22356
|
+
|
|
22357
|
+
public:
|
|
22358
|
+
unique_ptr<DropInfo> Copy() const {
|
|
22359
|
+
auto result = make_unique<DropInfo>();
|
|
22360
|
+
result->type = type;
|
|
22361
|
+
result->schema = schema;
|
|
22362
|
+
result->name = name;
|
|
22363
|
+
result->if_exists = if_exists;
|
|
22364
|
+
result->cascade = cascade;
|
|
22365
|
+
return result;
|
|
22366
|
+
}
|
|
22307
22367
|
};
|
|
22308
22368
|
|
|
22309
22369
|
} // namespace duckdb
|
|
22310
22370
|
//===----------------------------------------------------------------------===//
|
|
22311
22371
|
// DuckDB
|
|
22312
22372
|
//
|
|
22313
|
-
// duckdb/parser/parsed_data/
|
|
22373
|
+
// duckdb/parser/parsed_data/transaction_info.hpp
|
|
22314
22374
|
//
|
|
22315
22375
|
//
|
|
22316
22376
|
//===----------------------------------------------------------------------===//
|
|
@@ -22321,19 +22381,14 @@ struct VacuumInfo : public ParseInfo {
|
|
|
22321
22381
|
|
|
22322
22382
|
namespace duckdb {
|
|
22323
22383
|
|
|
22324
|
-
enum class
|
|
22325
|
-
|
|
22326
|
-
struct
|
|
22327
|
-
|
|
22328
|
-
LoadType load_type;
|
|
22329
|
-
|
|
22330
|
-
public:
|
|
22331
|
-
unique_ptr<LoadInfo> Copy() const {
|
|
22332
|
-
auto result = make_unique<LoadInfo>();
|
|
22333
|
-
result->filename = filename;
|
|
22334
|
-
result->load_type = load_type;
|
|
22335
|
-
return result;
|
|
22384
|
+
enum class TransactionType : uint8_t { INVALID, BEGIN_TRANSACTION, COMMIT, ROLLBACK };
|
|
22385
|
+
|
|
22386
|
+
struct TransactionInfo : public ParseInfo {
|
|
22387
|
+
explicit TransactionInfo(TransactionType type) : type(type) {
|
|
22336
22388
|
}
|
|
22389
|
+
|
|
22390
|
+
//! The type of transaction statement
|
|
22391
|
+
TransactionType type;
|
|
22337
22392
|
};
|
|
22338
22393
|
|
|
22339
22394
|
} // namespace duckdb
|
|
@@ -22407,6 +22462,33 @@ public:
|
|
|
22407
22462
|
}
|
|
22408
22463
|
};
|
|
22409
22464
|
|
|
22465
|
+
} // namespace duckdb
|
|
22466
|
+
//===----------------------------------------------------------------------===//
|
|
22467
|
+
// DuckDB
|
|
22468
|
+
//
|
|
22469
|
+
// duckdb/parser/parsed_data/create_schema_info.hpp
|
|
22470
|
+
//
|
|
22471
|
+
//
|
|
22472
|
+
//===----------------------------------------------------------------------===//
|
|
22473
|
+
|
|
22474
|
+
|
|
22475
|
+
|
|
22476
|
+
|
|
22477
|
+
|
|
22478
|
+
namespace duckdb {
|
|
22479
|
+
|
|
22480
|
+
struct CreateSchemaInfo : public CreateInfo {
|
|
22481
|
+
CreateSchemaInfo() : CreateInfo(CatalogType::SCHEMA_ENTRY) {
|
|
22482
|
+
}
|
|
22483
|
+
|
|
22484
|
+
public:
|
|
22485
|
+
unique_ptr<CreateInfo> Copy() const override {
|
|
22486
|
+
auto result = make_unique<CreateSchemaInfo>();
|
|
22487
|
+
CopyProperties(*result);
|
|
22488
|
+
return move(result);
|
|
22489
|
+
}
|
|
22490
|
+
};
|
|
22491
|
+
|
|
22410
22492
|
} // namespace duckdb
|
|
22411
22493
|
//===----------------------------------------------------------------------===//
|
|
22412
22494
|
// DuckDB
|
|
@@ -22499,7 +22581,7 @@ public:
|
|
|
22499
22581
|
//===----------------------------------------------------------------------===//
|
|
22500
22582
|
// DuckDB
|
|
22501
22583
|
//
|
|
22502
|
-
// duckdb/parser/parsed_data/
|
|
22584
|
+
// duckdb/parser/parsed_data/create_pragma_function_info.hpp
|
|
22503
22585
|
//
|
|
22504
22586
|
//
|
|
22505
22587
|
//===----------------------------------------------------------------------===//
|
|
@@ -22511,34 +22593,61 @@ public:
|
|
|
22511
22593
|
|
|
22512
22594
|
namespace duckdb {
|
|
22513
22595
|
|
|
22514
|
-
struct
|
|
22515
|
-
|
|
22596
|
+
struct CreatePragmaFunctionInfo : public CreateFunctionInfo {
|
|
22597
|
+
explicit CreatePragmaFunctionInfo(PragmaFunction function)
|
|
22598
|
+
: CreateFunctionInfo(CatalogType::PRAGMA_FUNCTION_ENTRY) {
|
|
22599
|
+
functions.push_back(move(function));
|
|
22600
|
+
this->name = function.name;
|
|
22601
|
+
}
|
|
22602
|
+
CreatePragmaFunctionInfo(string name, vector<PragmaFunction> functions_)
|
|
22603
|
+
: CreateFunctionInfo(CatalogType::PRAGMA_FUNCTION_ENTRY), functions(move(functions_)) {
|
|
22604
|
+
this->name = name;
|
|
22605
|
+
for (auto &function : functions) {
|
|
22606
|
+
function.name = name;
|
|
22607
|
+
}
|
|
22516
22608
|
}
|
|
22517
22609
|
|
|
22518
|
-
|
|
22519
|
-
CatalogType type;
|
|
22520
|
-
//! Schema name to drop from, if any
|
|
22521
|
-
string schema;
|
|
22522
|
-
//! Element name to drop
|
|
22523
|
-
string name;
|
|
22524
|
-
//! Ignore if the entry does not exist instead of failing
|
|
22525
|
-
bool if_exists = false;
|
|
22526
|
-
//! Cascade drop (drop all dependents instead of throwing an error if there
|
|
22527
|
-
//! are any)
|
|
22528
|
-
bool cascade = false;
|
|
22610
|
+
vector<PragmaFunction> functions;
|
|
22529
22611
|
|
|
22530
22612
|
public:
|
|
22531
|
-
unique_ptr<
|
|
22532
|
-
auto result = make_unique<
|
|
22533
|
-
result
|
|
22534
|
-
result
|
|
22535
|
-
result->name = name;
|
|
22536
|
-
result->if_exists = if_exists;
|
|
22537
|
-
result->cascade = cascade;
|
|
22538
|
-
return result;
|
|
22613
|
+
unique_ptr<CreateInfo> Copy() const override {
|
|
22614
|
+
auto result = make_unique<CreatePragmaFunctionInfo>(functions[0].name, functions);
|
|
22615
|
+
CopyProperties(*result);
|
|
22616
|
+
return move(result);
|
|
22539
22617
|
}
|
|
22540
22618
|
};
|
|
22541
22619
|
|
|
22620
|
+
} // namespace duckdb
|
|
22621
|
+
//===----------------------------------------------------------------------===//
|
|
22622
|
+
// DuckDB
|
|
22623
|
+
//
|
|
22624
|
+
// duckdb/parser/parsed_data/export_table_data.hpp
|
|
22625
|
+
//
|
|
22626
|
+
//
|
|
22627
|
+
//===----------------------------------------------------------------------===//
|
|
22628
|
+
|
|
22629
|
+
|
|
22630
|
+
|
|
22631
|
+
|
|
22632
|
+
|
|
22633
|
+
|
|
22634
|
+
namespace duckdb {
|
|
22635
|
+
|
|
22636
|
+
struct ExportedTableData {
|
|
22637
|
+
//! Name of the exported table
|
|
22638
|
+
string table_name;
|
|
22639
|
+
|
|
22640
|
+
//! Name of the schema
|
|
22641
|
+
string schema_name;
|
|
22642
|
+
|
|
22643
|
+
//! Path to be exported
|
|
22644
|
+
string file_path;
|
|
22645
|
+
};
|
|
22646
|
+
|
|
22647
|
+
struct BoundExportData : public ParseInfo {
|
|
22648
|
+
unordered_map<TableCatalogEntry *, ExportedTableData> data;
|
|
22649
|
+
};
|
|
22650
|
+
|
|
22542
22651
|
} // namespace duckdb
|
|
22543
22652
|
//===----------------------------------------------------------------------===//
|
|
22544
22653
|
// DuckDB
|
|
@@ -22586,7 +22695,7 @@ public:
|
|
|
22586
22695
|
//===----------------------------------------------------------------------===//
|
|
22587
22696
|
// DuckDB
|
|
22588
22697
|
//
|
|
22589
|
-
// duckdb/parser/
|
|
22698
|
+
// duckdb/parser/tableref/table_function_ref.hpp
|
|
22590
22699
|
//
|
|
22591
22700
|
//
|
|
22592
22701
|
//===----------------------------------------------------------------------===//
|
|
@@ -22595,102 +22704,34 @@ public:
|
|
|
22595
22704
|
|
|
22596
22705
|
|
|
22597
22706
|
|
|
22598
|
-
namespace duckdb {
|
|
22599
|
-
|
|
22600
|
-
struct CreateSchemaInfo : public CreateInfo {
|
|
22601
|
-
CreateSchemaInfo() : CreateInfo(CatalogType::SCHEMA_ENTRY) {
|
|
22602
|
-
}
|
|
22603
|
-
|
|
22604
|
-
public:
|
|
22605
|
-
unique_ptr<CreateInfo> Copy() const override {
|
|
22606
|
-
auto result = make_unique<CreateSchemaInfo>();
|
|
22607
|
-
CopyProperties(*result);
|
|
22608
|
-
return move(result);
|
|
22609
|
-
}
|
|
22610
|
-
};
|
|
22611
|
-
|
|
22612
|
-
} // namespace duckdb
|
|
22613
|
-
//===----------------------------------------------------------------------===//
|
|
22614
|
-
// DuckDB
|
|
22615
|
-
//
|
|
22616
|
-
// duckdb/parser/parsed_data/create_collation_info.hpp
|
|
22617
|
-
//
|
|
22618
|
-
//
|
|
22619
|
-
//===----------------------------------------------------------------------===//
|
|
22620
|
-
|
|
22621
|
-
|
|
22622
|
-
|
|
22623
22707
|
|
|
22624
22708
|
|
|
22625
22709
|
|
|
22626
22710
|
namespace duckdb {
|
|
22627
|
-
|
|
22628
|
-
|
|
22629
|
-
CreateCollationInfo(string name_p, ScalarFunction function_p, bool combinable_p, bool not_required_for_equality_p)
|
|
22630
|
-
: CreateInfo(CatalogType::COLLATION_ENTRY), function(move(function_p)), combinable(combinable_p),
|
|
22631
|
-
not_required_for_equality(not_required_for_equality_p) {
|
|
22632
|
-
this->name = move(name_p);
|
|
22633
|
-
}
|
|
22634
|
-
|
|
22635
|
-
//! The name of the collation
|
|
22636
|
-
string name;
|
|
22637
|
-
//! The collation function to push in case collation is required
|
|
22638
|
-
ScalarFunction function;
|
|
22639
|
-
//! Whether or not the collation can be combined with other collations.
|
|
22640
|
-
bool combinable;
|
|
22641
|
-
//! Whether or not the collation is required for equality comparisons or not. For many collations a binary
|
|
22642
|
-
//! comparison for equality comparisons is correct, allowing us to skip the collation in these cases which greatly
|
|
22643
|
-
//! speeds up processing.
|
|
22644
|
-
bool not_required_for_equality;
|
|
22645
|
-
|
|
22711
|
+
//! Represents a Table producing function
|
|
22712
|
+
class TableFunctionRef : public TableRef {
|
|
22646
22713
|
public:
|
|
22647
|
-
|
|
22648
|
-
auto result = make_unique<CreateCollationInfo>(name, function, combinable, not_required_for_equality);
|
|
22649
|
-
CopyProperties(*result);
|
|
22650
|
-
return move(result);
|
|
22714
|
+
TableFunctionRef() : TableRef(TableReferenceType::TABLE_FUNCTION) {
|
|
22651
22715
|
}
|
|
22652
|
-
};
|
|
22653
|
-
|
|
22654
|
-
} // namespace duckdb
|
|
22655
|
-
//===----------------------------------------------------------------------===//
|
|
22656
|
-
// DuckDB
|
|
22657
|
-
//
|
|
22658
|
-
// duckdb/parser/parsed_data/create_pragma_function_info.hpp
|
|
22659
|
-
//
|
|
22660
|
-
//
|
|
22661
|
-
//===----------------------------------------------------------------------===//
|
|
22662
|
-
|
|
22663
|
-
|
|
22664
|
-
|
|
22665
22716
|
|
|
22717
|
+
unique_ptr<ParsedExpression> function;
|
|
22718
|
+
vector<string> column_name_alias;
|
|
22666
22719
|
|
|
22720
|
+
// if the function takes a subquery as argument its in here
|
|
22721
|
+
unique_ptr<SelectStatement> subquery;
|
|
22667
22722
|
|
|
22668
|
-
|
|
22723
|
+
public:
|
|
22724
|
+
string ToString() const override;
|
|
22669
22725
|
|
|
22670
|
-
|
|
22671
|
-
explicit CreatePragmaFunctionInfo(PragmaFunction function)
|
|
22672
|
-
: CreateFunctionInfo(CatalogType::PRAGMA_FUNCTION_ENTRY) {
|
|
22673
|
-
functions.push_back(move(function));
|
|
22674
|
-
this->name = function.name;
|
|
22675
|
-
}
|
|
22676
|
-
CreatePragmaFunctionInfo(string name, vector<PragmaFunction> functions_)
|
|
22677
|
-
: CreateFunctionInfo(CatalogType::PRAGMA_FUNCTION_ENTRY), functions(move(functions_)) {
|
|
22678
|
-
this->name = name;
|
|
22679
|
-
for (auto &function : functions) {
|
|
22680
|
-
function.name = name;
|
|
22681
|
-
}
|
|
22682
|
-
}
|
|
22726
|
+
bool Equals(const TableRef *other_p) const override;
|
|
22683
22727
|
|
|
22684
|
-
|
|
22728
|
+
unique_ptr<TableRef> Copy() override;
|
|
22685
22729
|
|
|
22686
|
-
|
|
22687
|
-
|
|
22688
|
-
|
|
22689
|
-
|
|
22690
|
-
return move(result);
|
|
22691
|
-
}
|
|
22730
|
+
//! Serializes a blob into a BaseTableRef
|
|
22731
|
+
void Serialize(FieldWriter &serializer) const override;
|
|
22732
|
+
//! Deserializes a blob back into a BaseTableRef
|
|
22733
|
+
static unique_ptr<TableRef> Deserialize(FieldReader &source);
|
|
22692
22734
|
};
|
|
22693
|
-
|
|
22694
22735
|
} // namespace duckdb
|
|
22695
22736
|
//===----------------------------------------------------------------------===//
|
|
22696
22737
|
// DuckDB
|
|
@@ -22727,8 +22768,6 @@ public:
|
|
|
22727
22768
|
static unique_ptr<TableRef> Deserialize(FieldReader &source);
|
|
22728
22769
|
};
|
|
22729
22770
|
} // namespace duckdb
|
|
22730
|
-
|
|
22731
|
-
|
|
22732
22771
|
//===----------------------------------------------------------------------===//
|
|
22733
22772
|
// DuckDB
|
|
22734
22773
|
//
|
|
@@ -22760,6 +22799,8 @@ public:
|
|
|
22760
22799
|
};
|
|
22761
22800
|
} // namespace duckdb
|
|
22762
22801
|
|
|
22802
|
+
|
|
22803
|
+
|
|
22763
22804
|
//===----------------------------------------------------------------------===//
|
|
22764
22805
|
// DuckDB
|
|
22765
22806
|
//
|
|
@@ -22885,45 +22926,4 @@ public:
|
|
|
22885
22926
|
};
|
|
22886
22927
|
} // namespace duckdb
|
|
22887
22928
|
|
|
22888
|
-
//===----------------------------------------------------------------------===//
|
|
22889
|
-
// DuckDB
|
|
22890
|
-
//
|
|
22891
|
-
// duckdb/parser/tableref/table_function_ref.hpp
|
|
22892
|
-
//
|
|
22893
|
-
//
|
|
22894
|
-
//===----------------------------------------------------------------------===//
|
|
22895
|
-
|
|
22896
|
-
|
|
22897
|
-
|
|
22898
|
-
|
|
22899
|
-
|
|
22900
|
-
|
|
22901
|
-
|
|
22902
|
-
|
|
22903
|
-
namespace duckdb {
|
|
22904
|
-
//! Represents a Table producing function
|
|
22905
|
-
class TableFunctionRef : public TableRef {
|
|
22906
|
-
public:
|
|
22907
|
-
TableFunctionRef() : TableRef(TableReferenceType::TABLE_FUNCTION) {
|
|
22908
|
-
}
|
|
22909
|
-
|
|
22910
|
-
unique_ptr<ParsedExpression> function;
|
|
22911
|
-
vector<string> column_name_alias;
|
|
22912
|
-
|
|
22913
|
-
// if the function takes a subquery as argument its in here
|
|
22914
|
-
unique_ptr<SelectStatement> subquery;
|
|
22915
|
-
|
|
22916
|
-
public:
|
|
22917
|
-
string ToString() const override;
|
|
22918
|
-
|
|
22919
|
-
bool Equals(const TableRef *other_p) const override;
|
|
22920
|
-
|
|
22921
|
-
unique_ptr<TableRef> Copy() override;
|
|
22922
|
-
|
|
22923
|
-
//! Serializes a blob into a BaseTableRef
|
|
22924
|
-
void Serialize(FieldWriter &serializer) const override;
|
|
22925
|
-
//! Deserializes a blob back into a BaseTableRef
|
|
22926
|
-
static unique_ptr<TableRef> Deserialize(FieldReader &source);
|
|
22927
|
-
};
|
|
22928
|
-
} // namespace duckdb
|
|
22929
22929
|
|