Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Observed in Cassandra 2.2.4, though it might be an issue in 3.0 as well
-
Normal
Description
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; $$;
CREATE OR REPLACE AGGREGATE group_and_sum(int) SFUNC state_group_and_sum STYPE map<int, int> FINALFUNC percent_stars INITCOND {}
1. View the aggregates
select * from system.schema_aggregates;
2. Now update
CREATE OR REPLACE AGGREGATE group_and_sum(int) SFUNC state_group_and_sum STYPE map<int, int> FINALFUNC percent_stars INITCOND NULL
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.