[ https://issues.apache.org/jira/browse/CASSANDRA-10367?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14875772#comment-14875772 ]
Robert Stupp commented on CASSANDRA-10367: ------------------------------------------ Yes, it's possible to extend the List/Set/MapCodecs - but the codec instances themselves are not. These are created programmatically in CodecRegistry (which is {{final}} btw). This would need some kind of "codec factory" to work. I can intercept all calls to {{CodecRegistry.codecFor}} - but that's not what's really needed, as a type like {{tuple<list<text>>}} wouldn't be caught at all. [~omichallat]: Do you have an idea for this? I think the simplest (but maybe that's just a hack) approach would be to make {{CodecRegistry}} non-final and the {{maybeCreateCodec}} methods protected. > Aggregate with Initial Condition fails with C* 3.0 > -------------------------------------------------- > > Key: CASSANDRA-10367 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10367 > Project: Cassandra > Issue Type: Bug > Environment: Cassandra 3.0 branch > https://github.com/apache/cassandra/tree/cassandra-3.0 > Reporter: Greg Bestland > Assignee: Robert Stupp > Fix For: 3.0.x > > > I'm seeing some inconsistent behavior between 2.2 and 3.0 C* with regards to > UDF, Aggregates and Initial Conditions. I have a scenario, which I think is > valid. It works in C* 2.2 but not in 3.0 > Using the following user defined function > {code:sql} > CREATE OR REPLACE FUNCTION extend_list(s list<text>, i int) > CALLED ON NULL INPUT > RETURNS list<text> > LANGUAGE java AS 'if (i != null) > s.add(String.valueOf(i)); return s;'; > {code} > With the aggregate below > {code:sql} > CREATE AGGREGATE aggregatemetadata.test_init_cond_aggregate(int) SFUNC > extend_list STYPE list<text> INITCOND [ ] > {code} > When I attempt to exercise the aggregate on from a simple key value table. > {code:sql} > SELECT test_init_cond_aggregate(v) AS list_res FROM t > {code} > in 2.2 it works fine and returns the aggregate. > The exact same test ran against the 3.0 branch produces the following > exception from the server. > {code:java} > InvalidRequest: code=2200 [Invalid query] message="ERROR FUNCTION_FAILURE: > execution of 'aggregatemetadata.extend_list[list<text>, int]' failed: > java.lang.UnsupportedOperationException" > {code} > I've grepped through the C* logs but I couldn't find a more verbose stack > trace, or any errors. > Robert Stupp suggested I open a ticket. > I am able to reproduce both in the python driver manually using cql. -- This message was sent by Atlassian JIRA (v6.3.4#6332)