Greg Bestland created CASSANDRA-10367:
-----------------------------------------

             Summary: 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


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

Reply via email to