-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TableSpecDiffersAcrossColumns when preparing a batch #1134
Comments
This is a serious regression. I suggest releasing 0.15.1 containing the fix. WDYT @Lorak-mmk @dkropachev? |
I agree |
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 2, 2024
As noted in scylladb#1134, when preparing batches containing requests to multiple to different tables, the PreparedMetadata received upon preparation contains differing TableSpecs (i.e., TableSpecs with more than table mentioned). This fails the check that we introduced with ResultMetadata in mind: we've been assuming that all TableSpecs are the same, because ScyllaDB/ Cassandra has no support for JOINs. Not to fail preparation of cross-table batches, the check is now only turned on for ResultMetadata and turned off for PreparedMetadata.
6 tasks
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 2, 2024
As noted in scylladb#1134, when preparing batches containing requests to multiple to different tables, the PreparedMetadata received upon preparation contains differing TableSpecs (i.e., TableSpecs with more than table mentioned). This fails the check that we introduced with ResultMetadata in mind: we've been assuming that all TableSpecs are the same, because ScyllaDB/ Cassandra has no support for JOINs. Not to fail preparation of cross-table batches, the check is now only turned on for ResultMetadata and turned off for PreparedMetadata.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 2, 2024
The previous commit fixed the bug described in scylladb#1134. This commit adds a regression test for that particular case, that is, for preparing a batch that operates on multiple tables.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 4, 2024
As noted in scylladb#1134, when preparing batches containing requests to multiple to different tables, the PreparedMetadata received upon preparation contains differing TableSpecs (i.e., TableSpecs with more than table mentioned). This fails the check that we introduced with ResultMetadata in mind: we've been assuming that all TableSpecs are the same, because ScyllaDB/ Cassandra has no support for JOINs. Not to fail preparation of cross-table batches, the check is disabled. We decided that we should not rely on an assumption that is not guaranteed by the CQL protocol.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 4, 2024
The previous commit fixed the bug described in scylladb#1134. This commit adds a regression test for that particular case, that is, for preparing a batch that operates on multiple tables.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
As noted in scylladb#1134, when preparing batches containing requests to multiple to different tables, the PreparedMetadata received upon preparation contains differing TableSpecs (i.e., TableSpecs with more than table mentioned). This fails the check that we introduced with ResultMetadata in mind: we've been assuming that all TableSpecs are the same, because ScyllaDB/ Cassandra has no support for JOINs. Not to fail preparation of cross-table batches, the check is disabled. We decided that we should not rely on an assumption that is not guaranteed by the CQL protocol.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
The previous commit fixed the bug described in scylladb#1134. This commit adds a regression test for that particular case, that is, for preparing a batch that operates on multiple tables.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
As noted in scylladb#1134, when preparing batches containing requests to multiple to different tables, the PreparedMetadata received upon preparation contains differing TableSpecs (i.e., TableSpecs with more than table mentioned). This fails the check that we introduced with ResultMetadata in mind: we've been assuming that all TableSpecs are the same, because ScyllaDB/ Cassandra has no support for JOINs. Not to fail preparation of cross-table batches, the check is disabled. We decided that we should not rely on an assumption that is not guaranteed by the CQL protocol.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
The previous commit fixed the bug described in scylladb#1134. This commit adds a regression test for that particular case, that is, for preparing a batch that operates on multiple tables.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
As noted in scylladb#1134, when preparing batches containing requests to multiple to different tables, the PreparedMetadata received upon preparation contains differing TableSpecs (i.e., TableSpecs with more than table mentioned). This fails the check that we introduced with ResultMetadata in mind: we've been assuming that all TableSpecs are the same, because ScyllaDB/ Cassandra has no support for JOINs. Not to fail preparation of cross-table batches, the check is disabled. We decided that we should not rely on an assumption that is not guaranteed by the CQL protocol.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
The previous commit fixed the bug described in scylladb#1134. This commit adds a regression test for that particular case, that is, for preparing a batch that operates on multiple tables.
wprzytula
added a commit
to wprzytula/scylla-rust-driver
that referenced
this issue
Dec 5, 2024
The previous commit fixed the bug described in scylladb#1134. This commit adds a regression test for that particular case, that is, for preparing a batch that operates on multiple tables.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Batch statement can contain multiple statements, and they can possible target different tables. Those statements can contain bind markers. An example of such statement:
If such statement is prepared, the bind markers will have different table specs, which 0.15 driver doesn't consider a possibility, so it throws an error:
Credits to Johhny Bike from User Slack for reporting this!
The text was updated successfully, but these errors were encountered: