db: trim todo file
This commit is contained in:
parent
1b7368f80c
commit
e41ff8609c
|
@ -1,15 +1,3 @@
|
|||
----
|
||||
|
||||
Testing
|
||||
|
||||
- run ODBC tests on Mac
|
||||
- run ODBC DB2, Oracle tests on win32; also test SQL Server ?
|
||||
- test util/connect features
|
||||
- test transaction functions
|
||||
|
||||
----
|
||||
|
||||
Types
|
||||
|
||||
- type annotations
|
||||
- two modes: mandatory and opportunistic
|
||||
|
@ -21,60 +9,17 @@ Types
|
|||
- postgresql record type: docs, send
|
||||
- postgresql domain types, table record types, etc
|
||||
|
||||
- util/postgresql: add inet types
|
||||
- util/geometry: add WKT functions
|
||||
|
||||
- add support for ODBC intervals (no point w/o driver to test with)
|
||||
|
||||
----
|
||||
|
||||
Misc
|
||||
|
||||
- internal docs
|
||||
|
||||
- use ffi/unsafe/alloc to simplify odbc handle allocation
|
||||
|
||||
- add ODBC-like functions for inspecting schemas (list-tables, 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<%> (?)
|
||||
|
||||
- document/enumerate errors
|
||||
- document exn:fail:sql, when used, when not used, links to SQLSTATE docs?
|
||||
|
||||
- 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.
|
||||
|
||||
- finish transaction api: tests, custom sqlite options (?), custom mysql options (?)
|
||||
- add connect option #:rollback-invalid-transactions? (?)
|
||||
|
||||
- identify common ODBC errors that can't possibly rollback transaction
|
||||
- test with PostgreSQL ODBC driver using "rollback on all errors" mode
|
||||
|
||||
- more ODBC information (?)
|
||||
SQLGetInfo:
|
||||
- SQL_CONVERT_<datatype> - use to refine supported types (?)
|
||||
- SQL_CURSOR_{COMMIT,ROLLBACK}_BEHAVIOR - check that commit/rollback doesn't delete pstmts!
|
||||
- SQL_MAX_{CATALOG,COLUMN,IDENTIFIER,SCHEMA_NAME,TABLE_NAME}_NAME (min 128)
|
||||
|
||||
- add evt versions of functions
|
||||
- for query functions (?)
|
||||
- connection-pool-lease-evt
|
||||
- when is it useful in practice?
|
||||
- would make it easier to handle timeouts...
|
||||
|
||||
- on insert, return last inserted id
|
||||
- postgresql: parse CommandComplete msg tag
|
||||
- mysql: in ok-packet (what conditions, though?)
|
||||
- sqlite3: sqlite3_last_insert_rowid(), use sqlite3_changes() to see if insert succeeded,
|
||||
but still need to tell if stmt was even insert (parse sql?)
|
||||
- odbc: ???
|
||||
|
||||
- add recursive locking?
|
||||
- cons: - considered by experts to be bad design, sloppy
|
||||
- pros: - would simplify cleanup for one-shot pstmts
|
||||
|
@ -85,31 +30,6 @@ Misc
|
|||
|
||||
- audit code for break-safety, disable breaks as needed
|
||||
|
||||
- dialect info for ODBC
|
||||
- can get some tx data from ODBC...
|
||||
- on the other hand, not supposed to do tx-SQL in ODBC anyway, so low-priority
|
||||
|
||||
- make implementation notes section of docs
|
||||
- explain cursor impl (& rationale)
|
||||
- explain nested tx impl
|
||||
- ...
|
||||
|
||||
- better query path: IMMEDIATE STATEMENTS vs PREPARED STATEMENT CACHE
|
||||
- IMMEDIATE STATEMENTS
|
||||
In pg terms, pipeline Parse and Bind (ie, 1 round-trip instead of 2).
|
||||
Can do immediate query with args using typeids of parameters
|
||||
- problem: results in worse error messages
|
||||
- problem: error invalidates tx (in pg)
|
||||
- problem: same problem exists even with no args: arity errors
|
||||
- benefit: I like the code cleanup.
|
||||
- PREPARED STATEMENT CACHE
|
||||
Add sql=>pstmt cache in collection.
|
||||
- schema can change without warning, invalidate pst type information
|
||||
- mitigation: only cache w/in tx (but is isolation level sufficient?)
|
||||
and clear cache on any tx rollback or potential ddl stmt
|
||||
- problem: (cached) prepare and query not done atomically (two lock entries)
|
||||
so a statement can be invalidated between cache retrieval and execution
|
||||
|
||||
- support logging
|
||||
|
||||
- audit: make sure no output within atomic section (in drracket, may thread switch)
|
||||
|
|
Loading…
Reference in New Issue
Block a user