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 2014/08/07 18:36:22 UTC
[1/3] git commit: Fix potential AssertionError with 2ndary indexes
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 e682ffc47 -> 0c2bbefae
Fix potential AssertionError with 2ndary indexes
patch by slebresne; reviewed by beobal for CASSANDRA-6612
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3970c650
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3970c650
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3970c650
Branch: refs/heads/cassandra-2.1
Commit: 3970c650d43f8b8bb9aa1c153055fd838a9b4bb6
Parents: 6e6a6c3
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Aug 7 18:09:57 2014 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Aug 7 18:23:52 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../db/index/AbstractSimplePerColumnSecondaryIndex.java | 6 ++++++
.../org/apache/cassandra/db/index/SecondaryIndex.java | 10 ++++++++++
.../cassandra/db/index/SecondaryIndexManager.java | 12 +++++-------
4 files changed, 22 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3970c650/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 915aeea..df40933 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.0.10
+ * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
* Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
* Minor leak in sstable2jon (CASSANDRA-7709)
* Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3970c650/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index 8b12575..87e87cb 100644
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@ -55,6 +55,12 @@ public abstract class AbstractSimplePerColumnSecondaryIndex extends PerColumnSec
indexedCfMetadata);
}
+ @Override
+ String indexTypeForGrouping()
+ {
+ return "_internal_";
+ }
+
protected abstract ByteBuffer makeIndexColumnName(ByteBuffer rowKey, Column column);
protected abstract ByteBuffer getIndexedValue(ByteBuffer rowKey, Column column);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3970c650/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
index fda28f0..64266c4 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
@@ -94,6 +94,16 @@ public abstract class SecondaryIndex
*/
abstract public String getIndexName();
+ /**
+ * All internal 2ndary indexes will return "_internal_" for this. Custom
+ * 2ndary indexes will return their class name. This only matter for
+ * SecondaryIndexManager.groupByIndexType.
+ */
+ String indexTypeForGrouping()
+ {
+ // Our internal indexes overwrite this
+ return getClass().getCanonicalName();
+ }
/**
* Return the unique name for this index and column
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3970c650/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
index 2c0d611..a15464a 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
@@ -198,17 +198,15 @@ public class SecondaryIndexManager
if (clause == null || clause.isEmpty())
return false;
- // It doesn't seem a clause can have multiple searchers, but since
- // getIndexSearchersForQuery returns a list ...
List<SecondaryIndexSearcher> searchers = getIndexSearchersForQuery(clause);
if (searchers.isEmpty())
return false;
for (SecondaryIndexSearcher searcher : searchers)
- if (!searcher.isIndexing(clause))
- return false;
+ if (searcher.isIndexing(clause))
+ return true;
- return true;
+ return false;
}
/**
@@ -515,12 +513,12 @@ public class SecondaryIndexManager
if (index == null)
continue;
- Set<ByteBuffer> columns = groupByIndexType.get(index.getClass().getCanonicalName());
+ Set<ByteBuffer> columns = groupByIndexType.get(index.indexTypeForGrouping());
if (columns == null)
{
columns = new HashSet<>();
- groupByIndexType.put(index.getClass().getCanonicalName(), columns);
+ groupByIndexType.put(index.indexTypeForGrouping(), columns);
}
columns.add(ix.column_name);
[3/3] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1
Posted by sl...@apache.org.
Merge branch 'cassandra-2.1.0' into cassandra-2.1
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0c2bbefa
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0c2bbefa
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0c2bbefa
Branch: refs/heads/cassandra-2.1
Commit: 0c2bbefae3186f600cef49e1859c9e56751f3ab5
Parents: e682ffc d8eff03
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Aug 7 18:36:13 2014 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Aug 7 18:36:13 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../db/index/AbstractSimplePerColumnSecondaryIndex.java | 6 ++++++
.../org/apache/cassandra/db/index/SecondaryIndex.java | 10 ++++++++++
.../apache/cassandra/db/index/SecondaryIndexManager.java | 4 ++--
4 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0c2bbefa/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0c2bbefa/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
----------------------------------------------------------------------
[2/3] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0
Posted by sl...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1.0
Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d8eff03d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d8eff03d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d8eff03d
Branch: refs/heads/cassandra-2.1
Commit: d8eff03df0bbfa9066855bc49e18d76f609508a0
Parents: 33de6dc 3970c65
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Aug 7 18:32:36 2014 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Aug 7 18:32:36 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../db/index/AbstractSimplePerColumnSecondaryIndex.java | 6 ++++++
.../org/apache/cassandra/db/index/SecondaryIndex.java | 10 ++++++++++
.../apache/cassandra/db/index/SecondaryIndexManager.java | 4 ++--
4 files changed, 19 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8eff03d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index dfeca21,df40933..26b39e0
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,9 -1,5 +1,10 @@@
-2.0.10
+2.1.0-final
+ * cqlsh DESC CLUSTER fails retrieving ring information (CASSANDRA-7687)
+ * Fix binding null values inside UDT (CASSANDRA-7685)
+ * Fix UDT field selection with empty fields (CASSANDRA-7670)
+ * Bogus deserialization of static cells from sstable (CASSANDRA-7684)
+Merged from 2.0:
+ * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
* Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
* Minor leak in sstable2jon (CASSANDRA-7709)
* Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8eff03d/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index a2011b6,87e87cb..d8c03fb
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@@ -60,20 -55,15 +60,26 @@@ public abstract class AbstractSimplePer
indexedCfMetadata);
}
+ protected AbstractType<?> getIndexKeyComparator()
+ {
+ return columnDef.type;
+ }
+
+ @Override
+ public DecoratedKey getIndexKeyFor(ByteBuffer value)
+ {
+ return new BufferDecoratedKey(new LocalToken(getIndexKeyComparator(), value), value);
+ }
+
+ @Override
+ String indexTypeForGrouping()
+ {
+ return "_internal_";
+ }
+
- protected abstract ByteBuffer makeIndexColumnName(ByteBuffer rowKey, Column column);
+ protected abstract CellName makeIndexColumnName(ByteBuffer rowKey, Cell cell);
- protected abstract ByteBuffer getIndexedValue(ByteBuffer rowKey, Column column);
+ protected abstract ByteBuffer getIndexedValue(ByteBuffer rowKey, Cell cell);
protected abstract AbstractType getExpressionComparator();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8eff03d/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8eff03d/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
index edb9126,a15464a..339af8f
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
@@@ -547,10 -518,10 +547,10 @@@ public class SecondaryIndexManage
if (columns == null)
{
columns = new HashSet<>();
- groupByIndexType.put(index.getClass().getCanonicalName(), columns);
+ groupByIndexType.put(index.indexTypeForGrouping(), columns);
}
- columns.add(ix.column_name);
+ columns.add(ix.column);
}
List<SecondaryIndexSearcher> indexSearchers = new ArrayList<>(groupByIndexType.size());