[Bug](function) fix function define of Retention inconsist and change some static_cast to assert cast (#19455)
1. fix function define of `Retention` inconsist, this function return tinyint on `FE` and return uint8 on `BE` 2. make assert_cast support cast to derived 3. change some static cast to assert cast 4. support sum(bool)/avg(bool)
This commit is contained in:
@ -76,14 +76,14 @@ void VExplodeBitmapTableFunction::get_value(MutableColumnPtr& column) {
|
||||
column->insert_default();
|
||||
} else {
|
||||
if (_is_nullable) {
|
||||
static_cast<ColumnInt64*>(
|
||||
static_cast<ColumnNullable*>(column.get())->get_nested_column_ptr().get())
|
||||
assert_cast<ColumnInt64*>(
|
||||
assert_cast<ColumnNullable*>(column.get())->get_nested_column_ptr().get())
|
||||
->insert_value(**_cur_iter);
|
||||
static_cast<ColumnUInt8*>(
|
||||
static_cast<ColumnNullable*>(column.get())->get_null_map_column_ptr().get())
|
||||
assert_cast<ColumnUInt8*>(
|
||||
assert_cast<ColumnNullable*>(column.get())->get_null_map_column_ptr().get())
|
||||
->insert_default();
|
||||
} else {
|
||||
static_cast<ColumnInt64*>(column.get())->insert_value(**_cur_iter);
|
||||
assert_cast<ColumnInt64*>(column.get())->insert_value(**_cur_iter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ Status VExplodeNumbersTableFunction::process_init(Block* block) {
|
||||
auto& column_nested = assert_cast<const ColumnConst&>(*_value_column).get_data_column_ptr();
|
||||
if (column_nested->is_nullable()) {
|
||||
if (!column_nested->is_null_at(0)) {
|
||||
_cur_size = static_cast<const ColumnNullable*>(column_nested.get())
|
||||
_cur_size = assert_cast<const ColumnNullable*>(column_nested.get())
|
||||
->get_nested_column()
|
||||
.get_int(0);
|
||||
}
|
||||
@ -95,14 +95,14 @@ void VExplodeNumbersTableFunction::get_value(MutableColumnPtr& column) {
|
||||
column->insert_default();
|
||||
} else {
|
||||
if (_is_nullable) {
|
||||
static_cast<ColumnInt32*>(
|
||||
static_cast<ColumnNullable*>(column.get())->get_nested_column_ptr().get())
|
||||
assert_cast<ColumnInt32*>(
|
||||
assert_cast<ColumnNullable*>(column.get())->get_nested_column_ptr().get())
|
||||
->insert_value(_cur_offset);
|
||||
static_cast<ColumnUInt8*>(
|
||||
static_cast<ColumnNullable*>(column.get())->get_null_map_column_ptr().get())
|
||||
assert_cast<ColumnUInt8*>(
|
||||
assert_cast<ColumnNullable*>(column.get())->get_null_map_column_ptr().get())
|
||||
->insert_default();
|
||||
} else {
|
||||
static_cast<ColumnInt32*>(column.get())->insert_value(_cur_offset);
|
||||
assert_cast<ColumnInt32*>(column.get())->insert_value(_cur_offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user