-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
my schema:
{
"columns": [
{
"name": "fl_data",
"type": "list",
"children":[{
"name": "inner1",
"type": "integer"
}
],
"nullability": "NULL"
}
]
}my data:
{"fl_data":[859949408964,869718110937,869747139723,846733838092,864556136080,563731900975,561404766447]}./bin/test_main jsondata/ flout
test begin
Failed: ABORTED.
Exprsn: false
Values: [FLS] UNREACHABLE with unexpected type: std::unique_ptr<fastlanes::List, std::default_deletefastlanes::List > at ./FastLanes/src/table/rowgroup.cpp:395
./FastLanes/src/table/rowgroup.cpp:395
Aborted (core dumped)
not support up
struct finalize_visitor {
explicit finalize_visitor() = default;
template <typename PT>
void operator()(up<TypedCol<PT>>& typed_column) const {
auto& min = typed_column->m_stats.min;
auto& max = typed_column->m_stats.max;
auto& bimap_frequency = typed_column->m_stats.bimap_frequency;
// into the dictionary
for (n_t val_idx {0}; val_idx < typed_column->data.size(); val_idx++) {
const auto current_val = typed_column->data[val_idx];
if (!bimap_frequency.contains_value(current_val)) {
n_t current_idx = bimap_frequency.size();
bimap_frequency.insert(current_idx, {current_val});
}
min = std::min(min, current_val);
max = std::max(max, current_val);
}
}
void operator()(up<FLSStrColumn>& str_col) const {
str_col->str_p_arr.resize(str_col->length_arr.size());
len_t cur_offset = 0;
for (idx_t val_idx {0}; val_idx < str_col->length_arr.size(); ++val_idx) {
// set pointer into byte array
str_col->str_p_arr[val_idx] = &str_col->byte_arr[cur_offset];
// construct fls_string_t in‐place, no temporary
str_col->fls_str_arr.emplace_back(&str_col->byte_arr[cur_offset], str_col->length_arr[val_idx]);
cur_offset += str_col->length_arr[val_idx];
}
str_col->fsst_str_p_arr.resize(str_col->fsst_length_arr.size());
cur_offset = 0;
for (idx_t val_idx {0}; val_idx < str_col->fsst_length_arr.size(); ++val_idx) {
str_col->fsst_str_p_arr[val_idx] = (&str_col->fsst_byte_arr[cur_offset]);
cur_offset += str_col->fsst_length_arr[val_idx];
}
}
void operator()(up<Struct>& struct_col) const {
for (auto& col : struct_col->internal_rowgroup) {
visit(finalize_visitor {}, col);
}
}
void operator()(auto& col) const {
FLS_UNREACHABLE();
}
};Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels