Commit Graph

710 Commits

Author SHA1 Message Date
Kyle Banker
68af3dbe8f Allow the setting of safe mode globally on the Connection,
DB, and Collection levels. The safe mode setting will
automatically be inherited down the hierarchy Connection ->
DB -> Collection -> (insert, update, remove). This default
can be overridden at any time. Connection#safe, DB#safe, and
Collection#safe will yield the current default value.
2010-11-03 17:36:08 -04:00
Kyle Banker
f7d151c8dc minor: doc fixes 2010-11-03 15:32:19 -04:00
Kyle Banker
d6f8f9d41a Allow specification of replica set name on connect.
Raise ReplicaSetConnectionError if expected name doesn't match set.
2010-11-03 15:12:15 -04:00
Kyle Banker
5aa8721b25 Allow idiomatic :drop_dups in addition to :dropDups
on index creation.

Don't raise exception if :dropDups results in duplicate key error.
2010-11-02 14:50:02 -04:00
Kyle Banker
e21a4b897a minor: extra rake tasks for tests. don't show C ext warning when testing 2010-11-02 14:25:14 -04:00
Kyle Banker
2939932526 close connection when safe mode insert results in 'not master' 2010-10-29 23:18:49 -04:00
Kyle Banker
424f08af5e close connection on exception on safe insert 2010-10-29 17:52:15 -04:00
Kyle Banker
2720206f77 minor: docs 2010-10-22 13:27:56 -04:00
Kyle Banker
e416e05fc7 RUBY-190 bug fix for unavailable nodes on Connection#multi 2010-10-21 14:33:48 -04:00
Kyle Banker
a905c3f1f2 RUBY-191 fix to pass options to new db with Connection#db 2010-10-21 13:27:57 -04:00
Kyle Banker
afe8fe3167 RUBY-193 don't create gridfs indexes when slave_ok 2010-10-21 13:01:32 -04:00
Kyle Banker
68cadc1987 minor: patch for JRuby 1.9 MD5 comparison bug 2010-10-14 16:35:13 -04:00
Kyle Banker
f1ddd871f2 major: typo 2010-10-13 18:38:15 -04:00
Kyle Banker
80044b9a58 RUBY-187 All tests can now use custom host and port;
Minor test fixes.
2010-10-13 17:09:23 -04:00
Kyle Banker
cd03fafb27 RUBY-187 ByteBuffer should take another ByteBuffer as initial data 2010-10-13 17:08:45 -04:00
Kyle Banker
df0377c3d4 JRuby Test fixes 2010-10-12 15:39:28 -04:00
Kyle Banker
b0f2911170 BUMP 1.1.1 2010-10-07 17:59:12 -04:00
Kyle Banker
0c82f01d97 JRuby: validate key names and only move _id when necessary. 2010-10-07 17:42:39 -04:00
Kyle Banker
850159cd7c BUMP 1.1 2010-10-04 15:19:14 -04:00
Kyle Banker
3a0cdf64af remove deprecated support for implicit 2010-10-04 14:37:19 -04:00
Kyle Banker
b8d6f57602 A few more BSON fixes 2010-10-04 14:25:44 -04:00
Jari Bakken
112870b537 Get rid of missing parentheses warning. 2010-10-04 13:32:46 -04:00
Jari Bakken
9d2f3fbc27 Call super in BSON::OrderedHash#== instead of doing the comparison in Ruby.
This has a notable performance impact for large hashes.
2010-10-04 13:32:33 -04:00
Kyle Banker
b3ed1486e5 minor: updates for removal deprecated DB and Connection methods and ObjectID 2010-10-04 13:28:26 -04:00
Kyle Banker
bd4b6060f7 Removed deprecated DB methods 2010-10-04 12:16:40 -04:00
Kyle Banker
f7a97a0db0 Removed deprecated Connection methods 2010-10-04 12:16:11 -04:00
Kyle Banker
8dce3a613d Removed deprecated ObjectID class (use ObjectId now) 2010-10-04 12:15:14 -04:00
Kyle Banker
bf10db9b21 minor: ObjectId optimization 2010-10-04 12:09:29 -04:00
Kyle Banker
7ad280c2cb RUBY-184 Connection#locked? 2010-10-04 11:38:20 -04:00
Kyle Banker
c04dfec1db Revert JRuby callback to use RubyBSONCallback 2010-10-01 13:57:16 -04:00
Kyle Banker
315e608cd4 Optimized callback class to return Java objects 2010-10-01 09:52:29 -04:00
Kyle Banker
2a7b089a9b BSON for JRuby 2010-09-30 09:43:17 -04:00
Kyle Banker
4141331f79 RUBY-184 fsync lock helpers 2010-09-28 12:15:45 -04:00
Kyle Banker
a1565b3ac8 BUMP 1.0.9 2010-09-20 15:07:30 -04:00
Hongli Lai (Phusion)
b474b29d35 Optimize Mongo::Connection#receive_message_on_socket and #receive_and_discard_message_on_socket: avoid creating initial input buffer up front so that IO#read only needs to allocate the buffer once. 2010-09-14 10:37:08 -04:00
Hongli Lai (Phusion)
6316c939d5 Optimize Mongo::Connection#send_message_on_socket: don't slice the input when not necessary. 2010-09-14 10:36:54 -04:00
Hongli Lai (Phusion)
87e6d578c1 Optimize Mongo::Connection#add_message_headers by packing data directly instead of using ByteBuffer. 2010-09-14 10:36:40 -04:00
Kyle Banker
f494c9601d minor: comment cleanup 2010-09-13 14:44:41 -04:00
Hongli Lai (Phusion)
0585aa1aae Fix MongoDB::Collection #insert_documents, #update and #remove and MongoDB::Connection #receive_header and #last_error_message: usage strings as much as possible instead of byte arrays, otherwise performance really suffers. 2010-09-13 10:51:53 -04:00
Hongli Lai (Phusion)
264bddbeee Fix reference to NULL_BYTE. 2010-09-13 10:51:44 -04:00
Hongli Lai (Phusion)
c8726ca150 Optimize MongoDB::Cursor#construct_query_message. 2010-09-13 10:51:15 -04:00
Hongli Lai (Phusion)
bde53f1e20 Optimize ByteBuffer: use binary string as underlying storage instead of array. 2010-09-13 10:51:02 -04:00
Hongli Lai (Phusion)
c6206eddf4 Optimize MongoDB::Connection#receive_response_header by using raw string operations and unpack() instead of the slower ByteBuffer. 2010-09-13 10:50:39 -04:00
Hongli Lai (Phusion)
e1bf168767 Optimize MongoDB::Connection#receive.
It doesn't do anything with the header. So instead of parsing the header,
just read the header data and discard it.
2010-09-13 10:50:25 -04:00
Hongli Lai (Phusion)
2291a59fcc Optimize Mongo::Connection#read_documents by using raw string operations and unpack() instead of the slower ByteBuffer. 2010-09-13 10:50:16 -04:00
Hongli Lai (Phusion)
1c25541492 Optimize ByteBuffer#get_int. 2010-09-13 10:50:04 -04:00
Hongli Lai (Phusion)
026e409d6d Optimize Ruby 1.8 implementation of BSON::OrderedHash.
The set in there is unnecessary. Use the hash itself as "set". This makes
BSON::OrderedHash 148% faster on Ruby 1.8.
2010-09-13 10:49:50 -04:00
Hongli Lai (Phusion)
117ce2389c Optimize receive_message_on_socket for the optimistic average case where 1 socket.read() operation receives all requested data. Also fix some Ruby 1.9 encoding issues in that function while we're at it. 2010-09-13 10:48:32 -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
Hongli Lai (Phusion)
b9de2eaa5c When possible, have BSON::ByteBuffer store the underlying binary data as a binary String instead of an array.
This dramatically improves the performance of BSON::ByteBuffer.new(a_string).
On Ruby 1.9.2 it is about 130 times faster.
2010-09-09 15:59:17 -04:00
Kyle Banker
3a4134a5c2 RUBY-180 fixed failing test 2010-09-09 14:53:29 -04:00
Kyle Banker
e03ea6b690 minor: typo fix 2010-09-09 14:22:09 -04:00
Kyle Banker
36c71ef48e RUBY-180 Fix batch size 2010-09-09 14:12:12 -04:00
Kyle Banker
b339871eb9 minor: #refresh instead of #refill_via_get_more 2010-09-08 14:34:28 -04:00
Kyle Banker
300b442a94 Create logging message only when a logger is passed to the Connection.
Results in a pretty significant performance improvement.

Many thanks to Matt Taylor for noticing the unusual glut of calls
to ObjectId#to_s. See here: http://unhalting.com/?p=18
2010-09-08 14:27:27 -04:00
Kyle Banker
c2955239a4 BUMP BSON 1.0.7 2010-08-28 20:08:50 -04:00
Kyle Banker
a867ddd341 BUMP BSON 1.0.6 2010-08-28 12:20:58 -04:00
Kyle Banker
2eaca6bc8e RUBY-172 fix for OrderedHash#clone 2010-08-27 15:50:42 -04:00
Kyle Banker
dd8c79cfcb BUMP 1.0.8 2010-08-27 06:27:14 -04:00
Kyle Banker
6b2939f2f7 RUBY-171 allow Cursor#to_a even after iterating; added Cursor#rewind; consistent Enumberable behavior for Cursor 2010-08-26 12:35:42 -04:00
Mike Dirolf
7702d671ea Use C objectid_generate for ObjectId in addition to ObjectID.
Also, remove broken defined? check from objectid.rb and object_id.rb -
it was never doing anything since we require those files at the top of
cbson.c.
2010-08-25 10:23:18 -04:00
Steve Sloan
dfcf8d9d60 Moved thread and socket classes into Connection for easy overriding.
This is necessary for use under em-synchrony, which uses Fibers instead of Threads and EventMachine instead of blocking sockets.
2010-08-24 14:35:21 -04:00
Kyle Banker
02a0c7c2dc RUBY-165 raise error if BSON.serialize is passed something other than a hash 2010-08-24 14:01:24 -04:00
Kyle Banker
e843891c8a BUMP BSON 1.0.5 2010-08-24 12:50:37 -04:00
Kyle Banker
c7c309b00d RUBY-158 deprecate BSON::ObjectID for BSON::ObjectId 2010-08-24 12:49:23 -04:00
Kyle Banker
5cbec4e5b6 RUBY-161 accessors for hosts in a replica set by node type 2010-08-24 11:20:54 -04:00
Kyle Banker
bacb1ee69e RUBY-167 fix OrderedHash#reject 2010-08-23 14:19:32 -04:00
Kyle Banker
f448946ea6 Merge branch 'master' of github.com:mongodb/mongo-ruby-driver 2010-08-23 14:10:17 -04:00
Mike Dirolf
56aa67f4fe minor: typo 2010-08-17 10:08:48 -04:00
Kyle Banker
9cd7377b00 minor: cleanup 2010-08-09 14:09:51 -04:00
Kyle Banker
7bb59610b7 minor: kill cursors only when necessary 2010-08-06 16:02:51 -04:00
Kyle Banker
391d37ec83 BUMP 1.0.7; HISTORY 2010-08-04 16:53:29 -04:00
Kyle Banker
db8ddd059b minor: silence some warning due to deprecaton 2010-08-04 16:47:13 -04:00
Kyle Banker
9e223f4510 remove old DB#command arguments 2010-08-04 16:26:29 -04:00
Kyle Banker
f1f0c87b3b minor: fixes for db commands with new DB#command checking response 2010-08-04 16:21:41 -04:00
Kyle Banker
e9de3e56ea RUBY-139 add new sub-type 0. Will become default with the release of mongod 1.8 2010-08-04 15:39:31 -04:00
Kyle Banker
065517ac29 Fixed test bug; better replication ack tests; deprecated DB#error and DB#last_status for DB#get_last_error 2010-08-02 18:19:54 -04:00
Kyle Banker
02e5b77219 minor: cleanup (chriseppstein) 2010-07-28 06:27:42 -04:00
Kyle Banker
66e9508f61 Connection#send_message should return bytes sent 2010-07-27 22:19:25 -04:00
Kyle Banker
db27756597 minor: docs 2010-07-26 18:05:23 -04:00
Kyle Banker
e3c1b1eafe minor: logger bug fix (bernerdschaefer) 2010-07-21 15:27:29 -04:00
Kyle Banker
969ec6f644 Don't check keys on Collection#map_reduce 2010-07-21 08:23:55 -04:00
Kyle Banker
476d856abb minor: reorganization. warn if using replica sets RUBY-148 2010-07-19 12:23:12 -04:00
Kyle Banker
d8b34d7679 Advance to 1.0.6 to development 2010-07-19 12:09:14 -04:00
Kyle Banker
0afa5aa412 Initial replica set support 2010-07-19 12:07:46 -04:00
Kyle Banker
c9573f05ad minor: fix default timeout option 2010-07-16 14:04:13 -04:00
Kyle Banker
b1cf0d1e13 minor: close connection before exception 2010-07-15 14:13:40 -04:00
Kyle Banker
f99de96591 BUMP 1.0.5 (Release fix for 1.0.4) 2010-07-13 14:52:39 -04:00
Kyle Banker
fc603c651e RUBY-152 2010-07-13 14:42:18 -04:00
Kyle Banker
a9c709f7a1 BUMP 1.0.4 2010-07-13 11:12:10 -04:00
Kyle Banker
a00fb21d37 minor: better error message for DB#command 2010-07-12 14:33:52 -04:00
Kyle Banker
86c50a0555 Removed deprecated options and methods. 2010-07-12 14:31:12 -04:00
Kyle Banker
a14d02e98d Use one mutex per thread on pooled connections (cremes) 2010-07-12 14:14:35 -04:00
Kyle Banker
2a3c7bc34e minor: docs 2010-07-12 13:51:40 -04:00
Kyle Banker
1b78c3a73c minor: reverted breaking change -- more debugging needed 2010-07-12 13:10:43 -04:00
Kyle Banker
265f074f10 RUBY-147 check for CursorNotFound response flag 2010-07-12 12:11:01 -04:00
Kyle Banker
030c850669 minor: nicer query opts generation 2010-07-09 16:15:36 -04:00
Kyle Banker
c25f1f5997 RUBY-144 allow map_reduce to return raw command (and not just instantiated results collection) 2010-07-09 15:29:11 -04:00
Kyle Banker
f22e81414b RUBY-141 raise exception if attempting to overwrite with Grid#put (only in safe mode) 2010-07-09 13:33:26 -04:00
Kyle Banker
24e8b690ed RUBY-149 map-reduce fix for boolean ok 2010-07-09 12:53:22 -04:00