[
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]