diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java index c03548bb4e..6a1201b134 100644 --- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java @@ -128,6 +128,8 @@ public class BatchStatement implements CQLStatement, MeasurableForPreparedCache { if (timestampSet && statement.isTimestampSet()) throw new InvalidRequestException("Timestamp must be set either on BATCH or individual statements"); + + statement.validate(state); } } diff --git a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java index 526a26c7fa..f8c40424b7 100644 --- a/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java @@ -155,7 +155,7 @@ public abstract class ModificationStatement implements CQLStatement, MeasurableF public void validate(ClientState state) throws InvalidRequestException { if (hasConditions() && attrs.isTimestampSet()) - throw new InvalidRequestException("Custom timestamps are not allowed when conditions are used"); + throw new InvalidRequestException("Cannot provide custom timestamp for conditional update"); if (isCounter()) { @@ -765,9 +765,6 @@ public abstract class ModificationStatement implements CQLStatement, MeasurableF if (stmt.isCounter()) throw new InvalidRequestException("Conditional updates are not supported on counter tables"); - if (attrs.timestamp != null) - throw new InvalidRequestException("Cannot provide custom timestamp for conditional update"); - if (ifNotExists) { // To have both 'IF NOT EXISTS' and some other conditions doesn't make sense.