83 Commits

Author SHA1 Message Date
Ryan Leckey
ef2527ff3e feat(mssql): fix a few bugs and implement Connection::describe 2020-06-07 02:00:31 -07:00
Ryan Leckey
28636c1f5d feat(mssql): add support for string types including a framework for handling non-UTF8 data 2020-06-07 02:00:13 -07:00
Ryan Leckey
9a701313bc feat(mssql): implement enough to get simple queries working
Co-authored-by: Daniel Akhterov <akhterovd@gmail.com>
2020-06-07 02:00:12 -07:00
Ryan Leckey
05eb07e7d4 feat(mssql): setup the initial boilerplate for MSSQL
Co-authored-by: Daniel Akhterov <akhterovd@gmail.com>
2020-06-07 02:00:12 -07:00
Ryan Leckey
a3053119fa fix: expose runtime-actix in sqlx/Cargo.toml 2020-06-01 05:34:52 -07:00
Ryan Leckey
51ae9f00e7
chore: bump version to 0.4.0-pre 2020-05-30 23:15:52 -07:00
Ryan Leckey
35bf560481
fix(core): tweak serialization impls to fix offline mode 2020-05-30 18:17:51 -07:00
Ryan Leckey
757a930e21
refactor(core): remove the HRTB (higher rank trait bound) on Row in the aim of improving ergonomics
* removes the lifetime from Row

 * removes MySqlQueryAs, SqliteQueryAs, etc. (no longer needed)

 * introduce query_scalar

 * introduce Decode::accepts to allow overriding runtime type checking
   per-type (replaces TypeInfo::compatible)

 * introduce Encode::produces to allow overriding the encoded type per-value

 * adds a lifetime to Arguments (and introduce the HRTB HasArguments)
   to support zero-copy encoding with SQLite

 * renames Database::RawBuffer to HasArguments::ArgumentBuffer

 * introduce Connect::connect_with to provide an ConnectOptions type
   explicitly to opt-out of connection string parsing

 * introduce Value and ValueRef traits to allow decoding-deferred
   extraction of values from Rows

 * introduce Encode::encode_by_ref and change Encode::encode to take
   by-value to try and re-use memory where possible

 * use thiserror to generate sqlx::Error

 * [!] temporarily removes query logging

 * [!] temporarily removes transactions
2020-05-30 16:09:08 -07:00
Austin Bonander
6913695588 add support for building in "decoupled" mode 2020-05-30 16:02:37 -07:00
Ryan Leckey
cbccd68963
chore: prepare v0.3.5 2020-05-06 03:30:35 -07:00
Josh Holmer
f73149a90f Format SQL queries when printing them to the logs
Before, the query would be formatted equivalent to the input string:

```
[2020-04-18T23:47:32Z DEBUG sqlx_core::postgres::executor] SELECT id, queue, ..., elapsed: 2.320µs

        SELECT id, queue, payload, status, priority, created_at, updated_at
    FROM jobs
    WHERE status = $1
    ORDER BY priority ASC, created_at ASC

```

After, the query is formatted cleanly and consistently:

```
[2020-04-19T00:30:18Z DEBUG sqlx_core::postgres::executor] SELECT id, queue, ..., elapsed: 2.280µs

    SELECT
      id,
      queue,
      payload,
      status,
      priority,
      created_at,
      updated_at
    FROM
      jobs
    WHERE
      status = $1
    ORDER BY
      priority ASC,
      created_at ASC

```

This uses the `sqlformat` crate, which was ported from the
Javascript `sql-formatter-plus` library specifically for this purpose.
2020-04-19 16:11:50 -07:00
Felix Wiedemann
5628658d3f postgres: Add unix domain socket support 2020-04-18 14:31:31 -07:00
Ryan Leckey
90fd35745c Prepare v0.3.4 2020-04-10 15:56:13 -07:00
Ryan Leckey
e7ace2adc7 Prepare v0.3.3 2020-04-01 18:24:08 -07:00
Neeraj Jaiswal
c29fc5cccd Remove matches dependency and use matches macro from std 2020-03-31 18:01:06 +05:30
Ryan Leckey
a9fc05378e Prepare v0.3.2 2020-03-31 03:02:01 -07:00
Ryan Leckey
a84e1f6626 Prepare v0.3.1 2020-03-30 18:53:03 -07:00
Ryan Leckey
bbbc1811ce postgres: tweak DataRow::read 2020-03-30 18:31:05 -07:00
Ryan Leckey
fc3d06bf9b Prepare v0.3.0 2020-03-29 16:27:41 -07:00
Ryan Leckey
a90ff10a27 Prepare v0.3.0-alpha.2 2020-03-25 04:58:22 -07:00
Ryan Leckey
fa4138b25c add docs to explain the SQL <-> Rust mapping 2020-03-24 02:56:52 -07:00
Ryan Leckey
43a72657f9 add a hack so bigdecimal can be the package name and the feature name 2020-03-24 02:56:14 -07:00
Ryan Leckey
0ef1ef3c4f time: we need std feature 2020-03-21 02:42:32 -07:00
Ryan Leckey
4a98a51a19 Merge remote-tracking branch 'utter-step/time-rs' 2020-03-21 01:25:00 -07:00
Ryan Leckey
05d8ac2747 Finish up JSON/JSONB support for Postgres
* implement for &serde_json::RawValue

 * sqlx::types::Json<T> is a common type that all JSON-compatible databases can implement for,
   postgres implements Json<T> as JSONB

 * sqlx::postgres::types::PgJson<T> resolves to JSON

 * sqlx::postgres::types::PgJsonB<T> resolves to JSONB
2020-03-21 01:16:34 -07:00
Oliver Bøving
b7e53e885a First draft of JSON/JSONB support for postgres
This introduces two new wrapper types `Json` and `Jsonb`, currently
exported by `sqlx::postgres::{Json, Jsonb}` and adds serde and
serde_json as optional dependencies, under the feature flag `json`.
Wrapping types in `Json[b]` that implement `serde::Deserialize` and
`serde::Serialize` allows them to be decoded and encoded respectivly.
2020-03-20 23:59:25 -07:00
PoiScript
3014ab4750 fix typo in Cargo.toml 2020-03-20 10:51:47 +08:00
PoiScript
c9cca27e65 rename feature gate to ipnetwork 2020-03-20 10:19:14 +08:00
PoiScript
060c5d2b66 postgres: ipnetwork support 2020-03-19 18:21:09 +08:00
Austin Bonander
94c40b3eb7 Postgres: implement numeric and BigDecimal support 2020-03-18 19:06:14 -07:00
Ryan Leckey
d1af2fe1b0 Prepare v0.3.0-alpha.1 2020-03-18 16:58:42 -07:00
Ryan Leckey
9d9d2bbfd4 Update dependencies 2020-03-18 16:56:24 -07:00
Ryan Leckey
ada57fa566 postgres depends on Sink from futures 2020-03-16 22:55:25 -07:00
Ryan Leckey
d8f3953d9d depend on std feature in futures-channel 2020-03-16 20:32:36 -07:00
Anthony Dodd
a52f36468b Implement Postgres LISTEN interface.
This changeset introduces an interface for using PostgreSQL's LISTEN
functionality from within sqlx.

The listen interface is implemented over the PgConnection, PgPool & the
PgPoolConnection types for ease of use. In the case of PgPool, a new
connection is acquired, and is then used for LISTEN functionality.

Closes #87
2020-03-15 02:17:14 -07:00
Ryan Leckey
0130fe1479 sqlite: implement describe 2020-03-14 17:43:44 -07:00
Ryan Leckey
7ab07016da sqlite: initial work in connection 2020-03-14 17:43:44 -07:00
Ryan Leckey
5d042e35b1 sqlite: stub 2020-03-14 17:43:44 -07:00
Austin Bonander
de14a206ff remove pin-project workaround 2020-03-11 01:47:29 -07:00
Ryan Leckey
672f83c00e use pin-project and fix impl of GuardedFlush 2020-03-11 01:47:29 -07:00
Ryan Leckey
10d2b45d9c update dependencies and clean up some more unused imports 2020-03-11 01:46:06 -07:00
Ryan Leckey
433aab1e5b postgres: use RawValue in Decode and implement row-returning simple queries 2020-03-11 01:44:06 -07:00
Ryan Leckey
dd5f250e5e decode: add lifetime to Decode; impl Decode for &str and &[u8]; remove DecodeError 2020-03-11 01:43:27 -07:00
Austin Bonander
0cb7bd1185 make macros work again 2020-03-11 01:43:27 -07:00
Ryan Leckey
05bc3ba987 Prepare v0.2.6 2020-03-10 15:40:33 -07:00
Vlad Stepanov
084add9cdb #115: implement time-rs support 2020-02-29 22:38:48 +03:00
Ryan Leckey
f8e112f4d9 Prepare v0.2.5 2020-02-01 00:49:27 -08:00
Wesley Norris
1461891901 Fix passwords not being percent decoded
The password portion of the `Url` type is post-percent encoding
and needs to be manually decoded before processing and being
sent to the server.
2020-01-21 18:53:07 -05:00
Ryan Leckey
3e6efc57b6 Prepare v0.2.4 2020-01-18 01:22:14 -08:00
Ryan Leckey
ac9aeb2e26 Prepare v0.2.3 2020-01-18 00:47:26 -08:00