[ 
https://issues.apache.org/jira/browse/CASSANDRA-12335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-12335:
-----------------------------------------
    Attachment: 0001-Force-super-column-families-to-be-compound.txt

I'll add that what's above is a bit of work, I'm out for 3 weeks at the end of 
this week, and there is other tickets/reviews that needs my attention until 
then, so there is no change I can have a full patch for this till then, and I'm 
gonna remove myself as assignee to make that clear (I can still pick it up when 
back if no progress has been made).

With that said, the very first thing I mentioned, forcing {{compound}} on 
upgrade, is very trivial, and it would prevent future upgrade to write bad 
things on disk, so I think we should commit that ASAP and I'm attaching the 
trivial patch. As said above, it at least fixes the thrift side of things for 
new upgrades.

> Super columns are broken after upgrading to 3.0
> -----------------------------------------------
>
>                 Key: CASSANDRA-12335
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12335
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Jeremiah Jordan
>            Assignee: Sylvain Lebresne
>             Fix For: 3.0.x, 3.x
>
>         Attachments: 0001-Force-super-column-families-to-be-compound.txt
>
>
> Super Columns are broken after upgrading to cassandra-3.0 HEAD.  The below 
> script shows this.
> 2.1 cli output for get:
> {code}
> [default@test] get Sites[utf8('Bob')][utf8('attr')]['name'] as utf8;
> => (name=name, value=Bob, timestamp=1469724504357000)
> {code}
> cqlsh:
> {code}
> [default@test]
>  key          | blobAsText(column1)
> --------------+---------------------
>  0x53696d6f6e |                attr
>      0x426f62 |                attr
> {code}
> 3.0 cli:
> {code}
> [default@unknown] use test;
> unconfigured table schema_columnfamilies
> [default@test] get Sites[utf8('Bob')][utf8('attr')]['name'] as utf8;
> null
> [default@test]
> {code}
> cqlsh:
> {code}
>  key          | system.blobastext(column1)
> --------------+----------------------------------
>  0x53696d6f6e | \x00\x04attr\x00\x00\x04name\x00
>      0x426f62 | \x00\x04attr\x00\x00\x04name\x00
> {code}
> Run this from a directory with cassandra-3.0 checked out and compiled
> {code}
> ccm create -n 2 -v 2.1.14 testsuper
> echo "####################### Starting 2.1 #######################"
> ccm start
> MYFILE=`mktemp`
> echo "create keyspace test with placement_strategy = 
> 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = 
> {replication_factor:2};
> use test;
> create column family Sites with column_type = 'Super' and comparator = 
> 'BytesType' and subcomparator='UTF8Type';
> set Sites[utf8('Simon')][utf8('attr')]['name'] = utf8('Simon');
> set Sites[utf8('Bob')][utf8('attr')]['name'] = utf8('Bob');
> get Sites[utf8('Bob')][utf8('attr')]['name'] as utf8;" > $MYFILE
> ~/.ccm/repository/2.1.14/bin/cassandra-cli < $MYFILE
> rm $MYFILE
> ~/.ccm/repository/2.1.14/bin/nodetool -p 7100 flush
> ~/.ccm/repository/2.1.14/bin/nodetool -p 7200 flush
> ccm stop
> # run from cassandra-3.0 checked out and compiled
> ccm setdir
> echo "####################### Starting Current Directory 
> #######################"
> ccm start
> ./bin/nodetool -p 7100 upgradesstables
> ./bin/nodetool -p 7200 upgradesstables
> ./bin/nodetool -p 7100 enablethrift
> ./bin/nodetool -p 7200 enablethrift
> MYFILE=`mktemp`
> echo "use test;
> get Sites[utf8('Bob')][utf8('attr')]['name'] as utf8;" > $MYFILE
> ~/.ccm/repository/2.1.14/bin/cassandra-cli < $MYFILE
> rm $MYFILE
> {code}



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

Reply via email to