[MCOL-4916] Introduce integral type based filtering for columns. Created: 2021-11-05  Updated: 2022-05-25  Resolved: 2022-05-25

Status: Closed
Project: MariaDB ColumnStore
Component/s: PrimProc
Affects Version/s: 6.1.1
Fix Version/s: 6.4.1

Type: New Feature Priority: Major
Reporter: Roman Assignee: Roman
Resolution: Won't Do Votes: 0
Labels: None

Sprint: 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.

Generated at Thu Feb 08 02:53:58 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.