
Other major changes: - pg code now uses only binary format - pg timestamptz now always UTC (tz = 0), added doc section - added contracts to most pg "can't-convert" errors
41 lines
1.6 KiB
Plaintext
41 lines
1.6 KiB
Plaintext
|
|
- postgresql: send no-arg queries without prepare step (?)
|
|
|
|
- add under-the-hood doc section (eg, debugging, adjusting statement cache)
|
|
|
|
- type annotations
|
|
- two modes: mandatory and opportunistic
|
|
- on result fields (eg sqlite, convert to date)
|
|
- on parameters ???
|
|
- per query or per connection? (or both?)
|
|
- either only well-known conversions, or must apply outside of lock
|
|
|
|
- postgresql record type: docs, send
|
|
- postgresql domain types, table record types, etc
|
|
|
|
- for wrapped/managed connections, detect if underlying connection gets
|
|
disconnected by server (eg, times out after 10 minutes of inactivity)
|
|
- at least, pool should make sure connection is alive when gotten from idle list
|
|
- add {keepalive : -> boolean} method to connection<%> (?)
|
|
|
|
- disconnect on custudian shutdown (?)
|
|
|
|
- disconnect should always work, even on thread-damaged connections
|
|
- but might need version with timeout and/or rudely? flag, because
|
|
I can't think of a way to solve the lock problem that doesn't involve aux thread.
|
|
|
|
- add recursive locking?
|
|
- cons: - considered by experts to be bad design, sloppy
|
|
- pros: - would simplify cleanup for one-shot pstmts
|
|
- would enable simple impl of user-level 'call-with-lock' for grouping
|
|
multiple operations together
|
|
(but this could also be done by two locks: outer "ownership" lock
|
|
and inner "invariant-protecting" lock)
|
|
|
|
- make implementation notes section of docs
|
|
- explain nested tx impl
|
|
|
|
- invalidate statement cache on query error
|
|
|
|
- 2 call-with-transactions from separate threads can conflict
|