[ 
https://issues.apache.org/jira/browse/CASSANDRA-16806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17387338#comment-17387338
 ] 

Benjamin Lerer commented on CASSANDRA-16806:
--------------------------------------------

Ouch. Good catch :-). 

Now, I remember. When Virtual Table were implemented we did not believe that we 
needed to support deletion. The only virtual table that was supporting update 
was the {{Settings}} table and settings should never be deleted.

If we want to support deletion we need to provide a safety mechanism for tables 
like {{Settings}} that support updates but not deletion. 

A couple of other points to keep in mind are:

* There are 4 type of deletions: partition deletion, range tombstone/deletion, 
row deletion and column deletion so the test will need to ensure that they are 
all send correctly to the virtual tables.
* We also need to be careful with conditional statements that are not supported 
on VT. The check is currently done in {{ModificationStatement.validate}} but 
some checks are performed before in {{DeleteStatement.prepareInternal}}, we 
might want to duplicate the check before that to be consistent when we fire 
errors.
Firing an exception with the message {{DELETE statements must restrict all 
PRIMARY KEY columns with equality relations in order to use IF condition on non 
static columns}} when it is not supported by the table seems a bit weird to me. 

{quote}We just need to decide whether we include them here or raise a separate 
ticket. Please, let me know your thoughts.{quote}

I think it makes sense to include them in this ticket as supporting truncate 
but not deletion does not make too much sense in my opinion.


> Allow TRUNCATE to work on Virtual Tables if the implementation allows it
> ------------------------------------------------------------------------
>
>                 Key: CASSANDRA-16806
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16806
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Feature/Virtual Tables
>            Reporter: Benjamin Lerer
>            Assignee: Aleksei Zotov
>            Priority: Normal
>             Fix For: 4.x
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> {{TRUNCATE}} statements are currently not supported by Virtual Tables. For 
> some Virtual Tables it makes sense to allow it.
> It can be done by adding a {{truncate}} method to the {{VirtualTable}} 
> interface and calling that method from {{TruncateStatement}}. The default 
> implementation of the method should be to fire an {{InvalidRequestException}} 
> saying that truncate is not supported on that specific table.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to