cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9186) AbstractType vs. CQL3Type loses frozen keyword
Date Fri, 15 May 2015 08:44:00 GMT


Robert Stupp commented on CASSANDRA-9186:

Should we fix at least the {{signature}} column this for 2.2?

I currently see the following options:
# Fix the whole thing ({{FrozenType}}). But this makes drives fail (at least the Java driver
does not expect {{FrozenType}} around a {{UserType}}) and feels too heavy for 2.2.
# Assume that {{UserType}} + {{TupleType}} are always frozen, introduce {{MulticellUserType}}
and {{MulticellTupleType}} later (if {{AbstractType}} is still alive), fix information in
{{signature}} columns and introduce a {{return_cql_type}} column (so these include the {{frozen}}
keyword). This change is not limited to UDFs - it's a change to the _toString_ of the {{CQL3Type.UserDefined}}.
# Keep it as it is.

I'd prefer option 2.

UDFs do not need to distinguish frozen and non-frozen types. UDFs either receive fully deserialized
collections and tuple/user types and return fully serialized ones. So they are always _frozen_
from UDF / Java driver point of view.

> AbstractType vs. CQL3Type loses frozen keyword
> ----------------------------------------------
>                 Key: CASSANDRA-9186
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Robert Stupp
>            Assignee: Robert Stupp
>            Priority: Minor
>             Fix For: 3.x
> {code}
> create keyspace functionmetadatatest with replication = {'class':'SimpleStrategy', 'replication_factor':1};
> use functionmetadatatest ;
> CREATE TYPE udtx (x int);
> CREATE FUNCTION u_frozen(u frozen<udtx>)RETURNS int LANGUAGE java AS 'return new
> SELECT function_name, signature, argument_types FROM system.schema_functions WHERE keyspace_name='functionmetadatatest';
>  function_name | signature        | argument_types
> ---------------+------------------+--------------------------------------------------------------------------------------------------------------------------
>       u_frozen |         ['udtx'] | ['org.apache.cassandra.db.marshal.UserType(functionmetadatatest,75647478,78:org.apache.cassandra.db.marshal.Int32Type)']
> {code}
> Problem is that {{UserType}} and {{TupleType}} do not have a _frozen_ (or _isMultiCell_)
attribute. A conversion from type to cql3type therefore loses the _frozen_ status.
> EDIT: The issue has been discovered by [~aholmber]

This message was sent by Atlassian JIRA

View raw message