Commit Graph

38 Commits

Author SHA1 Message Date
gwenn
4f175d5748 Fix DateTime format 2021-01-29 22:03:50 +01:00
gwenn
afcdc2b43a Use most concise syntax for params 2021-01-19 21:16:08 +01:00
gwenn
6fae5d6641 Add/fix rustdoc links 2020-11-22 09:34:03 +01:00
gwenn
da94f8eba6 Make tests return Result 2020-11-05 22:14:00 +01:00
Thom Chiovoloni
65c38bf813 Add #[inline] and #[cold] in far more places 2020-11-04 07:59:23 -08:00
Thom Chiovoloni
22121772a2 Deprecate NO_PARAMS in favor of passing an empty array 2020-11-03 19:09:19 -08:00
Nikhil Benesch
b83d22e2b7 Upgrade to time v0.2 and put it behind a feature flag
This also removes the usage of time in the crate's top-level
documentation example, as was done for the README in #625.

Fix #653.
2020-07-24 11:28:19 -07:00
gwenn
4114c94585 Clippy 2020-06-26 19:22:20 +02:00
gwenn
922228f604 Fix clippy warnings 2020-02-09 11:48:08 +01:00
gwenn
08e32444c9 Cleanup use statements 2019-08-17 08:18:37 +02:00
gwenn
8862b17340 Fix clippy warnings 2019-02-02 11:37:26 +01:00
gwenn
d874180333 Rust 2018 idioms 2018-12-07 21:57:04 +01:00
gwenn
626118ce07 Merge remote-tracking branch 'jgallagher/master' into 2018 2018-12-06 18:50:21 +01:00
gwenn
2b8eee2b83 Fix Timespec FromSql implementations (#431)
Make sure SQLite built-in CURRENT_TIMESTAMP output is
supported.
2018-11-22 16:50:10 +01:00
gwenn
f04047db01 Rust 2018 2018-10-30 20:15:08 +01:00
gwenn
1598d4bc30 Rustfmt 2018-10-28 08:51:02 +01:00
gwenn
e7e03c3443 Introduce NO_PARAMS constant
As suggested here:
https://users.rust-lang.org/t/sql-parameter-values/20469/2
2018-09-16 11:10:19 +02:00
gwenn
c4ae541eac Take IntoIterator rather than &[&ToSql] (#312) 2018-09-16 09:49:23 +02:00
gwenn
c925d1aa97 Rustfmt 2018-08-11 12:48:21 +02:00
gwenn
994d40da26 Fix clippy warnings 2018-05-04 19:55:55 +02:00
Travis Cross
5d8a840b5d Fix date/time format for SQLite, use RFC 3339
We implement `ToSql` and `FromSql` for `time::Timespec` values.  Our
documentation indicates that we store the value in the same format
used by SQLite's built-in date/time functions, but this was not
correct.

We were using the format:

    %Y-%m-%d %H:%M:%S:%f %Z

This format cannot be interpreted at all by SQLite's built-in
date/time functions.  There are three reasons for this:

- SQLite supports only two timezone formats: `[+-]HH:MM` and the
  literal character `Z` (indicating UTC)

- SQLite does not support a space before the timezone indicator

- SQLite supports a period (`.`) between the seconds field and the
  fractional seconds field, but not a colon (`:`)

SQLite does support the RFC 3339 date/time format, which is standard
in many other places.  As we're always storing a UTC value, we'll
simply use a trailing `Z` to indicate the timezone, as allowed by RFC
3339.  The new format is:

    %Y-%m-%dT%H:%M:%S.%fZ

To avoid breaking applications using databases with values in the old
format, we'll continue to support it as a fallback for `FromSql`.

[1] https://www.sqlite.org/lang_datefunc.html
[2] https://tools.ietf.org/html/rfc3339
2017-12-24 22:15:31 +00:00
John Gallagher
4bfbb5f1fe Fix handful of clippy warnings. 2017-11-17 11:37:23 -07:00
louis
301634add7 fixed timezone issue 2017-07-18 09:56:02 -06:00
louis
6188a6a97c added more tests 2017-07-18 17:46:49 +02:00
louis
8bc97972f8 fixed %F instead of %F:%s 2017-07-18 17:43:25 +02:00
louis
0a114c4436 Fixed loss of time information during string conversion 2017-07-11 17:15:07 +02:00
louis
0d001583b2 Fixed loss of time information during string conversion 2017-07-11 17:01:25 +02:00
gwenn
08f96a678e Rustfmt 2017-04-07 19:43:24 +02:00
John Gallagher
4181441d63 Merge branch 'master' into gwenn-invalid-column-type 2016-12-31 00:35:47 -05:00
gwenn
e2cf171192 Introduce FromSqlError as specified by John Gallagher 2016-06-02 21:03:25 +02:00
gwenn
fb19e718cf Introduce an intermediary InvalidType error.
InvalidType is used where the column/parameter index is not known.
2016-05-30 20:35:56 +02:00
gwenn
cabcaf3dcb Better error reporting on invalid column type. 2016-05-26 21:03:05 +02:00
John Gallagher
e4926ac0d7 Rework ToSql to be implementable without unsafe. 2016-05-26 00:14:45 -04:00
John Gallagher
2f4990dafd Rename BorrowedValue -> ValueRef. 2016-05-24 21:34:18 -04:00
John Gallagher
5b0cdbaa56 Redo FromSql to make implementing it not unsafe.
Pass implementers a BorrowedValue instead of relying on them to use
the FFI interface. We take the responsibility of converting the raw
statement and column index into a BorrowedValue.
2016-05-23 21:49:54 -04:00
John Gallagher
88fb175b40 Limit Timespec representation to strings. 2016-05-15 22:30:11 -05:00
John Gallagher
350dc59bb9 Remove unnecessary column_has_valid_sqlite_type impls 2016-05-15 15:32:59 -04:00
gwenn
ecac52dc4c Make FromSql impl for TimeSpec support double/int. 2016-02-25 18:44:53 +01:00