[
https://issues.apache.org/jira/browse/CASSANDRA-19781?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17877203#comment-17877203
]
David Capwell commented on CASSANDRA-19781:
-------------------------------------------
to simplify things a bit
{code}
@Test
public void test5()
{
schemaChange(format("CREATE TYPE %s.test5 (a int)", KEYSPACE));
String name = createTableName(null);
String fq = format("%s.%s", KEYSPACE, name);
createTable(format("CREATE TABLE %s(pk int, ck frozen<%s.test5>, v int,
PRIMARY KEY(pk, ck)) WITH CLUSTERING ORDER BY (ck DESC)", fq, KEYSPACE));
execute(format("INSERT INTO %s(pk, ck, v) VALUES (?, {a: 0}, ?)", fq),
0, 0);
assertRows(execute(format("SELECT * FROM %s WHERE pk=?", fq), 0),
row(0, tuple(0), 0));
}
{code}
> UDT rejects UDT literals when the column is clustering and reverse order
> ------------------------------------------------------------------------
>
> Key: CASSANDRA-19781
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19781
> Project: Cassandra
> Issue Type: Bug
> Components: CQL/Semantics
> Reporter: David Capwell
> Priority: Normal
> Fix For: 5.x
>
>
> This was found in Accord’s fuzz testing
> {code}
> CREATE TYPE
> distributed_test_keyspace."EJfW0z8VJlcU2PA1sfV_mTu2jEFmRZbvzg2P1sW0EUBl" (
> "kRT76zGo0XlD_FXMcjR5scASR4W_WtKw3WxPrMeosltr6X"
> set<'org.apache.cassandra.db.marshal.LexicalUUIDType’>
> );
> {code}
> {code}
> CREATE TABLE distributed_test_keyspace."vTZ11fk6t8tzR3V" (
> "X2RD2YtsnBd7mvidw"
> frozen<tuple<frozen<"egCMwY5Ivz1Ubq5rtTKGaMSb4MtO0BVBAs8CEpqM">>>,
> "yXEL6XVkYSEWoFb8HTj0JAXx2pPtFlMNIa9l7H"
> frozen<"EJfW0z8VJlcU2PA1sfV_mTu2jEFmRZbvzg2P1sW0EUBl">,
> "bBsAIZg0d6ed_VyEYmo7XKdZhWLGSF5AaZCcIIv0A8N8kkjMp"
> 'org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.FrozenType(org.apache.cassandra.db.marshal.UserType(distributed_test_keyspace,5337794750306e6c,6f506464446c3762575652615a7a59397866345f4e6163764c4c634575:org.apache.cassandra.db.marshal.BytesType,777a526a4b7775706453384465546f7957474552564f456771527052596e4c36614f4d4e58596439336a6470:org.apache.cassandra.db.marshal.UTF8Type)),org.apache.cassandra.db.marshal.FrozenType(org.apache.cassandra.db.marshal.SetType(org.apache.cassandra.db.marshal.InetAddressType)))',
> "qokh6bGEIF4xf5AAZn6jMc"
> 'org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.ListType(org.apache.cassandra.db.marshal.Int32Type),org.apache.cassandra.db.marshal.FloatType)'
> static,
> "UGwI2I3HjxYOCA" 'org.apache.cassandra.db.marshal.LexicalUUIDType',
> PRIMARY KEY ("X2RD2YtsnBd7mvidw",
> "yXEL6XVkYSEWoFb8HTj0JAXx2pPtFlMNIa9l7H",
> "bBsAIZg0d6ed_VyEYmo7XKdZhWLGSF5AaZCcIIv0A8N8kkjMp")
> ) WITH CLUSTERING ORDER BY ("yXEL6XVkYSEWoFb8HTj0JAXx2pPtFlMNIa9l7H" DESC,
> "bBsAIZg0d6ed_VyEYmo7XKdZhWLGSF5AaZCcIIv0A8N8kkjMp" ASC)
> {code}
> {code}
> UPDATE distributed_test_keyspace."vTZ11fk6t8tzR3V"
> SET
> "qokh6bGEIF4xf5AAZn6jMc"=?,
> "UGwI2I3HjxYOCA"=QtGwDS."UGwI2I3HjxYOCA"
> WHERE
> "X2RD2YtsnBd7mvidw"=? AND
>
> "yXEL6XVkYSEWoFb8HTj0JAXx2pPtFlMNIa9l7H"={"kRT76zGo0XlD_FXMcjR5scASR4W_WtKw3WxPrMeosltr6X":
> {0x0000000000001f00bd00000000000000}} AND
> "bBsAIZg0d6ed_VyEYmo7XKdZhWLGSF5AaZCcIIv0A8N8kkjMp"=0x...;
> {code}
> {code}
> ERROR [node2_isolatedExecutor:3] node2 2024-07-17 14:04:33,530
> JVMStabilityInspector.java:71 - Exception in thread
> Thread[node2_isolatedExecutor:3,5,isolatedExecutor]
> org.apache.cassandra.exceptions.InvalidRequestException: Invalid user type
> literal for yXEL6XVkYSEWoFb8HTj0JAXx2pPtFlMNIa9l7H of type
> frozen<"EJfW0z8VJlcU2PA1sfV_mTu2jEFmRZbvzg2P1sW0EUBl">
> at
> org.apache.cassandra.cql3.terms.UserTypes$Literal.validateAssignableTo(UserTypes.java:175)
> at
> org.apache.cassandra.cql3.terms.UserTypes$Literal.prepare(UserTypes.java:137)
> at org.apache.cassandra.cql3.terms.Terms$Raw$2.prepare(Terms.java:280)
> at org.apache.cassandra.cql3.Relation.toRestriction(Relation.java:178)
> at
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>(StatementRestrictions.java:218)
> at
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.<init>(StatementRestrictions.java:157)
> at
> org.apache.cassandra.cql3.statements.ModificationStatement$Parsed.newRestrictions(ModificationStatement.java:1162)
> at
> org.apache.cassandra.cql3.statements.UpdateStatement$ParsedUpdate.prepareInternal(UpdateStatement.java:423)
> at
> org.apache.cassandra.cql3.statements.ModificationStatement$Parsed.prepare(ModificationStatement.java:1076)
> at
> org.apache.cassandra.cql3.statements.TransactionStatement$Parsed.prepare(TransactionStatement.java:566)
> at
> org.apache.cassandra.distributed.test.accord.AccordTestBase.lambda$isIdempotent$3b31f888$1(AccordTestBase.java:399)
> {code}
> The issue is “yXEL6XVkYSEWoFb8HTj0JAXx2pPtFlMNIa9l7H” is ReverseType (ORDER
> BY DESC), so type.isUDT() returns false!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]