Details
-
New Feature
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Won't Do
-
6.1.1
-
None
-
2021-14, 2021-15
Description
As of now the code in primitives/linux-port/column.cpp uses ParsedColumnFilter structure that has two shared_array attributes:
- prestored_argVals to store columns that less then 8 byte.
- prestored_argVals128 to store columns that are 16 byte wide.
Consider ParsedColumnFilter for a float column. It uses prestored_argVals that is an array of int64_t to store float values. This forces 2 extra assignment statements in colCompareDispatcherT for all integral types. This also calls for an explicit cast, e.g. (float*)(&prestored_argVals.get()[i]) in a vectorized filter path. Such casts introduces future issues for big-endian platforms.