You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefania (JIRA)" <ji...@apache.org> on 2016/09/12 07:51:21 UTC

[jira] [Commented] (CASSANDRA-11534) cqlsh fails to format collections when using aliases

    [ https://issues.apache.org/jira/browse/CASSANDRA-11534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15483402#comment-15483402 ] 

Stefania commented on CASSANDRA-11534:
--------------------------------------

Thank you for your analysis [~arunkumar]. It is correct, the problem was introduced by CASSANDRA-11274 and it only affects trunk (versions 3.6+).

As far as I could see, there is no way to map a column alias to the original column name once the result set is received. So the only way to fix this, short of reverting 11274, is to add the CQL types to the result set, for which we need to change the python driver. Here is a [patch|https://github.com/stef1927/python-driver/commits/11534] for the driver, I can create a pull request if you agree [~aholmber].

Once the bundled driver is updated, we can then apply this patch to cqlsh:

|[patch|https://github.com/stef1927/cassandra/commits/11534-cqlsh]|[cqlsh tests|http://cassci.datastax.com/view/Dev/view/stef1927/job/stef1927-11534-cqlsh-cqlsh-tests/]|


> cqlsh fails to format collections when using aliases
> ----------------------------------------------------
>
>                 Key: CASSANDRA-11534
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11534
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Robert Stupp
>            Assignee: Stefania
>            Priority: Minor
>
> Given is a simple table. Selecting the columns without an alias works fine. However, if the map is selected using an alias, cqlsh fails to format the value.
> {code}
> create keyspace foo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
> CREATE TABLE foo.foo (id int primary key, m map<int, text>);
> insert into foo.foo (id, m) VALUES ( 1, {1: 'one', 2: 'two', 3:'three'});
> insert into foo.foo (id, m) VALUES ( 2, {1: '1one', 2: '2two', 3:'3three'});
> cqlsh> select id, m from foo.foo;
>  id | m
> ----+-------------------------------------
>   1 |    {1: 'one', 2: 'two', 3: 'three'}
>   2 | {1: '1one', 2: '2two', 3: '3three'}
> (2 rows)
> cqlsh> select id, m as "weofjkewopf" from foo.foo;
>  id | weofjkewopf
> ----+-----------------------------------------------------------------------
>   1 |    OrderedMapSerializedKey([(1, u'one'), (2, u'two'), (3, u'three')])
>   2 | OrderedMapSerializedKey([(1, u'1one'), (2, u'2two'), (3, u'3three')])
> (2 rows)
> Failed to format value OrderedMapSerializedKey([(1, u'one'), (2, u'two'), (3, u'three')]) : 'NoneType' object has no attribute 'sub_types'
> Failed to format value OrderedMapSerializedKey([(1, u'1one'), (2, u'2two'), (3, u'3three')]) : 'NoneType' object has no attribute 'sub_types'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)