1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-4809 This patch adds support for float data types filtering and scanning vectorization

This commit is contained in:
Roman Nozdrin
2022-02-03 16:38:06 +00:00
parent 5f948bce52
commit c79dfc4925
5 changed files with 596 additions and 174 deletions

View File

@ -167,6 +167,7 @@ class ParsedColumnFilter
using RFsType = uint8_t;
static constexpr uint32_t noSetFilterThreshold = 8;
ColumnFilterMode columnFilterMode;
// Very unfortunately prestored_argVals can also be used to store double/float values.
boost::shared_array<int64_t> prestored_argVals;
boost::shared_array<int128_t> prestored_argVals128;
boost::shared_array<CopsType> prestored_cops;
@ -181,7 +182,7 @@ class ParsedColumnFilter
template <typename T, typename std::enable_if<std::is_same<T, int64_t>::value, T>::type* = nullptr>
T* getFilterVals()
{
return prestored_argVals.get();
return reinterpret_cast<T*>(prestored_argVals.get());
}
template <typename T, typename std::enable_if<std::is_same<T, int128_t>::value, T>::type* = nullptr>
@ -561,4 +562,4 @@ boost::shared_ptr<ParsedColumnFilter> _parseColumnFilter(
} // namespace primitives
// vim:ts=4 sw=4:
// vim:ts=2 sw=2: