Luiz Carvalho
c09532864d
feat: better database errors ( #2109 )
...
* feat(core): create error kind enum
* feat(core): add error kind for postgres
* feat(core): add error kind for sqlite
* feat(core): add error kind for mysql
* test(postgres): add error tests
* test(sqlite): add error tests
* test(mysql): add error tests
* fix(tests): fix tests rebasing
* refac(errors): add `ErrorKind::Other` variant
2023-02-21 13:25:25 -08:00
Austin Bonander
b5312c3b6f
Break drivers out into separate crates, clean up some technical debt ( #2039 )
...
* WIP rt refactors
* refactor: break drivers out into separate crates
also cleans up significant technical debt
2023-02-21 13:25:25 -08:00
Austin Bonander
71388a7ef2
sqlite: fix a couple segfaults ( #1351 )
...
* sqlite: use Arc instead of Copy-able StatementHandle
This guarantees that StatementHandle is never used after calling
`sqlite3_finalize`. Now `sqlite3_finalize` is only called when
StatementHandle is dropped.
(cherry picked from commit 5eebc05dc371512bae14cf94498087bdadeddec0)
* sqlite: use Weak poiter to StatementHandle in the worker
Otherwise some tests fail to close connection.
(cherry picked from commit 5461eeeee30772e54e8874f60805b04bdc989278)
* Fix segfault due to race condition in sqlite (#1300 )
(cherry picked from commit bb62cf767e3e44896bf4607da8e18237241ed170)
* fix(sqlite): run `sqlite3_reset()` in `StatementWorker`
this avoids possible race conditions without using a mutex
* fix(sqlite): have `StatementWorker` keep a strong ref to `ConnectionHandle`
this should prevent the database handle from being finalized before all statement handles
have been finalized
* fix(sqlite/test): make `concurrent_resets_dont_segfault` runtime-agnostic
Co-authored-by: link2xt <link2xt@testrun.org>
Co-authored-by: Adam Cigánek <adam.ciganek@gmail.com>
2021-08-16 14:39:45 -07:00
Atkins
9f7205e80f
Fix GitHub Actions and integration test ( #1346 )
...
* fix test suite
* rustfmt
* need Row
* test: fix integration test scripts and update the upstream supported databases
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* ci(actions): update supported databases
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* ci(actions): use `pg_isready` instead of `sleep` to avoid error cause by database not ready
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* feat(core): add `trait PgConnectionInfo` for connection parameter status from server
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* test(postgres): fix integration test for postgres
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* test(mysql): fix integration tests
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* ci(actions): test database against the oldest and newest supported versions
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
* docs(core): document `trait PgConnectionInfo`
Signed-off-by: Atkins Chang <atkinschang@gmail.com>
Co-authored-by: Montana Low <montanalow@gmail.com>
2021-07-28 14:00:34 -07:00
Ryan Leckey
e575501a39
feat: add Executor::prepare, a hook into the automatic statement preparation life-cycle
2020-07-24 07:24:23 -07:00
Ryan Leckey
96b76dc737
update todo examples to 0.4 and use migrations
...
* update tests/x.py
* add examples/x.py
2020-07-18 05:43:16 -07:00
Ryan Leckey
00137d4a04
feat: add sqlx::Done and return from Executor::execute()
...
+ Done::rows_affected()
+ Done::last_insert_id()
2020-07-14 04:31:25 -07:00
Ryan Leckey
93cab2a197
test: more pool usage adjustments
2020-07-12 05:02:40 -07:00
Ryan Leckey
8d188c5f1a
feat: expose column information on Row
...
- add database-specific Column types: MySqlColumn, PgColumn, etc.
- add Row::columns() -> &[DB::Column]
- add Row::column(I) and Row::try_column(I)
2020-07-05 03:48:36 -07:00
Ryan Leckey
222cd688a4
feat(sqlite): enable configuration of journal_mode and foreign_keys and default to WAL and ON
2020-07-02 23:18:14 -07:00
Ryan Leckey
5d6516da68
fix: re-add MapRow and TryMapRow to fix HRTB normalization when more than one driver is in-use
2020-07-02 23:00:46 -07:00
Ryan Leckey
cfa833fa0d
fix(sqlite): fallback to storage class when typing expressions and infer INTEGER as i64
2020-06-27 19:17:46 -07:00
Austin Bonander
f2515e2472
feat(macros): support nullable column override
2020-06-21 06:06:53 -07:00
Austin Bonander
7d3d708d92
chore(macros): add test for column overrides for SQLite
2020-06-21 06:06:53 -07:00
Austin Bonander
0652864315
fix(macros): reintroduce and fix test for macros in SQLite
2020-06-05 21:16:14 -07:00
Ryan Leckey
e5b6047009
feat: introduce docker-compose based testing for running locally against many database combinations
2020-05-30 17:51:55 -07:00