You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2015/09/18 16:23:05 UTC

[jira] [Comment Edited] (CASSANDRA-10367) Aggregate with Initial Condition fails with C* 3.0

    [ https://issues.apache.org/jira/browse/CASSANDRA-10367?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14875678#comment-14875678 ] 

Sylvain Lebresne edited comment on CASSANDRA-10367 at 9/18/15 2:22 PM:
-----------------------------------------------------------------------

I think a better way to handle this would be to register our own {{TypeCodec}} for collections (as I suggested on the driver ticket, the driver might want to provide such codec out of the box, but it's not very hard to implement it on our side in the meantime (it's especially trivial since we can just extend the driver's list, set and map code and just override their {{unmodifiable}} method)). That would handle tuples and UDTs.


was (Author: slebresne):
I think a better way to handle this would be to register our own {{TypeCodec}}s for collections (as I suggested on the driver ticket, the driver might want to provide such codec out of the box, but it's not very hard to implement it on our side in the meantime (it's especially trivial since we can just extend the driver's list, set and map code and just override their {{unmodifiable}} method)). That would handle tuples and UDTs.

> 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)