racket/collects/db/TODO
Ryan Culpepper 9d34f0f147 db: added support for postgresql 9.2 types (json, ranges)
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
2012-09-17 12:29:17 -04:00

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