Commit graph

630 commits

Author SHA1 Message Date
Julius de Bruijn
c9c11c8302 2-tier cache for Postgres
This solves a problem when needing to describe a query before executing
it, in cases where the query is more of a dynamic nature and binding its
parameters require the type info.

In this case, the first describe doesn't know the input parameters, so
the parameter type info is inferred from the database. In cases of
`varchar(10)[]` or `json` column types, the parameter type is inferred
to the column type. Now if we then try to use `text[]` or `jsonb` as the
types, the database has already stored different types for these
parameters for the statement, and will error out.

So we'll now only store the statement to the cache when it comes from an
actual execution of the query.
2020-07-24 07:24:23 -07:00
Julius de Bruijn
0c9bea4ab2 Fixing panics for disabled statement cache 2020-07-24 07:24:23 -07:00
Julius de Bruijn
bfa29e521b Implement Debug for statements 2020-07-24 07:24:23 -07:00
Julius de Bruijn
9839043b6d Cache column and parameter info in mysql 2020-07-24 07:24:23 -07:00
Julius de Bruijn
590f97df4a Caching describe 2020-07-24 07:24:23 -07:00
Martin Risell Lilja
eba6f3973d Remove sneaky 'println!' in sqlite chrono. 2020-07-23 03:36:27 -07:00
ABGH, C
dad1356147 Remove unused phf dependency 2020-07-22 17:58:23 -07:00
Ryan Leckey
e4dc040620 style: rustfmt 2020-07-20 23:53:36 -07:00
Ryan Leckey
ee4d9b5412 fix(postgres): use the element type info from the protocol if available for array element decoding
fixes #537
2020-07-20 23:53:18 -07:00
Ryan Leckey
78fe88f51b style: rustfmt 2020-07-20 23:12:52 -07:00
Ryan Leckey
cd4e8dc1cb feat(mysql): support configuring the active charset and collation (via an automatic SET NAMES) 2020-07-20 23:07:22 -07:00
Ryan Leckey
cf78472d6d fix(mysql): gate com_stmt_execute encode on non-empty params, not non-null params 2020-07-20 21:49:30 -07:00
Ryan Leckey
dc0d325738 fix: type annotate a conversion in mysql/str 2020-07-19 19:14:26 -07:00
Raphaël Thériault
41261862d3 Implement DerefMut and AsMut for Json 2020-07-18 21:55:13 -07:00
Ryan Leckey
cdd88b5338 feat: support ancient mysql versions (5.0+) 2020-07-18 21:43:05 -07:00
Ryan Leckey
49ffcf6f46 feat: add PgListener#try_recv to give users a chance to act on lost connection if desired
closes #447
2020-07-18 21:05:36 -07:00
Ryan Leckey
47772b0850 docs: add derive docs for sqlx::Type 2020-07-18 20:37:50 -07:00
Ryan Leckey
820618f396 test: fix some doctests under runtime-tokio 2020-07-18 03:27:05 -07:00
Ryan Leckey
9029a345e5 docs: add some module-level information sqlx::database 2020-07-18 03:13:41 -07:00
Ryan Leckey
f345c23e51 fix(mssql): handle multi-chunk packets
fixes #523
2020-07-17 06:08:36 -07:00
Ryan Leckey
6fdb0d534f chore: update dependencies 2020-07-17 05:36:56 -07:00
Ryan Leckey
cc736df4d6 fix(postgres): use Sync over Flush for terminating extended non-query commands; in addition, keep better track of the number of expected readyForQueries 2020-07-17 04:56:39 -07:00
Ryan Leckey
fa40e9e55f implement support for postgres TIMETZ type
Co-authored-by: Julius de Bruijn <julius+github@nauk.io>
2020-07-17 03:22:40 -07:00
Ryan Leckey
e285f0858f refactor: split up postgres chrono/time modules 2020-07-17 03:22:40 -07:00
Ryan Leckey
e413cd6b0b docs: fix links in FromRow docs 2020-07-17 03:22:40 -07:00
Julius de Bruijn
99b7017d6c Conversion from BigDecimal to PgMoney 2020-07-17 02:00:48 -07:00
OriolMunoz
f75891725f FromRow derivation docs 2020-07-17 01:04:56 -07:00
Ryan Leckey
6949b84e8c style: rustfmt 2020-07-15 02:31:57 -07:00
Ryan Leckey
b2ba00f4be feat(macros): turn on support for JSON in mysql and arrays of JSON in postgres 2020-07-15 02:31:44 -07:00
Ryan Leckey
9b956c0d2c fix(postgres): support the VOID type, as () 2020-07-15 02:16:08 -07:00
Ryan Leckey
25b8fc7c04 fix(sqlite): support column types changing per row 2020-07-15 02:05:00 -07:00
Ryan Leckey
dc5fc1b6c1 fix: do not enforce type equality if matching against the NULL type 2020-07-15 02:04:32 -07:00
Ryan Leckey
63f37a78c3 feat(sqlite): add SqliteConnectOptions::filename 2020-07-14 08:45:30 -07:00
Ryan Leckey
793f247604 refactor: PoolOptions::new() takes no parameters and the final .connect method takes the URI 2020-07-14 06:07:29 -07:00
Ryan Leckey
8de2419b14 style: rustfmt 2020-07-14 05:05:50 -07:00
Ryan Leckey
47d566f5b6 feat: support Done for Any 2020-07-14 04:41:27 -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
8cf3ccc7e9 fix: put back transaction.open flag to stop auto-rollback 2020-07-12 04:42:37 -07:00
Ryan Leckey
d10f299c55 test: tweak in-code examples for latest refactors 2020-07-12 04:30:10 -07:00
Ryan Leckey
ff4dd4c7e7 fix: add a couple missing cfgs for the migrate feature 2020-07-12 04:15:37 -07:00
Joe Grund
d58f20f77a Update column.rs
Skip serialization of `relation_id` and `relation_attribute_no` so they do not appear in `sqlx-data.json`
2020-07-12 03:54:47 -07:00
Ryan Leckey
61e4a4f566 feat: finish v1 of both cli and embedded migrations 2020-07-12 03:43:55 -07:00
Ryan Leckey
b920aa1c55 feat: support user-defined array and pseudo types in postgres 2020-07-12 03:43:55 -07:00
Ryan Leckey
e765287dba refactor: restructure relationship between Pool, Connection, and Options
* Pool::new -> Pool::connect

 * Add Pool::connect_lazy

 * Pool::builder -> PoolOptions::new

 * PoolConnection no longer implements Connection

 * Transaction no longer implements Connection

 * Add ConnectOptions::connect

 * Add Acquire - abstract between &Pool and &mut Connection within one function

 * Remove Connect, move connect to Connection

Co-authored-by: Austin Bonander <austin@launchbadge.com>
2020-07-12 03:43:55 -07:00
Julius de Bruijn
2e3e5187f9 Document better! 2020-07-09 12:32:19 -07:00
Julius de Bruijn
08f55bfc28 Simplify mantissa handling 2020-07-09 12:32:19 -07:00
Julius de Bruijn
47de479454 Conversions from Decimal to PgMoney 2020-07-09 12:32:19 -07:00
Julius de Bruijn
e45e6d4173 Set the write part to use simpler math with u128 2020-07-09 12:32:19 -07:00
Julius de Bruijn
f246d41aed Fixed an overflow with a negative scale 2020-07-09 12:32:19 -07:00