You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bl...@apache.org on 2015/08/20 13:55:35 UTC

[1/3] cassandra git commit: Check column names in IN restrictions

Repository: cassandra
Updated Branches:
  refs/heads/trunk b10c00b28 -> 0edf54777


Check column names in IN restrictions

patch by Benjamin Lerer; reviewed by Robert Stupp  for CASSANDRA-10043


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

Branch: refs/heads/trunk
Commit: 62fc314c582e9f218987e96c79db6c1aa0ba6c1e
Parents: de2e0a6
Author: blerer <be...@datastax.com>
Authored: Thu Aug 20 13:45:54 2015 +0200
Committer: blerer <be...@datastax.com>
Committed: Thu Aug 20 13:45:54 2015 +0200

----------------------------------------------------------------------
 .../cassandra/cql3/SingleColumnRelation.java       |  2 +-
 .../org/apache/cassandra/cql3/TokenRelation.java   |  2 +-
 .../operations/SelectMultiColumnRelationTest.java  | 12 ++++++++++++
 .../operations/SelectOrderedPartitionerTest.java   | 10 ++++++++++
 .../operations/SelectSingleColumnRelationTest.java | 17 +++++++++++++++++
 5 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/62fc314c/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java b/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
index c4c48aa..b206631 100644
--- a/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
+++ b/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
@@ -153,7 +153,7 @@ public final class SingleColumnRelation extends Relation
     protected Restriction newINRestriction(CFMetaData cfm,
                                            VariableSpecifications boundNames) throws InvalidRequestException
     {
-        ColumnDefinition columnDef = cfm.getColumnDefinition(getEntity().prepare(cfm));
+        ColumnDefinition columnDef = toColumnDefinition(cfm, entity);
         List<? extends ColumnSpecification> receivers = toReceivers(columnDef);
         List<Term> terms = toTerms(receivers, inValues, cfm.ksName, boundNames);
         if (terms == null)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/62fc314c/src/java/org/apache/cassandra/cql3/TokenRelation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/TokenRelation.java b/src/java/org/apache/cassandra/cql3/TokenRelation.java
index 5896fae..46a812c 100644
--- a/src/java/org/apache/cassandra/cql3/TokenRelation.java
+++ b/src/java/org/apache/cassandra/cql3/TokenRelation.java
@@ -109,7 +109,7 @@ public final class TokenRelation extends Relation
     @Override
     public String toString()
     {
-        return String.format("token(%s) %s %s", Tuples.tupleToString(entities), relationType, value);
+        return String.format("token%s %s %s", Tuples.tupleToString(entities), relationType, value);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/62fc314c/test/unit/org/apache/cassandra/cql3/validation/operations/SelectMultiColumnRelationTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectMultiColumnRelationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectMultiColumnRelationTest.java
index 84343a7..b3232d5 100644
--- a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectMultiColumnRelationTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectMultiColumnRelationTest.java
@@ -1011,4 +1011,16 @@ public class SelectMultiColumnRelationTest extends CQLTester
                    row(0, 0, 2, 2, 2),
                    row(0, 0, 3, 3, 3));
     }
+
+    @Test
+    public void testInvalidColumnNames() throws Throwable
+    {
+        createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY (a, b, c))");
+        assertInvalidMessage("Undefined name e in where clause ('(b, e) = (0, 0)')", "SELECT * FROM %s WHERE (b, e) = (0, 0)");
+        assertInvalidMessage("Undefined name e in where clause ('(b, e) IN ((0, 1), (2, 4))')", "SELECT * FROM %s WHERE (b, e) IN ((0, 1), (2, 4))");
+        assertInvalidMessage("Undefined name e in where clause ('(b, e) > (0, 1)')", "SELECT * FROM %s WHERE (b, e) > (0, 1) and b <= 2");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('(b, e) = (0, 0)')", "SELECT c AS e FROM %s WHERE (b, e) = (0, 0)");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('(b, e) IN ((0, 1), (2, 4))')", "SELECT c AS e FROM %s WHERE (b, e) IN ((0, 1), (2, 4))");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('(b, e) > (0, 1)')", "SELECT c AS e FROM %s WHERE (b, e) > (0, 1) and b <= 2");
+    }
  }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/62fc314c/test/unit/org/apache/cassandra/cql3/validation/operations/SelectOrderedPartitionerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectOrderedPartitionerTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectOrderedPartitionerTest.java
index 5152ba9..2ffa15d 100644
--- a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectOrderedPartitionerTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectOrderedPartitionerTest.java
@@ -478,4 +478,14 @@ public class SelectOrderedPartitionerTest extends CQLTester
 
         assertInvalid("SELECT * FROM %s WHERE k >= -1 AND k < 1");
     }
+
+    @Test
+    public void testTokenFunctionWithInvalidColumnNames() throws Throwable
+    {
+        createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY ((a, b), c))");
+        assertInvalidMessage("Undefined name e in where clause ('token(a, e) = token(0, 0)')", "SELECT * FROM %s WHERE token(a, e) = token(0, 0)");
+        assertInvalidMessage("Undefined name e in where clause ('token(a, e) > token(0, 1)')", "SELECT * FROM %s WHERE token(a, e) > token(0, 1)");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('token(a, e) = token(0, 0)')", "SELECT b AS e FROM %s WHERE token(a, e) = token(0, 0)");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('token(a, e) > token(0, 1)')", "SELECT b AS e FROM %s WHERE token(a, e) > token(0, 1)");
+    }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/62fc314c/test/unit/org/apache/cassandra/cql3/validation/operations/SelectSingleColumnRelationTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectSingleColumnRelationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectSingleColumnRelationTest.java
index f1bce45..31a84e4 100644
--- a/test/unit/org/apache/cassandra/cql3/validation/operations/SelectSingleColumnRelationTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/operations/SelectSingleColumnRelationTest.java
@@ -588,4 +588,21 @@ public class SelectSingleColumnRelationTest extends CQLTester
         assertInvalidMessage("Multi-column relations can only be applied to clustering columns but was applied to: a",
                              "SELECT * FROM %s WHERE (a, b) >= (1, 1) and a = 1");
     }
+
+    @Test
+    public void testInvalidColumnNames() throws Throwable
+    {
+        createTable("CREATE TABLE %s (a int, b int, c map<int, int>, PRIMARY KEY (a, b))");
+        assertInvalidMessage("Undefined name d in where clause ('d = 0')", "SELECT * FROM %s WHERE d = 0");
+        assertInvalidMessage("Undefined name d in where clause ('d IN [0, 1]')", "SELECT * FROM %s WHERE d IN (0, 1)");
+        assertInvalidMessage("Undefined name d in where clause ('d > 0')", "SELECT * FROM %s WHERE d > 0 and d <= 2");
+        assertInvalidMessage("Undefined name d in where clause ('d CONTAINS 0')", "SELECT * FROM %s WHERE d CONTAINS 0");
+        assertInvalidMessage("Undefined name d in where clause ('d CONTAINS KEY 0')", "SELECT * FROM %s WHERE d CONTAINS KEY 0");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('d = 0')", "SELECT a AS d FROM %s WHERE d = 0");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('d IN [0, 1]')", "SELECT b AS d FROM %s WHERE d IN (0, 1)");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('d > 0')", "SELECT b AS d FROM %s WHERE d > 0 and d <= 2");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('d CONTAINS 0')", "SELECT c AS d FROM %s WHERE d CONTAINS 0");
+        assertInvalidMessage("Aliases aren't allowed in the where clause ('d CONTAINS KEY 0')", "SELECT c AS d FROM %s WHERE d CONTAINS KEY 0");
+        assertInvalidMessage("Undefined name d in selection clause", "SELECT d FROM %s WHERE a = 0");
+    }
 }


[3/3] cassandra git commit: Merge remote-tracking branch 'asf/cassandra-3.0' into trunk

Posted by bl...@apache.org.
Merge remote-tracking branch 'asf/cassandra-3.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/0edf5477
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0edf5477
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0edf5477

Branch: refs/heads/trunk
Commit: 0edf54777ad18e3729c95552f5276016e00583a4
Parents: b10c00b be2c26f
Author: blerer <be...@datastax.com>
Authored: Thu Aug 20 13:55:04 2015 +0200
Committer: blerer <be...@datastax.com>
Committed: Thu Aug 20 13:55:04 2015 +0200

----------------------------------------------------------------------
 .../cassandra/cql3/SingleColumnRelation.java       |  2 +-
 .../org/apache/cassandra/cql3/TokenRelation.java   |  2 +-
 .../operations/SelectMultiColumnRelationTest.java  | 12 ++++++++++++
 .../operations/SelectOrderedPartitionerTest.java   | 10 ++++++++++
 .../operations/SelectSingleColumnRelationTest.java | 17 +++++++++++++++++
 5 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



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

Posted by bl...@apache.org.
Merge 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/be2c26f1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be2c26f1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be2c26f1

Branch: refs/heads/trunk
Commit: be2c26f183b6ef9c606fab83342fff026054f5a3
Parents: c997c08 62fc314
Author: blerer <be...@datastax.com>
Authored: Thu Aug 20 13:52:27 2015 +0200
Committer: blerer <be...@datastax.com>
Committed: Thu Aug 20 13:53:30 2015 +0200

----------------------------------------------------------------------
 .../cassandra/cql3/SingleColumnRelation.java       |  2 +-
 .../org/apache/cassandra/cql3/TokenRelation.java   |  2 +-
 .../operations/SelectMultiColumnRelationTest.java  | 12 ++++++++++++
 .../operations/SelectOrderedPartitionerTest.java   | 10 ++++++++++
 .../operations/SelectSingleColumnRelationTest.java | 17 +++++++++++++++++
 5 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/be2c26f1/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
index 885a2e2,b206631..c848b9e
--- a/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
+++ b/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java
@@@ -153,8 -153,8 +153,8 @@@ public final class SingleColumnRelatio
      protected Restriction newINRestriction(CFMetaData cfm,
                                             VariableSpecifications boundNames) throws InvalidRequestException
      {
-         ColumnDefinition columnDef = cfm.getColumnDefinition(getEntity().prepare(cfm));
+         ColumnDefinition columnDef = toColumnDefinition(cfm, entity);
 -        List<? extends ColumnSpecification> receivers = toReceivers(columnDef);
 +        List<? extends ColumnSpecification> receivers = toReceivers(columnDef, cfm.isDense());
          List<Term> terms = toTerms(receivers, inValues, cfm.ksName, boundNames);
          if (terms == null)
          {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be2c26f1/src/java/org/apache/cassandra/cql3/TokenRelation.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be2c26f1/test/unit/org/apache/cassandra/cql3/validation/operations/SelectOrderedPartitionerTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be2c26f1/test/unit/org/apache/cassandra/cql3/validation/operations/SelectSingleColumnRelationTest.java
----------------------------------------------------------------------