UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/trunk Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert Stupp <sn...@snazy.de> Authored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp <sn...@snazy.de> Committed: Tue May 2 16:12:10 2017 -0700 ---------------------------------------------------------------------- .../validation/operations/AggregationTest.java | 46 ++++++++++++++++++++ 1 file changed, 46 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test + public void testJavaAggregateEmpty() throws Throwable + { + createTable("CREATE TABLE %s (a int primary key, b int)"); + + String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + + String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + + assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); + } + + @Test + public void testJavaAggregateStateEmpty() throws Throwable + { + createTable("CREATE TABLE %s (a int primary key, b uuid)"); + + String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map<uuid, int>, type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map<uuid, int> " + + "LANGUAGE java " + + "AS 'return state;'"); + + String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map<uuid, int> " + + "INITCOND {}"); + + assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); + } + + @Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org