Commit Graph

601 Commits

Author SHA1 Message Date
Steven Fackler
ccd3c45600 Remove dead next_block_for function 2015-05-30 15:01:27 -07:00
Steven Fackler
fc0a80ed33 Release v0.9.1 2015-05-30 12:44:14 -07:00
Steven Fackler
37b36e6aa0 Implement Debug for SslMode 2015-05-30 12:42:01 -07:00
Steven Fackler
5758ccc54c Make SslMode Sync+Send 2015-05-30 12:38:42 -07:00
Steven Fackler
8e7144e21b Release v0.9.0 2015-05-29 23:22:31 -07:00
Steven Fackler
092f038288 Pull rows to their own module 2015-05-29 22:54:10 -07:00
Steven Fackler
5491a8ca10 Typo 2015-05-26 22:07:13 -07:00
Steven Fackler
f72bc4303a Hide Type constructor 2015-05-26 21:47:42 -07:00
Steven Fackler
de97f79d6f Move Slice into types 2015-05-26 21:42:34 -07:00
Steven Fackler
96d1a3af56 Drop Error::StreamDesynchronized 2015-05-25 23:27:12 -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
3e25dc4062 Clarify documentation 2015-05-25 20:52:06 -07:00
Steven Fackler
b75a63d384 Delete old copy in logic 2015-05-25 20:43:55 -07:00
Steven Fackler
a5c1d0ddce Don't build master docs
They aren't really all that useful.
2015-05-25 20:43:09 -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
81fc578ca6 Move ugh_privacy stuff to normal places
Use private traits to expose constructors internally
2015-05-22 19:51:44 -07:00
Steven Fackler
5b353aaed3 Add a SessionInfo field to ToSql and FromSql methods
Backend parameters such as timezone or server_version can be useful for
conversion methods to have access to.
2015-05-21 22:28:51 -07:00
Steven Fackler
99466da700 Update README for stable release 2015-05-17 21:04:44 -07:00
Steven Fackler
ed26ff0042 Merge branch 'breaks' 2015-05-16 20:42:25 -07:00
Steven Fackler
1b5283a3b0 Deploy master docs to master folder 2015-05-16 15:01:24 -07:00
Steven Fackler
c25f3fac94 Make capitalization consitent for options 2015-05-13 22:59:25 -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
2d8f6882f3 Add NegotiateSsl bound to SslMode param 2015-05-13 14:43:39 -07:00
Steven Fackler
bf4820375d Make openssl an optional dependency 2015-05-13 14:43:39 -07:00
Steven Fackler
3c83d46ee4 Move types around and add docs 2015-05-13 14:43:03 -07:00
Steven Fackler
2a6f075ce7 De-generify StreamWrapper and NegotiateSsl
This makes NegotiateSsl object safe which is convenient for things like
r2d2.
2015-05-13 14:42:22 -07:00
Steven Fackler
be49982286 Make SSL infrastructure implementation agnostic 2015-05-13 14:42:22 -07:00
Steven Fackler
627f101c78 Remove deprecated get_transaction_isolation 2015-05-13 14:41:36 -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
a6c5d3014d Switch to out-of-std bufstream 2015-05-05 11:40:14 -07:00
Steven Fackler
16424dd267 Random cleanup 2015-05-02 15:55:53 -07:00
Steven Fackler
7d3b2509a4 Remove separate into_iter method 2015-05-02 13:40:06 -07:00
Steven Fackler
cd5537f803 Rename get_transaction_isolation to transaction_isolation 2015-04-24 22:10:57 -07:00
Steven Fackler
2887930c53 Fix link 2015-04-22 22:20:21 -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
4b877e0a33 Cleanup 2015-04-07 23:57:22 -07:00
Steven Fackler
c848a9a87d Fix typo 2015-04-07 00:00:23 -07:00
Steven Fackler
e24d793db8 Fix build 2015-04-03 08:46:02 -07:00
Steven Fackler
a8d67a1fe4 Fix for upstream changes 2015-04-02 11:34:42 -07:00
Steven Fackler
01862817c9 Add Debug bound on ToSql and log params during stmt execution 2015-03-30 23:24:45 -07:00
Steven Fackler
8c6f72d732 Drop str_char feature 2015-03-30 22:37:14 -07:00
Steven Fackler
d6bbca93f7 Drop core feature 2015-03-30 22:30:57 -07:00
Steven Fackler
f7ae75dfce Drop unsafe_destructor 2015-03-30 22:24:47 -07:00
Steven Fackler
6c24a03030 Drop debug_builders feature 2015-03-30 21:03:31 -07:00
Steven Fackler
97ed6f02b6 Log query preparation and execution. 2015-03-30 20:18:47 -07:00
Steven Fackler
26ec854f86 Remove some use of unstable apis 2015-03-29 15:23:38 -07:00
Steven Fackler
369cb1ba9f Fix doctest 2015-03-29 15:01:34 -07:00
Steven Fackler
f680c44d8f Fix for upstream changes 2015-03-25 19:11:40 -07:00
Steven Fackler
e4b0143de9 Restore implicit prelude use 2015-03-22 11:11:22 -07:00
Steven Fackler
5e75155b7e Make time an optional dependency 2015-03-21 15:32:49 -07:00
Steven Fackler
07f380fcfb More feature updates 2015-03-20 21:00:25 -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
6a97358f58 Remove unused feature 2015-03-17 23:45:50 -07:00
Steven Fackler
3f79a189f3 Use debug builders 2015-03-14 11:11:44 -07:00
Steven Fackler
af0b6d003d Little cleanup 2015-02-28 14:05:37 -08:00
Steven Fackler
3ec5517197 Extend lifetime of LazyRows::columns return 2015-02-28 13:56:20 -08:00
Steven Fackler
dac4c4f4f1 Port to new IO 2015-02-27 20:03:25 -08:00
Steven Fackler
1767661618 Redesign ToSql and remove RawToSql 2015-02-24 21:39:29 -08:00
Steven Fackler
2380165c86 Rename NoticeHandler 2015-02-22 22:13:59 -08:00
Steven Fackler
63cd220572 Add a move iterator to Rows 2015-02-22 22:13:59 -08:00
Steven Fackler
e128096694 Fix lifetime on slice 2015-02-22 22:13:59 -08:00
Steven Fackler
176f81020a Fix debug impl 2015-02-22 22:13:59 -08:00
Steven Fackler
f102c198f1 Fix docs 2015-02-22 22:13:59 -08:00
Steven Fackler
34de2a90c3 Implement more traits for RowsIter 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
5f8a0b97aa Overhaul FromSql
We can now have a blanket impl for Option and remove RawFromSql
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
5ec039bd5d Make time impls opt-in 2015-02-22 22:13:59 -08:00
Steven Fackler
5ed898949e Improve panic message 2015-02-22 19:00:34 -08:00
Steven Fackler
f0cfaedb01 Remove canary
Destructors are sound now, so this is no longer necessary
2015-02-22 18:37:44 -08:00
Steven Fackler
164b4a36c3 Cleanup 2015-02-22 16:46:11 -08:00
Steven Fackler
86d8f8a7b3 Use codegen instead of syntax extensions for SqlState 2015-02-22 13:39:17 -08:00
Cody P Schafer
e98d6825ab RingBuf is now VecDeque 2015-02-20 16:56:03 -05:00
Steven Fackler
ca7554092d Fix warnings 2015-02-19 09:17:48 -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
a0cca5fa77 Add a Slice adapter type
Until impl specialization exists, we can't define this implementaion
directly on &[T] because of the existing implementation for &[u8].

Closes #92
2015-02-12 22:52:55 -08:00
Steven Fackler
35f4fea595 Fix for upstream changes 2015-02-11 11:36:28 -08:00
Steven Fackler
561d7be79c Move docs to this repo and auto build in travis 2015-02-07 20:33:44 -08:00
Steven Fackler
599a84ac91 Shuffle unknown type boxing a bit 2015-02-06 09:03:49 -08:00
Steven Fackler
94d0411d68 Make DbError constructors actually private 2015-02-06 09:03:49 -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
7fc495738d Fix docs 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
e8d372d555 Make execute return a u64 instead of usize 2015-02-06 09:03:48 -08:00
Steven Fackler
dec549b9ca Clean up panic checks a bit 2015-02-06 09:03:48 -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
4a93618293 Make Debug impls less recursive 2015-02-05 23:01:42 -08:00
Steven Fackler
e41870ade3 Display the statement cache size in Conn Debug impl 2015-02-05 22:57:26 -08:00
Steven Fackler
9d5cd8f3d1 Sort extern crates 2015-02-04 20:39:30 -08:00
Steven Fackler
91e6e784e6 Stop using endian conversion Writer/Reader methods
They're going away in new IO.
2015-02-04 19:40:33 -08:00
Steven Fackler
9df10b9c3b Fix for upstream changes 2015-02-03 09:06:52 -08:00
Steven Fackler
5fd3d70d29 Make use of deref coercions 2015-02-02 23:41:03 -08:00
Steven Fackler
90f5567c2d Cleanup 2015-02-01 11:12:11 -08:00
Steven Fackler
b8595c7564 Failure -> Panics 2015-01-30 21:59:59 -08:00
Steven Fackler
9ac4baebd8 Add a bit to Notifications Debug impl 2015-01-29 20:30:06 -08:00
Steven Fackler
cb1ae4d115 Fix for stability changes 2015-01-29 08:59:43 -08:00
Steven Fackler
118f0ba9b2 Small struct reorder 2015-01-28 21:08:20 -08:00
Steven Fackler
a616db0381 Drop some use of usize internally 2015-01-28 20:35:17 -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
b1305cc45d Bump rust-phf 2015-01-25 11:12:07 -08:00
Steven Fackler
e2f1a7cb11 Docs fixes 2015-01-24 10:46:01 -08:00
Steven Fackler
4c90977cb0 Little cleanup 2015-01-24 10:04:43 -08:00
Steven Fackler
d3c75d5787 Use the unnamed portal for normal queries
There's no need to add extra round trips to close portals that don't
need to exist.
2015-01-24 09:55:46 -08:00
Steven Fackler
dde0f64582 Show -> Debug 2015-01-23 23:31:17 -08:00
Steven Fackler
f38636b21a Use SteadyTime for next_block_for 2015-01-23 23:29:29 -08:00
Steven Fackler
6381267267 Fix for upstream changes 2015-01-23 10:44:15 -08:00
Steven Fackler
d709692e0e Clarify docs a bit 2015-01-22 22:55:18 -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
e0758ed5b8 Store element type for unknown types 2015-01-21 22:11:43 -08:00
Steven Fackler
08460b889e Remove an unused parameter 2015-01-21 20:29:22 -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
9e260fdfac Add another Show impl 2015-01-16 22:32:25 -08:00
Alex Crichton
05359f9e9c Remove an unneeded feature 2015-01-12 14:01:35 -08:00
Steven Fackler
41bcb71176 Remove newline from Show impl 2015-01-09 23:58:21 -08:00
Steven Fackler
f7d57ebe68 Implement Show for stuff 2015-01-09 20:48:47 -08:00
Steven Fackler
900ae55807 Fix doc tests 2015-01-09 11:20:43 -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
4f157bb4a8 Partial update 2015-01-09 10:26:24 -08:00
Steven Fackler
347c79def9 Fix for upstream changes 2015-01-07 08:23:40 -08:00
Steven Fackler
0ddefe9d6b Remove unsafe Send impl 2015-01-04 17:33:34 -08:00
Steven Fackler
605460c789 Fix for upstream changes 2015-01-04 08:08:53 -08:00
Steven Fackler
94e70df6e2 Fix for upstream changes 2015-01-03 13:23:11 -08:00
Steven Fackler
a210cd605b Fix doc tests 2014-12-31 21:40:21 -08:00
Steven Fackler
bece000346 Add a missing Send impl 2014-12-29 09:38:30 -08:00
Steven Fackler
c5e7e46f0d Fix deprecation warnings 2014-12-23 12:10:16 -05:00
Steven Fackler
785c6741f5 Clean up FromSql API 2014-12-22 21:45:09 -05:00
Steven Fackler
98a980b5ec Fix breakage 2014-12-21 13:52:48 -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
5696a15cb6 Cleanup 2014-12-18 09:07:15 -08:00
Alex Crichton
dad6aab372 Fix lifetime parameter shadowing on rust master 2014-12-17 16:23:24 -08:00
Steven Fackler
1501f0ef93 Fix doc example 2014-12-15 12:50:55 -08:00
Steven Fackler
a35af16926 Schema qualify pg_type table reference
Just in case someone tosses their own pg_type table in the main schema
2014-12-14 17:18:55 -08:00
Steven Fackler
02fdb06762 Support citext and oid types
This ended up involving some pretty major refactors and fixed a bug
where passing extension types as parameters to `execute` broke.

Closes #56
2014-12-14 16:46:22 -08:00
Steven Fackler
3ac26d4961 Add inet support
It's lossy ATM, since IpAddr doesn't store the netmask.

Closes #88
2014-12-14 11:39:26 -08:00
Steven Fackler
39ad5ff651 Fix for opt in Copy 2014-12-11 20:36:24 -08:00
Steven Fackler
e8ff196c8e Cleanup 2014-12-09 21:35:52 -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
cdbbadd3cf Clean up some equality checks 2014-12-06 13:30:37 -08:00
Steven Fackler
39a89de5f0 Fix off by one in index impl 2014-12-06 10:41:49 -08:00
Steven Fackler
05af4073c4 Remove unneeded feature 2014-12-06 08:52:18 -08:00
Steven Fackler
ac59c84c82 Add next_block_for example 2014-12-03 19:55:05 -08:00
Steven Fackler
5065dbfa4d Use monotonic time for timeout logic 2014-12-03 18:57:04 -08:00
Steven Fackler
d7c63393db Cleanup 2014-12-02 22:56:56 -08:00
Steven Fackler
705f9f9d79 Remove a bunch of slice sugar usage 2014-12-02 21:44:34 -08:00
Steven Fackler
cfe37fa9bf Clean up race condition fix 2014-12-02 20:57:32 -08:00
Steven Fackler
9303e4dfdd Fix race condition in next_block_for
If we hit the timeout while not blocked on read, the timeout would
overflow.
2014-12-02 20:47:34 -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
348195b718 Optimize execute
Avoiding the statment close by using the unnamed statment improves the
lower bound perf by ~1/3:

test bench_execute        ... bench:    425429 ns/iter (+/- 24970)
test bench_naiive_execute ... bench:    607967 ns/iter (+/- 53434)

cc #83
2014-12-01 22:24:31 -08:00
Steven Fackler
80b7fa823c Clean up copy preparation a bit 2014-12-01 21:28:58 -08:00
Steven Fackler
1908821e57 Clean up bad response logic a bit 2014-11-28 17:35:37 -08:00
Steven Fackler
e7f66f89ac Use rust-openssl's MaybeSslStream 2014-11-28 15:54:37 -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
7b8786c6a2 Upgrade to openssl 0.2 2014-11-27 21:39:16 -08:00
Steven Fackler
7ba9db9b6f Check for statement close errors in execute 2014-11-27 11:16:14 -08:00
Steven Fackler
4d3e102f7e Add result_descriptions to Rows and Row
This can be useful for functions that are just passed a `Rows` or `Row`
and want to introspect a bit into the columns.
2014-11-26 10:50:31 -08:00
Steven Fackler
e8f12a4a1e Add a desync check in next_block 2014-11-25 19:17:53 -08:00
Steven Fackler
546967f68c Add a blocking next method to Notifications
cc #19
2014-11-25 18:30:28 -08:00
Steven Fackler
d84fa98b4b Variant cleanup 2014-11-25 12:59:31 -08:00
Steven Fackler
1882d878ad Remove unneccesary None qualification 2014-11-20 21:48:05 -08:00
Steven Fackler
a46c524200 Finish variant naming convention transition 2014-11-20 21:47:13 -08:00
Steven Fackler
b21300e344 Fix for nightly changes 2014-11-20 10:54:40 -08:00
Steven Fackler
1fa5941562 Use Vec instead of MemWriter 2014-11-19 20:54:32 -08:00
Kevin Butler
465bb9e006 docs: [T,.. N] no longer coerces to &[T] 2014-11-19 19:36:47 +00:00
Kevin Butler
85bde64ede slice_shift_char signature change 2014-11-19 18:11:23 +00:00
Kevin Butler
0b8dc31c2f [T,.. N] no longer coerces to &[T] 2014-11-19 17:58:30 +00:00
Steven Fackler
9a87c6e18a Make time support optional 2014-11-17 19:11:32 -08:00
Steven Fackler
22f4be2b8c Remove struct_variant feature gate 2014-11-17 18:20:48 -08:00
Steven Fackler
e5c2edaf97 More enum namespacing preparation 2014-11-17 13:46:33 -08:00
Steven Fackler
6ba926d016 Fix build errors 2014-11-17 08:56:25 -08:00
Steven Fackler
89f9960fe7 Use FromError 2014-11-16 22:54:57 -08:00
Steven Fackler
9ae7b13f51 Fix deprecation warnings 2014-11-07 08:54:10 -08:00
Steven Fackler
a4fe4e2056 Flatten and rename error stuff 2014-11-03 22:24:11 -08:00
Steven Fackler
056f90a3a2 Glob import message variants 2014-11-03 21:47:53 -08:00
Steven Fackler
a442b2ed4c Unmangle ConnectTarget and MaybeSslStream 2014-11-03 21:41:35 -08:00
Steven Fackler
ad82d28d18 Demangle PostgresType 2014-11-03 21:31:08 -08:00
Steven Fackler
167b9d0209 Misc cleanup 2014-11-02 16:48:38 -08:00
Steven Fackler
761007487a Grab RingBuf from std 2014-11-02 10:40:03 -08:00
Steven Fackler
bd9b77a4cf Fix compilation errors 2014-11-02 10:38:45 -08:00
Steven Fackler
4fbd92e6de A bit of formating cleanup 2014-11-01 16:38:52 -07:00
Steven Fackler
f8339a6e18 PostgresLazyRows -> LazyRows 2014-11-01 16:28:38 -07:00
Steven Fackler
34aaeaab71 PostgresRow -> Row 2014-11-01 16:27:30 -07:00
Steven Fackler
4eda9cec95 PostgresCopyInStatement -> CopyInStatement 2014-11-01 16:26:03 -07:00