duckdb 0.6.2-dev1759.0 → 0.6.2-dev1764.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/binding.gyp
CHANGED
|
@@ -296,7 +296,8 @@
|
|
|
296
296
|
"cflags": [
|
|
297
297
|
"-frtti",
|
|
298
298
|
"-fexceptions",
|
|
299
|
-
"-Wno-redundant-move"
|
|
299
|
+
"-Wno-redundant-move",
|
|
300
|
+
"-frtti"
|
|
300
301
|
],
|
|
301
302
|
"cflags!": [
|
|
302
303
|
"-fno-rrti",
|
|
@@ -318,7 +319,8 @@
|
|
|
318
319
|
"VCCLCompilerTool": {
|
|
319
320
|
"ExceptionHandling": 1,
|
|
320
321
|
"AdditionalOptions": [
|
|
321
|
-
"/bigobj"
|
|
322
|
+
"/bigobj",
|
|
323
|
+
"/GR"
|
|
322
324
|
]
|
|
323
325
|
}
|
|
324
326
|
},
|
package/configure.py
CHANGED
|
@@ -85,8 +85,8 @@ else:
|
|
|
85
85
|
source_list = [os.path.relpath(x, basedir) if os.path.isabs(x) else os.path.join('src', x) for x in source_list]
|
|
86
86
|
include_list = [os.path.join('src', 'duckdb', x) for x in include_list]
|
|
87
87
|
libraries = []
|
|
88
|
-
windows_options = []
|
|
89
|
-
cflags = []
|
|
88
|
+
windows_options = ['/GR']
|
|
89
|
+
cflags = ['-frtti']
|
|
90
90
|
|
|
91
91
|
def sanitize_path(x):
|
|
92
92
|
return x.replace('\\', '/')
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#ifndef DUCKDB_VERSION
|
|
2
|
-
#define DUCKDB_VERSION "0.6.2-
|
|
2
|
+
#define DUCKDB_VERSION "0.6.2-dev1764"
|
|
3
3
|
#endif
|
|
4
4
|
#ifndef DUCKDB_SOURCE_ID
|
|
5
|
-
#define DUCKDB_SOURCE_ID "
|
|
5
|
+
#define DUCKDB_SOURCE_ID "514ba34dec"
|
|
6
6
|
#endif
|
|
7
7
|
#include "duckdb/function/table/system_functions.hpp"
|
|
8
8
|
#include "duckdb/main/database.hpp"
|
|
@@ -235,10 +235,11 @@ public:
|
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
void UpdateState(string_t uncompressed_string, unsigned char *compressed_string, size_t compressed_string_len) {
|
|
238
|
-
|
|
239
238
|
if (!HasEnoughSpace(compressed_string_len)) {
|
|
240
239
|
Flush();
|
|
241
|
-
|
|
240
|
+
if (!HasEnoughSpace(compressed_string_len)) {
|
|
241
|
+
throw InternalException("FSST string compression failed due to insufficient space in empty block");
|
|
242
|
+
};
|
|
242
243
|
}
|
|
243
244
|
|
|
244
245
|
UncompressedStringStorage::UpdateStringStats(current_segment->stats, uncompressed_string);
|
|
@@ -261,7 +262,9 @@ public:
|
|
|
261
262
|
void AddNull() {
|
|
262
263
|
if (!HasEnoughSpace(0)) {
|
|
263
264
|
Flush();
|
|
264
|
-
|
|
265
|
+
if (!HasEnoughSpace(0)) {
|
|
266
|
+
throw InternalException("FSST string compression failed due to insufficient space in empty block");
|
|
267
|
+
};
|
|
265
268
|
}
|
|
266
269
|
index_buffer.push_back(0);
|
|
267
270
|
current_segment->count++;
|
|
@@ -272,7 +275,7 @@ public:
|
|
|
272
275
|
UncompressedStringStorage::UpdateStringStats(current_segment->stats, "");
|
|
273
276
|
}
|
|
274
277
|
|
|
275
|
-
|
|
278
|
+
size_t GetRequiredSize(size_t string_len) {
|
|
276
279
|
bitpacking_width_t required_minimum_width;
|
|
277
280
|
if (string_len > max_compressed_string_length) {
|
|
278
281
|
required_minimum_width = BitpackingPrimitives::MinimumBitWidth(string_len);
|
|
@@ -287,8 +290,13 @@ public:
|
|
|
287
290
|
BitpackingPrimitives::GetRequiredSize(current_string_count + 1, required_minimum_width);
|
|
288
291
|
|
|
289
292
|
// TODO switch to a symbol table per RowGroup, saves a bit of space
|
|
290
|
-
|
|
291
|
-
|
|
293
|
+
return sizeof(fsst_compression_header_t) + current_dict_size + dict_offsets_size + string_len +
|
|
294
|
+
fsst_serialized_symbol_table_size;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// Checks if there is enough space, if there is, sets last_fitting_size
|
|
298
|
+
bool HasEnoughSpace(size_t string_len) {
|
|
299
|
+
auto required_size = GetRequiredSize(string_len);
|
|
292
300
|
|
|
293
301
|
if (required_size <= Storage::BLOCK_SIZE) {
|
|
294
302
|
last_fitting_size = required_size;
|