[ https://issues.apache.org/jira/browse/CASSANDRA-8358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14529704#comment-14529704 ]
Stefania commented on CASSANDRA-8358: ------------------------------------- At least on my CASSANDRA-7066 branch just rebased from trunk today, *test_basic_snapshot_and_restore* in *snapshot_test.py* got broken by a missing "is_dense" in the query used by NativeSSTableLoaderClient.fetchTablesMetadata(). This diff fixes the test: {code} diff --git a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java index 1ef686c..5b46700 100644 --- a/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java +++ b/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java @@ -100,7 +100,7 @@ public class NativeSSTableLoaderClient extends SSTableLoader.Client { Map<String, CFMetaData> tables = new HashMap<>(); - String query = String.format("SELECT columnfamily_name, cf_id, type, comparator, subcomparator FROM %s.%s WHERE keyspace_name = '%s'", + String query = String.format("SELECT columnfamily_name, cf_id, type, comparator, subcomparator, is_dense FROM %s.%s WHERE keyspace_name = '%s'", SystemKeyspace.NAME, LegacySchemaTables.COLUMNFAMILIES, keyspace); {code} > Bundled tools shouldn't be using Thrift API > ------------------------------------------- > > Key: CASSANDRA-8358 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8358 > Project: Cassandra > Issue Type: Improvement > Reporter: Aleksey Yeschenko > Assignee: Philip Thompson > Fix For: 3.0 > > Attachments: 8358-fix.patch > > > In 2.1, we switched cqlsh to the python-driver. > In 3.0, we got rid of cassandra-cli. > Yet there is still code that's using legacy Thrift API. We want to convert it > all to use the java-driver instead. > 1. BulkLoader uses Thrift to query the schema tables. It should be using > java-driver metadata APIs directly instead. > 2. o.a.c.hadoop.cql3.CqlRecordWriter is using Thrift > 3. o.a.c.hadoop.ColumnFamilyRecordReader is using Thrift > 4. o.a.c.hadoop.AbstractCassandraStorage is using Thrift > 5. o.a.c.hadoop.pig.CqlStorage is using Thrift > Some of the things listed above use Thrift to get the list of partition key > columns or clustering columns. Those should be converted to use the Metadata > API of the java-driver. > Somewhat related to that, we also have badly ported code from Thrift in > o.a.c.hadoop.cql3.CqlRecordReader (see fetchKeys()) that manually fetches > columns from schema tables instead of properly using the driver's Metadata > API. > We need all of it fixed. One exception, for now, is > o.a.c.hadoop.AbstractColumnFamilyInputFormat - it's using Thrift for its > describe_splits_ex() call that cannot be currently replaced by any > java-driver call (?). > Once this is done, we can stop starting Thrift RPC port by default in > cassandra.yaml. -- This message was sent by Atlassian JIRA (v6.3.4#6332)