[ https://issues.apache.org/jira/browse/PHOENIX-7170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17804891#comment-17804891 ]
Viraj Jasani edited comment on PHOENIX-7170 at 1/10/24 12:19 AM: ----------------------------------------------------------------- {quote}The compaction scanner (CompactionScanner) in Phoenix can evaluate the case statement on a row and decide if the row should be removed. {quote} Reg this, [~stoty] do we have access to compile plan and ParseNode objects etc in the server side after the recent refactor changes of core-client and core-server modules? I haven't been able to check this because i am still working on my local fork with some changes and i still need to rebase to latest master branch. It should work with the right dependencies but i just wanted to confirm. was (Author: vjasani): {quote}The compaction scanner (CompactionScanner) in Phoenix can evaluate the case statement on a row and decide if the row should be removed. {quote} Reg this, [~stoty] do we have access to compile plan and ParseNode objects etc in the server side after the recent refactor changes of core-client and core-server modules? I haven't been able to check this because i am still working on my local fork with some changes and i still need to rebase to latest master branch. > Conditional TTL > --------------- > > Key: PHOENIX-7170 > URL: https://issues.apache.org/jira/browse/PHOENIX-7170 > Project: Phoenix > Issue Type: New Feature > Reporter: Kadir Ozdemir > Priority: Major > > Deleting rows using delete markers require running delete queries to insert > them, one for each row to be deleted. Often applications need to run periodic > jobs to issue delete queries to insert delete markers. Deleting rows using > TTL is more performance optimized compared to adding delete markers in > Phoenix since TTL works without inserting delete markers. Phoenix currently > supports table and view (level) TTL. It is desirable to have a conditional > TTL feature to extend the TTL future to expire a subset of rows of a table or > updatable view using a different TTL value. > A condition TTL can be set using a CASE statement in CREATE and ALTER > statements by adding TTL=<the case statement>. For example, > TTL = CASE WHEN ID IS BETWEEN 1 AND 100 THEN <10 days> WHEN ID IS BETWEEN 101 > AND 200 <7 days> ELSE <5 days> END > The compaction scanner (CompactionScanner) in Phoenix can evaluate the case > statement on a row and decide if the row should be removed. Similarly, on the > read path TTLRegionScanner can mask the rows using the case statement. The > TTL case statement can be stored in SYSCAT in header rows. -- This message was sent by Atlassian Jira (v8.20.10#820010)