Tyler Brock
d86c4d95f7
RUBY-435
...
Use rb_time_num_new for Time value when available (Ruby >= 1.9)
2012-05-15 16:52:53 -04:00
Gary Murakami
50d6902d80
Revert cbson.c, to be revisited for malloc/free reduction.
...
README.md has API Documentation note at the top to help users match documentation to driver version, DOCS-197.
Expanded performance tests, for insert with multiple docs.
2012-05-03 16:43:12 -04:00
Gary Murakami
962c4f2f2e
eliminate last explicit malloc/free for array key name, more performance measurements
2012-04-30 17:22:01 -04:00
Gary Murakami
7384585d98
write_element optimization for T_ARRAY to only allocate the buffer for the index key once instead of repeatedly for every index. This results in a 2.5x improvement for array sizes around 32. Also includes improvements to the performance tests and graphs, with plothover to show [x,y] values.
2012-04-25 17:15:31 -04:00
Tyler Brock
1be40495c2
RUBY-412 added if statement to case T_DATA to catch unserializable time classes in Ruby >= 1.9.3
2012-02-14 16:11:52 -05:00
Kyle Banker
e613880922
RUBY-327
2011-09-19 11:40:40 -04:00
Kyle Banker
3c127984a3
RUBY-242 check BSON size on a per-connection basis.
2011-08-25 14:57:24 -04:00
renctan
19c9cb778b
Fixed thet timestamp serialization issues for 32bit machines.
2011-08-24 13:14:36 -04:00
Kyle Banker
ace1313b99
RUBY-302 RUBY-303 fix buffer namespace conflict by renaming to bson_buffer.
2011-08-08 15:06:39 -04:00
Kyle Banker
135bebd9ab
RUBY-270 support 's' regex option.
...
Note: Ruby includes dotall 's' semantics on 'm' option.
2011-05-09 14:17:56 -04:00
Kyle Banker
05bf234bb8
RUBY-255 Support BSON Timestamp
2011-03-28 14:36:49 -04:00
Kyle Banker
b48a2bd84f
RUBY-253 fix UTF8 check for Ruby 1.9
2011-03-24 12:11:12 -04:00
Kyle Banker
a8ce896c9f
RUBY-245 Unique object id with timestamp
2011-03-15 16:40:27 -04:00
Hongli Lai (Phusion)
2335108162
When possible, use system_free() to free asprintf() results.
...
On OS X, Ruby Enterprise Edition allocates memory with tcmalloc which is
not compatible with the system malloc. asprintf() allocates memory with
the system malloc so we need to free its result with the system free()
function instead of tcmalloc's free() function. REE's system_free()
API call does that.
2011-02-14 09:41:39 -05:00
Kyle Banker
76730d4a7c
RUBY-233 show invalid key on invalid key exception
2011-02-04 12:07:28 -05:00
Kyle Banker
9798626053
RUBY-188 fix for bson_ext on Windows
2011-01-04 18:09:41 -05:00
Kyle Banker
bc5dcdfc7f
Fix for undefined symbol rb_long2int
2011-01-03 16:15:58 -05:00
eregon
a0389b0668
define R{ARRAY,STRING}_LENINT if there are not
2011-01-03 14:21:12 -05:00
eregon
3ab2acbf4f
Get rid of "implicit conversion 64-bit 32-bit" warnings
...
This resolves "warning: implicit conversion shortens 64-bit value into a 32-bit value"
The problem is String/Array length is a long (so 64 bits on some platforms instead of 32) and the extension use int
There are 2 solutions:
* use long everywhere (but waste of memory, and hard to do)
* cast into ints (but potential lost of data)
I did the second, because all these cases are about String/Array lengths,
and it is very unlikely to have a String/Array of more than 2 billions elements (that would mean at least 2GB in memory).
The last cast might need to be reviewed (htonl((int)time(NULL))) because htonl want a 32-bit int, but time(NULL) will overflow with the year 2038 problem.
2011-01-03 14:20:58 -05:00
Kyle Banker
c0e972470e
Fixed BSON_CODER.update_max_bson_size return value
2011-01-03 14:05:42 -05:00
Kyle Banker
9da68bb3db
RUBY-189 use result of ismaster's maxBsonObjectSize
2010-12-29 18:06:31 -05:00
eregon
191db33a1a
fix declaration-after-statement warnings of ruby trunk
...
The commit bd0a9d2fb6
adds -Werror=declaration-after-statement. This may cause an error and make gem installation fail
See http://www.ruby-forum.com/topic/714046
2010-12-29 12:06:38 -05:00
Kyle Banker
6f067756c8
Fix for serializing int/long
2010-11-08 17:21:17 -05: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
2ed0adbbc6
Fix C extension to handle BSON::Code (no longer a subclass of String)
2010-10-01 17:03:26 -04:00
Kyle Banker
45e6aaef43
minor: fast_pack no longer used
2010-09-20 14:01:17 -04:00
Kyle Banker
b077ef992d
RUBY-182 Rubinius compatibility; use rb_ary_entry() in lieu of RARRAY_PTR
2010-09-20 13:48:06 -04:00
Kyle Banker
81395373e9
RUBY-183 better int bson performance (Chuck Remes)
2010-09-20 11:57:06 -04:00
Hongli Lai (Phusion)
bfa4926e1d
Optimize ObjectId#generate: cache the MD5 of the host name and generate counters in C instead of Ruby.
2010-09-14 10:37:22 -04:00
Hongli Lai (Phusion)
3f66721858
Optimize BSON C extension: cache some symbols instead of interning them over and over.
2010-09-13 10:51:29 -04:00
Kyle Banker
7ca4683843
RUBY-173 better hash class detection for BSON
2010-08-28 16:35:45 -04:00
Kyle Banker
5838b9aef7
RUBY-173 allow HashWithIndifferentAccess
2010-08-28 12:19:26 -04:00
Mike Dirolf
06602bd41e
clean up C ext Time handling
2010-08-25 11:27:38 -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
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
c7c309b00d
RUBY-158 deprecate BSON::ObjectID for BSON::ObjectId
2010-08-24 12:49:23 -04:00
Kyle Banker
a24448d911
attempted fix for bson_ext on solaris (slyphon)
2010-07-02 16:03:42 -04:00
Mike Dirolf
d68e42812e
respect Encoding.default_internal in BSON decoder
2010-05-07 15:15:52 -04:00
sleverbor
ed76126a12
namespaced the OrderedHash class
2010-05-06 18:25:18 -07:00
Kyle Banker
8ac3171981
ensure compatibility with early releases of Ruby 1.8.5 (dfitzgibbon) RUBY-125
2010-04-28 10:43:54 -04:00
Kyle Banker
910a82de7e
must use Connection.paired for paired connections
2010-04-07 17:10:28 -04:00
Kyle Banker
e18d2d6fbb
removed deprecated RegexpOfHolding
2010-04-07 16:32:25 -04:00
Kyle Banker
45d3b91882
exception refinements for bson split
2010-04-05 18:24:31 -04:00
Kyle Banker
c4d5cb641b
renamed mongo_bson to bson
2010-04-05 10:39:55 -04:00
Charles Remes
b669b625cc
Changed RREGEXP_SOURCE macro to RREGX_SRC so it matches all rubies
2010-03-19 09:10:08 -05: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
Kyle Banker
0709b98082
Rails 3 HashWithIndifferentAccess fixes
2010-03-02 11:11:07 -05:00
Kyle Banker
e3d746096d
minor: docs
2010-03-01 12:09:21 -05:00
Kyle Banker
2d9e10c192
CBson HashWithIndifferentAccess error
2010-02-27 12:22:34 -05:00
Kyle Banker
fc2ddf3bbd
deserialize to RegexpOfHolding only when necessary
2010-02-15 09:47:53 -05:00