Ben Symonds
4ae41edfe4
send the instrument payload even if no logger, for benefit of anyone hooking into instrument
method. also matches behaviour of insert, update, remove methods
2011-12-13 18:39:23 +00:00
Kyle Banker
b6ff77fcbc
RUBY-379 RUBY-381 reconnect on 'not master' errors (fix close connection logic)
2011-12-05 15:25:37 -05:00
Kyle Banker
03303b8409
RUBY-374 Close connection on SystemStackError, NoMemoryError, and SystemCallError
2011-12-02 15:37:05 -05:00
Kyle Banker
fa10508f07
Remove thread-local map and socket map (complexity creep).
2011-11-18 15:47:06 -05:00
Kyle Banker
1146e5692a
RUBY-341 fix :max_scan and :show_disk_loc
2011-11-15 16:24:21 -05:00
Kyle Banker
f668678fd1
Store sockets in thread-local variables when possible.
...
Allow connection pools to grow if needed. All this minimizes
the number of locks required and reduces the waiting time
for these locks.
2011-11-03 18:37:23 -04:00
Kyle Banker
14593954fa
RUBY-352 Ensure commands are sent to primary.
2011-10-26 10:28:06 -04:00
Kyle Banker
78dd5035d7
minor fix
2011-10-17 14:49:44 -05:00
Kyle Banker
7a11bb18a9
Ensure that cursor requiring getmore ops will not
...
be affected by replica set refresh.
Prep for sending commands to secondaries.
2011-10-17 14:41:09 -04:00
Kyle Banker
e678bac75e
RUBY-306 clean up logging.
2011-09-07 17:14:53 -04:00
Kyle Banker
75941ad2a3
minor: Cursor cleanup
2011-09-07 10:17:24 -04:00
Kyle Banker
1c439df278
RUBY-312 Enable exhaust-mode queries.
2011-09-07 10:02:10 -04:00
Kyle Banker
7ac19f1bfa
minor: Cursor#next over Cursor#next_document
2011-09-06 16:23:55 -04:00
Kyle Banker
50c38c6c6b
RUBY-284 document :read API
2011-09-06 14:58:03 -04:00
Kyle Banker
046038e18d
RUBY-297 when possible, include error codes and
...
return objects in exception classes.
2011-09-06 14:22:50 -04:00
Kyle Banker
834b0db0af
RUBY-307 Collection#count should take a query, skip, and limit.
2011-09-06 11:38:19 -04:00
Kyle Banker
45c40e7267
RUBY-320 RUBY-284 initial cascading read API. Mapping sockets to pools.
2011-08-29 17:49:58 -04:00
Kyle Banker
82b103752e
RUBY-289 ensure that negative limit is logged
2011-08-08 18:31:30 -04:00
Kyle Banker
b32f895ed6
RUBY-288 ensure we cannot modify with add_option or remove_option after iteration starts.
2011-08-05 18:22:09 -04:00
Kyle Banker
1142c33910
RUBY-288 Cursor#remove_option
2011-08-05 18:15:48 -04:00
Kyle Banker
96b39313bf
RUBY-267 Cursor#alive?
2011-08-05 17:54:38 -04:00
Kyle Banker
eecb1d35de
Revert "RUBY-167 Cursor#alive?"
...
This reverts commit 91308cdc60
.
Wrong JIRA Issue
2011-08-05 17:52:44 -04:00
Kyle Banker
91308cdc60
RUBY-167 Cursor#alive?
2011-08-05 17:51:37 -04:00
Kyle Banker
237dc98fbf
RUBY-283 add_option for cursors. Deprecate Cursor#query_opts.
2011-08-05 11:52:45 -04:00
Karl Seguin
7783cebfdf
batch_size is taken into account when limit is 0/not set
2011-06-16 22:21:40 +08:00
Kyle Banker
b8ab13e7f9
Revert "RUBY-267 Cursor#alive?"
...
This reverts commit 05dfef2f11
.
This adds new functionality and thus must wait for the 1.4 release.
2011-05-10 15:58:23 -04:00
Kyle Banker
05dfef2f11
RUBY-267 Cursor#alive?
2011-05-10 15:45:32 -04:00
Kyle Banker
9a80fbaa66
RUBY-266 support maxscan, showDiskLoc, and returnKey
2011-05-10 15:40:06 -04:00
Kyle Banker
604d0f60ed
RUBY-261 Cursor#close hits secondary when appropriate.
2011-05-10 14:21:23 -04:00
Kyle Banker
2bfe205c51
Merged wpiekutowski's commits to enable warnings
...
on test suite and clean up some code.
Conflicts:
test/cursor_test.rb
2011-03-23 16:02:04 -04:00
John Nunemaker
53ad43fedc
Added transformer concept.
...
Can be passed to find/find_one, which in turn is passed to cursor. It is an optional block that makes it easier to turn documents that are returned into hashes.
cursor = collection.find({...}, :transformer => Proc.new { |doc| User.load(doc) })
cursor.next # returns instance of User instead of ordered hash
This will allow MongoMapper, ToyStore and other object mappers to take better advantage of Cursors. No more calling to_a and mapping to instances.
2011-03-23 15:26:34 -04:00
Kyle Banker
8df0ff23f5
RUBY-249 Alias Cursor#next for Cursor#next_document
2011-03-15 14:24:34 -04:00
Wojciech Piekutowski
62900acb4b
Initialize @cursor_id
2011-02-20 17:03:32 +01:00
Wojciech Piekutowski
5dfac28dd4
Fix Mongo::Cursor#query_options_hash
2011-02-20 16:22:39 +01:00
Kyle Banker
d63cf18042
minor: note
2011-02-02 09:51:13 -05:00
Kyle Banker
9c83ca6b3e
minor style and doc fixes. warning about logging performance issues.
2011-01-31 15:51:39 -05:00
Steve Sloan
8a7296599b
Refactored logging of DB operations to use Connection#instrument.
...
This allows for easy overriding, e.g. to ActiveSupport notifications.
2011-01-31 15:13:12 -05:00
Kyle Banker
0d91faf6b1
RUBY-226 minor: license update
2011-01-17 12:26:32 -05:00
Kyle Banker
a197ea7852
RUBY-219 minor: use opts instead of options throughout
2011-01-05 11:30:20 -05:00
Kyle Banker
fa583762e7
RUBY-203 Use Hash#fetch when possible
2011-01-05 09:34:09 -05:00
Kyle Banker
e621db732e
minor: cleanup
2010-11-24 14:01:26 -05:00
Daniel Cooper
df80704f77
Cursor#count now has optional argument to make it take notice of skip and limit
2010-11-24 13:51:05 -05:00
Kyle Banker
1e57ca90e1
Initial commit for reads from rs secondaries
2010-11-16 15:43:59 -05:00
Ijonas Kisselbach
2188522687
removed argument type checks from Cursor.skip() and Cursor.limit() due to clash with JRuby's redefining of Integer
2010-11-11 15:20:08 -05:00
Evgeny Shadchnev
8c96f5d52f
removed batch_size accessor that's overridden by a method anyway
2010-11-11 15:08:24 -05:00
Evgeny Shadchnev
af0822f476
initializing query_run and closed before they are first used
2010-11-11 15:08:01 -05:00
Kyle Banker
c984af4ff0
Fixed bug passing :timeout to Cursor. Added tests.
2010-11-04 17:26:21 -04:00
Kyle Banker
3a0cdf64af
remove deprecated support for implicit
2010-10-04 14:37:19 -04:00
Hongli Lai (Phusion)
c8726ca150
Optimize MongoDB::Cursor#construct_query_message.
2010-09-13 10:51:15 -04:00
Mislav Marohnić
56f37e49b6
replace usage of returning
with each_with_object
...
`each_with_object` is a Ruby 1.9 method, here re-implemented in core_ext.rb
in case it's missing (for older Ruby versions). Using `returning` is bad in
combination with Ruby on Rails because each usage of the method will emit
a Rails deprecation warning. This might be considered an Active Support bug,
but it's better to avoid using `returning` altogether and use `tap` from
Ruby 1.8.7, also re-implemented here in case it's missing.
Since existing usages or `returning` were better suited for `each_with_object`
than `tap`, they were rewritten using the former instead.
2010-09-13 01:10:38 +08:00