[MCOL-5118] Lisp-like Intermediate Representation translator for CSEP's TreeNode used in WHERE/HAVING predicates Created: 2022-06-05  Updated: 2023-12-15

Status: Open
Project: MariaDB ColumnStore
Component/s: None
Affects Version/s: None
Fix Version/s: Icebox

Type: New Feature Priority: Major
Reporter: Roman Assignee: Max Mether
Resolution: Unresolved Votes: 0
Labels: None

Epic Link: Columnstore - Technical debts in Optimizer / Rewriter

 Description   

The suggested IR represents tree-ish structure(TreeNode) with a Lisp-like list.
There can be two types of intermediate nodes, namely functions and operators, there are two types of leaf nodes, namely columns and constants. Here is the example of a simple expression, e.g. let c1 be an timestamp column:
floor(c1 + 1.05) < 0

(func "<"
  (func "floor"
   (func "+" (col col1) (const 1.05))) 0)    

The translator should support the revert operation, namely IR to TreeNode conversion.


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