Files
scylladb/test/cql/lwt_batch_validation_test.result
Alejo Sanchez d1521e6721 lwt: validate before constructing metadata
LWT batches conditions can't span multiple tables.
This was detected in batch_statement::validate() called in ::prepare().
But ::cas_result_set_metadata() was built in the constructor,
causing a bitset assert/crash in a reported scenario.
This patch moves validate() to the constructor before building metadata.

Closes #6332

Tested with https://github.com/scylladb/scylla-dtest/pull/1465

Signed-off-by: Alejo Sanchez <alejo.sanchez@scylladb.com>
2020-05-18 10:40:21 +02:00

25 lines
519 B
Plaintext

CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
{
"status" : "ok"
}
USE k;
{
"status" : "ok"
}
CREATE TABLE t1 (userid int PRIMARY KEY);
{
"status" : "ok"
}
CREATE TABLE t2 (userid int PRIMARY KEY);
{
"status" : "ok"
}
BEGIN BATCH
INSERT INTO t1 (userid) VALUES (1) IF NOT EXISTS
INSERT INTO t2 (userid) VALUES (1) IF NOT EXISTS
APPLY BATCH;
{
"message" : "exceptions::invalid_request_exception (BATCH with conditions cannot span multiple tables)",
"status" : "error"
}