Commit Graph

151 Commits

Author SHA1 Message Date
Steven Fackler
913678e9bf Properly return ioerrors to the caller in copy_in 2015-06-12 00:39:12 -07:00
Steven Fackler
0883918f06 Allow direct indexing of Rows. 2015-06-07 09:15:52 -07:00
Mark Lee
bbebf83749 Fix typos in tests' panic messages 2015-06-03 22:04:15 -07:00
Steven Fackler
f800835456 Move error types to error module 2015-05-25 22:47:25 -07:00
Steven Fackler
417fb09b13 Un-reexport some type-related types 2015-05-25 22:09:00 -07:00
Steven Fackler
9b9b82a7db Add copy_in to Statement 2015-05-25 20:40:57 -07:00
Steven Fackler
b5d9a38a59 Remove CopyInStatement
The API's awful to use.
2015-05-23 08:13:17 -07:00
Steven Fackler
35197960b2 Restructure errors
WasNull and BadResponse are gone, and Conversion was added. IoError
covers the BadResponse case and Conversion is a more general version of
WasNull.
2015-05-22 21:21:30 -07:00
Steven Fackler
26e55ff2bc Change negotiate_ssl back to taking &self
It's not clear that &mut is necessary and it makes connection calls a
bit nicer looking.
2015-05-13 15:17:37 -07:00
Steven Fackler
f957f10b19 Use a Box<NegotiateSsl> instead of a default param
Default parameter's aren't used in type inference yet, so the old setup
would result in overly verbose things like &mut SslMode::None::<NoSsl>.
In the future we can add the parameter back with a default of
Box<NegotiateSsl> to avoid forcing people to box stuff.
2015-05-13 15:14:37 -07:00
Steven Fackler
bf4820375d Make openssl an optional dependency 2015-05-13 14:43:39 -07:00
Steven Fackler
be49982286 Make SSL infrastructure implementation agnostic 2015-05-13 14:42:22 -07:00
Steven Fackler
569ff870c2 Properly escape table and column names in prepare_copy_in
We have to assemble queries by hand here which is a bit sketchy.
Manually escaping the individual identifiers to avoid introducing
injection vulernabilities is unfortunate but necessary.
2015-05-05 21:57:06 -07:00
Steven Fackler
cd5537f803 Rename get_transaction_isolation to transaction_isolation 2015-04-24 22:10:57 -07:00
Steven Fackler
afb3bcf08b Fix url breakage 2015-04-22 22:09:07 -07:00
Steven Fackler
8b43f0e3cf Add methods to access the session transaction isolation level
Closes #115
2015-04-22 22:03:09 -07:00
Steven Fackler
411a8c495c Fix percent-encoded usernames and passwords
Closes #113
2015-04-15 20:31:38 -07:00
Steven Fackler
a8d67a1fe4 Fix for upstream changes 2015-04-02 11:34:42 -07:00
Steven Fackler
7bcb8fb358 Fix most warnings
Blocked on rust-lang/rust#23734 on the last
2015-03-26 09:18:49 -07:00
Steven Fackler
f680c44d8f Fix for upstream changes 2015-03-25 19:11:40 -07:00
Steven Fackler
1bf40efceb Fix one last feature 2015-03-18 20:52:22 -07:00
Steven Fackler
3a0e10e5c7 Fix build issues
Also remove the impls for CIDR/INET. No ipv4/ipv6 agnostic type exists
anymore in the standard library, and the old one didn't cover netmasks
anyway.
2015-03-18 20:49:14 -07:00
Steven Fackler
26f26d1d9d should_fail -> should_panic 2015-03-10 09:16:46 -07:00
Steven Fackler
dac4c4f4f1 Port to new IO 2015-02-27 20:03:25 -08:00
Steven Fackler
2380165c86 Rename NoticeHandler 2015-02-22 22:13:59 -08:00
Steven Fackler
28ea91f6e5 Turn Rows into an iterable instead of iterator 2015-02-22 22:13:59 -08:00
Steven Fackler
c30bfed857 Fill out remaining postgres types 2015-02-22 22:13:59 -08:00
Steven Fackler
b34e5f31de Fix type checks 2015-02-22 22:13:59 -08:00
Steven Fackler
ef0e15b34d Change element_type to kind 2015-02-22 22:13:59 -08:00
Steven Fackler
9ce2b77f26 Fix deprecation warnings 2015-02-20 20:17:47 -08:00
Steven Fackler
ca7554092d Fix warnings 2015-02-19 09:17:48 -08:00
Steven Fackler
750065f111 Fix warning
Also disable debuginfo since it ICEs
2015-02-18 17:53:54 -08:00
Steven Fackler
3a9beb791d Add Row::get_bytes
Useful for things like postgres_large_object to avoid some allocation
2015-02-15 23:24:09 -08:00
Steven Fackler
7db4cb70b8 Store parameters and add accessor 2015-02-15 20:22:56 -08:00
Steven Fackler
23c49c0219 Fix tests 2015-02-12 13:29:50 -08:00
Steven Fackler
cae12218ab Encapsulate information about unknown types 2015-02-06 09:03:49 -08:00
Steven Fackler
f96664e63e Rename ResultDescription to Column and encapsulate 2015-02-06 09:03:49 -08:00
Steven Fackler
7cfde75dce Encapsulate DbError 2015-02-06 09:03:49 -08:00
Steven Fackler
173075bae1 Remove Error::WrongParamCount 2015-02-06 09:03:49 -08:00
Steven Fackler
cd1d9b9e3f Remove deprecated methods 2015-02-06 09:03:49 -08:00
Steven Fackler
7101cab178 Remove WrongConnection and WrongTransaction Errors
These only occur during contract violations, so panicing is recommended
by the erorr handling RFC.
2015-02-06 09:03:48 -08:00
Steven Fackler
d35124e214 Make next_block_for return an option 2015-02-06 09:03:48 -08:00
Steven Fackler
b4aff18501 Remove unneeded feature 2015-02-04 19:29:59 -08:00
Steven Fackler
cb1ae4d115 Fix for stability changes 2015-01-29 08:59:43 -08:00
Steven Fackler
8d704f71ce Fix for IO changes 2015-01-28 08:52:33 -08:00
Steven Fackler
af6084871f Add an is_active method
Will be needed when Error::WrongTransaction is removed
2015-01-26 21:09:50 -08:00
Steven Fackler
99a3ba22a6 Fix tests 2015-01-23 11:10:04 -08:00
Steven Fackler
5cce51723a Move lazy_query to Statement
Symmetry is good
2015-01-22 22:52:29 -08:00
Steven Fackler
ee7f9ee806 Avoid accidentally closing finished statements 2015-01-22 22:33:35 -08:00
Steven Fackler
247e320275 Add explicit statement caching
Also remove transaction depth checks to preparation methods on
Connection since lifetimes of statements are tied to the connection, not
any transaction that may be active.

cc #84
2015-01-22 22:27:14 -08:00
Steven Fackler
b30bd46c2b Set element_type for range types
Closes #95
2015-01-22 00:04:58 -08:00
Steven Fackler
290d572166 Redesign COPY IN execution setup.
The old Iterator of Iterators setup basically required all of the rows
to sit in memory at the same time, which defeats the entire purpose of
that configuration. There's probably a library that defines
`StreamIterator`, so this may jump to that.
2015-01-21 20:25:01 -08:00
Steven Fackler
9e9b0ee54a Reenable test_unix_connection 2015-01-16 22:07:04 -08:00
Steven Fackler
92a3593d7f Update for upstream changes
String vs Show still needs to be resolved, but it compiles now
2015-01-09 10:50:54 -08:00
Steven Fackler
347c79def9 Fix for upstream changes 2015-01-07 08:23:40 -08:00
Steven Fackler
01ea8afce8 Fix up tests
PostgreSQL v9.4 dropped SSLv3 support (yay)
2014-12-22 12:14:20 -05:00
Steven Fackler
d5c0cc0140 Fix for upstream changes 2014-12-19 10:43:42 -08:00
Steven Fackler
810a7442e0 Use out of tree serialize 2014-12-18 17:08:58 -08:00
Steven Fackler
cdfcef8e05 Update for upstream changes 2014-12-15 12:39:49 -08:00
Steven Fackler
42eb9fb01e Move Send bound for NoticeHandler to trait def
This is a breaking change
2014-12-08 23:43:01 -08:00
Steven Fackler
39a89de5f0 Fix off by one in index impl 2014-12-06 10:41:49 -08:00
Steven Fackler
587aa653a3 Fix for equality changes 2014-12-05 07:58:11 -08:00
Steven Fackler
d5998d8f2a Add Notifications::next_block_for method
The setup is a little hairy, but seems correct.

cc #19
2014-12-02 20:36:31 -08:00
Steven Fackler
75641e121f Allow statements to be prepared on any object
Statements aren't cleaned up at the end of a transaction, so this is
safe.
2014-12-01 22:45:22 -08:00
Steven Fackler
6334f045cb Be more conservative when closing things 2014-11-28 15:01:01 -08:00
Steven Fackler
dd9c712ea9 Fix for upstream changes 2014-11-28 12:24:34 -08:00
Steven Fackler
546967f68c Add a blocking next method to Notifications
cc #19
2014-11-25 18:30:28 -08:00
Steven Fackler
a46c524200 Finish variant naming convention transition 2014-11-20 21:47:13 -08:00
Kevin Butler
d9618c9ba0 tests: [T,.. N] no longer coerces to &[T] 2014-11-19 18:20:20 +00:00
Steven Fackler
9a87c6e18a Make time support optional 2014-11-17 19:11:32 -08:00
Steven Fackler
e5c2edaf97 More enum namespacing preparation 2014-11-17 13:46:33 -08:00
Steven Fackler
a4fe4e2056 Flatten and rename error stuff 2014-11-03 22:24:11 -08:00
Steven Fackler
ad82d28d18 Demangle PostgresType 2014-11-03 21:31:08 -08:00
Steven Fackler
2da41be987 Remove the old connection pool
It's been deprecated for a long time
2014-11-01 16:22:41 -07:00
Steven Fackler
c11cbd6b7d PostgresConnection -> Connection 2014-11-01 16:21:47 -07:00
Steven Fackler
570512725f PostgresNotification -> Notification 2014-11-01 16:18:09 -07:00
Steven Fackler
c6c7d8f574 PostgresNoticeHandler -> NoticeHandler 2014-11-01 16:16:50 -07:00
Steve Klabnik
7d1be73156 update macro definition too 2014-10-30 01:13:32 -04:00
Steve Klabnik
675534c26f fail -> panic 2014-10-30 00:26:03 -04:00
Steven Fackler
e16fca84d7 switch to the username encode set for a test
This'll also escape `:` just in case someone has a super weird
filesystem
2014-10-26 12:39:53 -07:00
Steven Fackler
eaf61bec7b Use servo rust-url for test encoding 2014-10-26 12:05:43 -07:00
Steven Fackler
886f24ea9d Get rid of literal type specifiers
Yay trait reform!
2014-10-25 23:43:59 -07:00
Steven Fackler
7929d07f74 Fix a desynchronization issue 2014-10-25 20:26:45 -07:00
Steven Fackler
f62aa26917 Fix for upstream changes 2014-10-09 20:43:14 -07:00
Steven Fackler
557a159a8a Add a trait abstracting over transactions and connections
This is implemented *in addition* to the intrinsic methods because
having to import a trait to call `prepare` sucks.

Closes #63
2014-10-08 20:29:26 -07:00
Steven Fackler
b69ae99a51 Handle COPY IN in batch_execute 2014-10-05 17:31:25 -07:00
Steven Fackler
58dd5fe12b Remove weird continue 2014-10-05 14:47:57 -07:00
Steven Fackler
e5ed2ba96e Use new slice syntax 2014-10-04 20:08:44 -07:00
Steven Fackler
0c3f3b1e83 More docs + return copy count from execute 2014-09-30 00:11:23 -07:00
Steven Fackler
249db6b55a Correctly handle bad column counts in copy 2014-09-29 23:32:57 -07:00
Steven Fackler
2e61f1316f Initial COPY FROM support!
cc #51
2014-09-29 22:56:43 -07:00
Steven Fackler
a4a625a30c Detect direct queries to COPY FROM 2014-09-29 21:05:42 -07:00
Steven Fackler
e930dd8105 Fix up for openssl changes 2014-09-05 21:57:08 -07:00
Steven Fackler
3a745746bc Remove explicit casts from tests 2014-08-31 23:09:53 +01:00
Steven Fackler
7a84a16b41 Get things building again
I'm temporarily diabling arrays until I have a chance to look over and
make sure the API is sound.

This also works around a trait object coercion regression:
rust-lang/rust#16861
2014-08-30 10:25:38 +01:00
Steven Fackler
30a3210be0 Revert "Strip prefixes from types"
This reverts commit ccdb02f661.

I'm not sure this is the right way to go just yet
2014-08-18 22:02:16 -07:00
Steven Fackler
ccdb02f661 Strip prefixes from types
They can be prefixed with the crate name
2014-08-18 21:52:56 -07:00
Steven Fackler
f7c0038fa3 Formatting cleanup 2014-08-15 19:50:11 -07:00
Steven Fackler
c577e460f6 Fix test 2014-08-15 19:35:27 -07:00
Steven Fackler
619dd47fca Update for Duration API (yay!) 2014-08-14 20:00:13 -07:00