Commit Graph

516 Commits

Author SHA1 Message Date
Steven Fackler
bad3a5e36c Stop storing query string in statement
The query string isn't as useful here since any error at this stage
won't be a syntax issue.
2013-09-18 20:54:47 -07:00
Steven Fackler
fa472cf312 Restructure conn pool to RAII style 2013-09-17 22:06:47 -07:00
Steven Fackler
65aabf5147 Sketches of a connection pool 2013-09-16 23:03:13 -07:00
Steven Fackler
2f282affe6 Move transaction cleanup to descructor
Support for connection pooling, since we'll recover the conn after a
task failure.
2013-09-15 22:35:30 -07:00
Steven Fackler
3a7f9ac50c Updated README with error code stuff 2013-09-15 19:26:56 -07:00
Steven Fackler
1858ed41dc Better error output 2013-09-14 22:56:52 -07:00
Steven Fackler
a00843751e Parse Notice/Error SQLSTATE codes
The enum is stuck inside of an extra module due to mozilla/rust#4375.
2013-09-14 21:37:20 -07:00
Steven Fackler
f392d6caf1 Use buffered IO
Closes #17
2013-09-14 13:08:09 -07:00
Steven Fackler
5654fa5f2a Fail on incorrect parameter count 2013-09-11 22:33:19 -07:00
Steven Fackler
4ec8130860 Don't fail on unsupported auth methods 2013-09-11 22:02:32 -07:00
Steven Fackler
970b5f657a Allow custom notice handling
It was a tossup between a ~fn and a ~Trait *shrug*
2013-09-11 19:57:26 -07:00
Steven Fackler
db634b5a3c Get rid of use * 2013-09-08 22:40:08 -07:00
Steven Fackler
9562711af3 TIMESTAMP WITH TIMEZONE support 2013-09-08 21:33:41 -07:00
Steven Fackler
5bb1ec2db7 Remove read_message macros
Workaround for mozilla/rust#9049 but probably the right thing to do in
any case.
2013-09-08 20:35:24 -07:00
Steven Fackler
7971e8678d DNS lookup 2013-09-08 14:26:34 -07:00
Steven Fackler
20b7b5426d Timestamp support
cc #6
2013-09-08 13:27:43 -07:00
Steven Fackler
1b00801938 Handle asynchronous ParameterStatus
Closes #16
2013-09-06 21:56:31 -07:00
Steven Fackler
4eb99e096e Explicitly set client encoding
Postgres will translate data from non-utf8 databases for us
2013-09-05 20:49:19 -07:00
Steven Fackler
a17fe648de Rename PostgresResult methods to be more clear 2013-09-05 20:31:23 -07:00
Steven Fackler
0a361967ce Avoid infinite loop 2013-09-04 23:48:02 -07:00
Steven Fackler
8422072d37 Remove savepoint IDs entirely
Turns out that Postgres allows nested savepoints with the same name
2013-09-04 23:40:22 -07:00
Steven Fackler
6a696461b9 Simplify savepoint ID logic
A savepoint ID is now the "depth" of the savepoint.
2013-09-04 23:32:33 -07:00
Steven Fackler
cf5bd66218 Add nested transaction support 2013-09-04 23:28:44 -07:00
Steven Fackler
c81c207c90 Add methods to look at params and results 2013-09-04 21:51:48 -07:00
Steven Fackler
749aa735f6 Make nice types for parameter and result descs 2013-09-04 21:26:43 -07:00
Steven Fackler
c0d70e90dc Implement transactional lazy queries
Closes #13
2013-09-03 22:42:24 -07:00
Steven Fackler
47d1458eb7 More infrastructure for lazy queries
cc #13
2013-09-03 22:20:21 -07:00
Steven Fackler
c2b3768a29 Infrastructure for lazy queries in transactions
cc #13
2013-09-03 22:05:28 -07:00
Steven Fackler
9891f597bc Switch over to new format + clean up matches 2013-09-03 20:07:10 -07:00
Steven Fackler
a677f62fe2 Remove lazy query support
It turns out this only works inside a transaction, so the API will need
to be rethought. Probably PostgresTransaction.prepare will return a
special TransactionalPreparedStatement that has support for it or
something.
2013-09-02 23:09:30 -07:00
Steven Fackler
03e0ab29e2 Add link attribute 2013-09-02 19:08:56 -07:00
Steven Fackler
3d8d35d840 Overload Index for PostgresRow
RowIndex has to be implemented for int unfortunately since that's what a
literal ends up resolving to.
2013-09-02 18:53:03 -07:00
Steven Fackler
8ab3c1d04b Add column name to index lookup 2013-09-02 20:07:08 -04:00
Steven Fackler
46b4228415 Binary return value support
The set of types the driver asks for in binary format is currently hard
coded.

cc #7, #14
2013-09-02 15:43:48 -04:00
Steven Fackler
1a6d681cbd Strict type checking in ToSql
cc #14
2013-09-02 13:27:25 -04:00
Steven Fackler
043d231476 Remove redundant format specifiers 2013-09-02 01:29:13 -04:00
Steven Fackler
e9245294f0 Store row description in statement
Will be useful for FromSql binary formats. CC #7
2013-09-01 14:09:08 -07:00
Steven Fackler
8b787cf8af Convenience update methods
cc #11
2013-09-01 11:06:33 -07:00
Steven Fackler
e93df44149 Switch PostgresResult storage to Deque 2013-09-01 00:18:09 -07:00
Steven Fackler
fa818566f3 Support for lazy query results
Closes #13.
2013-08-31 23:19:44 -07:00
Steven Fackler
6071706e7e More work towards row limits
cc #13
2013-08-31 22:48:49 -07:00
Steven Fackler
e82c887949 Restructure result API for row limits
Work towards #13.
2013-08-31 21:55:44 -07:00
Steven Fackler
0f1d31c4ab Batch command sequence writes
This allows command sequences like Prepare/Describe/Sync to be sent in
fewer TCP packets.
2013-08-31 17:17:15 -07:00
Steven Fackler
ace9ffcec4 Infrastructure for binary parameter formats
Work towards #7.
2013-08-31 17:16:49 -07:00
Steven Fackler
543af184ab Moving blocks around for consistency 2013-08-29 02:19:53 -04:00
Steven Fackler
440421e81a Minor cleanup 2013-08-29 01:44:34 -04:00
Steven Fackler
be080e783f Stop storing num_params in statement
Postgres will check the count for us.
2013-08-29 01:33:27 -04:00
Steven Fackler
30d1a43f4b Parsing of ErrorResponse and NoticeResponse
PostgresDbError::new plays a little fast and loose with the expected
format. Hopefully that's okay.

Closes #4
2013-08-29 00:24:43 -04:00
Steven Fackler
b93bbd7eed Switched Message enums to struct-like
They're now a lot more clear, especially ones like Bind that have tons
of fields.
2013-08-28 23:25:15 -04:00
Steven Fackler
0204d950c4 Log NoticeResponses
Progress towards #3. I think we probably want to have a user
configurable notice handler.
2013-08-28 02:23:36 -04:00
Steven Fackler
27bbf6f7fd Pull ToSql and FromSql out into their own module
Their implementations will become significantly more complicated once we
start handling binary data.
2013-08-28 00:37:06 -04:00
Steven Fackler
604b1ddb4d Fix for generic type syntax changes 2013-08-28 00:09:50 -04:00
Steven Fackler
afd7d8800d Better transaction syntax
Closes #9
2013-08-27 01:40:23 -04:00
Steven Fackler
6afc2cac3f Fix error handling for prepare, result and query
Closes #2
2013-08-27 01:06:53 -04:00
Steven Fackler
594830b296 Closer-to-proper error handling for connect 2013-08-27 00:19:24 -04:00
Steven Fackler
c73e1e93f4 ifmt! -> format! 2013-08-26 22:38:02 -04:00
Steven Fackler
f60d3993b3 Handle conditions in Drop impls
Aborting the process is sadface
2013-08-26 03:36:09 -04:00
Steven Fackler
47ef8ea6b1 Add plaintext and MD5 password authentication 2013-08-26 01:08:37 -04:00
Steven Fackler
ceaac705d6 Parameter binding support! 2013-08-24 23:47:36 -04:00
Steven Fackler
9ff747724a Query support! 2013-08-23 03:13:42 -04:00
Steven Fackler
dd64882d32 Updates and transactions 2013-08-23 01:24:14 -04:00
Steven Fackler
e5c5b783f3 Clean up for extra::url fixes 2013-08-22 22:47:06 -04:00
Steven Fackler
2b617e61b1 Beginnings of Bind support 2013-08-22 03:12:35 -04:00
Steven Fackler
1f127289bb Fully construct prepared statements 2013-08-22 02:41:26 -04:00
Steven Fackler
11098f4d47 Beginnigs of native Postgres frontend 2013-08-22 01:58:37 -04:00
Steven Fackler
067f2c9f91 Removed sql and sqlite3
I'm going to focus on a postgres driver for now
2013-08-18 17:14:22 -04:00