duckdb 0.4.1-dev2267.0 → 0.4.1-dev2299.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 +17 -7
- package/src/duckdb.hpp +175 -174
- package/src/parquet-amalgamation.cpp +36428 -36409
- package/test/extension.test.js +4 -0
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.4.1-
|
|
14
|
+
#define DUCKDB_SOURCE_ID "3075f4d29"
|
|
15
|
+
#define DUCKDB_VERSION "v0.4.1-dev2299"
|
|
16
16
|
//===----------------------------------------------------------------------===//
|
|
17
17
|
// DuckDB
|
|
18
18
|
//
|
|
@@ -165,7 +165,8 @@ typedef idx_t column_t;
|
|
|
165
165
|
//! Type used for storage (column) identifiers
|
|
166
166
|
typedef idx_t storage_t;
|
|
167
167
|
//! Special value used to signify the ROW ID of a table
|
|
168
|
-
extern const column_t COLUMN_IDENTIFIER_ROW_ID;
|
|
168
|
+
DUCKDB_API extern const column_t COLUMN_IDENTIFIER_ROW_ID;
|
|
169
|
+
DUCKDB_API bool IsRowIdColumnId(column_t column_id);
|
|
169
170
|
|
|
170
171
|
//! The maximum row identifier used in tables
|
|
171
172
|
extern const row_t MAX_ROW_ID;
|
|
@@ -753,50 +754,50 @@ public:
|
|
|
753
754
|
int64_t upper;
|
|
754
755
|
|
|
755
756
|
public:
|
|
756
|
-
hugeint_t() = default;
|
|
757
|
-
hugeint_t(int64_t value); // NOLINT: Allow implicit conversion from `int64_t`
|
|
758
|
-
hugeint_t(const hugeint_t &rhs) = default;
|
|
759
|
-
hugeint_t(hugeint_t &&rhs) = default;
|
|
760
|
-
hugeint_t &operator=(const hugeint_t &rhs) = default;
|
|
761
|
-
hugeint_t &operator=(hugeint_t &&rhs) = default;
|
|
757
|
+
DUCKDB_API hugeint_t() = default;
|
|
758
|
+
DUCKDB_API hugeint_t(int64_t value); // NOLINT: Allow implicit conversion from `int64_t`
|
|
759
|
+
DUCKDB_API hugeint_t(const hugeint_t &rhs) = default;
|
|
760
|
+
DUCKDB_API hugeint_t(hugeint_t &&rhs) = default;
|
|
761
|
+
DUCKDB_API hugeint_t &operator=(const hugeint_t &rhs) = default;
|
|
762
|
+
DUCKDB_API hugeint_t &operator=(hugeint_t &&rhs) = default;
|
|
762
763
|
|
|
763
764
|
DUCKDB_API string ToString() const;
|
|
764
765
|
|
|
765
766
|
// comparison operators
|
|
766
|
-
bool operator==(const hugeint_t &rhs) const;
|
|
767
|
-
bool operator!=(const hugeint_t &rhs) const;
|
|
768
|
-
bool operator<=(const hugeint_t &rhs) const;
|
|
769
|
-
bool operator<(const hugeint_t &rhs) const;
|
|
770
|
-
bool operator>(const hugeint_t &rhs) const;
|
|
771
|
-
bool operator>=(const hugeint_t &rhs) const;
|
|
767
|
+
DUCKDB_API bool operator==(const hugeint_t &rhs) const;
|
|
768
|
+
DUCKDB_API bool operator!=(const hugeint_t &rhs) const;
|
|
769
|
+
DUCKDB_API bool operator<=(const hugeint_t &rhs) const;
|
|
770
|
+
DUCKDB_API bool operator<(const hugeint_t &rhs) const;
|
|
771
|
+
DUCKDB_API bool operator>(const hugeint_t &rhs) const;
|
|
772
|
+
DUCKDB_API bool operator>=(const hugeint_t &rhs) const;
|
|
772
773
|
|
|
773
774
|
// arithmetic operators
|
|
774
|
-
hugeint_t operator+(const hugeint_t &rhs) const;
|
|
775
|
-
hugeint_t operator-(const hugeint_t &rhs) const;
|
|
776
|
-
hugeint_t operator*(const hugeint_t &rhs) const;
|
|
777
|
-
hugeint_t operator/(const hugeint_t &rhs) const;
|
|
778
|
-
hugeint_t operator%(const hugeint_t &rhs) const;
|
|
779
|
-
hugeint_t operator-() const;
|
|
775
|
+
DUCKDB_API hugeint_t operator+(const hugeint_t &rhs) const;
|
|
776
|
+
DUCKDB_API hugeint_t operator-(const hugeint_t &rhs) const;
|
|
777
|
+
DUCKDB_API hugeint_t operator*(const hugeint_t &rhs) const;
|
|
778
|
+
DUCKDB_API hugeint_t operator/(const hugeint_t &rhs) const;
|
|
779
|
+
DUCKDB_API hugeint_t operator%(const hugeint_t &rhs) const;
|
|
780
|
+
DUCKDB_API hugeint_t operator-() const;
|
|
780
781
|
|
|
781
782
|
// bitwise operators
|
|
782
|
-
hugeint_t operator>>(const hugeint_t &rhs) const;
|
|
783
|
-
hugeint_t operator<<(const hugeint_t &rhs) const;
|
|
784
|
-
hugeint_t operator&(const hugeint_t &rhs) const;
|
|
785
|
-
hugeint_t operator|(const hugeint_t &rhs) const;
|
|
786
|
-
hugeint_t operator^(const hugeint_t &rhs) const;
|
|
787
|
-
hugeint_t operator~() const;
|
|
783
|
+
DUCKDB_API hugeint_t operator>>(const hugeint_t &rhs) const;
|
|
784
|
+
DUCKDB_API hugeint_t operator<<(const hugeint_t &rhs) const;
|
|
785
|
+
DUCKDB_API hugeint_t operator&(const hugeint_t &rhs) const;
|
|
786
|
+
DUCKDB_API hugeint_t operator|(const hugeint_t &rhs) const;
|
|
787
|
+
DUCKDB_API hugeint_t operator^(const hugeint_t &rhs) const;
|
|
788
|
+
DUCKDB_API hugeint_t operator~() const;
|
|
788
789
|
|
|
789
790
|
// in-place operators
|
|
790
|
-
hugeint_t &operator+=(const hugeint_t &rhs);
|
|
791
|
-
hugeint_t &operator-=(const hugeint_t &rhs);
|
|
792
|
-
hugeint_t &operator*=(const hugeint_t &rhs);
|
|
793
|
-
hugeint_t &operator/=(const hugeint_t &rhs);
|
|
794
|
-
hugeint_t &operator%=(const hugeint_t &rhs);
|
|
795
|
-
hugeint_t &operator>>=(const hugeint_t &rhs);
|
|
796
|
-
hugeint_t &operator<<=(const hugeint_t &rhs);
|
|
797
|
-
hugeint_t &operator&=(const hugeint_t &rhs);
|
|
798
|
-
hugeint_t &operator|=(const hugeint_t &rhs);
|
|
799
|
-
hugeint_t &operator^=(const hugeint_t &rhs);
|
|
791
|
+
DUCKDB_API hugeint_t &operator+=(const hugeint_t &rhs);
|
|
792
|
+
DUCKDB_API hugeint_t &operator-=(const hugeint_t &rhs);
|
|
793
|
+
DUCKDB_API hugeint_t &operator*=(const hugeint_t &rhs);
|
|
794
|
+
DUCKDB_API hugeint_t &operator/=(const hugeint_t &rhs);
|
|
795
|
+
DUCKDB_API hugeint_t &operator%=(const hugeint_t &rhs);
|
|
796
|
+
DUCKDB_API hugeint_t &operator>>=(const hugeint_t &rhs);
|
|
797
|
+
DUCKDB_API hugeint_t &operator<<=(const hugeint_t &rhs);
|
|
798
|
+
DUCKDB_API hugeint_t &operator&=(const hugeint_t &rhs);
|
|
799
|
+
DUCKDB_API hugeint_t &operator|=(const hugeint_t &rhs);
|
|
800
|
+
DUCKDB_API hugeint_t &operator^=(const hugeint_t &rhs);
|
|
800
801
|
};
|
|
801
802
|
|
|
802
803
|
struct string_t;
|
|
@@ -1793,7 +1794,7 @@ public:
|
|
|
1793
1794
|
};
|
|
1794
1795
|
|
|
1795
1796
|
template <>
|
|
1796
|
-
string Deserializer::Read();
|
|
1797
|
+
DUCKDB_API string Deserializer::Read();
|
|
1797
1798
|
|
|
1798
1799
|
} // namespace duckdb
|
|
1799
1800
|
|
|
@@ -2130,8 +2131,8 @@ public:
|
|
|
2130
2131
|
|
|
2131
2132
|
//! Serializes to a buffer allocated by the serializer, will expand when
|
|
2132
2133
|
//! writing past the initial threshold
|
|
2133
|
-
BufferedFileWriter(FileSystem &fs, const string &path, uint8_t open_flags = DEFAULT_OPEN_FLAGS,
|
|
2134
|
-
|
|
2134
|
+
DUCKDB_API BufferedFileWriter(FileSystem &fs, const string &path, uint8_t open_flags = DEFAULT_OPEN_FLAGS,
|
|
2135
|
+
FileOpener *opener = nullptr);
|
|
2135
2136
|
|
|
2136
2137
|
FileSystem &fs;
|
|
2137
2138
|
string path;
|
|
@@ -2141,17 +2142,17 @@ public:
|
|
|
2141
2142
|
unique_ptr<FileHandle> handle;
|
|
2142
2143
|
|
|
2143
2144
|
public:
|
|
2144
|
-
void WriteData(const_data_ptr_t buffer, uint64_t write_size) override;
|
|
2145
|
+
DUCKDB_API void WriteData(const_data_ptr_t buffer, uint64_t write_size) override;
|
|
2145
2146
|
//! Flush the buffer to disk and sync the file to ensure writing is completed
|
|
2146
|
-
void Sync();
|
|
2147
|
+
DUCKDB_API void Sync();
|
|
2147
2148
|
//! Flush the buffer to the file (without sync)
|
|
2148
|
-
void Flush();
|
|
2149
|
+
DUCKDB_API void Flush();
|
|
2149
2150
|
//! Returns the current size of the file
|
|
2150
|
-
int64_t GetFileSize();
|
|
2151
|
+
DUCKDB_API int64_t GetFileSize();
|
|
2151
2152
|
//! Truncate the size to a previous size (given that size <= GetFileSize())
|
|
2152
|
-
void Truncate(int64_t size);
|
|
2153
|
+
DUCKDB_API void Truncate(int64_t size);
|
|
2153
2154
|
|
|
2154
|
-
idx_t GetTotalWritten();
|
|
2155
|
+
DUCKDB_API idx_t GetTotalWritten();
|
|
2155
2156
|
};
|
|
2156
2157
|
|
|
2157
2158
|
} // namespace duckdb
|
|
@@ -2285,7 +2286,7 @@ namespace duckdb {
|
|
|
2285
2286
|
class VectorBuffer;
|
|
2286
2287
|
|
|
2287
2288
|
struct SelectionData {
|
|
2288
|
-
explicit SelectionData(idx_t count);
|
|
2289
|
+
DUCKDB_API explicit SelectionData(idx_t count);
|
|
2289
2290
|
|
|
2290
2291
|
unique_ptr<sel_t[]> owned_data;
|
|
2291
2292
|
};
|
|
@@ -3403,9 +3404,9 @@ public:
|
|
|
3403
3404
|
Allocator &operator=(Allocator &&allocator) noexcept = delete;
|
|
3404
3405
|
DUCKDB_API ~Allocator();
|
|
3405
3406
|
|
|
3406
|
-
data_ptr_t AllocateData(idx_t size);
|
|
3407
|
-
void FreeData(data_ptr_t pointer, idx_t size);
|
|
3408
|
-
data_ptr_t ReallocateData(data_ptr_t pointer, idx_t old_size, idx_t new_size);
|
|
3407
|
+
DUCKDB_API data_ptr_t AllocateData(idx_t size);
|
|
3408
|
+
DUCKDB_API void FreeData(data_ptr_t pointer, idx_t size);
|
|
3409
|
+
DUCKDB_API data_ptr_t ReallocateData(data_ptr_t pointer, idx_t old_size, idx_t new_size);
|
|
3409
3410
|
|
|
3410
3411
|
AllocatedData Allocate(idx_t size) {
|
|
3411
3412
|
return AllocatedData(*this, AllocateData(size), size);
|
|
@@ -3444,7 +3445,7 @@ private:
|
|
|
3444
3445
|
//! Note that there is a cost to doing so (several atomic operations will be performed on allocation/free).
|
|
3445
3446
|
//! As such this class should be used primarily for larger allocations.
|
|
3446
3447
|
struct BufferAllocator {
|
|
3447
|
-
static Allocator &Get(ClientContext &context);
|
|
3448
|
+
DUCKDB_API static Allocator &Get(ClientContext &context);
|
|
3448
3449
|
};
|
|
3449
3450
|
|
|
3450
3451
|
} // namespace duckdb
|
|
@@ -4839,7 +4840,7 @@ struct VectorOperations {
|
|
|
4839
4840
|
DUCKDB_API static bool TryCast(Vector &source, Vector &result, idx_t count, string *error_message,
|
|
4840
4841
|
bool strict = false);
|
|
4841
4842
|
//! Cast the data from the source type to the target type. Throws an exception if the cast fails.
|
|
4842
|
-
static void Cast(Vector &source, Vector &result, idx_t count, bool strict = false);
|
|
4843
|
+
DUCKDB_API static void Cast(Vector &source, Vector &result, idx_t count, bool strict = false);
|
|
4843
4844
|
|
|
4844
4845
|
// Copy the data of <source> to the target vector
|
|
4845
4846
|
static void Copy(const Vector &source, Vector &target, idx_t source_count, idx_t source_offset,
|
|
@@ -7113,130 +7114,130 @@ namespace duckdb {
|
|
|
7113
7114
|
|
|
7114
7115
|
template <class T>
|
|
7115
7116
|
struct NumericLimits {
|
|
7116
|
-
static T Minimum();
|
|
7117
|
-
static T Maximum();
|
|
7118
|
-
static bool IsSigned();
|
|
7119
|
-
static idx_t Digits();
|
|
7117
|
+
DUCKDB_API static T Minimum();
|
|
7118
|
+
DUCKDB_API static T Maximum();
|
|
7119
|
+
DUCKDB_API static bool IsSigned();
|
|
7120
|
+
DUCKDB_API static idx_t Digits();
|
|
7120
7121
|
};
|
|
7121
7122
|
|
|
7122
7123
|
template <>
|
|
7123
7124
|
struct NumericLimits<int8_t> {
|
|
7124
|
-
static int8_t Minimum();
|
|
7125
|
-
static int8_t Maximum();
|
|
7126
|
-
static bool IsSigned() {
|
|
7125
|
+
DUCKDB_API static int8_t Minimum();
|
|
7126
|
+
DUCKDB_API static int8_t Maximum();
|
|
7127
|
+
DUCKDB_API static bool IsSigned() {
|
|
7127
7128
|
return true;
|
|
7128
7129
|
}
|
|
7129
|
-
static idx_t Digits() {
|
|
7130
|
+
DUCKDB_API static idx_t Digits() {
|
|
7130
7131
|
return 3;
|
|
7131
7132
|
}
|
|
7132
7133
|
};
|
|
7133
7134
|
template <>
|
|
7134
7135
|
struct NumericLimits<int16_t> {
|
|
7135
|
-
static int16_t Minimum();
|
|
7136
|
-
static int16_t Maximum();
|
|
7137
|
-
static bool IsSigned() {
|
|
7136
|
+
DUCKDB_API static int16_t Minimum();
|
|
7137
|
+
DUCKDB_API static int16_t Maximum();
|
|
7138
|
+
DUCKDB_API static bool IsSigned() {
|
|
7138
7139
|
return true;
|
|
7139
7140
|
}
|
|
7140
|
-
static idx_t Digits() {
|
|
7141
|
+
DUCKDB_API static idx_t Digits() {
|
|
7141
7142
|
return 5;
|
|
7142
7143
|
}
|
|
7143
7144
|
};
|
|
7144
7145
|
template <>
|
|
7145
7146
|
struct NumericLimits<int32_t> {
|
|
7146
|
-
static int32_t Minimum();
|
|
7147
|
-
static int32_t Maximum();
|
|
7148
|
-
static bool IsSigned() {
|
|
7147
|
+
DUCKDB_API static int32_t Minimum();
|
|
7148
|
+
DUCKDB_API static int32_t Maximum();
|
|
7149
|
+
DUCKDB_API static bool IsSigned() {
|
|
7149
7150
|
return true;
|
|
7150
7151
|
}
|
|
7151
|
-
static idx_t Digits() {
|
|
7152
|
+
DUCKDB_API static idx_t Digits() {
|
|
7152
7153
|
return 10;
|
|
7153
7154
|
}
|
|
7154
7155
|
};
|
|
7155
7156
|
template <>
|
|
7156
7157
|
struct NumericLimits<int64_t> {
|
|
7157
|
-
static int64_t Minimum();
|
|
7158
|
-
static int64_t Maximum();
|
|
7159
|
-
static bool IsSigned() {
|
|
7158
|
+
DUCKDB_API static int64_t Minimum();
|
|
7159
|
+
DUCKDB_API static int64_t Maximum();
|
|
7160
|
+
DUCKDB_API static bool IsSigned() {
|
|
7160
7161
|
return true;
|
|
7161
7162
|
}
|
|
7162
|
-
static idx_t Digits() {
|
|
7163
|
+
DUCKDB_API static idx_t Digits() {
|
|
7163
7164
|
return 19;
|
|
7164
7165
|
}
|
|
7165
7166
|
};
|
|
7166
7167
|
template <>
|
|
7167
7168
|
struct NumericLimits<hugeint_t> {
|
|
7168
|
-
static hugeint_t Minimum();
|
|
7169
|
-
static hugeint_t Maximum();
|
|
7170
|
-
static bool IsSigned() {
|
|
7169
|
+
DUCKDB_API static hugeint_t Minimum();
|
|
7170
|
+
DUCKDB_API static hugeint_t Maximum();
|
|
7171
|
+
DUCKDB_API static bool IsSigned() {
|
|
7171
7172
|
return true;
|
|
7172
7173
|
}
|
|
7173
|
-
static idx_t Digits() {
|
|
7174
|
+
DUCKDB_API static idx_t Digits() {
|
|
7174
7175
|
return 39;
|
|
7175
7176
|
}
|
|
7176
7177
|
};
|
|
7177
7178
|
template <>
|
|
7178
7179
|
struct NumericLimits<uint8_t> {
|
|
7179
|
-
static uint8_t Minimum();
|
|
7180
|
-
static uint8_t Maximum();
|
|
7181
|
-
static bool IsSigned() {
|
|
7180
|
+
DUCKDB_API static uint8_t Minimum();
|
|
7181
|
+
DUCKDB_API static uint8_t Maximum();
|
|
7182
|
+
DUCKDB_API static bool IsSigned() {
|
|
7182
7183
|
return false;
|
|
7183
7184
|
}
|
|
7184
|
-
static idx_t Digits() {
|
|
7185
|
+
DUCKDB_API static idx_t Digits() {
|
|
7185
7186
|
return 3;
|
|
7186
7187
|
}
|
|
7187
7188
|
};
|
|
7188
7189
|
template <>
|
|
7189
7190
|
struct NumericLimits<uint16_t> {
|
|
7190
|
-
static uint16_t Minimum();
|
|
7191
|
-
static uint16_t Maximum();
|
|
7192
|
-
static bool IsSigned() {
|
|
7191
|
+
DUCKDB_API static uint16_t Minimum();
|
|
7192
|
+
DUCKDB_API static uint16_t Maximum();
|
|
7193
|
+
DUCKDB_API static bool IsSigned() {
|
|
7193
7194
|
return false;
|
|
7194
7195
|
}
|
|
7195
|
-
static idx_t Digits() {
|
|
7196
|
+
DUCKDB_API static idx_t Digits() {
|
|
7196
7197
|
return 5;
|
|
7197
7198
|
}
|
|
7198
7199
|
};
|
|
7199
7200
|
template <>
|
|
7200
7201
|
struct NumericLimits<uint32_t> {
|
|
7201
|
-
static uint32_t Minimum();
|
|
7202
|
-
static uint32_t Maximum();
|
|
7203
|
-
static bool IsSigned() {
|
|
7202
|
+
DUCKDB_API static uint32_t Minimum();
|
|
7203
|
+
DUCKDB_API static uint32_t Maximum();
|
|
7204
|
+
DUCKDB_API static bool IsSigned() {
|
|
7204
7205
|
return false;
|
|
7205
7206
|
}
|
|
7206
|
-
static idx_t Digits() {
|
|
7207
|
+
DUCKDB_API static idx_t Digits() {
|
|
7207
7208
|
return 10;
|
|
7208
7209
|
}
|
|
7209
7210
|
};
|
|
7210
7211
|
template <>
|
|
7211
7212
|
struct NumericLimits<uint64_t> {
|
|
7212
|
-
static uint64_t Minimum();
|
|
7213
|
-
static uint64_t Maximum();
|
|
7214
|
-
static bool IsSigned() {
|
|
7213
|
+
DUCKDB_API static uint64_t Minimum();
|
|
7214
|
+
DUCKDB_API static uint64_t Maximum();
|
|
7215
|
+
DUCKDB_API static bool IsSigned() {
|
|
7215
7216
|
return false;
|
|
7216
7217
|
}
|
|
7217
|
-
static idx_t Digits() {
|
|
7218
|
+
DUCKDB_API static idx_t Digits() {
|
|
7218
7219
|
return 20;
|
|
7219
7220
|
}
|
|
7220
7221
|
};
|
|
7221
7222
|
template <>
|
|
7222
7223
|
struct NumericLimits<float> {
|
|
7223
|
-
static float Minimum();
|
|
7224
|
-
static float Maximum();
|
|
7225
|
-
static bool IsSigned() {
|
|
7224
|
+
DUCKDB_API static float Minimum();
|
|
7225
|
+
DUCKDB_API static float Maximum();
|
|
7226
|
+
DUCKDB_API static bool IsSigned() {
|
|
7226
7227
|
return true;
|
|
7227
7228
|
}
|
|
7228
|
-
static idx_t Digits() {
|
|
7229
|
+
DUCKDB_API static idx_t Digits() {
|
|
7229
7230
|
return 127;
|
|
7230
7231
|
}
|
|
7231
7232
|
};
|
|
7232
7233
|
template <>
|
|
7233
7234
|
struct NumericLimits<double> {
|
|
7234
|
-
static double Minimum();
|
|
7235
|
-
static double Maximum();
|
|
7236
|
-
static bool IsSigned() {
|
|
7235
|
+
DUCKDB_API static double Minimum();
|
|
7236
|
+
DUCKDB_API static double Maximum();
|
|
7237
|
+
DUCKDB_API static bool IsSigned() {
|
|
7237
7238
|
return true;
|
|
7238
7239
|
}
|
|
7239
|
-
static idx_t Digits() {
|
|
7240
|
+
DUCKDB_API static idx_t Digits() {
|
|
7240
7241
|
return 250;
|
|
7241
7242
|
}
|
|
7242
7243
|
};
|
|
@@ -7254,7 +7255,7 @@ public:
|
|
|
7254
7255
|
static string ToString(hugeint_t input);
|
|
7255
7256
|
|
|
7256
7257
|
template <class T>
|
|
7257
|
-
static bool TryCast(hugeint_t input, T &result);
|
|
7258
|
+
DUCKDB_API static bool TryCast(hugeint_t input, T &result);
|
|
7258
7259
|
|
|
7259
7260
|
template <class T>
|
|
7260
7261
|
static T Cast(hugeint_t input) {
|
|
@@ -7344,29 +7345,29 @@ public:
|
|
|
7344
7345
|
};
|
|
7345
7346
|
|
|
7346
7347
|
template <>
|
|
7347
|
-
bool Hugeint::TryCast(hugeint_t input, int8_t &result);
|
|
7348
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, int8_t &result);
|
|
7348
7349
|
template <>
|
|
7349
|
-
bool Hugeint::TryCast(hugeint_t input, int16_t &result);
|
|
7350
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, int16_t &result);
|
|
7350
7351
|
template <>
|
|
7351
|
-
bool Hugeint::TryCast(hugeint_t input, int32_t &result);
|
|
7352
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, int32_t &result);
|
|
7352
7353
|
template <>
|
|
7353
|
-
bool Hugeint::TryCast(hugeint_t input, int64_t &result);
|
|
7354
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, int64_t &result);
|
|
7354
7355
|
template <>
|
|
7355
|
-
bool Hugeint::TryCast(hugeint_t input, uint8_t &result);
|
|
7356
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, uint8_t &result);
|
|
7356
7357
|
template <>
|
|
7357
|
-
bool Hugeint::TryCast(hugeint_t input, uint16_t &result);
|
|
7358
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, uint16_t &result);
|
|
7358
7359
|
template <>
|
|
7359
|
-
bool Hugeint::TryCast(hugeint_t input, uint32_t &result);
|
|
7360
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, uint32_t &result);
|
|
7360
7361
|
template <>
|
|
7361
|
-
bool Hugeint::TryCast(hugeint_t input, uint64_t &result);
|
|
7362
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, uint64_t &result);
|
|
7362
7363
|
template <>
|
|
7363
|
-
bool Hugeint::TryCast(hugeint_t input, hugeint_t &result);
|
|
7364
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, hugeint_t &result);
|
|
7364
7365
|
template <>
|
|
7365
|
-
bool Hugeint::TryCast(hugeint_t input, float &result);
|
|
7366
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, float &result);
|
|
7366
7367
|
template <>
|
|
7367
|
-
bool Hugeint::TryCast(hugeint_t input, double &result);
|
|
7368
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, double &result);
|
|
7368
7369
|
template <>
|
|
7369
|
-
bool Hugeint::TryCast(hugeint_t input, long double &result);
|
|
7370
|
+
DUCKDB_API bool Hugeint::TryCast(hugeint_t input, long double &result);
|
|
7370
7371
|
|
|
7371
7372
|
template <>
|
|
7372
7373
|
bool Hugeint::TryConvert(int8_t value, hugeint_t &result);
|
|
@@ -7499,59 +7500,59 @@ namespace duckdb {
|
|
|
7499
7500
|
//===--------------------------------------------------------------------===//
|
|
7500
7501
|
struct Equals {
|
|
7501
7502
|
template <class T>
|
|
7502
|
-
static inline bool Operation(T left, T right) {
|
|
7503
|
+
DUCKDB_API static inline bool Operation(T left, T right) {
|
|
7503
7504
|
return left == right;
|
|
7504
7505
|
}
|
|
7505
7506
|
};
|
|
7506
7507
|
struct NotEquals {
|
|
7507
7508
|
template <class T>
|
|
7508
|
-
static inline bool Operation(T left, T right) {
|
|
7509
|
+
DUCKDB_API static inline bool Operation(T left, T right) {
|
|
7509
7510
|
return !Equals::Operation(left, right);
|
|
7510
7511
|
}
|
|
7511
7512
|
};
|
|
7512
7513
|
|
|
7513
7514
|
struct GreaterThan {
|
|
7514
7515
|
template <class T>
|
|
7515
|
-
static inline bool Operation(T left, T right) {
|
|
7516
|
+
DUCKDB_API static inline bool Operation(T left, T right) {
|
|
7516
7517
|
return left > right;
|
|
7517
7518
|
}
|
|
7518
7519
|
};
|
|
7519
7520
|
|
|
7520
7521
|
struct GreaterThanEquals {
|
|
7521
7522
|
template <class T>
|
|
7522
|
-
static inline bool Operation(T left, T right) {
|
|
7523
|
+
DUCKDB_API static inline bool Operation(T left, T right) {
|
|
7523
7524
|
return left >= right;
|
|
7524
7525
|
}
|
|
7525
7526
|
};
|
|
7526
7527
|
|
|
7527
7528
|
struct LessThan {
|
|
7528
7529
|
template <class T>
|
|
7529
|
-
static inline bool Operation(T left, T right) {
|
|
7530
|
+
DUCKDB_API static inline bool Operation(T left, T right) {
|
|
7530
7531
|
return GreaterThan::Operation(right, left);
|
|
7531
7532
|
}
|
|
7532
7533
|
};
|
|
7533
7534
|
|
|
7534
7535
|
struct LessThanEquals {
|
|
7535
7536
|
template <class T>
|
|
7536
|
-
static inline bool Operation(T left, T right) {
|
|
7537
|
+
DUCKDB_API static inline bool Operation(T left, T right) {
|
|
7537
7538
|
return GreaterThanEquals::Operation(right, left);
|
|
7538
7539
|
}
|
|
7539
7540
|
};
|
|
7540
7541
|
|
|
7541
7542
|
template <>
|
|
7542
|
-
bool Equals::Operation(float left, float right);
|
|
7543
|
+
DUCKDB_API bool Equals::Operation(float left, float right);
|
|
7543
7544
|
template <>
|
|
7544
|
-
bool Equals::Operation(double left, double right);
|
|
7545
|
+
DUCKDB_API bool Equals::Operation(double left, double right);
|
|
7545
7546
|
|
|
7546
7547
|
template <>
|
|
7547
|
-
bool GreaterThan::Operation(float left, float right);
|
|
7548
|
+
DUCKDB_API bool GreaterThan::Operation(float left, float right);
|
|
7548
7549
|
template <>
|
|
7549
|
-
bool GreaterThan::Operation(double left, double right);
|
|
7550
|
+
DUCKDB_API bool GreaterThan::Operation(double left, double right);
|
|
7550
7551
|
|
|
7551
7552
|
template <>
|
|
7552
|
-
bool GreaterThanEquals::Operation(float left, float right);
|
|
7553
|
+
DUCKDB_API bool GreaterThanEquals::Operation(float left, float right);
|
|
7553
7554
|
template <>
|
|
7554
|
-
bool GreaterThanEquals::Operation(double left, double right);
|
|
7555
|
+
DUCKDB_API bool GreaterThanEquals::Operation(double left, double right);
|
|
7555
7556
|
|
|
7556
7557
|
// Distinct semantics are from Postgres record sorting. NULL = NULL and not-NULL < NULL
|
|
7557
7558
|
// Deferring to the non-distinct operations removes the need for further specialisation.
|
|
@@ -11269,19 +11270,19 @@ class ColumnDataRowCollection;
|
|
|
11269
11270
|
class ColumnDataCollection {
|
|
11270
11271
|
public:
|
|
11271
11272
|
//! Constructs an in-memory column data collection from an allocator
|
|
11272
|
-
ColumnDataCollection(Allocator &allocator, vector<LogicalType> types);
|
|
11273
|
+
DUCKDB_API ColumnDataCollection(Allocator &allocator, vector<LogicalType> types);
|
|
11273
11274
|
//! Constructs a buffer-managed column data collection
|
|
11274
|
-
ColumnDataCollection(BufferManager &buffer_manager, vector<LogicalType> types);
|
|
11275
|
+
DUCKDB_API ColumnDataCollection(BufferManager &buffer_manager, vector<LogicalType> types);
|
|
11275
11276
|
//! Constructs either an in-memory or a buffer-managed column data collection
|
|
11276
|
-
ColumnDataCollection(ClientContext &context, vector<LogicalType> types,
|
|
11277
|
-
|
|
11277
|
+
DUCKDB_API ColumnDataCollection(ClientContext &context, vector<LogicalType> types,
|
|
11278
|
+
ColumnDataAllocatorType type = ColumnDataAllocatorType::BUFFER_MANAGER_ALLOCATOR);
|
|
11278
11279
|
//! Creates a column data collection that inherits the blocks to write to. This allows blocks to be shared
|
|
11279
11280
|
//! between multiple column data collections and prevents wasting space.
|
|
11280
11281
|
//! Note that after one CDC inherits blocks from another, the other
|
|
11281
11282
|
//! cannot be written to anymore (i.e. we take ownership of the half-written blocks).
|
|
11282
|
-
ColumnDataCollection(ColumnDataCollection &parent);
|
|
11283
|
-
ColumnDataCollection(shared_ptr<ColumnDataAllocator> allocator, vector<LogicalType> types);
|
|
11284
|
-
~ColumnDataCollection();
|
|
11283
|
+
DUCKDB_API ColumnDataCollection(ColumnDataCollection &parent);
|
|
11284
|
+
DUCKDB_API ColumnDataCollection(shared_ptr<ColumnDataAllocator> allocator, vector<LogicalType> types);
|
|
11285
|
+
DUCKDB_API ~ColumnDataCollection();
|
|
11285
11286
|
|
|
11286
11287
|
public:
|
|
11287
11288
|
DUCKDB_API vector<LogicalType> &Types() {
|
|
@@ -13323,7 +13324,7 @@ class BufferedSerializer : public Serializer {
|
|
|
13323
13324
|
public:
|
|
13324
13325
|
//! Serializes to a buffer allocated by the serializer, will expand when
|
|
13325
13326
|
//! writing past the initial threshold
|
|
13326
|
-
explicit BufferedSerializer(idx_t maximum_size = SERIALIZER_DEFAULT_SIZE);
|
|
13327
|
+
DUCKDB_API explicit BufferedSerializer(idx_t maximum_size = SERIALIZER_DEFAULT_SIZE);
|
|
13327
13328
|
//! Serializes to a provided (owned) data pointer
|
|
13328
13329
|
BufferedSerializer(unique_ptr<data_t[]> data, idx_t size);
|
|
13329
13330
|
BufferedSerializer(data_ptr_t data, idx_t size);
|
|
@@ -13464,7 +13465,7 @@ private:
|
|
|
13464
13465
|
};
|
|
13465
13466
|
|
|
13466
13467
|
template <>
|
|
13467
|
-
void FieldWriter::Write(const string &val);
|
|
13468
|
+
DUCKDB_API void FieldWriter::Write(const string &val);
|
|
13468
13469
|
|
|
13469
13470
|
class FieldDeserializer : public Deserializer {
|
|
13470
13471
|
public:
|
|
@@ -15635,25 +15636,25 @@ inline hash_t CombineHash(hash_t left, hash_t right) {
|
|
|
15635
15636
|
}
|
|
15636
15637
|
|
|
15637
15638
|
template <>
|
|
15638
|
-
hash_t Hash(uint64_t val);
|
|
15639
|
+
DUCKDB_API hash_t Hash(uint64_t val);
|
|
15639
15640
|
template <>
|
|
15640
|
-
hash_t Hash(int64_t val);
|
|
15641
|
+
DUCKDB_API hash_t Hash(int64_t val);
|
|
15641
15642
|
template <>
|
|
15642
|
-
hash_t Hash(hugeint_t val);
|
|
15643
|
+
DUCKDB_API hash_t Hash(hugeint_t val);
|
|
15643
15644
|
template <>
|
|
15644
|
-
hash_t Hash(float val);
|
|
15645
|
+
DUCKDB_API hash_t Hash(float val);
|
|
15645
15646
|
template <>
|
|
15646
|
-
hash_t Hash(double val);
|
|
15647
|
+
DUCKDB_API hash_t Hash(double val);
|
|
15647
15648
|
template <>
|
|
15648
|
-
hash_t Hash(const char *val);
|
|
15649
|
+
DUCKDB_API hash_t Hash(const char *val);
|
|
15649
15650
|
template <>
|
|
15650
|
-
hash_t Hash(char *val);
|
|
15651
|
+
DUCKDB_API hash_t Hash(char *val);
|
|
15651
15652
|
template <>
|
|
15652
|
-
hash_t Hash(string_t val);
|
|
15653
|
+
DUCKDB_API hash_t Hash(string_t val);
|
|
15653
15654
|
template <>
|
|
15654
|
-
hash_t Hash(interval_t val);
|
|
15655
|
-
hash_t Hash(const char *val, size_t size);
|
|
15656
|
-
hash_t Hash(uint8_t *val, size_t size);
|
|
15655
|
+
DUCKDB_API hash_t Hash(interval_t val);
|
|
15656
|
+
DUCKDB_API hash_t Hash(const char *val, size_t size);
|
|
15657
|
+
DUCKDB_API hash_t Hash(uint8_t *val, size_t size);
|
|
15657
15658
|
|
|
15658
15659
|
} // namespace duckdb
|
|
15659
15660
|
|
|
@@ -21587,32 +21588,32 @@ public:
|
|
|
21587
21588
|
|
|
21588
21589
|
public:
|
|
21589
21590
|
//! Returns the string size of a blob -> string conversion
|
|
21590
|
-
static idx_t GetStringSize(string_t blob);
|
|
21591
|
+
DUCKDB_API static idx_t GetStringSize(string_t blob);
|
|
21591
21592
|
//! Converts a blob to a string, writing the output to the designated output string.
|
|
21592
21593
|
//! The string needs to have space for at least GetStringSize(blob) bytes.
|
|
21593
|
-
static void ToString(string_t blob, char *output);
|
|
21594
|
+
DUCKDB_API static void ToString(string_t blob, char *output);
|
|
21594
21595
|
//! Convert a blob object to a string
|
|
21595
|
-
static string ToString(string_t blob);
|
|
21596
|
+
DUCKDB_API static string ToString(string_t blob);
|
|
21596
21597
|
|
|
21597
21598
|
//! Returns the blob size of a string -> blob conversion
|
|
21598
|
-
static bool TryGetBlobSize(string_t str, idx_t &result_size, string *error_message);
|
|
21599
|
-
static idx_t GetBlobSize(string_t str);
|
|
21599
|
+
DUCKDB_API static bool TryGetBlobSize(string_t str, idx_t &result_size, string *error_message);
|
|
21600
|
+
DUCKDB_API static idx_t GetBlobSize(string_t str);
|
|
21600
21601
|
//! Convert a string to a blob. This function should ONLY be called after calling GetBlobSize, since it does NOT
|
|
21601
21602
|
//! perform data validation.
|
|
21602
|
-
static void ToBlob(string_t str, data_ptr_t output);
|
|
21603
|
+
DUCKDB_API static void ToBlob(string_t str, data_ptr_t output);
|
|
21603
21604
|
//! Convert a string object to a blob
|
|
21604
|
-
static string ToBlob(string_t str);
|
|
21605
|
+
DUCKDB_API static string ToBlob(string_t str);
|
|
21605
21606
|
|
|
21606
21607
|
// base 64 conversion functions
|
|
21607
21608
|
//! Returns the string size of a blob -> base64 conversion
|
|
21608
|
-
static idx_t ToBase64Size(string_t blob);
|
|
21609
|
+
DUCKDB_API static idx_t ToBase64Size(string_t blob);
|
|
21609
21610
|
//! Converts a blob to a base64 string, output should have space for at least ToBase64Size(blob) bytes
|
|
21610
|
-
static void ToBase64(string_t blob, char *output);
|
|
21611
|
+
DUCKDB_API static void ToBase64(string_t blob, char *output);
|
|
21611
21612
|
|
|
21612
21613
|
//! Returns the string size of a base64 string -> blob conversion
|
|
21613
|
-
static idx_t FromBase64Size(string_t str);
|
|
21614
|
+
DUCKDB_API static idx_t FromBase64Size(string_t str);
|
|
21614
21615
|
//! Converts a base64 string to a blob, output should have space for at least FromBase64Size(blob) bytes
|
|
21615
|
-
static void FromBase64(string_t str, data_ptr_t output, idx_t output_size);
|
|
21616
|
+
DUCKDB_API static void FromBase64(string_t str, data_ptr_t output, idx_t output_size);
|
|
21616
21617
|
};
|
|
21617
21618
|
} // namespace duckdb
|
|
21618
21619
|
//===----------------------------------------------------------------------===//
|
|
@@ -24452,8 +24453,8 @@ public:
|
|
|
24452
24453
|
cache[key] = move(value);
|
|
24453
24454
|
}
|
|
24454
24455
|
|
|
24455
|
-
static ObjectCache &GetObjectCache(ClientContext &context);
|
|
24456
|
-
static bool ObjectCacheEnabled(ClientContext &context);
|
|
24456
|
+
DUCKDB_API static ObjectCache &GetObjectCache(ClientContext &context);
|
|
24457
|
+
DUCKDB_API static bool ObjectCacheEnabled(ClientContext &context);
|
|
24457
24458
|
|
|
24458
24459
|
private:
|
|
24459
24460
|
//! Object Cache
|
|
@@ -24493,7 +24494,7 @@ class Vector;
|
|
|
24493
24494
|
|
|
24494
24495
|
class ValidityStatistics : public BaseStatistics {
|
|
24495
24496
|
public:
|
|
24496
|
-
explicit ValidityStatistics(bool has_null = false, bool has_no_null = true);
|
|
24497
|
+
DUCKDB_API explicit ValidityStatistics(bool has_null = false, bool has_no_null = true);
|
|
24497
24498
|
|
|
24498
24499
|
//! Whether or not the segment can contain NULL values
|
|
24499
24500
|
bool has_null;
|
|
@@ -24501,9 +24502,9 @@ public:
|
|
|
24501
24502
|
bool has_no_null;
|
|
24502
24503
|
|
|
24503
24504
|
public:
|
|
24504
|
-
void Merge(const BaseStatistics &other) override;
|
|
24505
|
+
DUCKDB_API void Merge(const BaseStatistics &other) override;
|
|
24505
24506
|
|
|
24506
|
-
bool IsConstant() const override;
|
|
24507
|
+
DUCKDB_API bool IsConstant() const override;
|
|
24507
24508
|
|
|
24508
24509
|
unique_ptr<BaseStatistics> Copy() const override;
|
|
24509
24510
|
|
|
@@ -24528,7 +24529,7 @@ public:
|
|
|
24528
24529
|
constexpr static uint32_t MAX_STRING_MINMAX_SIZE = 8;
|
|
24529
24530
|
|
|
24530
24531
|
public:
|
|
24531
|
-
explicit StringStatistics(LogicalType type, StatisticsType stats_type);
|
|
24532
|
+
DUCKDB_API explicit StringStatistics(LogicalType type, StatisticsType stats_type);
|
|
24532
24533
|
|
|
24533
24534
|
//! The minimum value of the segment, potentially truncated
|
|
24534
24535
|
data_t min[MAX_STRING_MINMAX_SIZE];
|
|
@@ -24542,8 +24543,8 @@ public:
|
|
|
24542
24543
|
bool has_overflow_strings;
|
|
24543
24544
|
|
|
24544
24545
|
public:
|
|
24545
|
-
void Update(const string_t &value);
|
|
24546
|
-
void Merge(const BaseStatistics &other) override;
|
|
24546
|
+
DUCKDB_API void Update(const string_t &value);
|
|
24547
|
+
DUCKDB_API void Merge(const BaseStatistics &other) override;
|
|
24547
24548
|
|
|
24548
24549
|
unique_ptr<BaseStatistics> Copy() const override;
|
|
24549
24550
|
void Serialize(FieldWriter &writer) const override;
|
|
@@ -24622,8 +24623,8 @@ namespace duckdb {
|
|
|
24622
24623
|
|
|
24623
24624
|
class NumericStatistics : public BaseStatistics {
|
|
24624
24625
|
public:
|
|
24625
|
-
explicit NumericStatistics(LogicalType type, StatisticsType stats_type);
|
|
24626
|
-
NumericStatistics(LogicalType type, Value min, Value max, StatisticsType stats_type);
|
|
24626
|
+
DUCKDB_API explicit NumericStatistics(LogicalType type, StatisticsType stats_type);
|
|
24627
|
+
DUCKDB_API NumericStatistics(LogicalType type, Value min, Value max, StatisticsType stats_type);
|
|
24627
24628
|
|
|
24628
24629
|
//! The minimum value of the segment
|
|
24629
24630
|
Value min;
|
|
@@ -24631,11 +24632,11 @@ public:
|
|
|
24631
24632
|
Value max;
|
|
24632
24633
|
|
|
24633
24634
|
public:
|
|
24634
|
-
void Merge(const BaseStatistics &other) override;
|
|
24635
|
+
DUCKDB_API void Merge(const BaseStatistics &other) override;
|
|
24635
24636
|
|
|
24636
|
-
bool IsConstant() const override;
|
|
24637
|
+
DUCKDB_API bool IsConstant() const override;
|
|
24637
24638
|
|
|
24638
|
-
FilterPropagateResult CheckZonemap(ExpressionType comparison_type, const Value &constant) const;
|
|
24639
|
+
DUCKDB_API FilterPropagateResult CheckZonemap(ExpressionType comparison_type, const Value &constant) const;
|
|
24639
24640
|
|
|
24640
24641
|
unique_ptr<BaseStatistics> Copy() const override;
|
|
24641
24642
|
void Serialize(FieldWriter &writer) const override;
|
|
@@ -25240,7 +25241,7 @@ class Vector;
|
|
|
25240
25241
|
class VectorCache {
|
|
25241
25242
|
public:
|
|
25242
25243
|
//! Instantiate a vector cache with the given type
|
|
25243
|
-
explicit VectorCache(Allocator &allocator, const LogicalType &type);
|
|
25244
|
+
DUCKDB_API explicit VectorCache(Allocator &allocator, const LogicalType &type);
|
|
25244
25245
|
|
|
25245
25246
|
buffer_ptr<VectorBuffer> buffer;
|
|
25246
25247
|
|
|
@@ -26828,13 +26829,13 @@ namespace duckdb {
|
|
|
26828
26829
|
class HivePartitioning {
|
|
26829
26830
|
public:
|
|
26830
26831
|
//! Parse a filename that follows the hive partitioning scheme
|
|
26831
|
-
static std::map<string, string> Parse(string &filename);
|
|
26832
|
+
DUCKDB_API static std::map<string, string> Parse(string &filename);
|
|
26832
26833
|
//! Prunes a list of filenames based on a set of filters, can be used by TableFunctions in the
|
|
26833
26834
|
//! pushdown_complex_filter function to skip files with filename-based filters. Also removes the filters that always
|
|
26834
26835
|
//! evaluate to true.
|
|
26835
|
-
static void ApplyFiltersToFileList(vector<string> &files, vector<unique_ptr<Expression>> &filters,
|
|
26836
|
-
|
|
26837
|
-
|
|
26836
|
+
DUCKDB_API static void ApplyFiltersToFileList(vector<string> &files, vector<unique_ptr<Expression>> &filters,
|
|
26837
|
+
unordered_map<string, column_t> &column_map, idx_t table_index,
|
|
26838
|
+
bool hive_enabled, bool filename_enabled);
|
|
26838
26839
|
};
|
|
26839
26840
|
|
|
26840
26841
|
} // namespace duckdb
|