cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefania (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-11274) cqlsh: interpret CQL type for formatting blob types
Date Tue, 01 Mar 2016 01:50:20 GMT


Stefania commented on CASSANDRA-11274:

This is ready for review [~aholmber]:

|[patch|]|[dtests patch|]|[dtests

The code is similar to what you already reviewed for CASSANDRA-11053 but it has been extended
to cope better with user types so that we no longer override {{UserType.udt_apply_parameters}}
and {{UserType.make_udt_class}}. The parsing of the CQL type string has been encapsulated
in a class called {{CqlType}} and defined in the formatting package. It is the same basic
algorithm as before except that we use recursion to better represent sub-types and for user
types we get the sub-type names from the keyspace metadata.

There is still one driver deserialization method that is overridden by cqlsh: {{cassandra.cqltypes.DateType.deserialize}}.
This has nothing to do with formatting and so I did not change it. Will this cause us problems
when running the driver with cython extensions?

> cqlsh: interpret CQL type for formatting blob types
> ---------------------------------------------------
>                 Key: CASSANDRA-11274
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Stefania
>            Assignee: Stefania
>             Fix For: 3.x
> During the development of CASSANDRA-11053 we have added changes to the cqlsh formatting
code so that we can format {{blob}} types correctly even if they are represented as {{str}}
rather than {{bytearray}}.
> At the moment we ensure {{blob}} are of type {{bytearray}} via the following shortcut:
> {code}
> cassandra.cqltypes.BytesType.deserialize = staticmethod(lambda byts, protocol_version:
> {code}
> After CASSANDRA-11053 is committed there will be a similar shortcut to override the fast
serializers implemented in cython. 
> Decoding the CQL type is safer in that it decouples cqlsh formatting from the types returned
by the driver deserializers but it is also unnecessary for CASSANDRA-11053 performance goals
and risky for older releases. 
> Therefore this ticket delivers this functionality but only on trunk.

This message was sent by Atlassian JIRA

View raw message