[MCOL-3898] Refactor cond_push mechanism for table API processing Created: 2020-03-21  Updated: 2023-10-25  Resolved: 2023-10-25

Status: Closed
Project: MariaDB ColumnStore
Component/s: MDB Plugin
Affects Version/s: 1.4.3
Fix Version/s: Icebox

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

Issue Links:
PartOf
includes MCOL-4023 MCS doesn't apply optimized WHERE con... Closed

 Description   

As of 1.4 MCS uses a legacy complex machine to process pushed down conditions when run queries in table API mode. MCS populates a map that is globally unique for the client connection with TABLE* - CSEP mappings to use them later in rnd_init().
This is error prone and overcomplicated ways of doing this.
A pair handler::cond_push()/cond_pop() push conditions for a dedicated handler instance. The same instance executes rnd_init() so it is safe to create a stack of ParseTree pointers in handler. MCS must clean them up on handler::reset() thus the mapping clean up must be removed from handler::external_lock().


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