duckdb 0.3.3-dev1251.0 → 0.3.3-dev1275.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 +496 -295
- package/src/duckdb.hpp +42 -16
- package/src/parquet-amalgamation.cpp +36564 -36576
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 "2ff182df8"
|
|
15
|
+
#define DUCKDB_VERSION "v0.3.3-dev1275"
|
|
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
|
|
2845
|
-
DUCKDB_API static bool
|
|
2846
|
-
|
|
2847
|
-
static bool
|
|
2848
|
-
|
|
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
|
|
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::
|
|
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::
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
6972
|
+
return (left_null && right_null) || (!left_null && !right_null && Equals::Operation(left, right));
|
|
6947
6973
|
}
|
|
6948
6974
|
};
|
|
6949
6975
|
|