Repository: cassandra Updated Branches: refs/heads/trunk 76c4841b3 -> 945a4192d
Unable to create a function with argument of type Inet patch by Robert Stupp; reviewed by T Jake Luciani for CASSANDRA-10741 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d425fe49 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d425fe49 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d425fe49 Branch: refs/heads/trunk Commit: d425fe496a3ebe921baee8a7ac7040e5bfb36db3 Parents: 49d9e51 Author: Robert Stupp <[email protected]> Authored: Mon Nov 23 16:47:08 2015 +0100 Committer: Robert Stupp <[email protected]> Committed: Mon Nov 23 16:47:08 2015 +0100 ---------------------------------------------------------------------- .../cql3/validation/entities/UFTest.java | 44 ++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d425fe49/test/unit/org/apache/cassandra/cql3/validation/entities/UFTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/cql3/validation/entities/UFTest.java b/test/unit/org/apache/cassandra/cql3/validation/entities/UFTest.java index 673ccc3..25566ad 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/entities/UFTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/entities/UFTest.java @@ -34,15 +34,20 @@ import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; -import com.datastax.driver.core.*; +import com.datastax.driver.core.DataType; +import com.datastax.driver.core.Row; +import com.datastax.driver.core.TupleType; +import com.datastax.driver.core.TupleValue; +import com.datastax.driver.core.UDTValue; import com.datastax.driver.core.exceptions.InvalidQueryException; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.cql3.CQL3Type; +import org.apache.cassandra.cql3.CQLTester; import org.apache.cassandra.cql3.QueryProcessor; import org.apache.cassandra.cql3.UntypedResultSet; import org.apache.cassandra.cql3.functions.FunctionName; import org.apache.cassandra.cql3.functions.Functions; import org.apache.cassandra.cql3.functions.UDFunction; -import org.apache.cassandra.cql3.CQLTester; import org.apache.cassandra.db.marshal.CollectionType; import org.apache.cassandra.dht.ByteOrderedPartitioner; import org.apache.cassandra.exceptions.FunctionExecutionException; @@ -2584,7 +2589,7 @@ public class UFTest extends CQLTester "LANGUAGE JAVA\n" + "AS 'return val;'"); - String fNameICN = createFunction(KEYSPACE_PER_TEST, "blob", + String fNameICN = createFunction(KEYSPACE_PER_TEST, "int", "CREATE OR REPLACE FUNCTION %s(val int) " + "RETURNS NULL ON NULL INPUT " + "RETURNS int " + @@ -2608,4 +2613,37 @@ public class UFTest extends CQLTester assertRows(execute("SELECT " + fNameICC + "(empty_int) FROM %s"), row(0)); assertRows(execute("SELECT " + fNameICN + "(empty_int) FROM %s"), row(new Object[]{null})); } + + @Test + public void testAllNativeTypes() throws Throwable + { + StringBuilder sig = new StringBuilder(); + StringBuilder args = new StringBuilder(); + for (CQL3Type.Native type : CQL3Type.Native.values()) + { + if (sig.length() > 0) + sig.append(','); + sig.append(type.toString()); + + if (args.length() > 0) + args.append(','); + args.append("arg").append(type.toString()).append(' ').append(type.toString()); + } + createFunction(KEYSPACE, sig.toString(), + "CREATE OR REPLACE FUNCTION %s(" + args + ") " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE JAVA\n" + + "AS 'return 0;'"); + + for (CQL3Type.Native type : CQL3Type.Native.values()) + { + createFunction(KEYSPACE_PER_TEST, type.toString(), + "CREATE OR REPLACE FUNCTION %s(val " + type.toString() + ") " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE JAVA\n" + + "AS 'return 0;'"); + } + } }
