GlareDB / glaredb

GlareDB: An analytics DBMS for distributed data
https://glaredb.com
MIT License
706 stars 40 forks source link

chore(deps): bump scylla from 0.14.0 to 0.15.0 #3273

Closed dependabot[bot] closed 1 day ago

dependabot[bot] commented 6 days ago

Bumps scylla from 0.14.0 to 0.15.0.

Release notes

Sourced from scylla's releases.

v0.15.0

The ScyllaDB team is pleased to announce ScyllaDB Rust Driver 0.15.0, an asynchronous CQL driver for Rust, optimized for Scylla, but also compatible with Apache Cassandra!

Some interesting statistics:

  • over 2.516k downloads on crates!
  • over 583 GitHub stars!

Changes

Beginning with this release, instead of putting all API-breaking changes into one group, now they are in the proper categories, but labeled as ⚠️ [API-breaking].

Main changes:

New deserialization API

The main change in this release is the deserialization API refactor. Its primary goal was to reduce overhead caused by all rows being eagerly deserialized to type-erased CqlValue type, only then being converted to end user types. Old traits and structs (FromCqlVal, FromRow, QueryResult - renamed to LegacyQueryResult, RowIterator - renamed to LegacyRowIterator, TypedRowIterator - renamed to LegacyTypedRowIterator) are replaced by new ones (DeserializeValue, DeserializeRow, new QueryResult, QueryPager, TypedRowStream). There are wrappers and helper implementations provided, designed to aid in gradually migrating to new API - see the migration guide in the book for more information. Old traits and structs will be removed in one of future versions.

New serialization API has a benefit of increased efficiency - now, rows are deserialized straight to the end user type, without any copying and allocations on the way. Another feature is the ability to deserialize rows to borrowed types (e.g. &str or &[u8]). And the result metadata is now deserialized in the borrowed form, saving even more allocations.

The refactor included:

  • ⚠️ [API-breaking] Parametrized Deserialize{Value,Row} with two lifetimes: 'frame and 'metadata separately (#1101).
  • ⚠️ [API-breaking] The deserialization refactor was finished (#1088, #1107, #1109, #1093, #1057, #1120, #1118, #1122, #1121).
  • ⚠️ [API-breaking] Unified macro attributes' syntax and semantics between serialization and deserialization derive macros (#1119).

Other changes by category:

New features / enhancements:

  • ⚠️ [API-breaking] Made ResultMetadata lifetime-generic, which paved a path to deserializing metadata in a borrowed way as an optimisation to save allocations (#1082).
  • Exported serialization migration macros that accidentally hadn't been exported before (#1089).
  • Exposed public getters to type-erased errors (#1087).
  • Trace message is now issued upon successful keepalive (#1092).
  • Added SerializeRow impl for Box<T: SerializeRow> (#1105).
  • Exposed public getters for execution profile configuration (#1104).
  • Allowed public access to the profile associated with an execution profile handle (#1112).

Bug fixes:

  • ⚠️ [API-breaking] Fixed driver's logic that bases on error variants returned from query execution (#1075).
  • Fixed possible panic in speculative execution (#1086)
  • ⚠️ [API-breaking] Disallowed deserializing Counter type to plain i64 for type safety (#1106).
  • Fixed logic about ignoring particular error kinds if speculative execution failed (#1124).

API cleanups / better types:

  • ⚠️ [API-breaking] Some of our error types were restructured to be more strongly typed (instead of just containing a string) and better reflect the conditions that they appear in. This work will be continued in 0.16. (#1067, #1074, #1054, #1080, #1080, #1117).
  • Removed wildcard re-exports of the serialization framework's entities (#1090).

... (truncated)

Commits
  • f59908c scylla: bump version to 0.15.0
  • 1877756 scylla-cql: bump version to 0.4.0
  • 5553661 scylla-macros: bump version to 0.7.0
  • 98fc02a Merge pull request #1119 from wprzytula/unify-ser-deser-macro-attrs
  • 0c9a8cc macros: add missing comments to Serialize* attrs
  • 35f1c58 book: update examples to use DeserializeValue
  • cdcbad2 macros: add tests for {Ser,De}Row macros integration
  • d553f94 macros: add tests for {Ser,De}Value macros integration
  • 1269002 macros: SerializeValue supports #[default_when_null]
  • 941684a macros: SerializeValue supports #[allow_missing]
  • Additional commits viewable in compare view


Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 1 day ago

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.