mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-22 09:30:45 +00:00
Metadata id was introduced in CQLv5 to make metadata of prepared statement metadata consistent between driver and database. This commit introduces a protocol extension that allows to use the same mechanism in CQLv4. As CQLv5 is currently unsupported in ScyllaDb (as well as in some of the drivers), the motivation is to allow fixing https://github.com/scylladb/scylladb/issues/20860. This change: - Implement metadata::calculate_metadata_id() - Implement SCYLLA_USE_METADATA_ID protocol extension for CQLv4 - Added description of SCYLLA_USE_METADATA_ID in documentation - Add boost tests to confirm correctness of the function - Add python tests for table metadata change corner-cases Fixes scylladb/scylladb#20860 Also see related https://scylladb.atlassian.net/wiki/spaces/RND/pages/42238631/MetadataId+extension+in+CQLv4+Requirement+Document No backport needed (unless specifically requested by a customer), because there are existing workarounds for the issue Closes scylladb/scylladb#23292 * github.com:scylladb/scylladb: test: add tests for prepared statement metadata consistency corner cases transport: implement SCYLLA_USE_METADATA_ID support cql3: implement metadata::calculate_metadata_id()