[
https://issues.apache.org/jira/browse/CASSANDRA-9400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14567513#comment-14567513
]
Sam Tunnicliffe commented on CASSANDRA-9400:
--------------------------------------------
We should wait for
[JAVA-404|https://datastax-oss.atlassian.net/browse/JAVA-404] to be committed
before incorporating the custom jar, just in case of further changes on the
driver side. In the meantime, I've a few remarks on the patch:
* adding support for the new types in {{CqlRecordReader}} should probably be
broken out into a separate ticket. But if we're going to shoehorn it in here,
can we look at improving the coverage of {{CqlRecordReaderTest}} to check all
the supported datatypes.
* can we now enable {{UFTest#testFunctionExecutionExceptionNet}}? As with the
previous comment, maybe we ought to make that a separate ticket but I'd be ok
with doing it here.
* the new {{UFTest#testTypesWithAndWithoutNulls}} is pretty hard to follow. It
would add a bit of boilerplate, but perhaps adding a simple struct and making
{{typeDefs}} an array of those would make the test more readable.
* the {{maxProtocolVersion}} logic in CQLTester is already incorrect and this
(temporary) hack to skip v4 while driver support is incomplete doesn't help
much.
It's incorrect in 2.2/trunk because if {{Server.CURRENT_VERSION}} *is*
supported by the driver, then the {{IllegalArgumentException}} is never thrown,
so we don't break out of the loop and {{version}} will end up being incremented
once too many times. How about this alternative:
{code}
static
{
int version = Server.CURRENT_VERSION;
while(version >= Server.VERSION_1)
{
try
{
ProtocolVersion.fromInt(version);
break;
}
catch (IllegalArgumentException e)
{
version--;
}
}
maxProtocolVersion = version;
//TODO java-driver as of C* 2.2rc1 has incomplete V4 implementation -
so skip V4 for now
maxProtocolVersion = Math.min(Server.VERSION_3, version);
{code}
We could either remove the last assignment when driver v4 support is complete,
or just initialise {{version}} to {{VERSION_3}}. I slightly favour the way it's
done above as it's more explicit.
> smallint, tinyint, date + time types in UDFs
> --------------------------------------------
>
> Key: CASSANDRA-9400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9400
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Robert Stupp
> Assignee: Robert Stupp
> Fix For: 2.2.0 rc1
>
> Attachments: 9400.txt
>
>
> Cassandra 2.2 adds new types {{smallint}}, {{tinyint, {{date}} + {{time}}.
> However the bundled Java driver does not support them.
> There are two options:
> # Do not allow the new types {{smallint}}, {{tinyint}}, {{date}} + {{time}}
> for UDFs
> # Use a new Java Driver version that can handle these types.
> Probably we should go with option 1 and update the driver in a 2.2.x release?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)