Releases: rethinkdb/rethinkdb
Releases · rethinkdb/rethinkdb
1.9.0 -- Kagemusha
This release is focused on performance and includes enhancements that improve performance of many queries by orders of magnitude.
- Server
- Fixed a potential crash caused by a coroutine switch in exception handlers (#153)
- No longer duplicate documents in the secondary indexes (#752)
- Removed unnecessary conversions between
datum_t
andcJSON
(#1041) - No longer load documents from disk for count queries (#1295)
- Changed extproc code to use
datum_t
instead ofcJSON_t
(#1326)
- ReQL
- Web UI
- No longer truncate server names (#1313)
- CLI
rethinkdb import
now works with Python 2.6 (#1349)
1.8.1 -- High Noon
Bug fix update.
- The shard suggester now works with times (#1335)
- The Python backup scripts no longer rely on
pip show
(#1331) rethinkdb help
no longer uses a pager (#1315, #1308)- The web UI now correctly positions
SVGRectElement
(#1314) - Fixed a bug that caused a crash when using
filter
with a non-deterministic value (#1299)
1.8.0 -- High Noon
This release introduces date and time support, a new syntax for querying nested objects and 8x improvement in disk usage.
New Features
- ReQL
order_by
now accepts a function as an argument and can efficiently sort by index (#159, #1120, #1258)slice
andbetween
are now half-open by default (#869)- The behaviour can be changed by setting the new optional
right_bound
argument toclosed
or by settingleft_bound
toopen
- The behaviour can be changed by setting the new optional
contains
can now be passed a predicate (#870)merge
is now deep by default (#872)- Introduced
literal
to merge flat values
- Introduced
coerce_to
can now convert strings to numbers (#877)- Added support for times (#977)
+
,-
,<
,<=
,>
,>=
,==
and!=
: arithmetic and comparisonduring
: match a time with an intervalin_timezone
: change the timezone offsetdate
,time_of_day
,timezone
,year
,month
,day
,weekday
,hour
,minute
andsecond
: accessorstime
,epoch_time
andiso8601
: constructorsmonday
tosunday
andjanuary
todecember
: constantsnow
: current timeto_iso8601
,to_epoch_time
: conversion
- Add the nested document syntax to functions other than
pluck
(#1094)without
,group_by
,with_fields
andhas_fields
- Remove Google Closure from the JavaScript driver (#1194)
- It now depends on the
protobufjs
andnode-protobuf
libraries
- It now depends on the
- Server
- Added a
--canonical-address HOST[:PORT]
command line option for connecting RethinkDB nodes across different networks (#486)- Two instances behind proxies can now be configured to connect to each other
- Optimize space efficiency by allowing smaller block sizes (#939)
- Added a
--no-direct-io
startup flag that turns off direct IO (#1051) - Rewrote the
extproc
code, makingr.js
interuptible and fixing many crashes (#1097, #1106) - Added support for V8 >= 3.19 (#1195)
- Clear blobs when they are unused (#1286)
- Added a
- Web UI
- Use relative paths (#1053)
- Build
- Add support for Emacs'
flymake-mode
(#1161)
- Add support for Emacs'
Fixed Bugs
- ReQL
- Check the type of the callback passed to
next
andeach
in the JavaScript driver (#656) - Fixed how some backtraces are printed in the JavaScript driver (#973)
- Coerce the port argument to a number in the Python driver (#1017)
- Functions that are polymorphic on objects and sequences now only recurse one level deep (#1045)
- Affects
pluck
,has_fields
,with_fields
, etc
- Affects
- In the JavaScript driver, no longer fail when requiring the module twice (#1047)
r.union
now returns a stream when given two streams (#1081)r.db
can now be chained withdo
in the JavaScript driver (#1082)- Improve the error message when combining
for_each
andreturn_vals
(#1104) - Fixed a bug causing the JavaScript driver to overflow the stack when given an object with circular references (#1133)
- Don't leak internal functions in the JavaScript driver (#1164)
- Fix the qurey printing in the Python driver (#1178)
- Correctly depend on node >= 0.10 in the JavaScript driver (#1197)
- Check the type of the callback passed to
- Server
- Improved the error message when there is a version mismatch in data files (#521)
- The
--no-http-admin
option now disables the check for the web assets folder (#1092) - No longer compile JavaScript expressions once per row (#1105)
- Fixed a crash in the 32-bit version caused by not using 64-bit file offsets (#1129)
- Fixed a crash caused by malformed json documents (#1132)
- Fixed a crash caused by moving
func_t
betweek threads (#1157) - Improved the scheduling the coroutines that sometimes caused heartbeat timeouts (#1169)
- Fixed
conflict_resolving_diskmgr_t
to suport files over 1TB (#1170) - Fixed a crash caused by disconnecting too fast (#1182)
- Fixed the error message when
js_runner_t::call
times out (#1218) - Fixed a crash caused by serializing unintitialised values (#1219)
- Fixed a bug that caused an assertion failure in
protob_server_t
(#1220) - Fixed a bug causing too many file descriptors to be open (#1225)
- Fixed memory leaks reported by valgrind (#1233)
- Fixed a crash triggered by the BTreeSindex test (#1237)
- Fixed some problems with import performance, interruption, parsing, and error reporting (#1252)
- RethinkDB proxy no longer crashes when interacting with the Web UI (#1276)
- Tests
- Web UI
- Documentation
- Improved the documentaiton for
update
andpluck
(#1141)
- Improved the documentaiton for
- Build
1.7.3 -- Nights of Cabiria
Bug fix update.
- RethinkDB no longer fails to create the data directory when using
--daemon
(#1191)
1.7.2 -- Nights of Cabiria
Bug fix update.
- Fixed
wire_func_t
serialization that caused inserts to fail (#1155) - Fixed a bug in the JavaScript driver that caused asynchronous connections to fail (#1150)
- Removed
nice_crash
andnice_guarantee
to improve error messages and logging (#1144) rethinkdb import
now warns when unexpected files are found (#1143)rethinkdb import
now correctly imports nested objects (#1142)- Fixed the connection timeout in the JavaScript driver (#1140)
- Fixed
r.without
(#1139) - Add a warning to
rethinkdb dump
about indexes and cluster config (#1137) - Fixed the
debian/rules
makefile to properly build the rethinkdb-dbg package (#1130) - Allow multiple instances with different port offsets in the init script (#1126)
- Fixed
make install
to not use/dev/stdin
(#1125) - Added missing files to the OS X uninstall script (#1123)
- Fixed the documentation for insert with the returnVals flag in JavaScript (#1122)
- No longer cache
index.html
in the web UI (#1117) - The init script now waits for rethinkdb to stop before restarting (#1115)
rethinkdb
porcelain now removes the new directory if it fails (#1070)- Added cooperative locking to the rethinkdb data directory to detect conflicts earlier (#1109)
- Improved the comments in the sample configuration file (#1078)
- Config file parsing now allows options that apply to other modes of rethinkdb (#1077)
- The init script now creates folders with the correct permissions (#1069)
- Client drivers now time out if the connection handshake takes too long (#1033)
1.7.1 -- Nights of Cabiria
Bug fix update.
- Fixed a bug causing
rethinkdb import
to crash on single files - Added options to
rethinkdb import
for custom CSV separators and no headers (#1112)
1.7.0 -- Nights of Cabiria
This release introduces hot backup, atomic set and get operations, significant insert performance improvements, nested document syntax, and native binaries for CentOS / RHEL.
New Features
- ReQL
- Added
r.json
for parsing JSON strings server-side (#887) - Added syntax to
pluck
to access nested documents (#889) get_all
now takes a variable number of arguments (#915)- Added atomic set and get operations (#976)
update
,insert
,delete
andreplace
now take an optionalreturn_vals
argument that returns the values that have been atomically modified
- Renamed
getattr
toget_field
and make it polymorphic on arrays (#993) - Drivers now use faster protobuf libraries when possible (#1027, #1026, #1025)
- Drivers now use
r.json
to improve the performance of inserts (#1085) - Improved the behaviour of
pluck
(#1095)- A field with a non-pluckable value is considered absent
- Added
- Web UI
- Server
- Flushes to disk less often to improve performance without affecting durability (#520)
- CLI
- Documentation
- Packaging
- RPMs for CentOS (#268)
Fixed Bugs
RethinkDB 1.6.1 (Fargo)
Released on 2013-06-19
Critical Security Fixes
- Fixed a buffer overflow in the networking code
- Fixed a possible timing attack on the API key
Other Changes
RethinkDB 1.6.0 (Fargo)
Released on 2013-06-13
This release introduces basic access control, regular expression matching, new array operations, random sampling, better error handling, and many bug fixes.
New Features
- ReQL
- Added access control with a single, common API key (#266)
- Improved handshake to the client driver protocol (#978)
- Added
sample
command for random sampling of sequences (#861, #182) - Secondary indexes can be queried with boolean values (#854)
- Added
onFinished
callback toeach
in JavaScript to improve cursors (#443) - Added per-command durability settings (#890)
- Changed
hard_durability=True
todurability = 'soft' | 'hard'
- Added a
durability
option torun
- Changed
- Added
with_fields
command, andpluck
no longer throws on missing attributes (#886) - Renamed
contains
tohas_fields
(#885)has_fields
runs on tables, objects, and arrays, and doesn't throw on missing attributescontains
now checks if an element is in an array
- Added
default
command: replaces missing fields with a default value (#884) - Added new array operations (#868, #198, #341)
prepend
: prepends an element to an arrayappend
: appends an element to an arrayinsert_at
: inserts an element at the specified indexsplice_at
: splices a list into another list at the specified indexdelete_at
: deletes the element at the specified indexchange_at
: changes the element at the specified index to the specified value+
operator: adds two arrays -- returns the ordered union*
operator: repeats an arrayn
timesdifference
: removes all instances of specified elements from an arraycount
: returns the number of elements in an arrayindexes_of
: returns positions of elements that match the specified value in an arrayis_empty
: check if an array or table is emptyset_insert
: adds an element to a setset_intersection
: finds the intersection of two setsset_union
: returns the union of two setsset_difference
: returns the difference of two sets
- Added
match
command for regular expression matching (#867) - Added
keys
command that returns the fields of an object (#181)
- Web UI
- Document fields are now sorted in alphabetical order in the table view (#832)
- CLI
- Build system
Fixed Bugs
- Server
- ReQL
- Use the correct function name in backtraces (#995)
- Fixed callback issues in the JavaScript driver (#846)
- In JavaScript, call the callback when the connection is closed (#758)
- In JavaScript, GETATTR now checks the argument count (#992)
- Tweaked the CoffeeScript source to work with older versions of coffee and node (#963)
- Fixed a typo in the error handling of the JavaScript driver (#961)
- Fixed performance regression for
pluck
andwithout
(#947) - Make sure callbacks get cleared in the Javascript driver (#942)
- Improved errors when
return
is omitted in Javascript (#914)
- Web UI
- Tests
- Build
RethinkDB 1.5.2 (The Graduate)
Bug fix update.