You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2015/11/06 20:23:07 UTC

[1/3] cassandra git commit: Improve json2sstable error reporting on nonexistent columns

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 97dc8d525 -> 7fd2eaa72


Improve json2sstable error reporting on nonexistent columns

patch by Paulo Motta; reviewed by Ariel Weisberg for CASSANDRA-10401


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ff9b6bb9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ff9b6bb9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ff9b6bb9

Branch: refs/heads/cassandra-3.0
Commit: ff9b6bb973db7f6ebe650d909d24dcf5aebcfae5
Parents: 2548365
Author: Paulo Motta <pa...@gmail.com>
Authored: Mon Oct 5 15:04:09 2015 -0700
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Fri Nov 6 19:19:13 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                                 | 1 +
 src/java/org/apache/cassandra/tools/SSTableImport.java      | 5 +++++
 test/unit/org/apache/cassandra/tools/SSTableImportTest.java | 9 +++++++++
 3 files changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff9b6bb9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7771969..8ff726e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.12
+ * Improve json2sstable error reporting on nonexistent columns (CASSANDRA-10401)
  * (cqlsh) fix COPY using wrong variable name for time_format (CASSANDRA-10633)
  * Do not run SizeEstimatesRecorder if a node is not a member of the ring (CASSANDRA-9912)
  * Improve handling of dead nodes in gossip (CASSANDRA-10298)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff9b6bb9/src/java/org/apache/cassandra/tools/SSTableImport.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java
index 87d52be..e0f3ef3 100644
--- a/src/java/org/apache/cassandra/tools/SSTableImport.java
+++ b/src/java/org/apache/cassandra/tools/SSTableImport.java
@@ -281,6 +281,11 @@ public class SSTableImport
      */
     public int importJson(String jsonFile, String keyspace, String cf, String ssTablePath) throws IOException
     {
+        if (Schema.instance.getCFMetaData(keyspace, cf) == null)
+            throw new IllegalArgumentException(String.format("Unknown keyspace/table %s.%s",
+                                                             keyspace,
+                                                             cf));
+
         ColumnFamily columnFamily = ArrayBackedSortedColumns.factory.create(keyspace, cf);
         IPartitioner partitioner = DatabaseDescriptor.getPartitioner();
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff9b6bb9/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/tools/SSTableImportTest.java b/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
index a5f05f8..77036e8 100644
--- a/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
+++ b/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
@@ -51,6 +51,15 @@ import org.apache.cassandra.io.sstable.SSTableReader;
 
 public class SSTableImportTest extends SchemaLoader
 {
+    @Test(expected = IllegalArgumentException.class)
+    public void testImportUnknownCf() throws IOException, URISyntaxException
+    {
+        // Import JSON to temp SSTable file
+        String jsonUrl = resourcePath("SimpleCF.json");
+        File tempSS = tempSSTableFile("Keyspace1", "Standard1");
+        new SSTableImport(true).importJson(jsonUrl, "UnknownKeyspace", "UnknownCF", tempSS.getPath());
+    }
+
     @Test
     public void testImportSimpleCf() throws IOException, URISyntaxException
     {


[3/3] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by al...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7fd2eaa7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7fd2eaa7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7fd2eaa7

Branch: refs/heads/cassandra-3.0
Commit: 7fd2eaa727bbacf6a3cea8d41e02e804bf9cdd56
Parents: 97dc8d5 59a3221
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Fri Nov 6 19:22:44 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Fri Nov 6 19:22:44 2015 +0000

----------------------------------------------------------------------

----------------------------------------------------------------------



[2/3] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by al...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/59a32211
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/59a32211
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/59a32211

Branch: refs/heads/cassandra-3.0
Commit: 59a32211a01c6eb2ae694da0161006332a143947
Parents: f8783b7 ff9b6bb
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Fri Nov 6 19:21:28 2015 +0000
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Fri Nov 6 19:21:28 2015 +0000

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../org/apache/cassandra/tools/SSTableImport.java     |  5 +++++
 .../org/apache/cassandra/tools/SSTableImportTest.java | 14 +++++++++++---
 3 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/59a32211/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index f47e1dd,8ff726e..814a924
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,13 -1,5 +1,14 @@@
 -2.1.12
 +2.2.4
 + * (cqlsh) show partial trace if incomplete after max_trace_wait (CASSANDRA-7645)
 + * Use most up-to-date version of schema for system tables (CASSANDRA-10652)
 + * Deprecate memory_allocator in cassandra.yaml (CASSANDRA-10581,10628)
 + * Expose phi values from failure detector via JMX and tweak debug
 +   and trace logging (CASSANDRA-9526)
 + * Fix RangeNamesQueryPager (CASSANDRA-10509)
 + * Deprecate Pig support (CASSANDRA-10542)
 + * Reduce contention getting instances of CompositeType (CASSANDRA-10433)
 +Merged from 2.1:
+  * Improve json2sstable error reporting on nonexistent columns (CASSANDRA-10401)
   * (cqlsh) fix COPY using wrong variable name for time_format (CASSANDRA-10633)
   * Do not run SizeEstimatesRecorder if a node is not a member of the ring (CASSANDRA-9912)
   * Improve handling of dead nodes in gossip (CASSANDRA-10298)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/59a32211/src/java/org/apache/cassandra/tools/SSTableImport.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/59a32211/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/tools/SSTableImportTest.java
index 814662c,77036e8..5eaf154
--- a/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
+++ b/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
@@@ -57,32 -46,20 +57,40 @@@ import org.apache.cassandra.db.columnit
  import org.apache.cassandra.db.filter.QueryFilter;
  import org.apache.cassandra.db.marshal.AsciiType;
  import org.apache.cassandra.db.marshal.BytesType;
 +import org.apache.cassandra.db.marshal.CounterColumnType;
 +import org.apache.cassandra.exceptions.ConfigurationException;
  import org.apache.cassandra.io.sstable.Descriptor;
 -import org.apache.cassandra.io.sstable.SSTableReader;
 +import org.apache.cassandra.locator.SimpleStrategy;
- import org.apache.thrift.TException;
  
 -public class SSTableImportTest extends SchemaLoader
 +public class SSTableImportTest
  {
 +    public static final String KEYSPACE1 = "SSTableImportTest";
 +    public static final String CF_STANDARD = "Standard1";
 +    public static final String CF_COUNTER = "Counter1";
 +    public static final String CQL_TABLE = "table1";
 +
 +    @BeforeClass
 +    public static void defineSchema() throws ConfigurationException
 +    {
 +        SchemaLoader.prepareServer();
 +        SchemaLoader.createKeyspace(KEYSPACE1,
 +                                    SimpleStrategy.class,
 +                                    KSMetaData.optsWithRF(1),
 +                                    SchemaLoader.standardCFMD(KEYSPACE1, CF_STANDARD),
 +                                    SchemaLoader.standardCFMD(KEYSPACE1, CF_COUNTER).defaultValidator(CounterColumnType.instance),
 +                                    SchemaLoader.standardCFMD(KEYSPACE1, "AsciiKeys").keyValidator(AsciiType.instance),
 +                                    CFMetaData.compile("CREATE TABLE table1 (k int PRIMARY KEY, v1 text, v2 int)", KEYSPACE1));
 +    }
 +
+     @Test(expected = IllegalArgumentException.class)
+     public void testImportUnknownCf() throws IOException, URISyntaxException
+     {
+         // Import JSON to temp SSTable file
+         String jsonUrl = resourcePath("SimpleCF.json");
+         File tempSS = tempSSTableFile("Keyspace1", "Standard1");
+         new SSTableImport(true).importJson(jsonUrl, "UnknownKeyspace", "UnknownCF", tempSS.getPath());
+     }
+ 
      @Test
      public void testImportSimpleCf() throws IOException, URISyntaxException
      {
@@@ -250,8 -229,8 +258,8 @@@
      public void shouldRejectEmptyCellNamesForNonCqlTables() throws IOException, URISyntaxException
      {
          String jsonUrl = resourcePath("CQLTable.json");
--        File tempSS = tempSSTableFile("Keyspace1", "Counter1");
--        new SSTableImport(true).importJson(jsonUrl, "Keyspace1", "Counter1", tempSS.getPath());
++        File tempSS = tempSSTableFile(KEYSPACE1, CF_COUNTER);
++        new SSTableImport(true).importJson(jsonUrl, KEYSPACE1, CF_COUNTER, tempSS.getPath());
      }
      
      private static Matcher<UntypedResultSet.Row> withElements(final int key, final String v1, final int v2) {