79 Commits

Author SHA1 Message Date
Austin Bonander
0a32d01081 fix: remove unused imports 2025-03-30 14:35:57 -07:00
Austin Bonander
732233a5da fix: only warn on ambiguous crates if the invocation relies on it 2025-03-30 03:42:28 -07:00
Austin Bonander
4e95bafb35 Merge remote-tracking branch 'origin/main' into sqlx-toml
# Conflicts:
#	.github/workflows/examples.yml
#	sqlx-postgres/src/connection/mod.rs
2025-03-29 15:57:39 -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
Austin Bonander
8429f2e989 Merge remote-tracking branch 'origin/main' into sqlx-toml
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	sqlx-cli/src/database.rs
#	sqlx-cli/src/lib.rs
#	sqlx-mysql/src/connection/executor.rs
2025-02-27 17:04:34 -08:00
Austin Bonander
0b79b51d74 WIP feat: filling out axum-multi-tenant example 2025-02-26 13:36:53 -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
Austin Bonander
3765f67aba feat: introduce migrate.create-schemas 2025-01-22 15:32:50 -08:00
Austin Bonander
1ff6a8a950 feat: teach sqlx-cli about migrate.migrations-dir 2025-01-15 10:31:03 -08:00
Austin Bonander
ba7740d8e5 feat: teach macros about migrate.ignored-chars 2025-01-06 16:14:17 -08:00
Austin Bonander
9d1bc64ced feat: teach macros about migrate.table-name, migrations-dir 2025-01-06 16:14:17 -08:00
Austin Bonander
13f6ef0ab0 feat: make macros aware of macros.preferred-crates 2025-01-06 16:14:17 -08:00
Austin Bonander
5cb3de38b9 feat(macros): implement type_override and column_override from sqlx.toml 2025-01-06 16:14:16 -08:00
Austin Bonander
e775d2a3eb refactor: make Config always compiled
simplifies usage while still making parsing optional for less generated code
2025-01-06 16:14:16 -08:00
Austin Bonander
afa3a930d2 feat: create sqlx.toml format 2025-01-06 16:14:14 -08:00
Austin Bonander
28cfdbb40c
Release/0.8.3 (#3663)
* chore: create 0.8.3 release

* fix: prevent dead-branch warning from Clippy in query macros

cc #3595

* fix: move `#[allow]` from previous commit to the `if` block
2025-01-03 20:28:57 -08:00
Ilya Bizyaev
35c78f5175
Support building with rustls but native certificates (#3551)
This adds an alternative TLS configuration that relies on rustls-native-certs,
for users who cannot bundle the MPL-licensed webpki-roots.

The approach is copied from reqwest:

* https://github.com/seanmonstar/reqwest/blob/3ad6e02cd/Cargo.toml#L48
* https://github.com/seanmonstar/reqwest/blob/3ad6e02cd/src/async_impl/client.rs#L513

— except error handling is relaxed to accommodate for tls_config.root_cert_path.
2024-11-27 16:39:18 -08:00
Henri Sivonen
4fac945d5a
Remove default-features = false from url (#3601)
Fixes #3589.
2024-11-26 11:01:18 -08:00
依云
5b8bb3b28b
Add a "sqlite-unbundled" feature that dynamically links to system libsqlite3.so library (#3507)
* Add a "sqlite-unbundled" feature that dynamically links to system libsqlite3.so library

* update README abouot the newly-added `sqlite-unbundled` feature

* Update README.md to make it clear with bulleted list

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

* more cfg feature updates

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

* update documentation in sqlx-sqlx/src/lib.rs too

and also mention possible build time increasement.

* cargo fmt

* Add "sqlite-unbundled" feature to sqlx-cli

* Add sqlite-unbundled to gituhb actions tests

* cfg(feature = "sqlite") => cfg(any(feature = "sqlite", feature = "sqlite-unbundled"))

* fix

* CI: make sqlite-unbundled tests workaround required-features

by duplicating the relevant test section

* use an internal "_sqlite" feature to do the conditional compilation

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2024-10-02 11:55:21 -07:00
Joey de Waal
e62bbd7ee9 Change test macro error message 2024-10-02 11:42:33 -07:00
Joey de Waal
ef039c5d67 recursively look for literal in test macro 2024-10-02 11:42:33 -07:00
joeydewaal
1d8eb2add4
Fix (#3395) sqlx::test macro in 0.8 (#3403)
* fix: fixture macro attribute

* remove extra new line

* add extra new line

* feat: add test for slqx::test macro

* feat: update test for sqlx::test macro

* remove old macro test

* feat: add postgres and sqlite test

* rust format

* cargo fmt

* fix fixtures execution order in test
2024-08-26 14:03:22 -07:00
joeydewaal
ebf04ff499
fix(#3445): PgHasArrayType (#3453)
* fix(#3445): PgHasArrayType

* regression test for custom no_pg_array
2024-08-24 19:25:08 -07:00
joeydewaal
018ffe7e0d
fix: non snake case warning (#3454)
* fix: non-snake-case fields warning

* cargo fmt
2024-08-24 19:24:53 -07:00
Dirkjan Ochtman
a892ebc6e2
Upgrade to rustls 0.23 (#3399) 2024-08-04 16:39:13 -07:00
Austin Bonander
6651d2df72
Fix CI after Rust 1.80, remove dead feature references (#3381)
* fix(ci): update workflows/examples.yml

* Removed archived `actions-rs` actions
* Upgraded `Swatinem/rust-cache`, `actions/checkout`, `actions/download-artifact`, `actions/upload-artifact`

* chore: deprecate `AnyKind`

* fix: remove dead references to DB features in `sqlx-core`

This reactivates a couple of tests that had stopped working.

* chore(ci): move sqlx-cli checks to their own workflow

* fix(ci): remove remaining `uses: actions-rs/cargo`

* fix warnings

* chore: add titles to sqlx-cli jobs

* fix warnings (2)

* fix error in pool example

* fix warnings (3)

* fix query_builder test

* fix: don't run CLI tests on Windows

* chore: upgrade `rust-toolchain` to 1.80

* fix(postgres): fix missing Tokio specialization in `PgCopyIn`

Caught by the new `unexpected_cfgs` lint.

* fix new warnings
2024-07-26 23:15:32 -07:00
Yuta Kobayashi
f2fea27cba
Fix encoding and decoding of MySQL enums in sqlx::Type (#3371) 2024-07-25 02:47:36 -07:00
Austin Bonander
4fc5b30d65
breaking: fix name collision in FromRow, return Error::ColumnDecode for TryFrom errors (#3356)
* chore: create regression test for #3344

* fix(derives): use a parameter name that's less likely to collide

* breaking(derives): emit `Error::ColumnDecode` when a `TryFrom` conversion fails in `FromRow`

Breaking because `#[sqlx(default)]` on an individual field or the struct itself would have previously suppressed the error. This doesn't seem like good behavior as it could result in some potentially very difficult bugs.

Instead of using `TryFrom` for these fields, just implement `From` and apply the default explicitly.

* fix: run `cargo fmt`

* fix: use correct field in `ColumnDecode`
2024-07-19 23:03:47 -07:00
Frank Elsinga
b37b34bd04
chore:added a testcase for sqlx migrate add ... (#3352) 2024-07-19 18:50:18 -07:00
Frank Elsinga
08e45f4344
fix:the json-feature should activate sqlx-postgres?/json as well (#3350)
* fix: made sure that the json feature is defined for postgres as well

* fixed the feature order

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

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2024-07-16 14:32:41 -07:00
Nick Kocharhook
1e1697f655 Change to cfg!(not()) (#3275) 2024-07-11 15:03:18 -07:00
Nick Kocharhook
e565123ca3 Invert boolean for migrate error message. (#3275) 2024-07-11 15:03:18 -07:00
DirectorX
22e52c1171 allow rename with rename_all (close #2896) 2024-07-10 22:15:09 -07:00
Austin Bonander
16e3f1025a fix(postgres): add missing type resolution for arrays by name 2024-07-08 00:14:19 -07:00
Cristian Le
92de9d42a6 Add LICENSE-* files to crates 2024-06-20 10:56:08 -07:00
Austin Bonander
088a374ebb fix compilation errors 2024-06-15 11:57:33 -07:00
Austin Bonander
80359d1ada fix(postgres): derive PgHasArrayType for enums 2024-06-15 11:57:33 -07:00
Austin Bonander
bae083cf79 fix: clippy warnings 2024-06-13 13:11:36 -07:00
ben
1ce0e760de
fix: Decode and Encode derives (#2940) 2024-05-31 13:04:13 -07:00
Max Bruckner
c57b46ceb6
Make Encode return a result (#3126)
* Make encode and encode_by_ref fallible

This only changes the trait for now and makes it compile, calling .expect() on all users. Those will be removed in a later commit.

* PgNumeric: Turn TryFrom Decimal to an infallible From

* Turn panics in Encode implementations into errors

* Add Encode error analogous to the Decode error

* Propagate decode errors through Arguments::add

This pushes the panics one level further to mostly bind calls. Those will also be removed later.

* Only check argument encoding at the end

* Use Result in Query internally

* Implement query_with functions in terms of _with_result

* Surface encode errors when executing a query.

* Remove remaining panics in AnyConnectionBackend implementations

* PostgreSQL BigDecimal: Return encode error immediately

* Arguments: Add len method to report how many arguments were added

* Query::bind: Report which argument failed to encode

* IsNull: Add is_null method

* MySqlArguments: Replace manual bitmap code with NullBitMap helper type

* Roll back buffer in MySqlArguments if encoding fails

* Roll back buffer in SqliteArguments if encoding fails

* Roll back PgArgumentBuffer if encoding fails
2024-05-31 12:42:36 -07:00
Lílian
6c1e3a4e61
fix: resolve path ownership problems when using sqlx_macros_unstable (#3236)
* fix: make resolve_blocking not take ownership of path

When using sqlx_macros_unstable the codepath taken further uses the path
variable and it is more convenient to not take ownership but instead
pass references to needed functions.

* fix: change &PathBuf to &Path in resolve_blocking
2024-05-30 15:46:14 -07:00
Jaime
40aef6da2c
feat: no tx migration (#3181)
* test: add a failing test

* feat: add no_tx to migration struct

* feat: execute migration with no tx block

* fix: expected string literal compilation error

* test: update no tx to content comment

* refactor: use the sql comment instead of file name semantics

* docs: remove no_tx from file format comment

* fix: remove filename matches

* fix: messed up merge

* refactor: dedupe migration

* fix: move comment to where it makes sense

* fix: linter error
2024-04-19 15:42:44 -07:00
Gnome!
3e7aa6bedf
Bump deps that do not need code changes (#3165) 2024-04-06 00:07:36 -07:00
Austin Bonander
02c68a46c7
refactor: lift type mappings into driver crates (#2970)
Motivated by #2917
2024-03-30 15:52:52 -07:00
Luiz Carvalho
1c7b3d0751
feat: new derive feature flag (#3113)
* feat: new derive feature flag

* doc: add new derive flag to readme

* fix: macros feature flag cfg
2024-03-30 15:24:56 -07:00
Bogdan Mircea
1f6642cafa
Reorder attrs in sqlx::test macro (#3123) 2024-03-27 20:20:41 -07:00
nitn3lav
9ba488c831
Generic Associated Types in Database, replacing HasValueRef, HasArguments, HasStatement (#2973)
* HasValueRef, HasArguments, HasStatement -> Database GATs

replace the associated types from the generic traits
`HasValueRef<'r>`, `HasArguments<'q>` and `HasStatement<'q>`
with generic associated types in `Database`

* fixup after rebase

---------

Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
2024-03-14 12:35:52 -07:00
Luiz Carvalho
8f926e590c refac: rebase syn 2 changes 2024-03-14 12:03:40 -07:00
Luiz Carvalho
f316b0d435 fix(macros): only enable chrono when time is disabled 2024-03-11 22:38:47 -07:00
Austin Bonander
d005111494 fix: better I/O errors when migrate!() cannot read a file 2024-03-06 22:20:59 -08:00