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

Sandeep Tamhankar commented on CASSANDRA-10840:
-----------------------------------------------

Just tried it on 3.0, and the issue does not occur there.
But there is another interesting behavior difference in 3.0 vs. 2.2.4. The 
aggregates metadata in 3.0 shows that initcond is {} when I issue cql with {}, 
but in 2.2.4 it shows 0x00000000. Not sure it's an issue, but it's odd.

> Replacing an aggregate with a new version doesn't reset INITCOND
> ----------------------------------------------------------------
>
>                 Key: CASSANDRA-10840
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10840
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL
>         Environment: Observed in Cassandra 2.2.4, though it might be an issue 
> in 3.0 as well
>            Reporter: Sandeep Tamhankar
>            Assignee: Robert Stupp
>             Fix For: 2.2.x, 3.0.x, 3.x
>
>
> {code}
> use simplex;
>       CREATE FUNCTION state_group_and_sum(state map<int, int>, star_rating 
> int)
>                       CALLED ON NULL INPUT
>                       RETURNS map<int, int>
>                       LANGUAGE java
>                       AS 'if (state.get(star_rating) == null) 
> state.put(star_rating, 1); else state.put(star_rating, ((Integer) 
> state.get(star_rating)) + 1); return state;';
>       CREATE FUNCTION percent_stars(state map<int,int>)
>                       RETURNS NULL ON NULL INPUT
>                       RETURNS map<int, int>
>                       LANGUAGE java AS $$
> Integer sum = 0; 
> for(Object k : state.keySet()) { 
>     sum = sum + (Integer) state.get((Integer) k);
> }
> java.util.Map<Integer, Integer> results = new java.util.HashMap<Integer, 
> Integer>();
> for(Object k : state.keySet()) {
>     results.put((Integer) k, ((Integer) state.get((Integer) k))*100 / sum);
> }
> return results;
> $$;
> {code}
> {code}
> CREATE OR REPLACE AGGREGATE group_and_sum(int)
>                     SFUNC state_group_and_sum
>                     STYPE map<int, int>
>                     FINALFUNC percent_stars
>                     INITCOND {}
> {code}
> 1. View the aggregates
> {{select * from system.schema_aggregates;}}
> 2. Now update
> {code}
> CREATE OR REPLACE AGGREGATE group_and_sum(int)
>                     SFUNC state_group_and_sum
>                     STYPE map<int, int>
>                     FINALFUNC percent_stars
>                     INITCOND NULL
> {code}
> 3. View the aggregates
> {{select * from system.schema_aggregates;}}
> Expected result:
> * The update should have made initcond null
> Actual result:
> * The update did not touch INITCOND.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to