<commit_before># Release 2.0.0-RC1 (Musashi)

Released on 2015-03-23

This is a release candidate for the upcoming RethinkDB 2.0 release.
It is not for production use. It might still have bugs. If you decide
to test it, please [back up all][backup-docs] your data first.

Release highlights:
* Support for attaching a changefeed to the `get_all` and `union` commands
* Improved support for asynchronous queries
* Added a new feature called `tables` which can be used to store JSON documents

Read the [blog post][2.0-RC1-blog] for more details.

[2.0-RC1-blog]: http://rethinkdb.com/blog/2.0-release-candidate/

## Compatibility ##

This release may not be compatible with RethinkDB 2.0.

### Handling of negative zero in indexes ###

IEEE 754 floating point numbers distinguish between negative (-0) and
positive (+0) zero.  The following information is only relevant if you
are storing negative zero values in your documents.  We expect very
few users to be affected by this change.

ReQL compares -0 and +0 as equal in accordance with IEEE 754.  In
previous versions of RethinkDB, -0 and +0 were however treated as
distinct values in primary and secondary indexes.  This could lead to
inconsistent behavior and wrong query results in some rare cases.

Starting with RethinkDB 2.0, -0 and +0 are indexed as equal values.
Secondary indexes can be [migrated online][1.14-outdated-index] using
the `rethinkdb index-rebuild` utility.  If any of your documents have
negative zero values in their primary keys, those documents will
become partially inaccessible in RethinkDB 2.0. You will need to
re-import the affected tables using the `rethinkdb dump` and
`rethinkdb restore` commands. See [Back up your data][backup-docs] for
more information.

If you are unsure if any of your documents are affected, you can run
`python -m rethinkdb._negative_zero_check` after upgrading both the
server and Python driver.  See the output of `python -m
rethinkdb._negative_zero_check --help` for additional options.

[1.14-outdated-index]: http://rethinkdb.com/docs/troubleshooting/#my-secondary-index-is-outdated
[backup-docs]: http://www.rethinkdb.com/docs/backup/

### API-breaking changes ###

* `between` no longer accepts `null` bounds. The new `r.minval` and
  `r.maxval` can be used instead

* The `any` and `all` commands have been removed. The `or` and `and`
  commands can be used instead

* `indexes_of` has been renamed to `offsets_of`

* The `squash` argument to `changes` now defaults to `false`

* The type hierarchy for exception types in the Python driver changed.
  All exceptions including `RqlDriverError` now inherit from the
  `RqlError` type.  `RqlRuntimeError`, `RqlCompileError` and
  `RqlClientError` additionally inherit from the new `RqlQueryError`
  type.

## New Features ##

* ReQL
  * Added support for changefeeds on `get_all` and `union` queries (#3642)
  * `between` no longer accepts `null` as a bound. The new `r.minval` and `r.maxval` can be used instead (#1023)
  * Added support for getting the state of a changefeed using the new `include_states` optarg to `changes` (#3709)
* Drivers
  * Added support for non-blocking `cursor.get` (#3529)
  * Added support for parallel query execution on a single connection (#3754)
  * Consolidated the return types and use the new `ResponseNotes` field to convey extra information (#3715)
* Python driver
  * Add an optional script that warns for documents with negative zero as a primary key (#3637)

## Improvements ##

* Server
  * Report open cursors as a single entry in the jobs table (#3662)
  * No longer send timestamps between servers in `batchspec_t` (#2671)
  * No longer perform some expensive checks in release mode (#3656)
  * Include the remote port number in the heartbeat timeout message (#2891)
  * Improved the ordering and throttling of reads and writes (#1606)
  * Limit the default number of documents per batch to reduce latency (#3806)
  * Execute multiple queries in parallel on a single connection (#3296)
  * Improved the performance of sending responses (#3744)
* Web UI
  * Added a modifiable query limit (#3910)
  * Add an "add table" button to each database (#3522)
* ReQL
  * `table.rebalance` with insufficient data is no longer an error (#3679)
  * Renamed `indexes_of` to `offsets_of` to avoid confusion with secondary indexes (#3265)
  * Removed `any` and `all` in favor of `or` and `and` (#1581)
  * Immediately return an empty first batch when the result is a changefeed (#3852)
  * No longer include trivial changes from `return_changes` (#3697)
  * Reduce the size of profiles (#3218)
  * No longer squash changefeeds by default (#3904)
* JavaScript driver
  * Added an upper bound to the bluebird dependency (#3823)
* Ruby driver
  * Added a `timeout` option to `r.connect` (#1666)
  * Improved the code style (#3900, #3901, #3906)
  * Allow strings as keys in the config options (#3905)
* Build
  * Upgraded to a more recent version of V8 and drop support for out-of-tree V8 (#3472)
  * Added support for building with Python 3 (#3731)
* Packaging
  * Got rid of the outdated bash completion script (#719)
  * Allow installing RethinkDB in 32-bit OS X on a 64-bit processor (#1595)
* Tests
  * Increase the number of retries in the `RDBBtree` tests to avoid false positives (#3805)

## Bug Fixes ##

* Server
  * Fixed a race condition that could be caused by concurrent queries (#3766)
  * No longer count deleted servers and tables during version check (#3692)
  * Made JSON parsing more strict (#3810)
  * Fixed a bug that could cause the server to crash when killed (#3792)
  * No longer allow renaming a database to "rethinkdb" (#3858)
  * Return an initial value for point changefeeds on system tables (#3723)
  * Improve the handling of negative zero (#3637)
  * Correctly abort `order_by.limit` changefeeds when a table because unavailable (#3932)
  * Do not unlink files early to avoid crashing in virtual environments (#3791)
* ReQL
  * Fixed the behavior of point changefeeds on system tables (#3944)
  * `noreplyWait` no longer waits for non-`noreply` queries (#3812)
* Web UI
  * Fixed a bug that caused the status icon to be green when a table was unavailable (#3500)
  * Fixed a bug that truncated labels in the performance graph (#3751)<commit_msg>second draft<commit_after># Release 2.0.0-RC1

Released on 2015-03-23

This is a release candidate for the upcoming RethinkDB 2.0 release.
It is not for production use. It might still have bugs. If you decide
to test it, please [back up all][backup-docs] your data first.

Please report any bugs you find on github
(http://github.com/rethinkdb/rethinkdb/issues/new) or on our mailing
list (https://groups.google.com/forum/#!forum/rethinkdb).

Release highlights:
* Support for attaching a changefeed to the `get_all` and `union` commands
* Improved support for asynchronous queries

Read the [blog post][2.0-RC1-blog] for more details.

[2.0-RC1-blog]: http://rethinkdb.com/blog/2.0-release-candidate/

## Compatibility ##

Data files accessed with this release candidate might be incompatible
with the final version of RethinkDB 2.0.

### Handling of negative zero in indexes ###

IEEE 754 floating point numbers distinguish between negative (-0) and
positive (+0) zero.  The following information is only relevant if you
are storing negative zero values in your documents.  We expect very
few users to be affected by this change.

ReQL compares -0 and +0 as equal in accordance with IEEE 754.  In
previous versions of RethinkDB, -0 and +0 were however treated as
distinct values in primary and secondary indexes.  This could lead to
inconsistent behavior and wrong query results in some rare cases.

Starting with RethinkDB 2.0, -0 and +0 are indexed as equal values.
Secondary indexes can be [migrated online][1.14-outdated-index] using
the `rethinkdb index-rebuild` utility.  If any of your documents have
negative zero values in their primary keys, those documents will
become partially inaccessible in RethinkDB 2.0. You will need to
re-import the affected tables using the `rethinkdb dump` and
`rethinkdb restore` commands. See the article "[Back up your
data][backup-docs]" for more information.

If you are unsure if any of your documents are affected, you can run
`python -m rethinkdb._negative_zero_check` after upgrading both the
server and Python driver.  See the output of `python -m
rethinkdb._negative_zero_check --help` for additional options.

[1.14-outdated-index]: http://rethinkdb.com/docs/troubleshooting/#my-secondary-index-is-outdated
[backup-docs]: http://www.rethinkdb.com/docs/backup/

### API-breaking changes ###

* `between` no longer accepts `null` bounds. The new `r.minval` and
  `r.maxval` can be used instead

* The `any` and `all` commands have been removed. The `or` and `and`
  commands can be used instead

* `indexes_of` has been renamed to `offsets_of`

* The `squash` argument to `changes` now defaults to `false`

* The type hierarchy for exception types in the Python driver changed.
  All exceptions including `RqlDriverError` now inherit from the
  `RqlError` type.  `RqlRuntimeError`, `RqlCompileError` and
  `RqlClientError` additionally inherit from the new `RqlQueryError`
  type

## New Features ##

* ReQL
  * Added support for changefeeds on `get_all` and `union` queries (#3642)
  * `between` no longer accepts `null` as a bound. The new `r.minval` and `r.maxval` can be used instead (#1023)
  * Added support for getting the state of a changefeed using the new `include_states` optarg to `changes` (#3709)
* Drivers
  * Added support for non-blocking `cursor.next` (#3529)
  * Added support for executing multiple queries in parallel on a single connection (#3754)
  * Consolidated the return types and use the new `ResponseNotes` field to convey extra information (#3715)
* Python driver
  * Added an optional script that warns for documents with negative zero in a primary key (#3637)

## Improvements ##

* Server
  * Report open cursors as a single entry in the jobs table (#3662)
  * Timestamps are no longer sent between servers in `batchspec_t` (#2671)
  * Some expensive changefeed checks are no longer performed in release mode (#3656)
  * Include the remote port number in the heartbeat timeout message (#2891)
  * Improved the ordering and throttling of reads and writes (#1606)
  * Limit the number of documents per write batch to reduce the impact of large writes on other queries (#3806)
  * Execute multiple queries in parallel on a single connection (#3296)
  * Improved the performance of sending responses (#3744)
  * Immediately send back an empty first batch when the result is a changefeed (#3852)
* Web UI
  * Added a configurable limit for the results per page in the Data Explorer (#3910)
  * Added an "add table" button to each database (#3522)
* ReQL
  * `table.rebalance` with insufficient data is no longer an error (#3679)
  * Renamed `indexes_of` to `offsets_of` to avoid confusion with secondary indexes (#3265)
  * Removed `any` and `all` in favor of `or` and `and` (#1581)
  * Trivial changes are filtered out from `return_changes` (#3697)
  * Reduced the size of profiles (#3218)
  * Changefeeds are no longer squashed by default (#3904)
* JavaScript driver
  * Added an upper bound to the bluebird dependency (#3823)
* Ruby driver
  * Added a `timeout` option to `r.connect` (#1666)
  * Improved the code style (#3900, #3901, #3906)
  * Strings are now allowed as keys in the config options (#3905)
* Build
  * Upgraded to a more recent version of V8 and dropped support for out-of-tree V8 (#3472)
  * Added support for building with Python 3 (#3731)
* Packaging
  * Got rid of the outdated bash completion script (#719)
  * Allow installing RethinkDB in 32-bit OS X on a 64-bit processor (#1595)
* Tests
  * Increased the number of retries in the `RDBBtree` tests to avoid false positives (#3805)

## Bug Fixes ##

* Server
  * Fixed a race condition that could be caused by concurrent queries (#3766)
  * Deleted servers and tables are no longer counted during version checks (#3692)
  * Made JSON parsing more strict (#3810)
  * Fixed a bug that could cause the server to crash when killed (#3792)
  * Databases can no longer be renamed to "rethinkdb" (#3858)
  * Return an initial value for point changefeeds on system tables (#3723)
  * Improved the handling of negative zero (#3637)
  * Correctly abort `order_by.limit` changefeeds when a table become unavailable (#3932)
  * Do not unlink files early to avoid crashing in virtual environments (#3791)
* ReQL
  * Fixed the behavior of point changefeeds on system tables (#3944)
  * `noreplyWait` no longer waits for non-`noreply` queries (#3812)
* Web UI
  * Fixed a bug that caused the status icon to be green when a table was unavailable (#3500)
  * Fixed a bug that truncated labels in the performance graph (#3751)
{'fraction_non_alphanumeric': 0.07908063887806778, 'fraction_numerical': 0.03833268406700428, 'mean_word_length': 4.249897750511248, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4747853', 'n_tokens_mistral': 4105, 'n_tokens_neox': 3631, 'n_words': 1795}