Commit graph

258 commits

Author SHA1 Message Date
Fábián Tamás László
5527036d6c
Remove offending putStrLn-s
The two removed lines littered the terminal.
2017-12-27 11:49:08 +01:00
Victor Denisov
dda10d461b Rework WriteResult for updateMany, deleteMany functions
Merge branch 'update-result'

PR #77

Conflicts:
	CHANGELOG.md
	Database/MongoDB/Query.hs
2017-05-29 19:37:21 -07:00
Victor Denisov
a1e19379f6 Add test and fix for updateMany nMatched and nModified 2017-05-29 12:58:39 -07:00
Victor Denisov
50b7fef240 Fix delete count 2017-05-28 12:58:29 -07:00
Victor Denisov
2984a9b57a Rewrite function in a shorter way 2017-05-21 00:32:13 -07:00
Victor Denisov
161ca964cb Fix wording in docs 2017-05-21 00:31:49 -07:00
Victor Denisov
77c7ee3ee9 Drop MonadBaseControl from two more modules 2017-05-11 21:35:41 -07:00
Victor Denisov
a1568d9dbf Add mkWeakMVar for Action monad 2017-05-08 23:12:26 -07:00
Victor Denisov
dd6c5057f5 Add modifyMVar for Action monad 2017-05-08 22:48:13 -07:00
Victor Denisov
d963d89c0b Fix documentation for access function 2017-05-06 23:55:27 -07:00
Victor Denisov
4855793dd7 Rewrite updateBlock 2017-05-01 21:47:40 -07:00
Victor Denisov
1d6d6ca9c0 Rewrite deleteBlock 2017-04-09 22:23:34 -07:00
Victor Denisov
d6419daa50 Move WriteConcernError to Failure 2017-04-09 20:43:55 -07:00
Victor Denisov
2a5bfa44e2 Handle unknown documents in insertMany reply 2017-04-09 20:43:55 -07:00
Victor Denisov
48d8dba4e1 Add compound failure 2017-04-09 20:43:55 -07:00
Victor Denisov
7ae65ce487 Assign ids before insert block 2017-04-09 20:43:55 -07:00
Victor Denisov
b6078cc19d Wrap lines 2017-04-09 20:43:54 -07:00
Victor Denisov
173e90eb90 Don't run ...Many tests against mongo 2.4 2017-04-09 20:43:54 -07:00
Victor Denisov
e2e9f12af8 Adjust index for updateBlock results 2017-04-09 20:43:54 -07:00
Victor Denisov
f57ac94a3b Drop support of mongo 2.6 in updateMany and deleteMany 2017-04-09 20:43:54 -07:00
Victor Denisov
dad19515de Keep old behavior of delete command 2017-04-09 20:43:54 -07:00
Victor Denisov
d1d5f84b22 Keep old behavior of update 2017-04-09 20:43:54 -07:00
Victor Denisov
6a13bde01b Set proper index for exception 2017-04-09 20:43:54 -07:00
Victor Denisov
6013272c5d Rewrite delete comand using interruptible for 2017-04-09 20:43:54 -07:00
Victor Denisov
8db991bb5d Rewrite deleteBlock using WriteResult 2017-04-09 20:43:54 -07:00
Victor Denisov
09c05d4b69 Rename UpdateResult to WriteResult
Many fields of DeleteResult overlap with UpdateResult.
It's better to have only one result for all results, just
like it's done in c mongodb driver.
2017-04-09 20:43:54 -07:00
Victor Denisov
569d8ccc08 Fix list append complexity issue 2017-04-09 20:43:54 -07:00
Victor Denisov
eeb0c7981d Edit comments slightly 2017-04-09 20:43:54 -07:00
Victor Denisov
80ebc6f756 Throw exception when insertAll encounters big doc
- insertAll should throw an exception if it encounters a document
too big for one message. However all other documents will be inserted.

- slightly edit docs
2017-04-09 20:43:54 -07:00
Victor Denisov
bedaa744ba Add indexes to error reporting 2017-04-09 20:43:54 -07:00
Victor Denisov
86f782db72 Insert remaining values in insertAll and then throw exception 2017-04-09 20:43:54 -07:00
Victor Denisov
139a17248f Fix tests 2017-04-09 20:43:54 -07:00
Victor Denisov
a828806940 Indent several lines 2017-04-09 20:43:54 -07:00
Victor Denisov
af49f43027 Fix splitAtLimit 2017-04-09 20:43:54 -07:00
Victor Denisov
e586fd51cc some minor fixes 2017-04-09 20:43:54 -07:00
Victor Denisov
460c7e735b User WriteFailure instead of WriteError 2017-04-09 20:43:54 -07:00
Victor Denisov
c6bd17f1f4 Replace IORefs with interruptibleFor 2017-04-09 20:43:54 -07:00
Victor Denisov
d9db9bca52 Add declaration of interruptibleFor function 2017-04-09 20:43:54 -07:00
Victor Denisov
316ae02ecc Handle errors properly for ordered updates 2017-04-09 20:43:54 -07:00
Victor Denisov
f81d5ec42e Handle exceptions in updateBlock 2017-04-09 20:43:54 -07:00
Victor Denisov
692cdb94c7 Mark update command as failed if there are write concern errors 2017-04-09 20:43:54 -07:00
Victor Denisov
6fe3cd982d Fix unit tests
updateMany and updateAll don't throw exceptions.
They return UpdateResult which reports errors.
2017-04-09 20:43:54 -07:00
Victor Denisov
1898928cf0 Calculate filed total of update command 2017-04-09 20:43:54 -07:00
Victor Denisov
da0441d454 Process legacy command as in mongoc 2017-04-09 20:43:54 -07:00
Victor Denisov
29286fa2e0 Implement more careful processing of error codes 2017-04-09 20:43:54 -07:00
Victor Denisov
74e8aa205d Keep write concern errors in list 2017-04-09 20:43:54 -07:00
Victor Denisov
b6fa6ea402 Add WriteConcernError to UpdateResult 2017-04-09 20:43:54 -07:00
Victor Denisov
10675a0673 Report errors in UpdateResult instead of Exceptions 2017-04-09 20:43:54 -07:00
Victor Denisov
5254793767 Throw exceptions in case of single document updates 2017-04-09 20:43:54 -07:00
Victor Denisov
5812753217 Add more documentation 2017-04-09 20:43:54 -07:00
Victor Denisov
399e2c3443 Return update result for old versions of mongodb 2017-04-09 20:43:54 -07:00
Victor Denisov
ae64ee6e4e Fix haddock errors 2016-11-21 20:49:44 -08:00
Victor Denisov
3e08136509 Add GridFS implementation.
This code is merged from: https://github.com/btubbs/haskell-gridfs
2016-11-20 19:23:47 -08:00
Victor Denisov
746e670bf0 Drain remaining var in response queue 2016-10-30 00:08:40 -07:00
Victor Denisov
04e5dd3248 Return error if listening thread is closed 2016-10-30 00:08:40 -07:00
Victor Denisov
482fb570c3 Drop MonadBaseControl requirement 2016-08-06 15:17:03 -07:00
Victor Denisov
b9be757039 Restrict type of write function 2016-08-06 13:28:36 -07:00
Victor Denisov
8348045cc5 Inline send function 2016-08-05 20:29:20 -07:00
Victor Denisov
b34162f084 Put request function out of Action monad 2016-08-04 22:58:25 -07:00
Victor Denisov
419b3c19fb Inline call function 2016-08-04 22:23:30 -07:00
Victor Denisov
66bed533fe
Add documentation for Transport module 2016-06-21 02:19:02 -07:00
Victor Denisov
d40d87500f
Fix warning in authSCRAM 2016-06-19 20:49:56 -07:00
Victor Denisov
f3e1f3b42d
Put new functions into proper sections 2016-06-19 20:49:44 -07:00
Victor Denisov
0ceefaec73 Implement bulk delete operation 2016-06-19 17:18:35 -07:00
Victor Denisov
15ba90784e Fix bulk update documentation 2016-06-19 17:03:58 -07:00
Victor Denisov
18ed370b90 Implement write concern for new version of insert 2016-06-18 22:30:32 -07:00
Victor Denisov
8091afe4a0 Hide Internal module 2016-06-16 11:27:03 -07:00
Victor Denisov
97400c074d Implement bulk update operation 2016-06-14 00:37:43 -07:00
Victor Denisov
ff0962b1d3 Remove debug output 2016-06-06 22:44:12 -07:00
Victor Denisov
7fc095725f Make psend's argument message strict (#55)
If the message argument can't be evaluated successfully
strict modifier will keep those errors outside of
psend invocation. Psend will catch only actual IO exceptions.
2016-06-02 07:46:24 -07:00
Victor Denisov
3a4ebcb23b Insert the list of documents into chunks 2016-05-29 23:14:04 -07:00
Victor Denisov
a632e8ff55 Collect size restrictions from the server 2016-05-26 23:03:55 -07:00
Victor Denisov
d123460b40 Implement insert using command mechanism 2016-05-25 00:12:32 -07:00
Victor Denisov
5b97fb4ade Use listCollections command if protocol version is > 2 2016-05-21 13:32:04 -07:00
Victor Denisov
2ba71ca277 Retrieve server data on connection 2016-05-21 13:32:04 -07:00
Victor Denisov
8132604443 Add warning about experimental TLS support 2016-05-03 23:43:55 -07:00
Victor Denisov
5ca93be5e8 Drop io-region dependency 2016-05-03 23:02:54 -07:00
Victor Denisov
e38ec59d1e Move Tls module to Transport 2016-05-02 22:05:02 -07:00
Victor Denisov
89ee88e67c Rename Internal.Connection module to Transport 2016-05-02 21:30:00 -07:00
Victor Denisov
ccd6727ab4 Use conventional types for Tls.Connect 2016-05-01 19:24:40 -07:00
Victor Denisov
a4e5726e1e Clean up redundant warnings 2016-05-01 19:11:02 -07:00
Victor Denisov
655f4b90bc Rename readExactly to read 2016-05-01 19:05:51 -07:00
Victor Denisov
73dfdb0b7f Remove IOStream from Internal.Protocol 2016-05-01 18:17:22 -07:00
Victor Denisov
c011b1a23c Move content of System.IO.Pipeline to Internal.Protocol 2016-05-01 17:34:06 -07:00
Victor Denisov
f956cb2623 Incorporate Tls implementation 2016-05-01 16:15:08 -07:00
Victor Denisov
19e631c9f4 Implement readExactly using hGet 2016-04-30 14:08:19 -07:00
Victor Denisov
494bdcbe56 Add tls implementation 2016-04-30 14:08:19 -07:00
Yuras Shumovich
0b4e3d96ed Support mongolab SCRAM auth
For some reason mongolab requires additional message exchange round.
2015-11-30 15:55:20 +03:00
Victor Denisov
8af6a82ec8 Clean trailing whitespaces 2015-11-07 10:37:40 -08:00
Ralph Morton
6f5f76afbb Add support for SCRAM-SHA-1 authentication 2015-11-01 18:05:39 +02:00
Victor Denisov
75470af421 Retrieve another batch for next in case of unlimited request 2015-09-29 22:42:22 -07:00
Victor Denisov
68ed7beb56 Remove unused writeLazy 2015-08-31 18:04:00 -07:00
Victor Denisov
e45d9329e9 Address performance issues with insert
Compile notices and request into one strict string for performance
boost.
2015-08-29 22:37:05 -07:00
Greg Weber
f385dade31 Merge pull request #25 from VictorDenisov/master
Handle the case when mongodb returns less documents than cursor reque…
2015-07-31 17:59:04 -07:00
Victor Denisov
dca5ae051a Apply reviewer's comments 2015-07-31 03:25:01 -07:00
Victor Denisov
5e72c8ad61 Handle the case when mongodb returns less documents than cursor requested
If we request certain amount of values from a cursor the mongo db server can
return less than requested. So, if we provide -100000 then mongodb may
return 97899 and close the cursor.

Instead of relying on negative values this implementation will use only
positive numbers and will close the cursor itself as soon as the driver
receives enough results.

It fixes the issue #24 from github.
2015-06-19 18:23:44 -07:00
Ralph Morton
9087719087 Support for TTL 2015-06-19 18:26:38 +02:00
Greg Weber
15b14c0acb Merge pull request #21 from mschristiansen/patch-2
Remove Control.Applicative imports and tab character
2015-05-16 11:40:11 -05:00
Mikkel Christiansen
f69440d7fa Remove applicative import warnings in GHC 7.10.1. 2015-05-15 15:26:34 +02:00
Mikkel Christiansen
6d877b4da2 Change all instances of myPipe, etc. to mongoPipe, etc. 2015-05-15 09:58:25 +02:00