Author: jbellis
Date: Mon Jul 6 20:07:52 2009
New Revision: 791598
URL: http://svn.apache.org/viewvc?rev=791598&view=rev
Log:
disallow specifying ColumnSort on supercolumns. patch by jbellis; reviewed by
Evan Weaver for CASSANDRA-251
Modified:
incubator/cassandra/trunk/conf/storage-conf.xml
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
incubator/cassandra/trunk/test/conf/storage-conf.xml
Modified: incubator/cassandra/trunk/conf/storage-conf.xml
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/conf/storage-conf.xml?rev=791598&r1=791597&r2=791598&view=diff
==============================================================================
--- incubator/cassandra/trunk/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/conf/storage-conf.xml Mon Jul 6 20:07:52 2009
@@ -30,6 +30,11 @@
(ColumnFamilies are closer in meaning to those.)
There is an implicit table named 'system' for Cassandra internals.
+
+ The default ColumnSort is Time for standard column families.
+ For super column families, specifying ColumnSort is not supported;
+ the supercolumns themselves are always name-sorted and their
subcolumns
+ are always time-sorted.
-->
<Tables>
<Table Name="Table1">
@@ -51,7 +56,7 @@
<ColumnFamily ColumnSort="Name" Name="Standard1"
FlushPeriodInMinutes="60"/>
<ColumnFamily ColumnSort="Name" Name="Standard2"/>
<ColumnFamily ColumnSort="Time" Name="StandardByTime1"/>
- <ColumnFamily ColumnType="Super" ColumnSort="Name" Name="Super1"/>
+ <ColumnFamily ColumnType="Super" Name="Super1"/>
</Table>
</Tables>
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=791598&r1=791597&r2=791598&view=diff
==============================================================================
---
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
(original)
+++
incubator/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
Mon Jul 6 20:07:52 2009
@@ -350,9 +350,13 @@
{
throw new ConfigurationException("invalid column sort
value " + rawColumnIndexType);
}
- if ("Super".equals(columnType) &&
!"Name".equals(columnIndexType))
+ if ("Super".equals(columnType))
{
- throw new ConfigurationException("Super columnfamilies
may only be name-sorted");
+ if (rawColumnIndexType != null)
+ {
+ throw new ConfigurationException("Super
columnfamilies are always name-sorted, and their subcolumns are always
time-sorted. You may not specify the ColumnSort attribute on a SuperColumn.");
+ }
+ columnIndexType = "Name";
}
// see if flush period is set
Modified: incubator/cassandra/trunk/test/conf/storage-conf.xml
URL:
http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/conf/storage-conf.xml?rev=791598&r1=791597&r2=791598&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/conf/storage-conf.xml (original)
+++ incubator/cassandra/trunk/test/conf/storage-conf.xml Mon Jul 6 20:07:52
2009
@@ -45,8 +45,8 @@
<ColumnFamily ColumnSort="Name" Name="Standard2"/>
<ColumnFamily ColumnSort="Time" Name="StandardByTime1"/>
<ColumnFamily ColumnSort="Time" Name="StandardByTime2"/>
- <ColumnFamily ColumnType="Super" ColumnSort="Name" Name="Super1"/>
- <ColumnFamily ColumnType="Super" ColumnSort="Name" Name="Super2"/>
+ <ColumnFamily ColumnType="Super" Name="Super1"/>
+ <ColumnFamily ColumnType="Super" Name="Super2"/>
</Table>
<Table Name = "Table2">
<ColumnFamily ColumnSort="Name" Name="Standard1"/>