Skip to content
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

Remove MissingUserDefinedType from public API #1162

Open
wants to merge 55 commits into
base: main
Choose a base branch
from

Conversation

Lorak-mmk
Copy link
Collaborator

Up until now CqlType::UserDefinedType contained a Result, with error type MissingUserDefinedType.
This error is an edge case that should be quite rare. It could possibly happen if we fetch metadata in the middle of schema change.
Possible scenario:

  • We fetch UDTs
  • New UDT is added
  • New column is added to some table, with the type being this new UDT
  • We fetch column types for all tables
  • Now we have a column type with unknown UDT.

As this error should be extremely rare, it is okay to handle it a little bit less gracefully.
This simplifies user API (user no longer needs to handle the error) and makes progress towards unifying CqlType and ColumnType.

The new proposed way to handle this error is to drop the fetched metadata for the whole keyspace - re-using older version of it if available - and printing a warning.

As a side-fix, I found that query_tables_schema was unnecessarily called twice, so I deduplicated those calls.
query_tables_schema is likely the heaviest part of metadata reading, so this fix should lower the cluster load resulting from metadata fetches.

Progresses towards: #691

Pre-review checklist

  • I have split my patch into logically separate commits.
  • All commit messages clearly explain what they change and why.
  • I added relevant tests for new features and bug fixes.
  • All commits compile, pass static checks and pass test.
  • PR description sums up the changes and reasons why they should be introduced.
  • I have provided docstrings for the public items that I want to introduce.
  • I have adjusted the documentation in ./docs/source/.
  • I added appropriate Fixes: annotations to PR description.

@Lorak-mmk Lorak-mmk self-assigned this Dec 29, 2024
@github-actions github-actions bot added the semver-checks-breaking cargo-semver-checks reports that this PR introduces breaking API changes label Dec 29, 2024
Copy link

github-actions bot commented Dec 29, 2024

cargo semver-checks detected some API incompatibilities in this PR.
Checked commit: 5d1eb8b

See the following report for details:

cargo semver-checks output
./scripts/semver-checks.sh --baseline-rev 57ad5ad111e371baf3610d34cd15a7f10d05df18
+ cargo semver-checks -p scylla -p scylla-cql --baseline-rev 57ad5ad111e371baf3610d34cd15a7f10d05df18
     Cloning 57ad5ad111e371baf3610d34cd15a7f10d05df18
    Building scylla v0.15.0 (current)
       Built [  23.625s] (current)
     Parsing scylla v0.15.0 (current)
      Parsed [   0.054s] (current)
    Building scylla v0.15.0 (baseline)
       Built [  21.993s] (baseline)
     Parsing scylla v0.15.0 (baseline)
      Parsed [   0.052s] (baseline)
    Checking scylla v0.15.0 -> v0.15.0 (no change)
     Checked [   0.088s] 107 checks: 102 pass, 5 fail, 0 warn, 0 skip

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/enum_missing.ron

Failed in:
  enum scylla::transport::errors::UseKeyspaceProtocolError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:376
  enum scylla::transport::topology::CollectionType, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:364
  enum scylla::history::HistoryEvent, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:88
  enum scylla::transport::iterator::NextRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:1063
  enum scylla::transport::query_result::MaybeFirstRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:475
  enum scylla::history::QueryHistoryResult, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:264
  enum scylla::transport::session::LegacyDeserializationApi, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:180
  enum scylla::transport::retry_policy::RetryDecision, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:21
  enum scylla::retry_policy::RetryDecision, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:21
  enum scylla::transport::query_result::FirstRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:487
  enum scylla::transport::legacy_query_result::SingleRowTypedError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:324
  enum scylla::transport::session::PoolSize, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/connection_pool.rs:35
  enum scylla::transport::errors::BadQuery, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:576
  enum scylla::transport::errors::UdtMetadataError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:531
  enum scylla::transport::errors::KeyspaceStrategyError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:509
  enum scylla::transport::topology::Strategy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:398
  enum scylla::history::AttemptResult, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:283
  enum scylla::transport::errors::ViewsMetadataError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:566
  enum scylla::transport::errors::CqlEventHandlingError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:881
  enum scylla::transport::errors::NewSessionError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:216
  enum scylla::transport::errors::QueryError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:47
  enum scylla::transport::errors::ConnectionSetupRequestErrorKind, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:725
  enum scylla::transport::errors::ConnectionPoolError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:627
  enum scylla::transport::NodeAddr, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/node.rs:36
  enum scylla::transport::query_result::RowsError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:467
  enum scylla::transport::legacy_query_result::SingleRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:305
  enum scylla::transport::legacy_query_result::MaybeFirstRowTypedError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:286
  enum scylla::transport::legacy_query_result::IntoLegacyQueryResultError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:203
  enum scylla::transport::session_builder::DefaultMode, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session_builder.rs:45
  enum scylla::transport::KnownNode, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/node.rs:228
  enum scylla::transport::topology::CqlType, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:242
  enum scylla::transport::topology::NativeType, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:278
  enum scylla::transport::legacy_query_result::FirstRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:249
  enum scylla::transport::query_result::SingleRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:503
  enum scylla::transport::errors::ProtocolError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:315
  enum scylla::transport::errors::SchemaVersionFetchError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:389
  enum scylla::transport::iterator::LegacyNextRowError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:1162
  enum scylla::transport::iterator::NextPageError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:1051
  enum scylla::transport::errors::BadKeyspaceName, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:609
  enum scylla::transport::errors::TablesMetadataError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:544
  enum scylla::transport::errors::MetadataError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:447
  enum scylla::transport::errors::TracingProtocolError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:402
  enum scylla::transport::errors::ConnectionError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:648
  enum scylla::transport::query_result::IntoRowsResultError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:454
  enum scylla::transport::errors::TranslationError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:700
  enum scylla::transport::session::TranslationError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:700
  enum scylla::transport::session_builder::CloudMode, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session_builder.rs:53
  enum scylla::transport::legacy_query_result::FirstRowTypedError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:263
  enum scylla::transport::errors::PeersMetadataError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:472
  enum scylla::transport::errors::KeyspacesMetadataError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:493
  enum scylla::transport::session::CurrentDeserializationApi, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:172
  enum scylla::transport::errors::RequestError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:971
  enum scylla::transport::topology::ColumnKind, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:371
  enum scylla::transport::errors::BrokenConnectionErrorKind, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:828

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/function_missing.ron

Failed in:
  function scylla::transport::partitioner::calculate_token_for_partition_key, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:338

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/module_missing.ron

Failed in:
  mod scylla::transport::load_balancing, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/mod.rs:1
  mod scylla::load_balancing, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/mod.rs:1
  mod scylla::transport::session, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:1
  mod scylla::tracing, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/tracing.rs:1
  mod scylla::transport::host_filter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:1
  mod scylla::host_filter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:1
  mod scylla::transport::locator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/mod.rs:1
  mod scylla::transport::speculative_execution, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:1
  mod scylla::speculative_execution, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:1
  mod scylla::transport, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/mod.rs:1
  mod scylla::transport::partitioner, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:1
  mod scylla::transport::iterator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:1
  mod scylla::transport::query_result, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:1
  mod scylla::transport::legacy_query_result, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:1
  mod scylla::transport::errors, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:1
  mod scylla::transport::topology, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:1
  mod scylla::transport::session_builder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session_builder.rs:1
  mod scylla::transport::downgrading_consistency_retry_policy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/downgrading_consistency_retry_policy.rs:1
  mod scylla::transport::retry_policy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:1
  mod scylla::retry_policy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:1
  mod scylla::history, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:1
  mod scylla::transport::execution_profile, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/execution_profile.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/struct_missing.ron

Failed in:
  struct scylla::transport::session::SessionConfig, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:241
  struct scylla::transport::topology::Keyspace, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:153
  struct scylla::transport::iterator::QueryPager, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:558
  struct scylla::transport::topology::UserDefinedType, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:264
  struct scylla::transport::legacy_query_result::LegacyQueryResult, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:61
  struct scylla::transport::host_filter::DcHostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:68
  struct scylla::host_filter::DcHostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:68
  struct scylla::transport::topology::NativeTypeFromStrError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:303
  struct scylla::history::HistoryCollectorData, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:80
  struct scylla::transport::topology::MissingUserDefinedType, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:272
  struct scylla::transport::topology::Table, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:164
  struct scylla::history::AttemptHistory, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:276
  struct scylla::transport::downgrading_consistency_retry_policy::DowngradingConsistencyRetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/downgrading_consistency_retry_policy.rs:35
  struct scylla::transport::topology::UntranslatedPeer, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:145
  struct scylla::transport::load_balancing::LatencyAwarenessBuilder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/default.rs:2934
  struct scylla::load_balancing::LatencyAwarenessBuilder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/default.rs:2934
  struct scylla::transport::locator::ReplicaSet, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/mod.rs:291
  struct scylla::transport::execution_profile::ExecutionProfileHandle, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/execution_profile.rs:504
  struct scylla::history::AttemptId, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:21
  struct scylla::transport::topology::ColumnKindFromStrError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:380
  struct scylla::transport::locator::ReplicasOrderedIterator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/mod.rs:651
  struct scylla::transport::legacy_query_result::TypedRowIter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:40
  struct scylla::transport::session::TypedRowIter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:40
  struct scylla::transport::iterator::LegacyRowIterator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:1084
  struct scylla::transport::locator::ReplicaSetIterator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/mod.rs:504
  struct scylla::history::QueryHistory, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:256
  struct scylla::transport::query_result::TableSpecView, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:20
  struct scylla::transport::partitioner::Murmur3PartitionerHasher, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:104
  struct scylla::transport::session::GenericSession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:187
  struct scylla::transport::partitioner::CDCPartitionerHasher, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:272
  struct scylla::transport::speculative_execution::Context, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:14
  struct scylla::speculative_execution::Context, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:14
  struct scylla::transport::Node, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/node.rs:74
  struct scylla::transport::query_result::QueryResult, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:138
  struct scylla::transport::query_result::ResultNotRowsError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:522
  struct scylla::transport::topology::PeerEndpoint, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:111
  struct scylla::transport::iterator::LegacyTypedRowIterator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:1137
  struct scylla::transport::retry_policy::FallthroughRetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:46
  struct scylla::retry_policy::FallthroughRetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:46
  struct scylla::transport::load_balancing::Plan, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/plan.rs:68
  struct scylla::load_balancing::Plan, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/plan.rs:68
  struct scylla::tracing::TracingEvent, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/tracing.rs:29
  struct scylla::transport::retry_policy::FallthroughRetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:47
  struct scylla::retry_policy::FallthroughRetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:47
  struct scylla::history::HistoryCollector, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:75
  struct scylla::transport::query_result::ColumnSpecs, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:85
  struct scylla::transport::SelfIdentity, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/connection.rs:384
  struct scylla::transport::host_filter::AcceptAllHostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:21
  struct scylla::host_filter::AcceptAllHostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:21
  struct scylla::transport::query_result::QueryRowsResult, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:325
  struct scylla::transport::topology::Peer, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:70
  struct scylla::transport::legacy_query_result::RowsNotExpectedError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:246
  struct scylla::transport::locator::ReplicasOrdered, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/mod.rs:646
  struct scylla::transport::retry_policy::DefaultRetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:98
  struct scylla::retry_policy::DefaultRetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:98
  struct scylla::transport::ClusterData, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/cluster.rs:75
  struct scylla::history::FiberHistory, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:270
  struct scylla::transport::execution_profile::ExecutionProfile, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/execution_profile.rs:398
  struct scylla::transport::ExecutionProfile, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/execution_profile.rs:398
  struct scylla::transport::speculative_execution::SimpleSpeculativeExecutionPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:32
  struct scylla::speculative_execution::SimpleSpeculativeExecutionPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:32
  struct scylla::transport::locator::ReplicaLocator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/mod.rs:32
  struct scylla::transport::errors::BrokenConnectionError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:813
  struct scylla::transport::downgrading_consistency_retry_policy::DowngradingConsistencyRetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/downgrading_consistency_retry_policy.rs:15
  struct scylla::history::QueryId, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:17
  struct scylla::transport::retry_policy::DefaultRetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:78
  struct scylla::retry_policy::DefaultRetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:78
  struct scylla::transport::locator::TokenRing, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/locator/token_ring.rs:11
  struct scylla::transport::partitioner::Murmur3Partitioner, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:89
  struct scylla::transport::topology::MaterializedView, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:172
  struct scylla::transport::speculative_execution::PercentileSpeculativeExecutionPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:44
  struct scylla::speculative_execution::PercentileSpeculativeExecutionPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:44
  struct scylla::transport::iterator::TypedRowStream, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/iterator.rs:988
  struct scylla::tracing::TracingInfo, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/tracing.rs:12
  struct scylla::history::SpeculativeId, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:27
  struct scylla::transport::session_builder::GenericSessionBuilder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session_builder.rs:78
  struct scylla::transport::load_balancing::RoutingInfo, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/mod.rs:21
  struct scylla::load_balancing::RoutingInfo, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/mod.rs:21
  struct scylla::transport::errors::ConnectionSetupRequestError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/errors.rs:718
  struct scylla::transport::legacy_query_result::RowsExpectedError, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:233
  struct scylla::history::StructuredHistory, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:251
  struct scylla::transport::load_balancing::DefaultPolicyBuilder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/default.rs:940
  struct scylla::load_balancing::DefaultPolicyBuilder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/default.rs:940
  struct scylla::transport::load_balancing::DefaultPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/default.rs:111
  struct scylla::load_balancing::DefaultPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/default.rs:111
  struct scylla::transport::topology::Column, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/topology.rs:178
  struct scylla::transport::query_result::ColumnSpecView, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/query_result.rs:49
  struct scylla::transport::execution_profile::ExecutionProfileBuilder, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/execution_profile.rs:231
  struct scylla::transport::partitioner::CDCPartitioner, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:270
  struct scylla::transport::host_filter::AllowListHostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:31
  struct scylla::host_filter::AllowListHostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:31
  struct scylla::transport::retry_policy::QueryInfo, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:9
  struct scylla::retry_policy::QueryInfo, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:9

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.38.0/src/lints/trait_missing.ron

Failed in:
  trait scylla::transport::partitioner::PartitionerHasher, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:84
  trait scylla::transport::session_builder::SessionBuilderKind, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session_builder.rs:42
  trait scylla::transport::load_balancing::LoadBalancingPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/mod.rs:70
  trait scylla::load_balancing::LoadBalancingPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/load_balancing/mod.rs:70
  trait scylla::transport::retry_policy::RetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:36
  trait scylla::retry_policy::RetrySession, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:36
  trait scylla::transport::speculative_execution::SpeculativeExecutionPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:20
  trait scylla::speculative_execution::SpeculativeExecutionPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/speculative_execution.rs:20
  trait scylla::transport::host_filter::HostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:15
  trait scylla::host_filter::HostFilter, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/host_filter.rs:15
  trait scylla::transport::partitioner::Partitioner, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/partitioner.rs:67
  trait scylla::transport::retry_policy::RetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:29
  trait scylla::retry_policy::RetryPolicy, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/retry_policy.rs:29
  trait scylla::transport::session::AddressTranslator, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:122
  trait scylla::history::HistoryListener, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/history.rs:37
  trait scylla::transport::legacy_query_result::IntoTypedRows, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:19
  trait scylla::transport::session::IntoTypedRows, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/legacy_query_result.rs:19
  trait scylla::transport::session::DeserializationApiKind, previously in file /home/runner/work/scylla-rust-driver/scylla-rust-driver/target/semver-checks/git-57ad5ad111e371baf3610d34cd15a7f10d05df18/111142da875b42077c7156bb27fe8441206ef0c6/scylla/src/transport/session.rs:170

     Summary semver requires new major version: 5 major and 0 minor checks failed
    Finished [  46.826s] scylla
    Building scylla-cql v0.4.0 (current)
       Built [  10.849s] (current)
     Parsing scylla-cql v0.4.0 (current)
      Parsed [   0.036s] (current)
    Building scylla-cql v0.4.0 (baseline)
       Built [  11.018s] (baseline)
     Parsing scylla-cql v0.4.0 (baseline)
      Parsed [   0.036s] (baseline)
    Checking scylla-cql v0.4.0 -> v0.4.0 (no change)
     Checked [   0.113s] 107 checks: 107 pass, 0 skip
     Summary no semver update required
    Finished [  22.562s] scylla-cql
make: *** [Makefile:61: semver-rev] Error 1

Copy link
Contributor

@muzarski muzarski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I really dislike how complicated all the methods have become. They accept hashmap where value is a Result, and return a really complicated type with nested Result. I don't see how we could simplify this, though. It looks horrible, but does the job - we can propagate the error for each keyspace up to ClusterData::new() thanks to this.

scylla/src/transport/topology.rs Outdated Show resolved Hide resolved
scylla/src/transport/topology.rs Outdated Show resolved Hide resolved
scylla/src/transport/topology.rs Show resolved Hide resolved
scylla/src/transport/topology.rs Outdated Show resolved Hide resolved
scylla/src/transport/cluster.rs Show resolved Hide resolved
@Lorak-mmk Lorak-mmk force-pushed the remove-missing-udt-error branch from d8ecc8d to 71379da Compare January 4, 2025 17:26
As Connection's methods are mainly intended for private use by
Connection itself or by the abstractions from connection_pool.rs
exclusively, their visibility was reduced to `pub(self)` or
`pub(super)`, respectively.
Let's make our assumptions about layer separation enforced by the
module visibility rules.
perform_authenticate takes `&mut Connection` as its first argument,
which makes it a perfect suit to become a method on Connection.
As other drivers do, Rust driver will hold all user-implementable
policies in one module for easier access by interested code-reading
users.
@Lorak-mmk Lorak-mmk force-pushed the remove-missing-udt-error branch from 71379da to 3ec27b9 Compare January 5, 2025 11:08
Previously this method accepted a map with UDTs for all keyspaces.
This is not necessary: UDTs in one keyspace can not reference UDTs
in another keyspace.
This function performs a request that fetches columns for all tables
and views. It is potentially the most performance-impactful part of the
schema fetching process, and it was unnecessarily called twice:
in query_tables and in query_views.

It can be easily prevented by calling the function earlier and passing
the result to query_tables and query_views.
MissingUserDefinedType was an obstacle preventing us from unifying
ColumnType and CqlType. This commit changes the topology fetching code
to remove the keyspace where such an error happened from the metadata.
A warning is printed in such case.
It is no longer part of any public API.
This commit changes type of `keyspaces` field in `Metadata` from
`HashMap<String, Keyspace>` to `HashMap<String, Result<Keyspace, MissingUserDefinedType>>`.
Because of that, it also removed `MissingUserDefinedType` handling from
`query_metadata`. Now handling this error is done in `ClusterData::new`.
This has an advantage: we can use older version of the keyspace metadata
if the new version has this error.
wprzytula
wprzytula previously approved these changes Jan 8, 2025
@Lorak-mmk
Copy link
Collaborator Author

Rebased on #1163

@Lorak-mmk Lorak-mmk requested a review from wprzytula January 8, 2025 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver-checks-breaking cargo-semver-checks reports that this PR introduces breaking API changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants