[
https://issues.apache.org/jira/browse/CASSANDRA-13917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16696675#comment-16696675
]
Alex Petrov edited comment on CASSANDRA-13917 at 11/23/18 11:24 AM:
After looking a bit more, it might be that the issue is not fully fixed:
{code}
# Still throws 'Range deletions are not supported for specific columns'
DELETE value FROM %s WHERE a = 1
# Still throws 'Invalid identifier column1 for deletion (should not be a
PRIMARY KEY part)'
DELETE column1 FROM %s WHERE a = 1
# Still works:
DELETE FROM %s WHERE a = 1 and column1 = 'b'
# Still works:
SELECT value, column1 FROM %s
{code}
You're right it's not supercolumn cf, so we have only [compact
value|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/config/CFMetaData.java#L124]
that we can use.
After thinking a bit more, I'd try and explore more places where
{{getColumnDefinition}} is used in order to understand better the surface of
the problem and maybe even try looking
[here|https://github.com/apache/cassandra/blob/cassandra-3.11/test/unit/org/apache/cassandra/cql3/validation/operations/DropCompactStorageThriftTest.java]
to learn more about compact storage.
If you have any questions about compact storage, I'm happy to help either on
IRC or here.
was (Author: ifesdjeen):
After looking a bit more, I do not think the issue is fully fixed:
{code}
# Still throws 'Range deletions are not supported for specific columns'
DELETE value FROM %s WHERE a = 1
# Still throws 'Invalid identifier column1 for deletion (should not be a
PRIMARY KEY part)'
DELETE column1 FROM %s WHERE a = 1
# Still works:
DELETE FROM %s WHERE a = 1 and column1 = 'b'
# Still works:
SELECT value, column1 FROM %s
{code}
You're right it's not supercolumn cf, so we have only [compact
value|https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/config/CFMetaData.java#L124]
that we can use.
After thinking a bit more, I'd try and explore more places where
{{getColumnDefinition}} is used in order to understand better the surface of
the problem and maybe even try looking
[here|https://github.com/apache/cassandra/blob/cassandra-3.11/test/unit/org/apache/cassandra/cql3/validation/operations/DropCompactStorageThriftTest.java]
to learn more about compact storage.
If you have any questions about compact storage, I'm happy to help either on
IRC or here.
> COMPACT STORAGE inserts on tables without clusterings accept hidden column1
> and value columns
> -
>
> Key: CASSANDRA-13917
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13917
> Project: Cassandra
> Issue Type: Bug
> Components: Core
>Reporter: Alex Petrov
>Assignee: Aleksandr Sorokoumov
>Priority: Minor
> Labels: lhf
> Fix For: 3.0.x, 3.11.x
>
> Attachments: 13917-3.0.png, 13917-3.11.png
>
>
> Test for the issue:
> {code}
> @Test
> public void testCompactStorage() throws Throwable
> {
> createTable("CREATE TABLE %s (a int PRIMARY KEY, b int, c int) WITH
> COMPACT STORAGE");
> assertInvalid("INSERT INTO %s (a, b, c, column1) VALUES (?, ?, ?,
> ?)", 1, 1, 1, ByteBufferUtil.bytes('a'));
> // This one fails with Some clustering keys are missing: column1,
> which is still wrong
> assertInvalid("INSERT INTO %s (a, b, c, value) VALUES (?, ?, ?, ?)",
> 1, 1, 1, ByteBufferUtil.bytes('a'));
> assertInvalid("INSERT INTO %s (a, b, c, column1, value) VALUES (?, ?,
> ?, ?, ?)", 1, 1, 1, ByteBufferUtil.bytes('a'), ByteBufferUtil.bytes('b'));
> assertEmpty(execute("SELECT * FROM %s"));
> }
> {code}
> Gladly, these writes are no-op, even though they succeed.
> {{value}} and {{column1}} should be completely hidden. Fixing this one should
> be as easy as just adding validations.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org