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

Update ws-support #15

Merged
merged 86 commits into from
Nov 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
5d9c292
release: v0.5.4
mehcode May 22, 2021
eda78a7
Fix infinite compile loop regression from recursive Lazy reference
toshokan May 24, 2021
694a2ac
release: v0.5.5
mehcode May 24, 2021
4986ea2
Improve root README.md and sqlx-cli/README.md (#1262)
jplatte May 30, 2021
358b80f
Rename _expr to expr (#1264)
RhnSharma Jun 1, 2021
e33e451
Fix error message about wildcard overrides (#1276)
jplatte Jun 15, 2021
73f3fed
Fix error message about wildcard overrides (#1276) (#8)
vbeffa Jul 13, 2021
74bb0c1
Fix error message about wildcard overrides (#1276) (#10)
vbeffa Jul 14, 2021
bb330f8
feat(docs): add an FAQ (#1319)
abonander Jul 14, 2021
6c8f61f
doc(faq): mention how to invert `= ANY($1)`
abonander Jul 16, 2021
b54adfa
doc(faq): empty array cases for `ANY` and `ALL`
abonander Jul 16, 2021
8204989
doc(faq): fix wording for empty cases
abonander Jul 16, 2021
0abbcc5
Update crc 1.8.1 -> 2.0.0 (#1256)
akhilles Jul 16, 2021
be189bd
Support MACADDR in Postgres (#1329)
nomick Jul 19, 2021
8bcac03
fix(mysql): implement type traits for `chrono::DateTime<Local>` (#1335)
abonander Jul 21, 2021
cb3ff28
Keep track of column typing in SQLite EXPLAIN parsing (#1323)
marshoepial Jul 21, 2021
5317405
fix(pool): reimplement pool internals with `futures-intrusive` (#1320)
abonander Jul 21, 2021
a8544fd
fix(pg_money): handle negative values correctly in `PgMoney::from_dec…
abonander Jul 21, 2021
e89cb09
fix(macros): tell the compiler about external files/env vars to watch…
abonander Jul 21, 2021
b3ae6e5
fix(macros): prefix generated variable names in `query_as!()` (#1336)
abonander Jul 22, 2021
dc92c28
Use tokio `spawn_blocking` instead of `block_in_place` (#1333)
guylapid Jul 23, 2021
34db44b
Mark the original DatabaseError as source. (#1197)
LukeMathWalker Jul 23, 2021
f0d0dce
Use postgres as maintenance db unless maintaining postgres itself (#1…
dfaust Jul 23, 2021
9f7205e
Fix GitHub Actions and integration test (#1346)
AtkinsChang Jul 28, 2021
55c603e
build(deps): bump git2 from 0.13.19 to 0.13.20 (#1362)
AtkinsChang Aug 7, 2021
71388a7
sqlite: fix a couple segfaults (#1351)
abonander Aug 16, 2021
e77219f
Add docs for fetch_all, example for postgres transactions (#1255)
raffomania Aug 16, 2021
e7c3610
fix: Ignore __CARGO_FIX_PLZ when running "cargo metadata" in macro (#…
frxstrem Aug 16, 2021
dd27aa0
Fix bug for PostgreSQL if the statement has type holes (#1363)
AtkinsChang Aug 16, 2021
38435ca
fix(cli): pin `clap_derive` version (#1381)
abonander Aug 16, 2021
774880d
cockroachdb fix for macro (#1386)
altanozlu Aug 17, 2021
6bb1c71
preparing 0.5.6 release (#1382)
abonander Aug 17, 2021
207e6db
chore: bump versions of sqlx-* in dependencies
abonander Aug 17, 2021
c04f83b
fix(macros): use `resolve_path` when getting path for `include_str!()…
abonander Aug 20, 2021
0e8ffb5
fix(postgres): avoid recursively spawning tasks in `PgListener::drop(…
abonander Aug 20, 2021
3749e0e
chore: prepare 0.5.7 (hotfix) release (#1394)
abonander Aug 21, 2021
0e51272
fix(cli) move database_url #1391 (#1400)
leshow Aug 30, 2021
ad81e35
Use promptly instead of dialoguer (#1410)
xpe Aug 30, 2021
135d16a
Getting current Handle in Drop (#1395)
Freyskeyd Aug 30, 2021
d94c081
Add more debugging info to unresolved type declaration panic (#1416)
jplatte Sep 1, 2021
89ee690
Don't require cargo to build offline queries (#1415)
rbtcollins Sep 1, 2021
335eed4
Add executor trait "aliases" (#1412)
jplatte Sep 1, 2021
719d800
feat: allow log level customization (#1371)
EliseZeroTwo Sep 1, 2021
2eb4ff8
don't assert #[repr(...)] on `#[derive(sqlx::Type)]` unless needed (#…
Emilgardis Sep 1, 2021
efd08cc
Reduce futures-util features (#1427)
paolobarbolini Sep 8, 2021
bb33a29
Fix issue #1431 (#1432)
xpe Sep 10, 2021
092f811
Fix CIDR[] not being compatible with Vec<IpNetwork> (#1433)
paolobarbolini Sep 10, 2021
687fbf9
Support the immutable option on SQLite connections (#1289)
djmarcin Sep 10, 2021
ec510b3
Finish support for Postgres COPY (#1345)
montanalow Sep 13, 2021
2307f43
fix: run `cargo fmt`
abonander Sep 13, 2021
a5997a2
Support custom initial options for sqlite (#1295)
ghassmo Sep 13, 2021
24c0d52
docs: added a note about MySQL syntax in the README example (#1445)
frol Sep 20, 2021
593364f
fix(mysql): handle multiple waiting results correctly (#1439)
eagletmt Sep 22, 2021
8b30f30
Fix a panic in the worker thread when dropping the connection while `…
abonander Sep 22, 2021
c2e04a1
Upgrade hmac to 0.11 (#1443)
paolobarbolini Sep 23, 2021
6e1c7a9
Update postgres 14 test to 14rc1 (#1454)
paolobarbolini Sep 24, 2021
ba3e373
Shut down statement worker in Sqlite Connection::close (#1453)
andrewwhitehead Oct 1, 2021
51e45ce
Revert "feat: allow log level customization (#1371)" (#1465)
abonander Oct 1, 2021
8561891
[SQLite] encoding & decoding `NaiveTime` with correct format (#1459)
billy1624 Oct 1, 2021
efde5c5
Add reverting instructions to README (#1468)
erewok Oct 1, 2021
1b5dd65
preparing 0.5.8 release (#1466)
abonander Oct 1, 2021
9abe9b3
prepare 0.5.9 hotfix release (#1469)
abonander Oct 1, 2021
466d3f3
Update README.md (#1479)
yerke Oct 20, 2021
d25ab07
fix(test): fix mismatched type error in MySQL type tests (#1517)
abonander Oct 26, 2021
4ada6ac
Add support for serialized threading mode to sqlite (#1514)
LLBlumire Nov 3, 2021
f1851e7
Add persistent setter (#1503) (#1508)
akiradeveloper Nov 3, 2021
1efbbca
Reduce indexmap version to 1.6.2 (#1501)
dimfeld Nov 3, 2021
62b57f0
fix(postgres): allow rust_decimal::Decimal in PgRange (#1523)
meh Nov 3, 2021
069cfca
Update FAQ to include building on docs.rs (#1497)
russweas Nov 3, 2021
b419bf5
docs: revise `Pool` docs in a couple places (#1526)
abonander Nov 5, 2021
cdb40b1
derive Clone, Copy for AnyKind (#1474)
yuyawk Nov 9, 2021
626dd0d
fix panic when converting negative chrono::Duration into PgInterval (…
yuyawk Nov 9, 2021
df2d5c7
Encode/Decode impl for Cow<'_, str> (#1343)
Drevoed Nov 9, 2021
ce801b9
Include a reference to the shape of the migration files in the migrat…
zbigniewzolnierowicz Nov 9, 2021
51954fe
fix(readme): link to `dotenv` crate
abonander Nov 10, 2021
35c5e32
fix(readme): show runtime features in quickstart
abonander Nov 10, 2021
3604c6b
fix(readme): mention `offline` feature
abonander Nov 10, 2021
fc05631
fix(readme): mention examples
abonander Nov 10, 2021
c8db803
fix(sqlx-cli/readme): mention `openssl-vendored`
abonander Nov 10, 2021
a304161
Copy API improvement (#1536) (#1537)
akiradeveloper Nov 12, 2021
8299687
bump libsqlite3-sys to 0.23.1 (#1535)
nitsky Nov 12, 2021
3523e09
Merge pull request #2 from launchbadge/master
vbeffa Nov 19, 2021
89f720a
Merge pull request #3 from JetASAP/master
vbeffa Nov 19, 2021
50ea60c
Merge branch 'master' into merge-master
vbeffa Nov 19, 2021
b0be319
add #[cfg(not(target_arch = "wasm32"))] to fix compile errors
vbeffa Nov 20, 2021
ae280f0
Merge pull request #6 from vbeffa/merge-master
vbeffa Nov 20, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 40 additions & 32 deletions .github/workflows/sqlx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
steps:
- uses: actions/checkout@v2

Expand All @@ -48,29 +49,30 @@ jobs:
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-check-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-check-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.lock') }}

- uses: actions-rs/cargo@v1
with:
command: check
args: >
--manifest-path sqlx-core/Cargo.toml
--no-default-features
--features offline,all-databases,all-types,migrate,runtime-${{ matrix.runtime }}
--features offline,all-databases,all-types,migrate,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

- uses: actions-rs/cargo@v1
with:
command: check
args: >
--no-default-features
--features offline,all-databases,all-types,migrate,runtime-${{ matrix.runtime }},macros
--features offline,all-databases,all-types,migrate,runtime-${{ matrix.runtime }}-${{ matrix.tls }},macros

test:
name: Unit Test
runs-on: ubuntu-20.04
strategy:
matrix:
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
steps:
- uses: actions/checkout@v2

Expand All @@ -93,7 +95,7 @@ jobs:
command: test
args: >
--manifest-path sqlx-core/Cargo.toml
--features offline,all-databases,all-types,runtime-${{ matrix.runtime }}
--features offline,all-databases,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

cli:
name: CLI Binaries
Expand Down Expand Up @@ -148,7 +150,8 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
needs: check
steps:
- uses: actions/checkout@v2
Expand All @@ -165,14 +168,14 @@ jobs:
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-sqlite-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-sqlite-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.lock') }}

- uses: actions-rs/cargo@v1
with:
command: test
args: >
--no-default-features
--features any,macros,migrate,sqlite,all-types,runtime-${{ matrix.runtime }}
--features any,macros,migrate,sqlite,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
--
--test-threads=1
env:
Expand All @@ -183,8 +186,9 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
postgres: [12, 10, 9_6, 9_5]
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
postgres: [13, 9_6]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
needs: check
steps:
- uses: actions/checkout@v2
Expand All @@ -201,23 +205,24 @@ jobs:
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-postgres-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-postgres-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.lock') }}

- uses: actions-rs/cargo@v1
with:
command: build
args: >
--features postgres,all-types,runtime-${{ matrix.runtime }}
--features postgres,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

- run: docker-compose -f tests/docker-compose.yml run -d -p 5432:5432 postgres_${{ matrix.postgres }}
- run: sleep 10
- run: |
docker-compose -f tests/docker-compose.yml run -d -p 5432:5432 --name postgres_${{ matrix.postgres }} postgres_${{ matrix.postgres }}
docker exec postgres_${{ matrix.postgres }} bash -c "until pg_isready; do sleep 1; done"

- uses: actions-rs/cargo@v1
with:
command: test
args: >
--no-default-features
--features any,postgres,macros,all-types,runtime-${{ matrix.runtime }}
--features any,postgres,macros,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
env:
DATABASE_URL: postgres://postgres:password@localhost:5432/sqlx

Expand All @@ -226,7 +231,7 @@ jobs:
command: test
args: >
--no-default-features
--features any,postgres,macros,migrate,all-types,runtime-${{ matrix.runtime }}
--features any,postgres,macros,migrate,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
env:
DATABASE_URL: postgres://postgres:password@localhost:5432/sqlx?sslmode=verify-ca&sslrootcert=.%2Ftests%2Fcerts%2Fca.crt

Expand All @@ -235,8 +240,9 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
mysql: [8, 5_7, 5_6]
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
mysql: [8, 5_6]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
needs: check
steps:
- uses: actions/checkout@v2
Expand All @@ -253,13 +259,13 @@ jobs:
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-mysql-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-mysql-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.lock') }}

- uses: actions-rs/cargo@v1
with:
command: build
args: >
--features mysql,all-types,runtime-${{ matrix.runtime }}
--features mysql,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

- run: docker-compose -f tests/docker-compose.yml run -d -p 3306:3306 mysql_${{ matrix.mysql }}
- run: sleep 60
Expand All @@ -269,7 +275,7 @@ jobs:
command: test
args: >
--no-default-features
--features any,mysql,macros,migrate,all-types,runtime-${{ matrix.runtime }}
--features any,mysql,macros,migrate,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
env:
DATABASE_URL: mysql://root:password@localhost:3306/sqlx

Expand All @@ -278,8 +284,9 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
mariadb: [10_5, 10_4, 10_3, 10_2, 10_1]
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
mariadb: [10_6, 10_2]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
needs: check
steps:
- uses: actions/checkout@v2
Expand All @@ -297,13 +304,13 @@ jobs:
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-mysql-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-mysql-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.lock') }}

- uses: actions-rs/cargo@v1
with:
command: build
args: >
--features mysql,all-types,runtime-${{ matrix.runtime }}
--features mysql,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

- run: docker-compose -f tests/docker-compose.yml run -d -p 3306:3306 mariadb_${{ matrix.mariadb }}
- run: sleep 30
Expand All @@ -313,7 +320,7 @@ jobs:
command: test
args: >
--no-default-features
--features any,mysql,macros,migrate,all-types,runtime-${{ matrix.runtime }}
--features any,mysql,macros,migrate,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
env:
DATABASE_URL: mysql://root:password@localhost:3306/sqlx

Expand All @@ -322,8 +329,9 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
mssql: [2019]
runtime: [async-std-native-tls, tokio-native-tls, actix-native-tls, async-std-rustls, tokio-rustls, actix-rustls]
mssql: [2019, 2017]
runtime: [async-std, tokio, actix]
tls: [native-tls, rustls]
needs: check
steps:
- uses: actions/checkout@v2
Expand All @@ -340,13 +348,13 @@ jobs:
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-mssql-${{ matrix.runtime }}-${{ hashFiles('**/Cargo.lock') }}
key: ${{ runner.os }}-mssql-${{ matrix.runtime }}-${{ matrix.tls }}-${{ hashFiles('**/Cargo.lock') }}

- uses: actions-rs/cargo@v1
with:
command: build
args: >
--features mssql,all-types,runtime-${{ matrix.runtime }}
--features mssql,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}

- run: docker-compose -f tests/docker-compose.yml run -d -p 1433:1433 mssql_${{ matrix.mssql }}
- run: sleep 80 # MSSQL takes a "bit" to startup
Expand All @@ -356,6 +364,6 @@ jobs:
command: test
args: >
--no-default-features
--features any,mssql,macros,migrate,all-types,runtime-${{ matrix.runtime }}
--features any,mssql,macros,migrate,all-types,runtime-${{ matrix.runtime }}-${{ matrix.tls }}
env:
DATABASE_URL: mssql://sa:Password123!@localhost/sqlx
70 changes: 70 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,67 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 0.5.9 - 2021-10-01

A hotfix release to address the issue of the `sqlx` crate itself still depending on older versions of `sqlx-core` and
`sqlx-macros`.

No other changes from `0.5.8`.

## 0.5.8 - 2021-10-01 (Yanked; use 0.5.9)

[A total of 24 pull requests][0.5.8-prs] were merged this release cycle! Some highlights:

* [[#1289]] Support the `immutable` option on SQLite connections [[@djmarcin]]
* [[#1295]] Support custom initial options for SQLite [[@ghassmo]]
* Allows specifying custom `PRAGMA`s and overriding those set by SQLx.
* [[#1345]] Initial support for Postgres `COPY FROM/TO`[[@montanalow], [@abonander]]
* [[#1439]] Handle multiple waiting results correctly in MySQL [[@eagletmt]]

[#1289]: https://github.com/launchbadge/sqlx/pull/1289
[#1295]: https://github.com/launchbadge/sqlx/pull/1295
[#1345]: https://github.com/launchbadge/sqlx/pull/1345
[#1439]: https://github.com/launchbadge/sqlx/pull/1439
[0.5.8-prs]: https://github.com/launchbadge/sqlx/pulls?q=is%3Apr+is%3Amerged+merged%3A2021-08-21..2021-10-01

## 0.5.7 - 2021-08-20

* [[#1392]] use `resolve_path` when getting path for `include_str!()` [[@abonander]]
* Fixes a regression introduced by [[#1332]].
* [[#1393]] avoid recursively spawning tasks in `PgListener::drop()` [[@abonander]]
* Fixes a panic that occurs when `PgListener` is dropped in `async fn main()`.

[#1392]: https://github.com/launchbadge/sqlx/pull/1392
[#1393]: https://github.com/launchbadge/sqlx/pull/1393

## 0.5.6 - 2021-08-16

A large bugfix release, including but not limited to:

* [[#1329]] Implement `MACADDR` type for Postgres [[@nomick]]
* [[#1363]] Fix `PortalSuspended` for array of composite types in Postgres [[@AtkinsChang]]
* [[#1320]] Reimplement `sqlx::Pool` internals using `futures-intrusive` [[@abonander]]
* This addresses a number of deadlocks/stalls on acquiring connections from the pool.
* [[#1332]] Macros: tell the compiler about external files/env vars to watch [[@abonander]]
* Includes `sqlx build-script` to create a `build.rs` to watch `migrations/` for changes.
* Nightly users can try `RUSTFLAGS=--cfg sqlx_macros_unstable` to tell the compiler
to watch `migrations/` for changes instead of using a build script.
* See the new section in the docs for `sqlx::migrate!()` for details.
* [[#1351]] Fix a few sources of segfaults/errors in SQLite driver [[@abonander]]
* Includes contributions from [[@link2ext]] and [[@madadam]].
* [[#1323]] Keep track of column typing in SQLite EXPLAIN parsing [[@marshoepial]]
* This fixes errors in the macros when using `INSERT/UPDATE/DELETE ... RETURNING ...` in SQLite.

[A total of 25 pull requests][0.5.6-prs] were merged this release cycle!

[#1329]: https://github.com/launchbadge/sqlx/pull/1329
[#1363]: https://github.com/launchbadge/sqlx/pull/1363
[#1320]: https://github.com/launchbadge/sqlx/pull/1320
[#1332]: https://github.com/launchbadge/sqlx/pull/1332
[#1351]: https://github.com/launchbadge/sqlx/pull/1351
[#1323]: https://github.com/launchbadge/sqlx/pull/1323
[0.5.6-prs]: https://github.com/launchbadge/sqlx/pulls?q=is%3Apr+is%3Amerged+merged%3A2021-05-24..2021-08-17

## 0.5.5 - 2021-05-24

- [[#1242]] Fix infinite loop at compile time when using query macros [[@toshokan]]
Expand Down Expand Up @@ -925,3 +986,12 @@ Fix docs.rs build by enabling a runtime feature in the docs.rs metadata in `Carg
[@feikesteenbergen]: https://github.com/feikesteenbergen
[@etcaton]: https://github.com/ETCaton
[@toshokan]: https://github.com/toshokan
[@nomick]: https://github.com/nomick
[@marshoepial]: https://github.com/marshoepial
[@link2ext]: https://github.com/link2ext
[@madadam]: https://github.com/madadam
[@AtkinsChang]: https://github.com/AtkinsChang
[@djmarcin]: https://github.com/djmarcin
[@ghassmo]: https://github.com/ghassmo
[@eagletmt]: https://github.com/eagletmt
[@montanalow]: https://github.com/montanalow
Loading