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/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 "4f0ed531f"
15
- #define DUCKDB_VERSION "v0.3.3-dev835"
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/cast_expression.hpp
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
- //! CastExpression represents a type cast from one SQL type to another SQL type
21612
- class CastExpression : public ParsedExpression {
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
- string ToString() const override;
21668
-
21669
- static bool Equals(const CollateExpression *a, const CollateExpression *b);
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
- DUCKDB_API ComparisonExpression(ExpressionType type, unique_ptr<ParsedExpression> left,
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 ComparisonExpression *a, const ComparisonExpression *b);
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
- return entry.left->ToString() + " " + ExpressionTypeToOperator(entry.type) + " " + entry.right->ToString();
21716
- }
21717
- };
21718
- } // namespace duckdb
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/positional_reference_expression.hpp
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
- class PositionalReferenceExpression : public ParsedExpression {
22044
+
22045
+ //! Represents a * expression in the SELECT clause
22046
+ class StarExpression : public ParsedExpression {
22058
22047
  public:
22059
- DUCKDB_API PositionalReferenceExpression(idx_t index);
22048
+ StarExpression(string relation_name = string());
22060
22049
 
22061
- idx_t index;
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 PositionalReferenceExpression *a, const PositionalReferenceExpression *b);
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/star_expression.hpp
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 * expression in the SELECT clause
22095
- class StarExpression : public ParsedExpression {
22085
+ //! Represents a subquery
22086
+ class SubqueryExpression : public ParsedExpression {
22096
22087
  public:
22097
- StarExpression(string relation_name = string());
22088
+ SubqueryExpression();
22098
22089
 
22099
- //! The relation name in case of tbl.*, or empty if this is a normal *
22100
- string relation_name;
22101
- //! List of columns to exclude from the STAR expression
22102
- case_insensitive_set_t exclude_list;
22103
- //! List of columns to replace with another expression
22104
- case_insensitive_map_t<unique_ptr<ParsedExpression>> replace_list;
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 StarExpression *a, const StarExpression *b);
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/export_table_data.hpp
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 ExportedTableData {
22136
- //! Name of the exported table
22137
- string table_name;
22138
-
22139
- //! Name of the schema
22140
- string schema_name;
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
- //! Path to be exported
22143
- string file_path;
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
- struct BoundExportData : public ParseInfo {
22147
- unordered_map<TableCatalogEntry *, ExportedTableData> data;
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/create_type_info.hpp
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
- namespace duckdb {
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
- struct CreateTypeInfo : public CreateInfo {
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
- public:
22179
- unique_ptr<CreateInfo> Copy() const override {
22180
- auto result = make_unique<CreateTypeInfo>();
22181
- CopyProperties(*result);
22182
- result->name = name;
22183
- result->type = type;
22184
- return move(result);
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/transaction_info.hpp
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
- enum class TransactionType : uint8_t { INVALID, BEGIN_TRANSACTION, COMMIT, ROLLBACK };
22286
+ struct CreateTypeInfo : public CreateInfo {
22245
22287
 
22246
- struct TransactionInfo : public ParseInfo {
22247
- explicit TransactionInfo(TransactionType type) : type(type) {
22288
+ CreateTypeInfo() : CreateInfo(CatalogType::TYPE_ENTRY) {
22248
22289
  }
22249
22290
 
22250
- //! The type of transaction statement
22251
- TransactionType type;
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/show_select_info.hpp
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 ShowSelectInfo : public ParseInfo {
22271
- //! Types of projected columns
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/vacuum_info.hpp
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 VacuumInfo : public ParseInfo {
22306
- // nothing for now
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/vacuum_info.hpp
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 LoadType { LOAD, INSTALL, FORCE_INSTALL };
22325
-
22326
- struct LoadInfo : public ParseInfo {
22327
- std::string filename;
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/drop_info.hpp
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 DropInfo : public ParseInfo {
22515
- DropInfo() : schema(INVALID_SCHEMA), if_exists(false), cascade(false) {
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
- //! The catalog type to drop
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<DropInfo> Copy() const {
22532
- auto result = make_unique<DropInfo>();
22533
- result->type = type;
22534
- result->schema = schema;
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/parsed_data/create_schema_info.hpp
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
- struct CreateCollationInfo : public CreateInfo {
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
- unique_ptr<CreateInfo> Copy() const override {
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
- namespace duckdb {
22723
+ public:
22724
+ string ToString() const override;
22669
22725
 
22670
- struct CreatePragmaFunctionInfo : public CreateFunctionInfo {
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
- vector<PragmaFunction> functions;
22728
+ unique_ptr<TableRef> Copy() override;
22685
22729
 
22686
- public:
22687
- unique_ptr<CreateInfo> Copy() const override {
22688
- auto result = make_unique<CreatePragmaFunctionInfo>(functions[0].name, functions);
22689
- CopyProperties(*result);
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