Jack Christensen 52729c1b77 Back off some aggressive PlanScan optimizations
PlanScan used to require the exact same value be used every time. While
this was great for performance, on further consideration I think it is
too much of a potential foot-gun.

This moves back in the other direction. A plan tolerates a change in
destination. It even detects a change in destination type and falls
back to a new plan.

Perfectly matched hot scan paths (e.g. PG int4 to Go int32) are still
much faster than they were before this set of optimizations. The first
scan of a destination that uses a decoder is faster due to not
allocating. It's a little bit slower on subsequent runs than before
this set of optimizations. But it is preferable to optimize for the
most common scan targets (e.g. *int32, *int64, *string) over generic
decoder destinations.

In addition this fees pgx.connRows.Scan from having to check that
the destination is unchanged.
2020-05-10 09:37:15 -05:00
2020-01-24 14:58:59 -06:00
2019-04-20 19:14:08 -05:00
2019-04-20 19:14:08 -05:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 11:58:49 -06:00
2020-03-30 11:18:27 -05:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 17:43:44 -05:00
2020-03-09 10:40:40 -05:00
2020-03-09 10:40:40 -05:00
2019-04-20 19:14:08 -05:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 11:58:49 -06:00
2020-03-30 11:30:37 -05:00
2020-03-30 11:30:37 -05:00
2019-05-20 16:26:58 -05:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 11:58:49 -06:00
2020-02-19 11:58:49 -06:00
2020-02-19 11:58:49 -06:00
2020-02-19 11:58:49 -06:00
2020-03-30 11:30:37 -05:00
2020-02-19 10:48:09 -06:00
2019-09-20 10:14:48 -04:00
2020-03-30 11:30:37 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-06-08 11:45:47 -05:00
2019-04-20 17:43:44 -05:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 11:58:49 -06:00
2017-03-23 18:41:52 -05:00
2019-04-20 17:43:44 -05:00
2019-09-26 21:08:20 -05:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2019-12-19 21:35:35 -06:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2017-04-03 07:35:19 -05:00
2020-02-19 10:48:09 -06:00
2020-02-19 11:58:49 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00
2020-02-19 10:48:09 -06:00
2019-04-20 19:14:08 -05:00
2020-02-19 10:48:09 -06:00

pgtype

pgtype implements Go types for over 70 PostgreSQL types. pgtype is the type system underlying the https://github.com/jackc/pgx PostgreSQL driver. These types support the binary format for enhanced performance with pgx. They also support the database/sql Scan and Value interfaces and can be used with https://github.com/lib/pq.

Description
PostgreSQL driver and toolkit for Go
Readme MIT 8.3 MiB
Languages
Go 98.6%
HTML 1.2%
Shell 0.2%