duckdb 0.6.2-dev1368.0 → 0.6.2-dev1372.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
CHANGED
|
@@ -53,6 +53,10 @@ static inline void CalendarAddHour(icu::Calendar *calendar, int64_t interval_hou
|
|
|
53
53
|
|
|
54
54
|
template <>
|
|
55
55
|
timestamp_t ICUCalendarAdd::Operation(timestamp_t timestamp, interval_t interval, icu::Calendar *calendar) {
|
|
56
|
+
if (!Timestamp::IsFinite(timestamp)) {
|
|
57
|
+
return timestamp;
|
|
58
|
+
}
|
|
59
|
+
|
|
56
60
|
int64_t millis = timestamp.value / Interval::MICROS_PER_MSEC;
|
|
57
61
|
int64_t micros = timestamp.value % Interval::MICROS_PER_MSEC;
|
|
58
62
|
|
|
@@ -257,13 +257,15 @@ unique_ptr<ColumnReader> ParquetReader::CreateReaderRecursive(const FileMetaData
|
|
|
257
257
|
auto &s_ele = file_meta_data->schema[next_schema_idx];
|
|
258
258
|
auto this_idx = next_schema_idx;
|
|
259
259
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
260
|
+
auto repetition_type = FieldRepetitionType::REQUIRED;
|
|
261
|
+
if (s_ele.__isset.repetition_type && this_idx > 0) {
|
|
262
|
+
repetition_type = s_ele.repetition_type;
|
|
263
|
+
}
|
|
264
|
+
if (repetition_type != FieldRepetitionType::REQUIRED) {
|
|
265
|
+
max_define++;
|
|
266
|
+
}
|
|
267
|
+
if (repetition_type == FieldRepetitionType::REPEATED) {
|
|
268
|
+
max_repeat++;
|
|
267
269
|
}
|
|
268
270
|
|
|
269
271
|
if (!s_ele.__isset.type) { // inner node
|
|
@@ -290,7 +292,7 @@ unique_ptr<ColumnReader> ParquetReader::CreateReaderRecursive(const FileMetaData
|
|
|
290
292
|
unique_ptr<ColumnReader> result;
|
|
291
293
|
LogicalType result_type;
|
|
292
294
|
|
|
293
|
-
bool is_repeated =
|
|
295
|
+
bool is_repeated = repetition_type == FieldRepetitionType::REPEATED;
|
|
294
296
|
bool is_list = s_ele.__isset.converted_type && s_ele.converted_type == ConvertedType::LIST;
|
|
295
297
|
bool is_map = s_ele.__isset.converted_type && s_ele.converted_type == ConvertedType::MAP;
|
|
296
298
|
bool is_map_kv = s_ele.__isset.converted_type && s_ele.converted_type == ConvertedType::MAP_KEY_VALUE;
|
|
@@ -366,6 +368,13 @@ unique_ptr<ColumnReader> ParquetReader::CreateReader(const duckdb_parquet::forma
|
|
|
366
368
|
idx_t next_schema_idx = 0;
|
|
367
369
|
idx_t next_file_idx = 0;
|
|
368
370
|
|
|
371
|
+
if (file_meta_data->schema.empty()) {
|
|
372
|
+
throw IOException("Parquet reader: no schema elements found");
|
|
373
|
+
}
|
|
374
|
+
if (file_meta_data->schema[0].num_children == 0) {
|
|
375
|
+
throw IOException("Parquet reader: root schema element has no children");
|
|
376
|
+
}
|
|
377
|
+
|
|
369
378
|
auto ret = CreateReaderRecursive(file_meta_data, 0, 0, 0, next_schema_idx, next_file_idx);
|
|
370
379
|
D_ASSERT(next_schema_idx == file_meta_data->schema.size() - 1);
|
|
371
380
|
D_ASSERT(file_meta_data->row_groups.empty() || next_file_idx == file_meta_data->row_groups[0].columns.size());
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#ifndef DUCKDB_VERSION
|
|
2
|
-
#define DUCKDB_VERSION "0.6.2-
|
|
2
|
+
#define DUCKDB_VERSION "0.6.2-dev1372"
|
|
3
3
|
#endif
|
|
4
4
|
#ifndef DUCKDB_SOURCE_ID
|
|
5
|
-
#define DUCKDB_SOURCE_ID "
|
|
5
|
+
#define DUCKDB_SOURCE_ID "3da63b49a7"
|
|
6
6
|
#endif
|
|
7
7
|
#include "duckdb/function/table/system_functions.hpp"
|
|
8
8
|
#include "duckdb/main/database.hpp"
|