[ https://issues.apache.org/jira/browse/CASSANDRA-9457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14565308#comment-14565308 ]
Robert Stupp commented on CASSANDRA-9457: ----------------------------------------- bq. assert that the value is neither null nor empty in the compose_* methods No - these methods are just for Java UDFs. Special compose implementations for primitive types. Addresses the other remarks and nits in the last commit. (Apologies for the forgotten link) > Empty INITCOND treated as null in aggregate > ------------------------------------------- > > Key: CASSANDRA-9457 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9457 > Project: Cassandra > Issue Type: Bug > Components: Core > Reporter: Olivier Michallat > Assignee: Robert Stupp > Priority: Minor > Fix For: 2.2.0 rc1 > > > Given the following test data: > {code} > cqlsh:test> create table foo(k int, v int, primary key(k,v)); > cqlsh:test> insert into foo(k,v) values(1,1); > cqlsh:test> insert into foo(k,v) values(1,2); > cqlsh:test> insert into foo(k,v) values(1,3); > {code} > And the following aggregate definition: > {code} > cqlsh:test> CREATE FUNCTION cat(s text, v int) > RETURNS NULL ON NULL INPUT > RETURNS text > LANGUAGE java > AS 'return s + v;'; > cqlsh:test> CREATE AGGREGATE cats(int) SFUNC cat STYPE text INITCOND ''; > {code} > The following should return '123', but it returns null: > {code} > cqlsh:test> select cats(v) from foo where k = 1; > test.cats(v) > --------------- > {code} > The empty INITCOND is treated as null, and the SFUNC is never called. -- This message was sent by Atlassian JIRA (v6.3.4#6332)