[
https://issues.apache.org/jira/browse/CASSANDRA-19890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yifan Cai updated CASSANDRA-19890:
----------------------------------
Reviewers: David Capwell, Yifan Cai, Yifan Cai
Status: Review In Progress (was: Patch Available)
> type system contains check for duration does not work for hidden types
> ----------------------------------------------------------------------
>
> Key: CASSANDRA-19890
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19890
> Project: Cassandra
> Issue Type: Bug
> Components: CQL/Interpreter
> Reporter: David Capwell
> Assignee: Raymond Welgosh
> Priority: Normal
> Fix For: 5.x
>
> Attachments: image-2024-09-07-22-18-35-109.png,
> image-2024-09-07-22-20-38-433.png, image-2024-09-07-22-22-00-382.png
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> The function
> "org.apache.cassandra.db.marshal.AbstractType#referencesDuration” relies on
> type overriding for detecting if the type contains a duration, but the hidden
> types like Composite or DynamicComposite don’t override this… this means that
> we will be able to create a 2i index for these columns (unless we use SAI as
> it properly detects this)
> {code}
> CREATE TABLE "tbl" (
> "pk1" int,
> "with_duration" 'CompositeType(ListType(DurationType))',
> PRIMARY KEY ("pk1")
> );
> CREATE INDEX ON "tbl"("with_duration");
> {code}
> This is able to create the 2i index even though we shouldn’t be able to due
> to duration not being allowed in indexes.
> We have a test method that is able to detect if a type exists in complex
> types:
> {code}
> AbstractTypeGenerators.contains(type, DurationType.instance);
> {code}
> Could leverage the same logic to avoid maintenance burden with inheritance
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]