Commit Graph

683 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 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 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 3a0cdf64af remove deprecated support for implicit 2010-10-04 14:37:19 -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 7ad280c2cb RUBY-184 Connection#locked? 2010-10-04 11:38:20 -04:00
Kyle Banker 4141331f79 RUBY-184 fsync lock helpers 2010-09-28 12:15:45 -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
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) c8726ca150 Optimize MongoDB::Cursor#construct_query_message. 2010-09-13 10:51:15 -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) 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
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 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
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 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 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 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 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 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 fc603c651e RUBY-152 2010-07-13 14:42:18 -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
Rimas Silkaitis f62e9e6732 Added helper functions to create and remove stored js functions in system.js 2010-07-03 11:24:24 -07:00
Kyle Banker 2121d6c809 minor: cleaner output for cursor inspect 2010-07-02 17:24:45 -04:00
Lincoln Stoll 6e3cc639f6 Allow hypens and underscores in URL credentials. 2010-06-24 12:51:16 -05:00
Kyle Banker 82ffae676b RUBY-142 (Frédéric De Jaeger) fix for broken socket send 2010-06-24 12:46:06 -05:00
Kyle Banker 4712a68468 RUBY-133 maximum insert size 2010-06-15 10:24:31 -04:00
Kyle Banker 51140f8ea1 minor: support dash in host name on parse_uri 2010-06-14 22:06:55 -04:00
Kyle Banker c28b126267 RUBY-132 ensure socket closes on connect to master 2010-06-14 18:56:44 -04:00
Kyle Banker 31d2483294 RUBY-137 specify index name 2010-06-14 14:20:12 -04:00
Kyle Banker 67a56b64eb fixed connection uri bug (Sunny Hirai) 2010-06-12 10:11:29 -04:00
Kyle Banker 0335937b3c minor: docs 2010-06-05 22:45:37 -04:00
Kyle Banker a7e2991c31 fix for boolean command response in core server 1.5.2 2010-05-31 22:52:03 -04:00
Kyle Banker 0efd1d0237 allow variable bson_ext versions 2010-05-24 11:43:02 -04:00
Kyle Banker 924a275ea3 check command response by default; better DB#command api 2010-05-18 16:17:17 -04:00
Mike Dirolf 60ffbb2706 Check for nil response in db#command and set check_response for filemd5.
Kyle can we make check_response default to true instead of false?
2010-05-11 13:03:47 -04:00
Mike Dirolf edd8a7104f default batch size should always be 0 2010-05-10 12:11:23 -04:00
Kyle Banker 97ee66be02 minor: source file encoding with magic comment 2010-05-07 15:33:27 -04:00
Kyle Banker 3209ca05fd deprecate JavaScript string for Collection#find 2010-05-07 15:16:38 -04:00
Kyle Banker 06c7934675 RUBY-127 2010-05-07 15:15:52 -04:00
sleverbor ed76126a12 namespaced the OrderedHash class 2010-05-06 18:25:18 -07:00
Kyle Banker 7b89523315 added Grid#exist? and GridFileSystem#exist? RUBY-122 2010-05-05 11:07:52 -04:00
Kyle Banker 56661c4c66 minor: docs 2010-05-04 16:06:06 -04:00
Kyle Banker 065d97ca1c Replication acknowledgment RUBY-126 2010-05-04 16:00:05 -04:00
Kyle Banker 60f72937fd minor: removed deprecated @grid.put syntax 2010-04-28 16:21:39 -04:00
Kyle Banker 1e13187db6 minor: gridfs docs 2010-04-28 15:20:39 -04:00
Kyle Banker 55ebf36c1d minor: removed deprecation warning for new create_index api 2010-04-28 15:16:33 -04:00
Kyle Banker 56ecc470f5 minor: docs 2010-04-19 12:16:45 -04:00
Kyle Banker 494d451857 RUBY-123 check index types 2010-04-16 15:59:34 -04:00
Kyle Banker acc42dce65 RUBY-115 tailable cursors 2010-04-12 13:53:18 -04:00
Kyle Banker b9f579876c RUBY-120 configurable batch size; begin 0.20.2 2010-04-12 11:57:14 -04:00
Kyle Banker 910a82de7e must use Connection.paired for paired connections 2010-04-07 17:10:28 -04:00
Kyle Banker 3d3e983ae0 minor: docs 2010-04-07 15:58:02 -04:00
Kyle Banker fd43eca514 unique indexes for GridFS chunks collections 2010-04-07 15:53:38 -04:00
Kyle Banker cd32dabd52 added GridFileNotFound and GridMD5Failure exceptions 2010-04-07 14:39:05 -04:00
Kyle Banker 3133380341 allow arbitrary attirbutes in files collection 2010-04-07 13:54:49 -04:00
Kyle Banker a3f31208e6 minor: docs 2010-04-06 18:34:07 -04:00
Kyle Banker 84fb41c39f added Collection#stats and DB#stats 2010-04-06 18:29:39 -04:00
Kyle Banker 35dac1f31e added find_and_modify helper 2010-04-06 17:56:21 -04:00
Kyle Banker 45d3b91882 exception refinements for bson split 2010-04-05 18:24:31 -04:00
Kyle Banker a4c72ffa5d minor: removed deprecated group argument 2010-04-05 17:30:51 -04:00
Kyle Banker cc253cc111 minor: fix for assert_valid_keys 2010-04-05 14:22:31 -04:00
Kyle Banker 63b0dfc6c9 test fixes for move to bson gem 2010-04-05 11:07:01 -04:00
Kyle Banker 1e8e0c02fe removed deprecated GridStore class 2010-04-05 10:50:27 -04:00
Kyle Banker c4d5cb641b renamed mongo_bson to bson 2010-04-05 10:39:55 -04:00
Kyle Banker 99d421d950 minor: docs 2010-03-30 13:35:36 -04:00
Kyle Banker 256c12c558 minor: docs 2010-03-30 13:33:03 -04:00
Kyle Banker 85fd06f990 options to delete old versions of GridFileSystem files 2010-03-30 13:22:22 -04:00
Kyle Banker c276a23615 minor: use $ with query and orderby params on query message 2010-03-30 12:26:57 -04:00
Kyle Banker 284c442c46 filename is now optional for Grid#put RUBY-116 2010-03-30 11:54:23 -04:00
Kyle Banker b87e3dd3fb docs and tests for fields option with a hash 2010-03-27 08:58:16 -07:00
Houdini 33f4aca658 More flexible :fields option, supporting {}
This allows exact definition of the fields you want included in the query results. For example :fields => {:name => 1, :people => 0} will include the name key but exclude the people key.
2010-03-26 13:58:18 -07:00
Kyle Banker a94a870202 log messages read like valid ruby driver code 2010-03-23 22:40:43 -07:00
Mike Dirolf aa86c03bd5 test and fix for Grid#delete 2010-03-23 17:00:31 -04:00
Kyle Banker f2bc05f51c merge new bson commits 2010-03-19 15:23:24 -04:00
Kyle Banker 4008752b02 RUBY-113 allow has_next for cursors 2010-03-19 14:31:31 -04:00
Kyle Banker 3e8c8d5c93 added error checking for array of arrays on index creation 2010-03-19 14:31:10 -04:00
Charles Remes a9b3c8e7a5 Try again: Split the BSON logic out to a separate gem
- changed the BSON constant to BSON_CODER and scoped it inside
      of a module

    - changed the directory layout for all of the BSON related files

    - updated the C extension to find the BSON files at their new
      directory locations

    - updated the C extension to use better/safer macros for accessing
      the C API; extension now compiles cleanly under rubinius/rbx

    - changed directory layout for BSON related tests

    - modified the Rakefile to understand the new layout
2010-03-17 14:55:19 -05:00
Charles Remes 18d7d1c699 Split the BSON logic out to a separate gem
- changed the BSON constant to BSON_CODER and scoped it inside
  of a module

- changed the directory layout for all of the BSON related files

- updated the C extension to find the BSON files at their new
  directory locations

- updated the C extension to use better/safer macros for accessing
  the C API; extension now compiles cleanly under rubinius/rbx

- changed directory layout for BSON related tests

- modified the Rakefile to understand the new layout
2010-03-17 14:30:33 -05:00
Kyle Banker 367f9b32cc added indexing options: background, geo, dropDups, etc. 2010-03-16 15:59:26 -04:00
Kyle Banker 9dd1a5c2e3 added authentication support for copy_database 2010-03-16 13:56:30 -04:00
Kyle Banker 38d6401d1a warn if saving zero-length file 2010-03-15 18:25:46 -04:00
Kyle Banker 8faa243484 added sort to query logging RUBY-101 2010-03-15 11:51:22 -04:00
Kyle Banker 3a5d162a22 minor: doc fix 2010-03-02 12:24:52 -05:00
Kyle Banker 9d51f49339 minor: fix 2010-03-01 12:18:57 -05:00
Kyle Banker 85076b2684 minor: docs 2010-03-01 10:39:50 -05:00
Kyle Banker 2d9e10c192 CBson HashWithIndifferentAccess error 2010-02-27 12:22:34 -05:00
Kyle Banker 824573f297 warn if index fails to create 2010-02-25 16:40:35 -05:00
Kyle Banker c0e8a525bd reauthenticate on reconnect 2010-02-25 14:58:32 -05:00
Kyle Banker c05503d42d minor: aliases for gridfs 2010-02-24 15:25:26 -05:00
Kyle Banker 864abe3dce gridfs docs 2010-02-24 15:24:01 -05:00
Kyle Banker c82b61ffc9 remove deprecated methods DB#admin and DB#db_command 2010-02-24 13:40:04 -05:00
Kyle Banker 3479317098 raise exception on authentication failure 2010-02-24 13:05:45 -05:00
Kyle Banker f126518566 use mime types only if we can load it 2010-02-23 18:25:28 -05:00
Kyle Banker ff63165bdd content type detection for gridfs 2010-02-23 18:03:11 -05:00
Kyle Banker c37ee7cd3c minor: GridFileSystem is its own class 2010-02-23 17:41:35 -05:00
Kyle Banker e4f8a61cac GridFS docs 2010-02-23 17:40:02 -05:00
Kyle Banker 15ee9530ed deprecate GridFS::GridStore and GridFS::Chunk 2010-02-23 16:19:45 -05:00
Kyle Banker ffd8d5f6a3 minor: docs 2010-02-23 16:04:46 -05:00
Kyle Banker 3163a340f1 removed deprecated xml_to_ruby 2010-02-23 14:40:38 -05:00
Kyle Banker b9e8bb4e03 remove deprecated Admin class 2010-02-23 13:12:14 -05:00
Kyle Banker d6111f535c removed deprecated Cursor#next_object 2010-02-23 13:09:36 -05:00
Kyle Banker a8e3a80fde test fixes for deprecations 2010-02-23 13:06:48 -05:00
Kyle Banker 64a8b09c2e remove deprecated legacy object id support 2010-02-23 12:53:53 -05:00
Kyle Banker a7d4d5d277 minor: copy fix 2010-02-23 12:44:50 -05:00
Kyle Banker 8f90cbfbf7 Collection#group as eval deprecation final stage 2010-02-23 12:42:17 -05:00
Kyle Banker 4010dbc994 minor: removed unused method 2010-02-22 18:09:56 -05:00
Kyle Banker 1d0cc7aae2 added safe more for gridfs 2010-02-22 18:06:59 -05:00