Provide functionality required by C* UDF implementation

Description

In CASSANDRA-7563 support for user-types, tuple-types and collections is added to C* using the Java Driver.
The code in C* requires access to some functionality which is currently performed using reflection/invoke-dynamic.
This ticket is about to provide better/direct access to that functionality.
I'll provide the patch for that.

Environment

None

Pull Requests

None

Activity

Show:
Alexandre Dutra
October 26, 2015, 11:13 AM

your patch has been adapted to 3.0 branch and included in a pull request.

Would you mind if I step back and try to understand why we have such a strong adherence between the Java driver and C* code? My understanding is that this has been introduced as a side-effect of CASSANDRA-7563, is that right? Don't you think it would be wiser to decouple driver and C* code and extract the relevant parts of the driver's DataType API?

Robert Stupp
October 26, 2015, 12:08 PM

Yes, the intent for this ticket was the just not nice code here to parse C* types for UDFs.

In particular WRT to the effort to remove AbstractType at all, soon-ish by removing it with CASSANDRA-10365 from schema tables, I would not object not fixing this issue. Additionally I think it would help keeping driver internals internal.

TL;DR we can easily keep it as it currently is.

Alexandre Dutra
October 26, 2015, 1:10 PM
Edited

Thank you for the explanation. We will put it on hold for now and wait for CASSANDRA-10365.

Alexandre Dutra
November 5, 2015, 6:55 PM

It seems that this ticket has indeed been obsoleted by CASSANDRA-10365. Can we close it?

Robert Stupp
November 5, 2015, 7:11 PM

Well, 10365 did not really obsolete it. But I'm really fine with closing this ticket as the current implementation in C* is ok and performance is fine (using a MethodHandle).

So yes, feel free to close it - no objections.

Won't Do

Assignee

Alexandre Dutra

Reporter

Robert Stupp

Labels

None

PM Priority

None

Affects versions

None

Fix versions

Pull Request

None

Doc Impact

None

Size

None

External issue ID

None

External issue ID

None

Priority

Major
Configure