2643 Commits

Author SHA1 Message Date
Cristian Le
97bf270caf
Always set SQLITE_OPEN_URI (#3289) 2025-04-13 17:06:17 -07:00
Joey de Waal
42def59973
fix(macros): cache macro metadata based on CARGO_MANIFEST_DIR (#3815)
* fix(macros): cache macro metadata based on CARGO_MANIFEST_DIR

* fix unrelated typo

* bump dotenvy version

* fix after review
2025-04-13 17:02:14 -07:00
Vladimir Petrzhikovskii
e283bf9645 mysql: Fix panic on invalid text row length field
Previously, `TextRow::decode_with` would read a length-encoded field size
and attempt to advance the buffer by that amount. If the server sent a
malformed packet containing a length value larger than the remaining data
in the buffer, the call to `buf.advance(size)` would panic.

eg: 
```
thread 'main' panicked at /home/user/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:711:9:
cannot advance past remaining: 8590116092 <= 0
stack backtrace:
0:     0x56119b657e00 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h6d42cc84fc840290
1:     0x56119b67edd3 - core::fmt::write::h5af61a909e3ec64d
2:     0x56119b653ee3 - std::io::Write::write_fmt::h5a7b54aa6e4a315d
3:     0x56119b657c52 - std::sys::backtrace::BacktraceLock::print::h555579e7396c26ac
4:     0x56119b658cef - std::panicking::default_hook::{{closure}}::h9128866118196224
5:     0x56119b658b5a - std::panicking::default_hook::h52e9e7314e0255f6
6:     0x56119b659712 - std::panicking::rust_panic_with_hook::h541791bcc774ef34
7:     0x56119b65949a - std::panicking::begin_panic_handler::{{closure}}::h6479a2f0137c7d19
8:     0x56119b658319 - std::sys::backtrace::__rust_end_short_backtrace::ha04e7c0fc61ded91
9:     0x56119b65912d - rust_begin_unwind
10:     0x56119b67c390 - core::panicking::panic_fmt::h5764ee7030b7a73d
11:     0x56119b572b18 - <sqlx_mysql::protocol::text::row::TextRow as sqlx_core::io::decode::ProtocolDecode<&[sqlx_mysql::column::MySqlColumn]>>::decode_with::h17ac8b44140b5469
12:     0x56119b42df1f - sqlx_mysql::connection::executor::<impl sqlx_mysql::connection::MySqlConnection>::run::{{closure}}::{{closure}}::{{closure}}::h4874a0f73925d55a
```

This commit introduces a bounds check immediately after reading the field length from a packet.

This panic condition was specifically observed when executing a TiDB
`BATCH ON ... DELETE` statement via `pool.execute()`. It sends an OK packet immediately followed by
a full result set describing the batch status (column defs, row data, EOF).


 Observed TiDB response sequence for `BATCH DML` via `COM_QUERY`:
    1. OK Packet (seq=1, `SERVER_MORE_RESULTS_EXISTS` = false)
    2. Column Count Packet (seq=1, non-standard, protocol violation)
    3. Column Definition Packet (seq=2)
    4. Column Definition Packet (seq=3)
    5. Text Row Data Packet (seq=4)
    6. EOF Packet (seq=5, `SERVER_MORE_RESULTS_EXISTS` = false)

This differs from standard MySQL DML response (OK/ERR packet only) and
causes `sqlx` using `execute()` to attempt parsing the unexpected result
set packets after the initial OK packet.
2025-04-10 19:40:16 -07:00
TeCHiScy
082aed5c2b
Fix error message typo in PgPoint::from_str (#3811) 2025-04-01 00:41:28 -07:00
thriller08
f0be19e640
Enable json feature without db enabled (#3801) 2025-03-29 20:05:04 -07:00
Beau Gieskens
1c9cbe939a
feat: add ipnet support (#3710)
* feat: add ipnet support

* fix: ipnet not decoding IP address strings

* fix: prefer ipnetwork to ipnet for compatibility

* fix: unnecessary cfg
2025-03-23 17:19:05 -07:00
Robin Schroer
e474be6d4b
docs: Fix a copy-paste error on get_username docs (#3786)
I suspect this is a copy-paste error, it's meant to say username, not port.
2025-03-15 23:21:56 -07:00
Austin Bonander
393b731d5e
Merge of #3427 (by @mpyw) and #3614 (by @bonsairobo) (#3765)
* feat: Implement `get_transaction_depth` for drivers

* test: Verify `get_transaction_depth()` on postgres

* Refactor: `TransactionManager` delegation without BC

SQLite implementation is currently WIP

* Fix: Avoid breaking changes on `AnyConnectionBackend`

* Refactor: Remove verbose `SqliteConnection` typing

* Feat: Implementation for SQLite

I have included `AtomicUsize` in `WorkerSharedState`. Ideally, it is not desirable to execute `load` and `fetch_add` in two separate steps, but we decided to allow it here since there is only one thread writing. To prevent writing from other threads, the field itself was made private, and a getter method was provided with `pub(crate)`.

* Refactor: Same approach for `cached_statements_size`

ref: a66787d36d62876b55475ef2326d17bade817aed

* Fix: Add missing `is_in_transaction` for backend

* Doc: Remove verbose "synchronously" word

* Fix: Remove useless `mut` qualifier

* feat: add Connection::begin_with

This patch completes the plumbing of an optional statement from these methods to
`TransactionManager::begin` without any validation of the provided statement.

There is a new `Error::InvalidSavePoint` which is triggered by any attempt to
call `Connection::begin_with` when we are already inside of a transaction.

* feat: add Pool::begin_with and Pool::try_begin_with

* feat: add Error::BeginFailed and validate that custom "begin" statements are successful

* chore: add tests of Error::BeginFailed

* chore: add tests of Error::InvalidSavePointStatement

* chore: test begin_with works for all SQLite "BEGIN" statements

* chore: improve comment on Connection::begin_with

* feat: add default impl of `Connection::begin_with`

This makes the new method a non-breaking change.

* refactor: combine if statement + unwrap_or_else into one match

* feat: use in-memory SQLite DB to avoid conflicts across tests run in parallel

* feedback: remove public wrapper for sqlite3_txn_state

Move the wrapper directly into the test that uses it instead.

* fix: cache Status on MySqlConnection

* fix: compilation errors

* fix: format

* fix: postgres test

* refactor: delete `Connection::get_transaction_depth`

* fix: tests

---------

Co-authored-by: mpyw <ryosuke_i_628@yahoo.co.jp>
Co-authored-by: Duncan Fairbanks <duncanfairbanks6@gmail.com>
2025-03-10 14:29:46 -07:00
James H.
2f10c29dfd
feat(postgres): add geometry circle (#3773)
* feat: circle

* docs: comments
2025-03-09 15:01:30 -07:00
James H.
ca3a509036
feat(postgres): add geometry polygon (#3769)
* feat: add polygon

* test: paths for pgpoints in polygon test

* fix: import typo

* chore(Sqlite): remove ci.db from repo (#3768)

* fix: CI

* Fix breakage from Rustup 1.28 <https://blog.rust-lang.org/2025/03/02/Rustup-1.28.0.html>
* Let `Swatinem/rust-cache` generate cache keys

* fix(ci): upgrade Ubuntu image to 24.04

For some reason the `cargo +beta clippy` step is failing because `libsqlite3-sys` starts requiring Glibc >= 2.39 but I don't have time to figure out why and I can't reproduce it in a clean environment.

---------

Co-authored-by: joeydewaal <99046430+joeydewaal@users.noreply.github.com>
Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2025-03-07 01:25:45 -08:00
Chitoku
a92626d6cc postgres: Use current tracing span when dropping PgListener 2025-03-05 01:30:38 -08:00
Austin Bonander
c3fd645409 fix(ci): upgrade Ubuntu image to 24.04
For some reason the `cargo +beta clippy` step is failing because `libsqlite3-sys` starts requiring Glibc >= 2.39 but I don't have time to figure out why and I can't reproduce it in a clean environment.
2025-03-04 14:31:38 -08:00
Austin Bonander
7a2a94e7b5 fix: CI
* Fix breakage from Rustup 1.28 <https://blog.rust-lang.org/2025/03/02/Rustup-1.28.0.html>
* Let `Swatinem/rust-cache` generate cache keys
2025-03-04 14:31:38 -08:00
joeydewaal
7af998c2ab
chore(Sqlite): remove ci.db from repo (#3768) 2025-03-04 12:56:08 -08:00
James H.
5c573e15eb
feat(postgres): add geometry path (#3716)
* feat: add geometry path

* fix: paths to pg point

* test: remove array tests for path

* Fix readme: uuid feature is gating for all repos (#3720)

The readme previously stated that the uuid feature is only for postres but it actually also gates the functionality in mysql and sqlite.

* Replace some futures_util APIs with std variants (#3721)

* feat(sqlx-cli): Add flag to disable automatic loading of .env files (#3724)

* Add flag to disable automatic loading of .env files

* Update sqlx-cli/src/opt.rs

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>

* chore: expose bstr feature (#3714)

* chore: replace rustls-pemfile with rustls-pki-types (#3725)

* QueryBuilder: add `debug_assert` when `push_values` is passed an empty set of tuples (#3734)

* throw a warning in tracing so that the empty tuples would be noticed

* use debug assertion to throw a panic in debug mode

* fix: merge conflicts

* chore(cli): remove unused async-trait crate from dependencies (#3754)

* Update pull_request_template.md

* Fix example calculation (#3741)

* Avoid privilege requirements by using an advisory lock in test setup (postgres). (#3753)

* feat(sqlx-postgres): use advisory lock to avoid setup race condition

* fix(sqlx-postgres): numeric hex constants not supported before postgres 16

* Small doc correction. (#3755)

When sqlx-core/src/from_row.rs was updated to implement FromRow for tuples of up to 16 values, a comment was left stating that it was implemented up to tuples of 9 values.

* Update FAQ.md

* refactor(cli): replace promptly with dialoguer (#3669)

* docs(pool): recommend actix-web ThinData over Data to avoid two Arcs (#3762)

Both actix_web::web::Data and sqlx::PgPool internally wrap an Arc. Thus,
using Data<PgPool> as an extractor in an actix-web route handler results
in two Arcs wrapping the data of interest, which isn't ideal.

Actix-web 4.9.0 introduced a new web::ThinData extractor for cases like
this, where the data is already wrapped in an `Arc` (or is otherwise
similarly cheap and sensible to simply clone), which doesn't wrap the
inner value in a (second) Arc.

Since the new extractor is better suited to the task, suggest it in
place of web::Data when giving an example on how to share a pool.

* fix: merge conflicts

* fix: use types mod from main

* fix: merge conflicts

* fix: merge conflicts

* fix: merge conflicts

* fix: ordering of types mod

* fix: path import

* test: no array test for path

---------

Co-authored-by: Jon Thacker <thacker.jon@gmail.com>
Co-authored-by: Paolo Barbolini <paolo.barbolini@m4ss.net>
Co-authored-by: Ben Wilber <benwilber@users.noreply.github.com>
Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
Co-authored-by: joeydewaal <99046430+joeydewaal@users.noreply.github.com>
Co-authored-by: tottoto <tottotodev@gmail.com>
Co-authored-by: Ethan Wang <mailme@ethanavania.org>
Co-authored-by: Stefan Schindler <dns2utf8@users.noreply.github.com>
Co-authored-by: kildrens <5198060+kildrens@users.noreply.github.com>
Co-authored-by: Marti Serra <marti.serra+github@protonmail.com>
Co-authored-by: Jonas Malaco <jonas@protocubo.io>
2025-03-02 14:29:53 -08:00
Mattia Righetti
c5ea6c4435
feat: sqlx sqlite expose de/serialize (#3745)
* feat: implement serialze no copy on lockedsqlitehandle

* feat: implement serialize on sqliteconnection

* feat: implement deserialize on sqliteconnection and add sqlitebuf wrapper type

* refactor: misc sqlite type and deserialize refactoring

* chore: misc clippy refactoring

* fix: misc refactoring and fixes

- pass non-owned byte slice to deserialize
- `SqliteBufError` and better error handling
- more impl for `SqliteOnwedBuf` so it can be used as a slice
- default serialize for `SqliteConnection`

* refactor: move serialize and deserialize on worker thread

This implements `Command::Serialize` and `Command::Deserialize` and moves the
serialize and deserialize logic to the worker thread.

`Serialize` will need some more iterations as it's not clear whether it would
need to wait for other write transactions before running.

* refactor: misc refactoring and changes

- Merged deserialize module with serialize module
- Moved `SqliteOwnedBuf` into serialize module
- Fixed rustdocs

* chore: API tweaks, better docs, tests

* fix: unused import

* fix: export `SqliteOwnedBuf`, docs and safety tweaks

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2025-03-02 14:29:29 -08:00
Jonas Malaco
5d6d6985cd
docs(pool): recommend actix-web ThinData over Data to avoid two Arcs (#3762)
Both actix_web::web::Data and sqlx::PgPool internally wrap an Arc. Thus,
using Data<PgPool> as an extractor in an actix-web route handler results
in two Arcs wrapping the data of interest, which isn't ideal.

Actix-web 4.9.0 introduced a new web::ThinData extractor for cases like
this, where the data is already wrapped in an `Arc` (or is otherwise
similarly cheap and sensible to simply clone), which doesn't wrap the
inner value in a (second) Arc.

Since the new extractor is better suited to the task, suggest it in
place of web::Data when giving an example on how to share a pool.
2025-02-28 16:42:53 -08:00
Paolo Barbolini
277dd36c78
refactor(cli): replace promptly with dialoguer (#3669) 2025-02-27 12:17:09 -08:00
Austin Bonander
9bd3d61929
Update FAQ.md 2025-02-22 18:07:43 -08:00
Marti Serra
3dec1d186a
Small doc correction. (#3755)
When sqlx-core/src/from_row.rs was updated to implement FromRow for tuples of up to 16 values, a comment was left stating that it was implemented up to tuples of 9 values.
2025-02-22 13:33:14 -08:00
kildrens
a9dfb4f2c1
Avoid privilege requirements by using an advisory lock in test setup (postgres). (#3753)
* feat(sqlx-postgres): use advisory lock to avoid setup race condition

* fix(sqlx-postgres): numeric hex constants not supported before postgres 16
2025-02-20 18:13:56 -08:00
Stefan Schindler
8dce6bd9e1
Fix example calculation (#3741) 2025-02-20 12:57:54 -08:00
Austin Bonander
26b4e5f166
Update pull_request_template.md 2025-02-20 12:51:54 -08:00
tottoto
520d25c453
chore(cli): remove unused async-trait crate from dependencies (#3754) 2025-02-20 11:35:44 -08:00
Sam Lyon
8cdad44366
docs: add some missing backticks (#3749)
* add ending backticks to starting backticks that were missing them

* fix table alignment
2025-02-19 15:23:45 -08:00
Ethan Wang
b859914153
QueryBuilder: add debug_assert when push_values is passed an empty set of tuples (#3734)
* throw a warning in tracing so that the empty tuples would be noticed

* use debug assertion to throw a panic in debug mode
2025-02-17 17:39:40 -08:00
tottoto
3a20a92a3f
chore: replace rustls-pemfile with rustls-pki-types (#3725) 2025-02-05 13:48:19 -08:00
joeydewaal
f42561b8d7
chore: expose bstr feature (#3714) 2025-02-04 10:53:05 -08:00
Ben Wilber
91291beb23
feat(sqlx-cli): Add flag to disable automatic loading of .env files (#3724)
* Add flag to disable automatic loading of .env files

* Update sqlx-cli/src/opt.rs

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2025-02-04 10:52:43 -08:00
Paolo Barbolini
65229f7ff9
Replace some futures_util APIs with std variants (#3721) 2025-02-01 16:01:56 -08:00
Jon Thacker
5b26369a59
Fix readme: uuid feature is gating for all repos (#3720)
The readme previously stated that the uuid feature is only for postres but it actually also gates the functionality in mysql and sqlite.
2025-01-31 15:22:47 -08:00
Tobias Bieniek
4d638c9e24
FromRow: Fix documentation order (#3712)
The `try_from` and `json` sections are "Field attributes" so they should probably be part of the corresponding section instead of subsections of "Manual implementation". `flatten` should be H4 instead of H3, since "Field attributes" is H3 and all other field attribute sections are H4 too.
2025-01-29 15:00:21 -08:00
James H.
97cada3e16
feat(postgres): add geometry box (#3711)
* feat: add geometry box

* test: cannot compare box arrays

* test: regular equals check for boxes

* test: try box array test
2025-01-29 14:59:50 -08:00
joeydewaal
d8af1fa33e
chore: add pg_copy regression tests (#3715) 2025-01-29 14:56:46 -08:00
Sean Aye
2aab4cd237
Add json(nullable) macro attribute (#3677)
* add json optional attribute parser and expansion

* rename attribute

* add test

* fix tests

* fix lints

* Add docs
2025-01-28 10:56:33 -08:00
joeydewaal
546ec960a9
feat(Sqlite): add LockedSqliteHandle::last_error (#3707) 2025-01-27 20:56:21 -08:00
Nicolas Séverin
6ca52fe80c
Added missing special casing for encoding embedded arrays of custom types (#3603)
* Added missing special casing for encoding arrays of custom types

* Added the matching test

* Formatting
2025-01-27 17:30:02 -08:00
joeydewaal
6c2a29f67e
chore(MySql): Remove unnecessary box (#3708) 2025-01-27 13:41:07 -08:00
joeydewaal
6fa0458ff3
fix(Postgres) chunk pg_copy data (#3703)
* fix(postgres) chunk pg_copy data

* fix: cleanup after review
2025-01-25 14:23:50 -08:00
James H.
74da542bf3
feat: add postres geometry line segment (#3690)
* feat: add postres geometry line segment

* fix: add doc alias
2025-01-24 22:34:40 -08:00
joeydewaal
f4c7498523
fix(Sqlite): stop sending rows after first error (#3700) 2025-01-24 14:41:29 -08:00
Rémy SAISSY
ad1d7a8aa5
Derive clone and debug for postgresql arguments (#3687) 2025-01-24 14:41:06 -08:00
joeydewaal
a408c490fd
fix(postgres) use signed int for length prefix in PgCopyIn (#3701) 2025-01-24 14:30:02 -08:00
Andreas Liljeqvist
a83395a360
Fix: nextest cleanup race condition (#3334)
* remove unused trait fn `cleanup_test_dbs`

* *wip* solve test cleanup race condition

* check for exactly 63 chars in database name

* move base64 dependency

* change

* Use url_safe base64 encoding

* Assert quoting for database name

* refactor

* add mysql support?

* borrow

* fix borrows

* ensure quoting

* re-add trait cleanup_test_dbs

* fix mysql insert

* cargo lock

* use actual field

* cleanup converted path in sqlite

* replace dashes with underscore in db name

* refactor: remove redundant path conversion in cleanup_test and add db_name method

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2025-01-23 17:36:55 -08:00
Austin Schey
aae800090b
feat(sqlite): add preupdate hook (#3625)
* feat: add preupdate hook

* address some PR comments

* add SqliteValueRef variant that takes a borrowed sqlite value pointer

* add PhantomData for additional lifetime check
2025-01-23 16:19:45 -08:00
joeydewaal
f6d2fa3a3d
fix: handle nullable values by printing NULL instead of panicking (#3686) 2025-01-15 17:08:16 -08:00
tison
838a239a2c
docs: add example for postgres enums with type TEXT (#3655)
* docs: add example for postgres enums with type TEXT

Signed-off-by: tison <wander4096@gmail.com>

* revert GitHub naming

Signed-off-by: tison <wander4096@gmail.com>

* add note

Signed-off-by: tison <wander4096@gmail.com>

---------

Signed-off-by: tison <wander4096@gmail.com>
2025-01-15 08:41:57 -08:00
Paolo Barbolini
8b5277462d build(deps): bump semver compatible dependencies
Fixes the following cargo-audit feedback:

```
Crate:     openssl
Version:   0.10.64
Title:     `MemBio::get_buf` has undefined behavior with empty buffers
Date:      2024-07-21
ID:        RUSTSEC-2024-0357
URL:       https://rustsec.org/advisories/RUSTSEC-2024-0357
Solution:  Upgrade to >=0.10.66
Dependency tree:
openssl 0.10.64
├── sqlx-cli 0.8.3
└── native-tls 0.2.11
    └── sqlx-core 0.8.3
        ├── sqlx-sqlite 0.8.3
        │   ├── sqlx-macros-core 0.8.3
        │   │   └── sqlx-macros 0.8.3
        │   │       └── sqlx 0.8.3
        │   │           ├── sqlx-test 0.1.0
        │   │           │   └── sqlx 0.8.3
        │   │           ├── sqlx-sqlite 0.8.3
        │   │           ├── sqlx-postgres 0.8.3
        │   │           │   ├── sqlx-macros-core 0.8.3
        │   │           │   └── sqlx 0.8.3
        │   │           ├── sqlx-mysql 0.8.3
        │   │           │   ├── sqlx-macros-core 0.8.3
        │   │           │   └── sqlx 0.8.3
        │   │           ├── sqlx-example-sqlite-todos 0.1.0
        │   │           ├── sqlx-example-postgres-transaction 0.1.0
        │   │           ├── sqlx-example-postgres-todos 0.1.0
        │   │           ├── sqlx-example-postgres-mockable-todos 0.1.0
        │   │           ├── sqlx-example-postgres-listen 0.1.0
        │   │           ├── sqlx-example-postgres-json 0.1.0
        │   │           ├── sqlx-example-postgres-files 0.1.0
        │   │           ├── sqlx-example-postgres-chat 0.1.0
        │   │           ├── sqlx-example-postgres-axum-social 0.1.0
        │   │           ├── sqlx-example-mysql-todos 0.1.0
        │   │           ├── sqlx-core 0.8.3
        │   │           └── sqlx-cli 0.8.3
        │   └── sqlx 0.8.3
        ├── sqlx-postgres 0.8.3
        ├── sqlx-mysql 0.8.3
        ├── sqlx-macros-core 0.8.3
        ├── sqlx-macros 0.8.3
        └── sqlx 0.8.3

Crate:     futures-util
Version:   0.3.30
Warning:   yanked
Dependency tree:
futures-util 0.3.30
├── tower-http 0.3.5
│   └── axum 0.5.17
│       └── sqlx-example-postgres-axum-social 0.1.0
├── tower 0.4.13
│   ├── tower-http 0.3.5
│   ├── sqlx-example-postgres-axum-social 0.1.0
│   └── axum 0.5.17
├── sqlx-sqlite 0.8.3
│   ├── sqlx-macros-core 0.8.3
│   │   └── sqlx-macros 0.8.3
│   │       └── sqlx 0.8.3
│   │           ├── sqlx-test 0.1.0
│   │           │   └── sqlx 0.8.3
│   │           ├── sqlx-sqlite 0.8.3
│   │           ├── sqlx-postgres 0.8.3
│   │           │   ├── sqlx-macros-core 0.8.3
│   │           │   └── sqlx 0.8.3
│   │           ├── sqlx-mysql 0.8.3
│   │           │   ├── sqlx-macros-core 0.8.3
│   │           │   └── sqlx 0.8.3
│   │           ├── sqlx-example-sqlite-todos 0.1.0
│   │           ├── sqlx-example-postgres-transaction 0.1.0
│   │           ├── sqlx-example-postgres-todos 0.1.0
│   │           ├── sqlx-example-postgres-mockable-todos 0.1.0
│   │           ├── sqlx-example-postgres-listen 0.1.0
│   │           ├── sqlx-example-postgres-json 0.1.0
│   │           ├── sqlx-example-postgres-files 0.1.0
│   │           ├── sqlx-example-postgres-chat 0.1.0
│   │           ├── sqlx-example-postgres-axum-social 0.1.0
│   │           ├── sqlx-example-mysql-todos 0.1.0
│   │           ├── sqlx-core 0.8.3
│   │           │   ├── sqlx-sqlite 0.8.3
│   │           │   ├── sqlx-postgres 0.8.3
│   │           │   ├── sqlx-mysql 0.8.3
│   │           │   ├── sqlx-macros-core 0.8.3
│   │           │   ├── sqlx-macros 0.8.3
│   │           │   └── sqlx 0.8.3
│   │           └── sqlx-cli 0.8.3
│   └── sqlx 0.8.3
├── sqlx-postgres 0.8.3
├── sqlx-mysql 0.8.3
├── sqlx-core 0.8.3
├── hyper 0.14.28
│   └── axum 0.5.17
├── futures-executor 0.3.30
│   ├── sqlx-sqlite 0.8.3
│   └── futures 0.3.30
│       ├── sqlx-example-sqlite-todos 0.1.0
│       ├── sqlx-example-postgres-transaction 0.1.0
│       ├── sqlx-example-postgres-todos 0.1.0
│       ├── sqlx-example-postgres-mockable-todos 0.1.0
│       ├── sqlx-example-postgres-listen 0.1.0
│       ├── sqlx-example-postgres-json 0.1.0
│       ├── sqlx-example-postgres-chat 0.1.0
│       ├── sqlx-example-mysql-todos 0.1.0
│       ├── sqlx-cli 0.8.3
│       ├── sqlx 0.8.3
│       └── criterion 0.5.1
│           └── sqlx 0.8.3
├── futures 0.3.30
├── axum-core 0.2.9
│   └── axum 0.5.17
└── axum 0.5.17

Crate:     url
Version:   2.5.3
Warning:   yanked
Dependency tree:
url 2.5.3
├── validator 0.16.1
│   └── sqlx-example-postgres-axum-social 0.1.0
├── sqlx-sqlite 0.8.3
│   ├── sqlx-macros-core 0.8.3
│   │   └── sqlx-macros 0.8.3
│   │       └── sqlx 0.8.3
│   │           ├── sqlx-test 0.1.0
│   │           │   └── sqlx 0.8.3
│   │           ├── sqlx-sqlite 0.8.3
│   │           ├── sqlx-postgres 0.8.3
│   │           │   ├── sqlx-macros-core 0.8.3
│   │           │   └── sqlx 0.8.3
│   │           ├── sqlx-mysql 0.8.3
│   │           │   ├── sqlx-macros-core 0.8.3
│   │           │   └── sqlx 0.8.3
│   │           ├── sqlx-example-sqlite-todos 0.1.0
│   │           ├── sqlx-example-postgres-transaction 0.1.0
│   │           ├── sqlx-example-postgres-todos 0.1.0
│   │           ├── sqlx-example-postgres-mockable-todos 0.1.0
│   │           ├── sqlx-example-postgres-listen 0.1.0
│   │           ├── sqlx-example-postgres-json 0.1.0
│   │           ├── sqlx-example-postgres-files 0.1.0
│   │           ├── sqlx-example-postgres-chat 0.1.0
│   │           ├── sqlx-example-postgres-axum-social 0.1.0
│   │           ├── sqlx-example-mysql-todos 0.1.0
│   │           ├── sqlx-core 0.8.3
│   │           │   ├── sqlx-sqlite 0.8.3
│   │           │   ├── sqlx-postgres 0.8.3
│   │           │   ├── sqlx-mysql 0.8.3
│   │           │   ├── sqlx-macros-core 0.8.3
│   │           │   ├── sqlx-macros 0.8.3
│   │           │   └── sqlx 0.8.3
│   │           └── sqlx-cli 0.8.3
│   └── sqlx 0.8.3
├── sqlx-macros-core 0.8.3
├── sqlx-core 0.8.3
└── sqlx 0.8.3
```

Result of cargo update:

```
    Updating crates.io index
    Updating addr2line v0.21.0 -> v0.24.2
    Removing adler v1.0.2
      Adding adler2 v2.0.0
    Removing ahash v0.8.11
    Updating aho-corasick v1.1.2 -> v1.1.3
    Updating allocator-api2 v0.2.16 -> v0.2.21
    Updating anstream v0.6.13 -> v0.6.18
    Updating anstyle v1.0.6 -> v1.0.10
    Updating anstyle-parse v0.2.3 -> v0.2.6
    Updating anstyle-query v1.0.2 -> v1.1.2
    Updating anstyle-wincon v3.0.2 -> v3.0.6
    Updating anyhow v1.0.81 -> v1.0.95
    Updating arrayvec v0.7.4 -> v0.7.6
    Updating assert_cmd v2.0.14 -> v2.0.16
    Updating async-channel v2.2.0 -> v2.3.1
    Updating async-executor v1.8.0 -> v1.13.1
    Updating async-io v2.3.2 -> v2.4.0
    Updating async-lock v3.3.0 -> v3.4.0
    Updating async-task v4.7.0 -> v4.7.1
    Updating async-trait v0.1.77 -> v0.1.85
    Updating autocfg v1.1.0 -> v1.4.0
    Updating aws-lc-rs v1.8.0 -> v1.12.0
    Updating aws-lc-sys v0.19.0 -> v0.24.1
    Updating backtrace v0.3.69 -> v0.3.74
    Updating base64 v0.22.0 -> v0.22.1
    Removing basic-toml v0.1.9
    Updating bigdecimal v0.4.3 -> v0.4.7
    Updating bindgen v0.69.4 -> v0.69.5 (latest: v0.71.1)
    Updating bitflags v2.4.2 -> v2.7.0
    Updating blocking v1.5.1 -> v1.6.1
    Updating borsh v1.5.1 -> v1.5.3
    Updating borsh-derive v1.5.1 -> v1.5.3
    Updating bstr v1.9.1 -> v1.11.3
    Updating bumpalo v3.15.4 -> v3.16.0
    Updating bytes v1.5.0 -> v1.9.0
    Updating camino v1.1.6 -> v1.1.9
    Updating cargo-platform v0.1.7 -> v0.1.9
    Updating cc v1.1.6 -> v1.2.8
      Adding cfg_aliases v0.1.1 (latest: v0.2.1)
    Updating chrono v0.4.35 -> v0.4.39
    Updating clap v4.5.2 -> v4.5.26
    Updating clap_builder v4.5.2 -> v4.5.26
    Updating clap_complete v4.5.1 -> v4.5.42
    Updating clap_derive v4.5.0 -> v4.5.24
    Updating clap_lex v0.7.0 -> v0.7.4
    Updating cmake v0.1.50 -> v0.1.52
    Updating colorchoice v1.0.0 -> v1.0.3
    Updating concurrent-queue v2.4.0 -> v2.5.0
    Updating console v0.15.8 -> v0.15.10
      Adding core-foundation v0.10.0
    Updating core-foundation-sys v0.8.6 -> v0.8.7
    Updating cpufeatures v0.2.12 -> v0.2.16
    Updating crc v3.0.1 -> v3.2.1
    Updating crossbeam-deque v0.8.5 -> v0.8.6
    Updating crossbeam-queue v0.3.11 -> v0.3.12
    Updating crossbeam-utils v0.8.19 -> v0.8.21
    Updating darling v0.20.8 -> v0.20.10
    Updating darling_core v0.20.8 -> v0.20.10
    Updating darling_macro v0.20.8 -> v0.20.10
    Updating der v0.7.8 -> v0.7.9
    Updating dunce v1.0.4 -> v1.0.5
    Updating either v1.10.0 -> v1.13.0
    Updating encode_unicode v0.3.6 -> v1.0.0
    Updating env_filter v0.1.0 -> v0.1.3
    Updating env_logger v0.11.3 -> v0.11.6
      Adding erased-serde v0.4.5
    Updating errno v0.3.8 -> v0.3.10
    Removing event-listener v4.0.3
    Removing event-listener v5.2.0
      Adding event-listener v5.4.0
    Removing event-listener-strategy v0.4.0
    Removing event-listener-strategy v0.5.0
      Adding event-listener-strategy v0.5.3
    Updating fastrand v2.0.1 -> v2.3.0
    Updating filetime v0.2.23 -> v0.2.25
    Removing finl_unicode v1.2.0
    Updating flume v0.11.0 -> v0.11.1
    Updating foldhash v0.1.3 -> v0.1.4
    Updating futures v0.3.30 -> v0.3.31
    Updating futures-channel v0.3.30 -> v0.3.31
    Updating futures-core v0.3.30 -> v0.3.31
    Updating futures-executor v0.3.30 -> v0.3.31
    Updating futures-io v0.3.30 -> v0.3.31
    Updating futures-lite v2.2.0 -> v2.5.0
    Updating futures-macro v0.3.30 -> v0.3.31
    Updating futures-sink v0.3.30 -> v0.3.31
    Updating futures-task v0.3.30 -> v0.3.31
    Updating futures-util v0.3.30 -> v0.3.31
    Updating getrandom v0.2.12 -> v0.2.15
    Updating gimli v0.28.1 -> v0.31.1
    Updating glob v0.3.1 -> v0.3.2
    Updating half v2.4.0 -> v2.4.1
    Removing hashbrown v0.14.5
      Adding hermit-abi v0.4.0
    Updating httparse v1.8.0 -> v1.9.5
    Updating hyper v0.14.28 -> v0.14.32 (latest: v1.5.2)
    Updating iana-time-zone v0.1.60 -> v0.1.61
    Updating indexmap v2.2.5 -> v2.7.0
    Updating instant v0.1.12 -> v0.1.13
    Updating is-terminal v0.4.12 -> v0.4.13
      Adding is_terminal_polyfill v1.70.1
    Updating itoa v1.0.10 -> v1.0.14
    Updating jobserver v0.1.31 -> v0.1.32
    Updating js-sys v0.3.69 -> v0.3.76
    Updating lazy_static v1.4.0 -> v1.5.0
    Updating libc v0.2.153 -> v0.2.169
    Updating libloading v0.8.4 -> v0.8.6
    Updating libm v0.2.8 -> v0.2.11
    Updating libredox v0.0.1 -> v0.1.3
    Updating linux-raw-sys v0.4.13 -> v0.4.15 (latest: v0.7.0)
    Updating litemap v0.7.3 -> v0.7.4
    Updating lock_api v0.4.11 -> v0.4.12
    Updating log v0.4.21 -> v0.4.24
    Updating lru v0.12.3 -> v0.12.5
    Updating mac_address v1.1.5 -> v1.1.7
    Updating memchr v2.7.1 -> v2.7.4
      Adding memoffset v0.9.1
    Updating miniz_oxide v0.7.2 -> v0.8.2
      Adding mio v1.0.3
    Removing mirai-annotations v1.12.0
    Updating native-tls v0.2.11 -> v0.2.12
      Adding nix v0.28.0 (latest: v0.29.0)
    Updating num-bigint v0.4.4 -> v0.4.6
    Updating num-iter v0.1.44 -> v0.1.45
    Updating num-traits v0.2.18 -> v0.2.19
    Removing num_cpus v1.16.0
    Updating object v0.32.2 -> v0.36.7
    Updating once_cell v1.19.0 -> v1.20.2
    Updating oorandom v11.1.3 -> v11.1.4
    Updating openssl v0.10.64 -> v0.10.68
    Updating openssl-src v300.2.3+3.2.1 -> v300.4.1+3.4.0
    Updating openssl-sys v0.9.101 -> v0.9.104
    Updating parking v2.2.0 -> v2.2.1
    Updating parking_lot v0.12.1 -> v0.12.3
    Updating parking_lot_core v0.9.9 -> v0.9.10
    Updating paste v1.0.14 -> v1.0.15
    Updating pin-project v1.1.5 -> v1.1.8
    Updating pin-project-internal v1.1.5 -> v1.1.8
    Updating pin-project-lite v0.2.13 -> v0.2.16
    Updating piper v0.2.1 -> v0.2.4
    Updating pkg-config v0.3.30 -> v0.3.31
    Updating plotters v0.3.5 -> v0.3.7
    Updating plotters-backend v0.3.5 -> v0.3.7
    Updating plotters-svg v0.3.5 -> v0.3.7
    Updating polling v3.5.0 -> v3.7.4
    Updating ppv-lite86 v0.2.17 -> v0.2.20
    Updating predicates v3.1.0 -> v3.1.3
    Updating predicates-core v1.0.6 -> v1.0.9
    Updating predicates-tree v1.0.9 -> v1.0.12
    Updating prettyplease v0.2.17 -> v0.2.27
    Updating proc-macro-crate v3.1.0 -> v3.2.0
    Updating proc-macro2 v1.0.89 -> v1.0.93
    Updating quote v1.0.35 -> v1.0.38
    Updating rayon v1.9.0 -> v1.10.0
    Updating redox_syscall v0.4.1 -> v0.5.8
    Updating redox_users v0.4.4 -> v0.4.6 (latest: v0.5.0)
    Updating regex v1.10.3 -> v1.11.1
    Updating regex-automata v0.4.6 -> v0.4.9
    Updating regex-syntax v0.8.2 -> v0.8.5
    Updating rkyv v0.7.44 -> v0.7.45 (latest: v0.8.9)
    Updating rkyv_derive v0.7.44 -> v0.7.45 (latest: v0.8.9)
    Updating rsa v0.9.6 -> v0.9.7
    Updating rust_decimal v1.34.3 -> v1.36.0
    Updating rustc-demangle v0.1.23 -> v0.1.24
    Removing rustix v0.37.27
    Removing rustix v0.38.31
      Adding rustix v0.37.28 (latest: v0.38.43)
      Adding rustix v0.38.43
    Updating rustls v0.23.11 -> v0.23.21
    Updating rustls-native-certs v0.8.0 -> v0.8.1
    Updating rustls-pemfile v2.1.2 -> v2.2.0
    Updating rustls-pki-types v1.7.0 -> v1.10.1
    Updating rustls-webpki v0.102.5 -> v0.102.8
    Updating rustversion v1.0.17 -> v1.0.19
    Updating ryu v1.0.17 -> v1.0.18
    Updating schannel v0.1.23 -> v0.1.27
    Removing security-framework v2.9.2
      Adding security-framework v2.11.1 (latest: v3.2.0)
      Adding security-framework v3.2.0
    Updating security-framework-sys v2.9.1 -> v2.14.0
    Updating semver v1.0.22 -> v1.0.24
    Updating serde v1.0.197 -> v1.0.217
    Updating serde_derive v1.0.197 -> v1.0.217
      Adding serde_fmt v1.0.3
    Updating serde_json v1.0.114 -> v1.0.135
      Adding serde_spanned v0.6.8
    Updating signal-hook-mio v0.2.3 -> v0.2.4
    Updating signal-hook-registry v1.4.1 -> v1.4.2
    Updating simdutf8 v0.1.4 -> v0.1.5
    Updating smallvec v1.13.1 -> v1.13.2
    Updating socket2 v0.5.6 -> v0.5.8
    Removing spin v0.5.2
    Updating stringprep v0.1.4 -> v0.1.5
    Removing strsim v0.10.0
    Removing strsim v0.11.0
      Adding strsim v0.11.1
    Updating subtle v2.5.0 -> v2.6.1
      Adding sval v2.13.2
      Adding sval_buffer v2.13.2
      Adding sval_dynamic v2.13.2
      Adding sval_fmt v2.13.2
      Adding sval_json v2.13.2
      Adding sval_nested v2.13.2
      Adding sval_ref v2.13.2
      Adding sval_serde v2.13.2
    Updating syn v2.0.87 -> v2.0.96
    Removing syn_derive v0.1.8
      Adding target-triple v0.1.3
    Updating tempfile v3.10.1 -> v3.15.0
    Updating termtree v0.4.1 -> v0.5.1
    Removing thiserror v1.0.58
    Removing thiserror v2.0.0
      Adding thiserror v1.0.69 (latest: v2.0.11)
      Adding thiserror v2.0.11
    Removing thiserror-impl v1.0.58
    Removing thiserror-impl v2.0.0
      Adding thiserror-impl v1.0.69 (latest: v2.0.11)
      Adding thiserror-impl v2.0.11
    Updating time v0.3.36 -> v0.3.37
    Updating time-macros v0.2.18 -> v0.2.19
    Updating tinyvec v1.6.0 -> v1.8.1
    Updating tokio v1.36.0 -> v1.43.0
    Updating tokio-macros v2.2.0 -> v2.5.0
    Updating tokio-stream v0.1.14 -> v0.1.17
      Adding toml v0.8.19
    Updating toml_datetime v0.6.6 -> v0.6.8
    Updating toml_edit v0.21.1 -> v0.22.22
    Updating tower-layer v0.3.2 -> v0.3.3
    Updating tower-service v0.3.2 -> v0.3.3
    Updating tracing v0.1.40 -> v0.1.41
    Updating tracing-attributes v0.1.27 -> v0.1.28
    Updating tracing-core v0.1.32 -> v0.1.33
    Updating trybuild v1.0.89 -> v1.0.101
      Adding typeid v1.0.2
    Updating unicode-bidi v0.3.15 -> v0.3.18
    Updating unicode-ident v1.0.12 -> v1.0.14
    Updating unicode-normalization v0.1.23 -> v0.1.24
      Adding unicode-properties v0.1.3
    Updating unicode-segmentation v1.11.0 -> v1.12.0
    Removing unicode-width v0.1.13
      Adding unicode-width v0.1.14 (latest: v0.2.0)
      Adding unicode-width v0.2.0
    Updating url v2.5.3 -> v2.5.4
    Updating utf8parse v0.2.1 -> v0.2.2
    Updating uuid v1.7.0 -> v1.11.1
    Updating value-bag v1.8.0 -> v1.10.0
      Adding value-bag-serde1 v1.10.0
      Adding value-bag-sval2 v1.10.0
    Updating version_check v0.9.4 -> v0.9.5
    Updating waker-fn v1.1.1 -> v1.2.0
    Updating wasm-bindgen v0.2.92 -> v0.2.99
    Updating wasm-bindgen-backend v0.2.92 -> v0.2.99
    Updating wasm-bindgen-futures v0.4.42 -> v0.4.49
    Updating wasm-bindgen-macro v0.2.92 -> v0.2.99
    Updating wasm-bindgen-macro-support v0.2.92 -> v0.2.99
    Updating wasm-bindgen-shared v0.2.92 -> v0.2.99
    Updating web-sys v0.3.69 -> v0.3.76
    Updating webpki-roots v0.26.3 -> v0.26.7
    Updating whoami v1.5.1 -> v1.5.2
    Updating winapi-util v0.1.6 -> v0.1.9
      Adding windows-sys v0.59.0
    Updating windows-targets v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating windows_aarch64_gnullvm v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating windows_aarch64_msvc v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating windows_i686_gnu v0.52.4 -> v0.52.6 (latest: v0.53.0)
      Adding windows_i686_gnullvm v0.52.6 (latest: v0.53.0)
    Updating windows_i686_msvc v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating windows_x86_64_gnu v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating windows_x86_64_gnullvm v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating windows_x86_64_msvc v0.52.4 -> v0.52.6 (latest: v0.53.0)
    Updating winnow v0.5.40 -> v0.6.24
    Updating yoke v0.7.4 -> v0.7.5
    Updating yoke-derive v0.7.4 -> v0.7.5
    Updating zerocopy v0.7.32 -> v0.7.35 (latest: v0.8.14)
    Updating zerocopy-derive v0.7.32 -> v0.7.35 (latest: v0.8.14)
    Updating zerofrom v0.1.4 -> v0.1.5
    Updating zerofrom-derive v0.1.4 -> v0.1.5
    Updating zeroize v1.7.0 -> v1.8.1
    Removing zeroize_derive v1.4.2
note: pass `--verbose` to see 88 unchanged dependencies behind latest
```
2025-01-13 14:44:52 -08:00
Karam Barakat
b386862ed5 Update row.rs
Row::get should track caller for a better development experience.
2025-01-13 05:57:25 -08:00
Paolo Barbolini
6b337668de
fix(cli): running tests on 32bit platforms (#3666) 2025-01-06 16:00:18 -08:00