841 Commits

Author SHA1 Message Date
kyoto7250
ba5a83d3a8
distinct support in sea-orm (#902)
* distinct support

* remove feature flag

* fix argument
2022-09-25 10:21:44 +08:00
Billy Chan
6ba8e1b9f1
DeriveRelation on empty Relation enum (#1019) 2022-09-25 10:17:39 +08:00
Billy Chan
75e2570811
Fix Rust 1.64 clippy (#1064) 2022-09-23 15:32:03 +08:00
Billy Chan
77bddd85a5
Fixup 2022-09-22 15:07:37 +08:00
Billy Chan
968fc2e678
Configure acquire timeout for connection pool (#897)
* Reproduce "failed to acquire connection from pool" error

* Configure acquire_timeout

* Add tests

* Fixup

* Remove tests
2022-09-19 23:50:11 +08:00
Billy Chan
8ecb4fccba
Implement IntoActiveValue for Vec<u8> types 2022-09-15 15:40:34 +08:00
Jimmy Cuadra
bde43f51f8 Implement IntoActiveValue for time types.
I tried to implement a [custom active
model](https://www.sea-ql.org/SeaORM/docs/advanced-query/custom-active-model/),
and one of the columns was `Option<TimeDateTimeWithTimeZone>`. I got a
compiler error:

```
error[E0277]: the trait bound `std::option::Option<sea_orm::prelude::TimeDateTimeWithTimeZone>: IntoActiveValue<_>` is not satisfied
```

Looking into the source code, it seemed a simple oversight that this
trait was implemented for the `chrono` types but not the `time` types,
and it was easy enough to fix since there's already a macro to implement
it for new types.

I also noticed that the `time` types are not accounted for in
`src/query/json.rs` while the `chrono` types are, which I assume is also
an oversight. However, I don't have a need for that at this point and
the fix for that seemed less trivial, so I'm just bringing it to your
attention.

Thanks for SeaORM!
2022-09-14 22:58:05 -07:00
Chris Tsang
1225255431 Address comments 2022-09-14 00:28:24 +08:00
Ivan Krivosheev
ab5b488860
Merge branch 'sea-query-v0.27' into feature/issues-969_sea-query-binder 2022-09-08 12:59:09 +03:00
Ivan Krivosheev
ecbd7c2713 issues-969 Update dependencies
issues-969 Fix sqlx_query function
2022-09-08 12:56:32 +03:00
Ivan Krivosheev
581684c441 issues-969 Replace sea-query-driver to sea-query-binder 2022-09-08 12:54:37 +03:00
Billy Chan
a80c33ef4c
Rewrite enum and text casting (#973)
* Rewrite enum and text casting

* Add doc tests

* Refactoring
2022-09-05 00:38:12 +08:00
Chris Tsang
36f09c524e
Update src/error.rs
Co-authored-by: Sculas <contact@sculas.xyz>
2022-09-03 20:45:17 +08:00
Chris Tsang
4993c6ab2d
Update src/error.rs
Co-authored-by: Sculas <contact@sculas.xyz>
2022-09-03 20:45:09 +08:00
Chris Tsang
4d95218430
Update src/error.rs
Co-authored-by: Sculas <contact@sculas.xyz>
2022-09-03 20:44:59 +08:00
Chris Tsang
1c8ef33544
Update src/error.rs
Co-authored-by: Sculas <contact@sculas.xyz>
2022-09-03 20:44:45 +08:00
Billy Chan
0efdfc6742
Typo 2022-09-01 15:57:58 +08:00
Chris Tsang
85533a3bb3 Give up and fix tests 2022-08-28 14:54:26 +08:00
Chris Tsang
0ce0f49551 Refactor SqlxError; 2022-08-28 13:51:21 +08:00
Chris Tsang
348e841139 Refactor ColumnFromStrErr 2022-08-28 13:30:51 +08:00
Chris Tsang
0b754eab0b Refactor Type Errors 2022-08-28 12:59:33 +08:00
mohs8421
fe6c40dd75
Introducing sqlx-error feature (#750)
* feat: Introducing feature "sqlx-error"

Purpose of this feature is to not convert errors given from sqlx into strings to ease further analysis of the error and react to it accordingly. This implementation uses a feature switch and an additional error kind to avoid interfering with existing implementations without this feature enabled.
See discussion https://github.com/SeaQL/sea-orm/discussions/709

* fix: Align feature "sqlx-error" with merged Migration error kind

Due to the merge, an other error kind had been introduced and the DbErr became Eq and Clone, however Eq cannot easily be derived from, so I went back to PartialEq, and since the sqlx error does not implement clone, this was converted into an Arc, to allow cloning of the new kind too.

* fix: Repairing failing jobs

Several jobs had failed as I missed to correct the return values of a few methods in transaction.rs and had a wrong understanding of map_err at that point.

* feat: realigning with latest changes in sea-orm, different approach

Instead of the former approach to introduce a new error kind, now the existing error types get extended, for now only Exec and Query, because these are the most relevant for the requirement context.
Afterwards it might still be possible to add some further detail information.
See discussion https://github.com/SeaQL/sea-orm/discussions/709

* Update src/driver/sqlx_mysql.rs

Integrating fixes done by @Sculas

Co-authored-by: Sculas <contact@sculas.xyz>

* Update src/driver/sqlx_postgres.rs

Integrating fixes done by @Sculas

Co-authored-by: Sculas <contact@sculas.xyz>

* Update src/driver/sqlx_sqlite.rs

Integrating fixes done by @Sculas

Co-authored-by: Sculas <contact@sculas.xyz>

* feat: reworking feature with thiserror

Following the latest suggestions I changed the implementation to utilize `thiserror`.
Now there are more error kinds to be able to see the different kinds directly in src/error.rs
To ensure the behaviour is as expected, I also introduce a further test, which checks for a uniqueness failure.

Co-authored-by: Sculas <contact@sculas.xyz>
2022-08-28 11:13:51 +08:00
Billy Chan
af0bc7a0eb
Upgrade SeaORM root's SeaQuery to v0.27 2022-08-24 15:19:15 +08:00
liberwang1013
fff0c87a6d
replaced usize with u64 in PaginatorTrait (#789)
undefined
2022-08-20 22:43:17 +08:00
Ryuma Taguchi
d262501a44
fix typo in SqlxPostgresConnector::connect() doc (#968) 2022-08-15 23:30:27 +08:00
Billy Chan
43495de0aa
Fix clippy warnings - 1 (#967)
* Fix clippy warnings

* cargo fmt

* Fix clippy warnings

* cargo fmt
2022-08-12 20:02:53 +08:00
Billy Chan
5e34bcecbe
Edit README 2022-08-11 15:39:50 +08:00
Billy Chan
1a2090fb5e
Give a shout-out to our contributors 2022-08-10 13:40:18 +08:00
Horu
3a3fdf49a1
Fix small typo (#928) 2022-08-01 15:03:08 +08:00
Billy Chan
710ef7a66b
Add example links 2022-07-26 14:50:55 +08:00
Billy Chan
f6672137a2
cargo fmt 2022-07-26 12:20:40 +08:00
Chris Tsang
12d3e602f2 Test 2022-07-23 14:55:47 +08:00
Chris Tsang
b48f43bc09 Docs 2022-07-21 23:39:27 +08:00
Billy Chan
83c6e4a4db
RelationDef & RelationBuilder are Send & Sync (#898)
* `RelationDef` & `RelationBuilder` are `Send` & `Sync`

* [issues] add tests

Co-authored-by: Chris Tsang <chris.2y3@outlook.com>
2022-07-21 23:35:20 +08:00
sjud
3d409608e1
removing async_trait from non async trait in connection.rs (#737) 2022-07-17 15:12:25 +08:00
Chris Tsang
b74491a476 [issues] [cli] cargo fmt 2022-07-11 23:58:14 +08:00
kyoto7250
23ac958142
include column name in TryGetError::Null (#853)
* include column name in TryGetError::Null

* remove prefix
2022-07-11 23:16:03 +08:00
Billy Chan
1a8d22d918
cargo fmt 2022-07-11 17:26:57 +08:00
Billy Chan
bb9d532ab5
Support join with table alias (#852) 2022-07-11 00:07:11 +08:00
Chris Tsang
a24df5a91e Tweaks & fmt 2022-07-11 00:03:40 +08:00
Billy Chan
6e47d488d4
Drop SelectTwoMany::one method (#813) 2022-07-10 23:41:10 +08:00
Billy Chan
65017bdc08
Add various blob column types with size (#850) 2022-07-10 22:52:50 +08:00
Billy Chan
1a3e8c456a
[CI] run clippy checks & fix clippy warnings (#840)
* Run clippy checks

* Fix clippy warnings

* Clippy checks for `sea-orm-*` crates

* Fix clippy warnings

* Fixup
2022-07-10 15:38:38 +08:00
Chris Tsang
bfe6eb39d5
Cursor pagination (#822)
* Cursor pagination

* Apply filter / range filter on cursor; Allow non-primary key filter

* Fixup

* Update cursor API

* Cursor pagination with composite keys

* Docs

* Rename cursor() to cursor_by()

Co-authored-by: Billy Chan <ccw.billy.123@gmail.com>
2022-07-10 15:08:38 +08:00
Émile Fugulin
d0aeda7bdd
Add time from u64 (#849) 2022-07-08 18:20:28 +08:00
Billy Chan
b0ea1138b4
Update lib.rs 2022-07-07 15:20:43 +08:00
baoyachi. Aka Rust Hairy crabs
beef8211d8
fix compile error,res args add type (#839)
* fix compile error,res add type

* update .gitignore

* fix compile error

* fix compile error
2022-07-05 16:04:11 +08:00
Billy Chan
d6831e5295
Bump version of sqlx, sea-query, sea-schema, time and uuid (#834)
* Bump version of sqlx, sea-query, sea-schema, time and uuid

* PostgreSQL `u32` was wrapped in `Oid` (launchbadge/sqlx#1602)

* Update test cases

* Fix clippy warnings

* cargo fmt

* Fix clippy warnings

* Bump sea-schema to ^0.9.2

* Update test cases

* Pin on sea-query minor version
2022-07-05 01:05:11 +08:00
Mateusz
087f8462a6
Parse enum from repr[X] enums with values (#769)
* parse enum from repr[X] enums with values

* fix parsing negative enums variants with repr[X]

* add tests for enum num_value fallback support
2022-07-02 14:31:16 +08:00
Eric
5037dc99ec
Create a num_items_and_pages on the paginator (#768)
* Create a `num_items_and_pages` on the `paginator`

This method allows us to get both number of items and pages of a
paginator with only one database query.

* Improve documentation

* Create a dedicated struct for items and pages number
2022-07-01 02:50:20 +08:00