Commit Graph

44 Commits

Author SHA1 Message Date
Ryan Culpepper
a2ae813739 replace db's sql-bits with data/bit-vector 2012-12-16 22:39:02 -05:00
Ryan Culpepper
ce567c861e use define-logger 2012-12-05 12:19:16 -05:00
Ryan Culpepper
fd7d8a412c move lazy-require to racket/lazy-require 2012-12-03 19:28:12 -05:00
Ryan Culpepper
30397acc37 use exn:fail:sql for sqlite errors too 2012-12-01 01:33:56 -05:00
Ryan Culpepper
05e7e61d85 added #:option to start-transaction, call-with-transaction 2012-12-01 01:33:56 -05:00
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
Ryan Culpepper
ecb88ffd45 Revert "db: use channel instead of semaphore + result variable"
Using a sync. channel breaks kill-safety.

This reverts commit 8363db9258.
2012-08-28 22:04:05 -04:00
Ryan Culpepper
8363db9258 db: use channel instead of semaphore + result variable 2012-08-25 19:02:18 -04:00
Ryan Culpepper
7c395e9c7c db: updated to new error convention (mostly) 2012-08-25 19:02:18 -04:00
Ryan Culpepper
9bd5a9189b db: use log-based-eval for most examples 2012-08-22 11:55:05 -04:00
Ryan Culpepper
00fd18bc62 db: various fixes and additions
- fix connection-pool for nested tx, fix race condition
 - ensure connected? always nonblocking
 - added and reorganized some doc sections
 - added grouping, contracts to in-query
 - added rows->dict
2012-05-09 09:17:52 -06:00
Eli Barzilay
17090fca4f A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
Ryan Culpepper
9f492c10a7 db: fix mysql large blobs, other changes
MySQL:
 - support multi-packet data rows
 - fixed very old length-coding bug (24 vs 32 bit length)
 - support large params via long-data packets
 - 'any' pseudo-type for parameters
 - distinguish 'blob'/'text', 'var-string'/'var-binary'
 - read 'text' results as string, not bytes
SQLite3:
 - enabled sql types tests
2012-04-14 19:47:32 -06:00
Ryan Culpepper
1b7368f80c db: fix memory leaks
- sqlite3: table prevented pst gc unless close-on-exec
 - statement cache wrongly disabled close-on-exec
   (not a leak, just gc'd very slowly)
 - limit statement cache size
2012-03-13 19:50:08 -06:00
Ryan Culpepper
766790b9e4 db: clean up disconnect 2012-02-08 22:32:51 -07:00
Ryan Culpepper
f142a1c5f2 db: clean up communication, locking
Disconnect on break exn within lock; other break-safety fixes.
2012-02-08 22:32:51 -07:00
Ryan Culpepper
f5711c6cc3 db: added prepared statement cache 2012-02-08 22:32:51 -07:00
Ryan Culpepper
6fe7e65ff0 db: clean up common tx code 2012-02-08 22:32:51 -07:00
Ryan Culpepper
654ccb277f db: added cursors 2012-02-08 22:32:51 -07:00
Ryan Culpepper
618173c97e db: finalize close-on-exec psts within lock 2012-02-08 22:32:51 -07:00
Ryan Culpepper
4c817d0f7f db: clean up and reogranize common impl code 2012-02-08 22:32:50 -07:00
Ryan Culpepper
0b3691691a db: fix sqlite3 #:use-place for raco exe 2012-01-24 15:28:32 -07:00
Ryan Culpepper
dba35c3116 db: added nested transactions 2012-01-08 23:25:53 -07:00
Ryan Culpepper
d312744aae db: make debugging easier 2011-12-13 23:51:31 -07:00
Ryan Culpepper
b4e856cc3c db: fixed space leak in statement finalizer thread
This "fixes" the segfault in the test program, but it seems
like there must be another underlying problem.
2011-11-13 15:11:12 -07:00
Ryan Culpepper
717bc17aaf db: adjust lazy requires for cross-place mode 2011-09-27 19:28:44 -06:00
Ryan Culpepper
52a738140d db: minimize dependencies 2011-09-27 19:28:44 -06:00
Ryan Culpepper
36149b92a7 db: added ssl support for mysql connections 2011-09-27 19:28:44 -06:00
Ryan Culpepper
40439aa4ef removed useless requires 2011-09-20 14:49:49 -06:00
Ryan Culpepper
15e3640191 db: fix #:group contract, fix sqlite headers 2011-09-06 12:41:03 -06:00
Ryan Culpepper
e6433084f3 added unstable/lazy-require
Also fixed lazy-require to capture and use correct namespace.
2011-09-06 12:41:03 -06:00
Ryan Culpepper
f4d712ac71 db: made sql data serializable 2011-09-06 12:41:03 -06:00
Ryan Culpepper
a5bda8e0cd db: moved private contracts to db/base, removed useless requires 2011-08-31 05:40:24 -06:00
Ryan Culpepper
8611435269 db: improved locking
Tests suggest new locking is faster, but primary benefit is
detecting when thread holding lock is killed.
2011-08-31 05:40:24 -06:00
Ryan Culpepper
19b1ff101c db: fixed kill-safe-connection, improved tests 2011-08-31 05:40:24 -06:00
Ryan Culpepper
96663d4fa4 db: added #:use-place arg for ffi-based connections
SQLite and ODBC connections can use places to avoid blocking all
Racket threads.
2011-08-31 05:40:24 -06:00
Ryan Culpepper
418985d4c4 db: fixed issues with statement finalization (don't use weak hash)
In some cases, statements were disappearing from statement-table
without being finalized; this makes disconnect fail.
(I was only able to produce the problem when the db lib was
instantiated in a sub custodian that is later shutdown....
like the way the rackunit gui runs the test suite.)
2011-08-30 12:04:24 -06:00
Ryan Culpepper
397702808a db: fixed virtual-statement
Eliminated interface test (shallow) in favor of method test
(correct, recursive). Also made vstmts work with virtual-connections.
2011-08-30 12:04:24 -06:00
Ryan Culpepper
94456ad0ec db: moved pg-only code out of interfaces module 2011-08-30 12:04:24 -06:00
Ryan Culpepper
1c6817426e db: added group-rows, #:group arg to query-rows 2011-08-30 12:04:24 -06:00
Ryan Culpepper
92e2d1eb6e db: split off db/util/datetime module 2011-08-27 16:31:22 -06:00
Ryan Culpepper
a91e6f6452 db: "recordset" -> "rows-result", "rows" 2011-08-27 16:31:22 -06:00
Ryan Culpepper
82896bfce2 db: added list-tables, table-exists? (except for ODBC, so far) 2011-08-25 12:56:42 -06:00
Ryan Culpepper
50f0a32f9e added db library 2011-08-25 12:56:42 -06:00