You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2013/09/19 12:37:25 UTC

[1/5] git commit: Fix sstable2json for CQL3 tables

Updated Branches:
  refs/heads/trunk 0cec93c4f -> 54f41a9f5


Fix sstable2json for CQL3 tables

patch by lyubent; reviewed by slebresne for CASSANDRA-5852


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

Branch: refs/heads/trunk
Commit: a886e34909c313a1c3fa5dff48b77f1cee2c6847
Parents: eb390d0
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Sep 19 11:56:17 2013 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Sep 19 11:56:17 2013 +0200

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++++++++++++++-
 .../org/apache/cassandra/tools/SSTableImport.java    |  7 ++++++-
 3 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c6e1169..f853cce 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -21,6 +21,7 @@
  * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011)
  * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017)
  * Fix memory leak in snapshot repair (CASSANDRA-6047)
+ * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852)
 
 
 1.2.9

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index 33e3f00..4355737 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -995,7 +995,18 @@ public final class CFMetaData
             ByteBuffer[] components = composite.split(columnName);
             for (ColumnDefinition def : column_metadata.values())
             {
-                ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex];
+                ByteBuffer toCompare;
+                if (def.componentIndex == null)
+                {
+                    toCompare = columnName;
+                }
+                else
+                {
+                    if (def.componentIndex >= components.length)
+                        break;
+
+                    toCompare = components[def.componentIndex];
+                }
                 if (def.name.equals(toCompare))
                     return def;
             }
@@ -1007,6 +1018,8 @@ public final class CFMetaData
         }
     }
 
+
+
     public ColumnDefinition getColumnDefinitionForIndex(String indexName)
     {
         for (ColumnDefinition def : column_metadata.values())

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/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 71b1b60..68d4397 100644
--- a/src/java/org/apache/cassandra/tools/SSTableImport.java
+++ b/src/java/org/apache/cassandra/tools/SSTableImport.java
@@ -156,7 +156,7 @@ public class SSTableImport
                 }
 
                 value = isDeleted() ? ByteBufferUtil.hexToBytes((String) fields.get(1))
-                                    : stringAsType((String) fields.get(1), meta.getValueValidator(name.duplicate()));
+                                    : stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name)));
             }
         }
 
@@ -245,6 +245,11 @@ public class SSTableImport
             {
                 cfamily.addAtom(new RangeTombstone(col.getName(), col.getValue(), col.timestamp, col.localExpirationTime));
             }
+            // cql3 row marker, see CASSANDRA-5852
+            else if (!path.columnName.hasRemaining())
+            {
+                cfamily.addColumn(new QueryPath(cfm.cfName, superName, ByteBuffer.wrap(new byte[3])), col.getValue(), col.timestamp);
+            }
             else
             {
                 cfamily.addColumn(path, col.getValue(), col.timestamp);


[4/5] git commit: Fix validation of IN with 2ndary indexes

Posted by sl...@apache.org.
Fix validation of IN with 2ndary indexes

patch by slebresne; reviewed by iamaleskey for CASSANDRA-6050


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

Branch: refs/heads/trunk
Commit: a0abadfdb5721f6f595b6f9e33ed2bf44603d2fe
Parents: 2c316af
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Sep 19 12:35:43 2013 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Sep 19 12:35:43 2013 +0200

----------------------------------------------------------------------
 CHANGES.txt                                         |  1 +
 .../cassandra/cql3/statements/Restriction.java      | 16 ++++++++++++++++
 .../cassandra/cql3/statements/SelectStatement.java  |  7 ++++++-
 3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6003ed2..d101c74 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -25,6 +25,7 @@
  * Paging filter empty rows too agressively (CASSANDRA-6040)
  * Support variadic parameters for IN clauses (CASSANDRA-4210)
  * cqlsh: return the result of CAS writes (CASSANDRA-5796)
+ * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050)
 Merged from 1.2:
  * Avoid second-guessing out-of-space state (CASSANDRA-5605)
  * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/src/java/org/apache/cassandra/cql3/statements/Restriction.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/Restriction.java b/src/java/org/apache/cassandra/cql3/statements/Restriction.java
index 45cc607..3a3aa05 100644
--- a/src/java/org/apache/cassandra/cql3/statements/Restriction.java
+++ b/src/java/org/apache/cassandra/cql3/statements/Restriction.java
@@ -112,6 +112,12 @@ public interface Restriction
             return true;
         }
 
+        // Used when we need to know if it's a IN with just one value before we have
+        // the bind variables. This is ugly and only there for backward compatiblity
+        // because we used to treate IN with 1 value like an EQ and need to preserve
+        // this behavior.
+        public abstract boolean canHaveOnlyOneValue();
+
         public boolean isOnToken()
         {
             return false;
@@ -134,6 +140,11 @@ public interface Restriction
                 return buffers;
             }
 
+            public boolean canHaveOnlyOneValue()
+            {
+                return values.size() == 1;
+            }
+
             @Override
             public String toString()
             {
@@ -158,6 +169,11 @@ public interface Restriction
                 return lval.elements;
             }
 
+            public boolean canHaveOnlyOneValue()
+            {
+                return false;
+            }
+
             @Override
             public String toString()
             {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index c85864f..86dad85 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -1124,7 +1124,12 @@ public class SelectStatement implements CQLStatement
                     case VALUE_ALIAS:
                         throw new InvalidRequestException(String.format("Predicates on the non-primary-key column (%s) of a COMPACT table are not yet supported", name.name));
                     case COLUMN_METADATA:
-                        stmt.metadataRestrictions.put(name, updateRestriction(name, stmt.metadataRestrictions.get(name), rel, names));
+                        // We only all IN on the row key and last clustering key so far, never on non-PK columns, and this even if there's an index
+                        Restriction r = updateRestriction(name, stmt.metadataRestrictions.get(name), rel, names);
+                        if (r.isIN() && !((Restriction.IN)r).canHaveOnlyOneValue())
+                            // Note: for backward compatibility reason, we conside a IN of 1 value the same as a EQ, so we let that slide.
+                            throw new InvalidRequestException(String.format("IN predicates on non-primary-key columns (%s) is not yet supported", name));
+                        stmt.metadataRestrictions.put(name, r);
                         break;
                 }
             }


[2/5] git commit: Update version for 1.2.10 release

Posted by sl...@apache.org.
Update version for 1.2.10 release


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

Branch: refs/heads/trunk
Commit: 937536363a8a6d86ee32fe5ef90653264e67b6c7
Parents: a886e34
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Sep 19 11:59:58 2013 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Sep 19 11:59:58 2013 +0200

----------------------------------------------------------------------
 NEWS.txt         | 9 +++++++++
 build.xml        | 2 +-
 debian/changelog | 6 ++++++
 3 files changed, 16 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/NEWS.txt
----------------------------------------------------------------------
diff --git a/NEWS.txt b/NEWS.txt
index 1f3f675..78c8a4c 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -13,6 +13,15 @@ restore snapshots created with the previous major version using the
 'sstableloader' tool. You can upgrade the file format of your snapshots
 using the provided 'sstableupgrade' tool.
 
+1.2.10
+======
+
+Upgrading
+---------
+    - Nothing specific to this release, but please see 1.2.9 if you are upgrading
+      from a previous version.
+
+
 1.2.9
 =====
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 122759c..74c7374 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
     <property name="debuglevel" value="source,lines,vars"/>
 
     <!-- default version and SCM information -->
-    <property name="base.version" value="1.2.9"/>
+    <property name="base.version" value="1.2.10"/>
     <property name="scm.connection" value="scm:git://git.apache.org/cassandra.git"/>
     <property name="scm.developerConnection" value="scm:git://git.apache.org/cassandra.git"/>
     <property name="scm.url" value="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree"/>

http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/debian/changelog
----------------------------------------------------------------------
diff --git a/debian/changelog b/debian/changelog
index 62ee968..63f75b8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (1.2.10) unstable; urgency=low
+
+  * New release
+
+ -- Sylvain Lebresne <sl...@apache.org>  Thu, 19 Sep 2013 11:58:12 +0200
+
 cassandra (1.2.9) unstable; urgency=low
 
   * New release


[5/5] git commit: Merge branch 'cassandra-2.0' into trunk

Posted by sl...@apache.org.
Merge branch 'cassandra-2.0' into trunk


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

Branch: refs/heads/trunk
Commit: 54f41a9f58414dbb595554ff5b2aa4b98cb7c3ec
Parents: 0cec93c a0abadf
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Sep 19 12:37:17 2013 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Sep 19 12:37:17 2013 +0200

----------------------------------------------------------------------
 CHANGES.txt                                         |  2 ++
 .../org/apache/cassandra/config/CFMetaData.java     | 15 ++++++++++++++-
 .../cassandra/cql3/statements/Restriction.java      | 16 ++++++++++++++++
 .../cassandra/cql3/statements/SelectStatement.java  |  7 ++++++-
 .../org/apache/cassandra/tools/SSTableImport.java   |  7 ++++++-
 5 files changed, 44 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/src/java/org/apache/cassandra/cql3/statements/Restriction.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------


[3/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by sl...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
	NEWS.txt
	build.xml
	debian/changelog


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

Branch: refs/heads/trunk
Commit: 2c316afb2160de703f79d1c163413c7d801b3f1e
Parents: 6e3a241 9375363
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Sep 19 12:28:04 2013 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Sep 19 12:28:04 2013 +0200

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++++++++++++++-
 .../org/apache/cassandra/tools/SSTableImport.java    |  7 ++++++-
 3 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index c218af5,f853cce..6003ed2
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -49,54 -21,14 +49,55 @@@ Merged from 1.2
   * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011)
   * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017)
   * Fix memory leak in snapshot repair (CASSANDRA-6047)
+  * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852)
  
  
 -1.2.9
 +2.0.0
 + * Fix thrift validation when inserting into CQL3 tables (CASSANDRA-5138)
 + * Fix periodic memtable flushing behavior with clean memtables (CASSANDRA-5931)
 + * Fix dateOf() function for pre-2.0 timestamp columns (CASSANDRA-5928)
 + * Fix SSTable unintentionally loads BF when opened for batch (CASSANDRA-5938)
 + * Add stream session progress to JMX (CASSANDRA-4757)
 + * Fix NPE during CAS operation (CASSANDRA-5925)
 +Merged from 1.2:
   * Fix getBloomFilterDiskSpaceUsed for AlwaysPresentFilter (CASSANDRA-5900)
 - * migrate 1.1 schema_columnfamilies.key_alias column to key_aliases
 -   (CASSANDRA-5800)
 - * add --migrate option to sstableupgrade and sstablescrub (CASSANDRA-5831)
 + * Don't announce schema version until we've loaded the changes locally
 +   (CASSANDRA-5904)
 + * Fix to support off heap bloom filters size greater than 2 GB (CASSANDRA-5903)
 + * Properly handle parsing huge map and set literals (CASSANDRA-5893)
 +
 +
 +2.0.0-rc2
 + * enable vnodes by default (CASSANDRA-5869)
 + * fix CAS contention timeout (CASSANDRA-5830)
 + * fix HsHa to respect max frame size (CASSANDRA-4573)
 + * Fix (some) 2i on composite components omissions (CASSANDRA-5851)
 + * cqlsh: add DESCRIBE FULL SCHEMA variant (CASSANDRA-5880)
 +Merged from 1.2:
 + * Correctly validate sparse composite cells in scrub (CASSANDRA-5855)
 + * Add KeyCacheHitRate metric to CF metrics (CASSANDRA-5868)
 + * cqlsh: add support for multiline comments (CASSANDRA-5798)
 + * Handle CQL3 SELECT duplicate IN restrictions on clustering columns
 +   (CASSANDRA-5856)
 +
 +
 +2.0.0-rc1
 + * improve DecimalSerializer performance (CASSANDRA-5837)
 + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690)
 + * fix schema-related trigger issues (CASSANDRA-5774)
 + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138)
 + * Fix assertion error during repair (CASSANDRA-5801)
 + * Fix range tombstone bug (CASSANDRA-5805)
 + * DC-local CAS (CASSANDRA-5797)
 + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819)
 + * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822)
 + * Fix buffer underflow on socket close (CASSANDRA-5792)
 +Merged from 1.2:
 + * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814)
 + * cqlsh: add collections support to COPY (CASSANDRA-5698)
 + * retry important messages for any IOException (CASSANDRA-5804)
 + * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626)
 + * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812)
   * fix bulk-loading compressed sstables (CASSANDRA-5820)
   * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter 
     (CASSANDRA-5824)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/src/java/org/apache/cassandra/tools/SSTableImport.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/SSTableImport.java
index bd74541,68d4397..79584c5
--- a/src/java/org/apache/cassandra/tools/SSTableImport.java
+++ b/src/java/org/apache/cassandra/tools/SSTableImport.java
@@@ -245,12 -243,16 +245,17 @@@ public class SSTableImpor
              }
              else if (col.isRangeTombstone())
              {
 -                cfamily.addAtom(new RangeTombstone(col.getName(), col.getValue(), col.timestamp, col.localExpirationTime));
 +                ByteBuffer end = superName == null ? col.getValue() : CompositeType.build(superName, col.getValue());
 +                cfamily.addAtom(new RangeTombstone(cname, end, col.timestamp, col.localExpirationTime));
              }
+             // cql3 row marker, see CASSANDRA-5852
 -            else if (!path.columnName.hasRemaining())
++            else if (!cname.hasRemaining())
+             {
 -                cfamily.addColumn(new QueryPath(cfm.cfName, superName, ByteBuffer.wrap(new byte[3])), col.getValue(), col.timestamp);
++                cfamily.addColumn(ByteBuffer.wrap(new byte[3]), col.getValue(), col.timestamp);
+             }
              else
              {
 -                cfamily.addColumn(path, col.getValue(), col.timestamp);
 +                cfamily.addColumn(cname, col.getValue(), col.timestamp);
              }
          }
      }