duckdb 0.3.3-dev1232.0 → 0.3.3-dev1273.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 "041fb2cc7"
15
- #define DUCKDB_VERSION "v0.3.3-dev1232"
14
+ #define DUCKDB_SOURCE_ID "819936c72"
15
+ #define DUCKDB_VERSION "v0.3.3-dev1273"
16
16
  //===----------------------------------------------------------------------===//
17
17
  // DuckDB
18
18
  //
@@ -2841,17 +2841,20 @@ public:
2841
2841
  DUCKDB_API bool operator<=(const int64_t &rhs) const;
2842
2842
  DUCKDB_API bool operator>=(const int64_t &rhs) const;
2843
2843
 
2844
- DUCKDB_API static bool FloatIsValid(float value);
2845
- DUCKDB_API static bool DoubleIsValid(double value);
2846
- DUCKDB_API static bool StringIsValid(const char *str, idx_t length);
2847
- static bool StringIsValid(const string &str) {
2848
- return StringIsValid(str.c_str(), str.size());
2844
+ DUCKDB_API static bool FloatIsFinite(float value);
2845
+ DUCKDB_API static bool DoubleIsFinite(double value);
2846
+ template <class T>
2847
+ static bool IsNan(T value) {
2848
+ throw InternalException("Unimplemented template type for Value::IsNan");
2849
2849
  }
2850
-
2851
2850
  template <class T>
2852
- static bool IsValid(T value) {
2851
+ static bool IsFinite(T value) {
2853
2852
  return true;
2854
2853
  }
2854
+ DUCKDB_API static bool StringIsValid(const char *str, idx_t length);
2855
+ static bool StringIsValid(const string &str) {
2856
+ return StringIsValid(str.c_str(), str.size());
2857
+ }
2855
2858
 
2856
2859
  //! Returns true if the values are (approximately) equivalent. Note this is NOT the SQL equivalence. For this
2857
2860
  //! function, NULL values are equivalent and floating point values that are close are equivalent.
@@ -3138,9 +3141,14 @@ template <>
3138
3141
  DUCKDB_API interval_t &Value::GetReferenceUnsafe();
3139
3142
 
3140
3143
  template <>
3141
- DUCKDB_API bool Value::IsValid(float value);
3144
+ DUCKDB_API bool Value::IsNan(float input);
3145
+ template <>
3146
+ DUCKDB_API bool Value::IsNan(double input);
3147
+
3148
+ template <>
3149
+ DUCKDB_API bool Value::IsFinite(float input);
3142
3150
  template <>
3143
- DUCKDB_API bool Value::IsValid(double value);
3151
+ DUCKDB_API bool Value::IsFinite(double input);
3144
3152
 
3145
3153
  } // namespace duckdb
3146
3154
 
@@ -6901,15 +6909,17 @@ struct Equals {
6901
6909
  struct NotEquals {
6902
6910
  template <class T>
6903
6911
  static inline bool Operation(T left, T right) {
6904
- return left != right;
6912
+ return !Equals::Operation(left, right);
6905
6913
  }
6906
6914
  };
6915
+
6907
6916
  struct GreaterThan {
6908
6917
  template <class T>
6909
6918
  static inline bool Operation(T left, T right) {
6910
6919
  return left > right;
6911
6920
  }
6912
6921
  };
6922
+
6913
6923
  struct GreaterThanEquals {
6914
6924
  template <class T>
6915
6925
  static inline bool Operation(T left, T right) {
@@ -6920,30 +6930,46 @@ struct GreaterThanEquals {
6920
6930
  struct LessThan {
6921
6931
  template <class T>
6922
6932
  static inline bool Operation(T left, T right) {
6923
- return left < right;
6933
+ return GreaterThan::Operation(right, left);
6924
6934
  }
6925
6935
  };
6936
+
6926
6937
  struct LessThanEquals {
6927
6938
  template <class T>
6928
6939
  static inline bool Operation(T left, T right) {
6929
- return left <= right;
6940
+ return GreaterThanEquals::Operation(right, left);
6930
6941
  }
6931
6942
  };
6932
6943
 
6944
+ template <>
6945
+ bool Equals::Operation(float left, float right);
6946
+ template <>
6947
+ bool Equals::Operation(double left, double right);
6948
+
6949
+ template <>
6950
+ bool GreaterThan::Operation(float left, float right);
6951
+ template <>
6952
+ bool GreaterThan::Operation(double left, double right);
6953
+
6954
+ template <>
6955
+ bool GreaterThanEquals::Operation(float left, float right);
6956
+ template <>
6957
+ bool GreaterThanEquals::Operation(double left, double right);
6958
+
6933
6959
  // Distinct semantics are from Postgres record sorting. NULL = NULL and not-NULL < NULL
6934
6960
  // Deferring to the non-distinct operations removes the need for further specialisation.
6935
6961
  // TODO: To reverse the semantics, swap left_null and right_null for comparisons
6936
6962
  struct DistinctFrom {
6937
6963
  template <class T>
6938
6964
  static inline bool Operation(T left, T right, bool left_null, bool right_null) {
6939
- return (left_null != right_null) || (!left_null && !right_null && (left != right));
6965
+ return (left_null != right_null) || (!left_null && !right_null && NotEquals::Operation(left, right));
6940
6966
  }
6941
6967
  };
6942
6968
 
6943
6969
  struct NotDistinctFrom {
6944
6970
  template <class T>
6945
6971
  static inline bool Operation(T left, T right, bool left_null, bool right_null) {
6946
- return (left_null && right_null) || (!left_null && !right_null && (left == right));
6972
+ return (left_null && right_null) || (!left_null && !right_null && Equals::Operation(left, right));
6947
6973
  }
6948
6974
  };
6949
6975
 
@@ -13542,6 +13568,9 @@ private:
13542
13568
  BoundStatement Bind(ExportStatement &stmt);
13543
13569
  BoundStatement Bind(SetStatement &stmt);
13544
13570
  BoundStatement Bind(LoadStatement &stmt);
13571
+ BoundStatement BindReturning(vector<unique_ptr<ParsedExpression>> returning_list, TableCatalogEntry *table,
13572
+ idx_t update_table_index, unique_ptr<LogicalOperator> child_operator,
13573
+ BoundStatement result);
13545
13574
 
13546
13575
  unique_ptr<QueryNode> BindTableMacro(FunctionExpression &function, TableMacroCatalogEntry *macro_func, idx_t depth);
13547
13576