cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-10840) Replacing an aggregate with a new version doesn't reset INITCOND
Date Thu, 10 Dec 2015 22:36:10 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-10840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Robert Stupp updated CASSANDRA-10840:
-------------------------------------
    Description: 
{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.

  was:
{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;';

CREATE OR REPLACE AGGREGATE group_and_sum(int)
                    SFUNC state_group_and_sum
                    STYPE map<int, int>
                    FINALFUNC percent_stars
                    INITCOND {}

# View the aggregates
select * from system.schema_aggregates;

# Now update
CREATE OR REPLACE AGGREGATE group_and_sum(int)
                    SFUNC state_group_and_sum
                    STYPE map<int, int>
                    FINALFUNC percent_stars
                    INITCOND NULL

# View the aggregates
select * from system.schema_aggregates;
{code}

Expected result:
* The update should have made initcond null

Actual result:
* The update did not touch INITCOND.


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

Mime
View raw message