forked from rethinkdb/rethinkdb
-
Notifications
You must be signed in to change notification settings - Fork 1
/
NOTES
735 lines (562 loc) · 28 KB
/
NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
# Release 1.10.0 (Von Ryan's Express)
Released on 2013-09-26
## New Features ##
* Added multi-indexes (#933)
* Added selective history deletion to the Data Explorer (#1297)
* Made `filter` support the nested object syntax (#1325)
* Added `r.not_` to the Python driver (#1329)
* The backup scripts are now installed by the Python driver (#1355)
* Implemented variable-width object length encoding and other improvements to serialization (#1424)
* Lowered the I/O pool threads' stack size (#1425)
* Improved datum integer serialization (#1426)
* Added a thin wrapper struct `threadnum_t` instead of using raw ints for thread numbers (#1445)
* Re-enabled full perfmon capability (#1474)
## Fixed Bugs ##
* Fixed the output of `rethinkdb admin help` (#936, #1447)
* `make` no longer runs `./configure` (#979)
* Made the Python code mostly Python 3 compatible (still a work in progress) (#1050)
* The Data Explorer now correctly handles unexpected token errors (#1334)
* Improved the performance of JSON parsing (#1403)
* `batched_rget_stream_t` no longer uses an out-of-date interruptor (#1411)
* The missing `protobuf_implementation` variable was added to the JavaScript driver (#1416)
* Improved the error and help messages in the backup scripts (#1417)
* `r.json` is no longer incorrectly marked as non-deterministic (#1430)
* Fixed the import of `rethinkdb_pbcpp` in the Python driver (#1438)
* Made some stores go on threads other than just 0 through 3 (#1446)
* Fixed the error message when using `groupBy` with illegal pattern (#1460)
* `default` is no longer unprintable in Python (#1476)
--
# Release 1.9.0 (Kagemusha)
Released on 2013-09-09
Bug fix update.
* 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` and `cJSON` (#1041)
* No longer load documents from disk for count queries (#1295)
* Changed extproc code to use `datum_t` instead of `cJSON_t` (#1326)
* ReQL
* Use `Buffer` instead of `ArrayBuffer` in the JavaScript driver (#1244)
* `orderBy` on an index no longer destroys the preceding `between` (#1333)
* Fixed error in the python driver caused by multiple threads using lambdas (#1377)
* Fixed Unicode handling in the Python driver (#1378)
* Web UI
* No longer truncate server names (#1313)
* CLI
* `rethinkdb import` now works with Python 2.6 (#1349)
--
# Release 1.8.1 (High Noon)
Released on 2013-08-21
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)
--
# Release 1.8.0 (High Noon)
Released on 2013-08-14
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` and `between` are now half-open by default (#869)
* The behaviour can be changed by setting the new optional `right_bound` argument to `closed`
or by setting `left_bound` to `open`
* `contains` can now be passed a predicate (#870)
* `merge` is now deep by default (#872)
* Introduced `literal` to merge flat values
* `coerce_to` can now convert strings to numbers (#877)
* Added support for times (#977)
* `+`, `-`, `<`, `<=`, `>`, `>=`, `==` and `!=`: arithmetic and comparison
* `during`: match a time with an interval
* `in_timezone`: change the timezone offset
* `date`, `time_of_day`, `timezone`, `year`, `month`, `day`, `weekday`, `hour`, `minute` and `second`: accessors
* `time`, `epoch_time` and `iso8601`: constructors
* `monday` to `sunday` and `january` to `december`: constants
* `now`: current time
* `to_iso8601`, `to_epoch_time`: conversion
* Add the nested document syntax to functions other than `pluck` (#1094)
* `without`, `group_by`, `with_fields` and `has_fields`
* Remove Google Closure from the JavaScript driver (#1194)
* It now depends on the `protobufjs` and `node-protobuf` libraries
* 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, making `r.js` interuptible and fixing many crashes (#1097, #1106)
* Added support for V8 >= 3.19 (#1195)
* Clear blobs when they are unused (#1286)
* Web UI
* Use relative paths (#1053)
* Build
* Add support for Emacs' `flymake-mode` (#1161)
## Fixed Bugs ##
* ReQL
* Check the type of the callback passed to `next` and `each` 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
* 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 with `do` in the JavaScript driver (#1082)
* Improve the error message when combining `for_each` and `return_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)
* 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
* Fixed the connectivity tests for OS X (#613)
* Fix the python connection tests (#1110)
* Web UI
* Provide a less scary error message when a request times out (#1074)
* Provide proper suggestions in the presence of comments in the Data Explorer (#1214)
* The `More data` link in the data explorer now works consistently (#1222)
* Documentation
* Improved the documentaiton for `update` and `pluck` (#1141)
* Build
* Fixed bugs that caused make to not rebuild certain files or build files it should not (#1162, #1215, #1216, #1229, #1230, #1272)
--
# Release 1.7.3 (Nights of Cabiria)
Released on 2013-07-19
Bug fix update.
* RethinkDB no longer fails to create the data directory when using `--daemon` (#1191)
--
# Release 1.7.2 (Nights of Cabiria)
Released on 2013-07-18
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` and `nice_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)
--
# Release 1.7.1 (Nights of Cabiria)
Released on 2013-07-04
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)
--
# Release 1.7.0 (Nights of Cabiria)
Released on 2013-07-03
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` and `replace` now take an optional `return_vals` argument that returns the values that have been atomically modified
* Renamed `getattr` to `get_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
* Web UI
* It is now possible to resolve `auth_key` conflicts via the web UI (#1028)
* The web UI now uses relative paths (#1053)
* Server
* Flushes to disk less often to improve performance without affecting durability (#520)
* CLI
* Import and export JSON and CSV files (#193)
* Four new subcommands: `rethinkdb import`, `rethinkdb export`, `rethinkdb dump` and `rethinkdb restore`
* `rethinkdb admin` no longer requires the `--join` option (#1052)
* It now connects to localhost:29015 by default
* Documentation
* Documented durability settings correctly (#1008)
* Improved instructions for migration (#1013)
* Documented the allowed character names for tables (#1039)
* Packaging
* RPMs for CentOS (#268)
## Fixed Bugs ##
* ReQL
* Fixed the behaviour of `between` with `null` and secondary indexes (#1001)
* Web UI
* Moved to using a patched Bootstrap, Handlebars.js 1.0.0 and LESS 1.4.0 (#954)
* Fixed bug causing nested arrays to be shown as `{...}` in the Data Explorer (#1038)
* Inline comments are now parsed correctly in the Data Explorer (#1060)
* Properly remove event listeners from the dashboard view (#1044)
* Server
* Fixed a crash caused by shutting down the server during secondary index creation (#1056)
* Fixed a potential btree corruption bug (#986)
* Tests
* ReQL tests no longer leave zombie processes (#1055)
--
# Release 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 ##
* In python, `r.table_list()` no longer throws an error (#1005)
* Fixed compilation failures with clang 3.2 (#1006)
* Fixed compilation failures with gcc 4.4 (#1011)
* Fixed problems with resolving a conflicted auth_key (#1024)
--
# Release 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 to `each` in JavaScript to improve cursors (#443)
* Added per-command durability settings (#890)
* Changed `hard_durability=True` to `durability = 'soft' | 'hard'`
* Added a `durability` option to `run`
* Added `with_fields` command, and `pluck` no longer throws on missing attributes (#886)
* Renamed `contains` to `has_fields` (#885)
* `has_fields` runs on tables, objects, and arrays, and doesn't throw on missing attributes
* `contains` 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 array
* `append`: appends an element to an array
* `insert_at`: inserts an element at the specified index
* `splice_at`: splices a list into another list at the specified index
* `delete_at`: deletes the element at the specified index
* `change_at`: changes the element at the specified index to the specified value
* `+` operator: adds two arrays -- returns the ordered union
* `*` operator: repeats an array `n` times
* `difference`: removes all instances of specified elements from an array
* `count`: returns the number of elements in an array
* `indexes_of`: returns positions of elements that match the specified value in an array
* `is_empty`: check if an array or table is empty
* `set_insert`: adds an element to a set
* `set_intersection`: finds the intersection of two sets
* `set_union`: returns the union of two sets
* `set_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
* Added `-v` flag as an alias for `--version` (#839)
* Added `--io-threads` flag to allow limiting the amount of concurrent I/O operations (#928)
* Build system
* Allow building the documentation with Python 3 (#826, #815)
* Have `make` build the Ruby and Python drivers (#923)
## Fixed Bugs ##
* Server
* Fixed a crash caused by resharding during secondary index creation (#852)
* Fixed style problems: code hygiene (#805)
* Server code cleanup (#920, #924)
* Properly check permissions for writing the pid file (#916)
* 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` and `without` (#947)
* Make sure callbacks get cleared in the Javascript driver (#942)
* Improved errors when `return` is omitted in Javascript (#914)
* Web UI
* Correctly distinguish case sensitive table names (#822)
* No longer display some results as `{ ... }` in the table view (#937)
* Ensured tables are available before listing their indexes (#926)
* Fixed the autocompletion for opening square brackets (#917)
* Tests
* Modified the polyglot test framework to catch more possible errors (#724)
* Polyglot tests can now run in debug mode (#614)
* Build
* Look for `libprotobuf` in the correct path (#860, #853)
* Always fetch and use the same version of Handlebars.js (#821, #819, #958)
* Check for versions of LESS that are known to work (#956)
* Removed bitrotted MOCK_CACHE_CHECK option (#804)
--
# Release 1.5.2 (Le Gras de Ouate)
Released on 2013-05-24
Bug fix update.
## Changes ##
* Fix #844: Compilation error when using `./configure --fetch protobuf` resolved
* Fix #840: Using `.run` in the data explorer gives a more helpful error message
* Fix #817: Fix a crash caused by adding a secondary index while under load
* Fix #831: Some invalid queries no longer cause a crash
--
# Release 1.5.1 (The Grad You Ate) #
Released on 2013-05-16
Bug fix update.
## Changes ###
* Fix a build error
* Fix #816: Table view in the data explorer is no longer broken
---
# Release 1.5.0 (The Graduate) #
Released on 2013-05-16
This release introduces secondary indexes, stability and performance enhancements and many bug fixes.
## New Features ##
* Server
* #69: Bad JavaScript snippets can no longer hang the server
* `r.js` now takes an optional `timeout` argument
* #88: Added secondary and compound indexes
* #165: Backtraces on OS X
* #207: Added soft durability option
* #311: Added daemon mode (via --daemon)
* #423: Allow logging to a specific file (via --log-file)
* #457: Significant performance improvement for batched inserts
* #496: Links against libc++ on OS X
* #672: Replaced environment checkpoints with shared pointers in the ReQL layer, reducing the memory footprint
* #715: Adds support for noreply writes
* CLI
* #566: In the admin CLI, `ls tables --long` now includes a `durability` column
* Web UI
* #331: Improved data explorer indentation and brace pairing
* #355: Checks for new versions of RethinkDB from the admin UI
* #395: Auto-completes databases and tables names in the data explorer
* #514: Rewrote and improved the documentation generator
* #569: Added toggle for Data Explorer brace pairing
* #572: Changed button styles in the Data Explorer
* #707: Two step confirmation added to the delete database button
* ReQL
* #469: Added an `info` command that provides information on any ReQL value (useful for retreiving the primary key)
* #604: Allow iterating over result arrays as if they were cursors in the JavaScript client
* #670: Added a soft durability option to `table_create`
* Testing
* #480: Run [tests on Travis-CI](https://travis-ci.org/rethinkdb/rethinkdb)
* #517: Improved the integration tests
* #587: Validate API documentation examples
* #669: Added color to `make test` output
## Fixed bugs ##
* Server
* Fix #403: Serialization of `perfmon_result_t` is no longer 32-bit/64-bit dependent
* Fix #505: Reduced memory consumption to avoid failure on read query "tcmalloc: allocation failed"
* Fix #510: Make bind to `0.0.0.0` be equivalent to `all`
* Fix #639: Fixed bug where 100% cpu utilization was reported on OSX
* Fix #645: Fixed server crash when updating replicas / acks
* Fix #665: Fixed queries across shards that would trigger `Assertion failed: [!br.point_replaces.empty()] in src/rdb_protocol/protocol.cc`
* Fix #750: Resolved intermittent RPCSemilatticeTest.MetadataExchange failure
* Fix #757: Fixed a crashing bug in the environment checkpointing code
* Fix #796: Crash when running batched writes to a sharded table in debug mode
* Documentation
* Fix #387: Documented the command line option --web-static-directory (custom location for web assets)
* Fix #503: Updated outdated useOutdated documentation
* Fix #563: Fixed documentation for `typeof()`
* Fix #610: Documented optional arguments for `table_create`: `datacenter` and `cache_size`
* Fix #631: Fixed missing parameters in documentation for `reduce`
* Fix #651: Updated comments in protobuf file to reflect current spec
* Fix #679: Fixed incorrect examples in protobuf spec
* Fix #691: Fixed faulty example for `zip` in API documentation
* Web UI
* Fix #529: Suggestion arrow no longer goes out of bounds
* Fix #583: Improved Data Explorer suggestions for `table`
* Fix #584: Improved Data Explorer suggestion style and content
* Fix #623: Improved margins on modals
* Fix #629: Updated buttons and button styles on the Tables View (and throughout the UI)
* Fix #662: Command key no longer deletes text selection in Data Explorer
* Fix #725: Improved documentation in the Data Explorer
* Fix #790: False values in a document no longer show up as blank in the tree view
* ReQL
* Fix #46: Added top-level `tableCreate`, `tableDrop` and `tableList` to drivers
* Fix #125: Grouped reductions now return a stream, not an array
* Fix #370: `map` after `dbList` and `tableList` no longer errors
* Fix #421: Return values from mutation operations now include all attributes, even if zero (`inserted`,`deleted`,`skipped`,`replaced`,`unchanged`,`errors`)
* Fix #525: Improved error for `groupBy`
* Fix #527: Numbers that can be represented as integers are returned as native integers
* Fix #603: Check the number of arguments correctly in the JavaScript client
* Fix #632: Keys of objects are no longer magically converted to strings in the drivers
* Fix #640: Clients handle system interrupts better
* Fix #642: Ruby client no longer has a bad error message when queries are run on a closed connection
* Fix #650: Python driver successfully sends `STOP` query when the connection is closed
* Fix #663: Undefined values are handled correctly in JavaScript objects
* Fix #678: `limit` no longer automatically converts streams to arrays
* Fix #689: Python driver no longer hardcodes the default database
* Fix #704: `typeOf` is no longer broken in JavaScript driver
* Fix #730: Ruby driver no longer accepts spurious methods
* Fix #733: `groupBy` can now handle both a `MAKE_OBJ` protobuf and a literal `R_OBJECT` datum protobuf
* Fix #767: Server now detects `NaN` in all cases
* Fix #777: Ruby driver no longer occasionally truncates messages
* Fix #779: Server now rejects strings that contain a null byte
* Fix #789: Style improvements in Ruby driver
* Fix #799: Python driver handles `use_outdated` when specified as a global option argument
* Testing
* Fix #653: `make test` now works on OS X
* Build
* Fix #475: Added a workaround to avoid `make -j2` segfaulting when building on older versions of `make`
* Fix #541: `make clean` is more aggressive
* Fix #630: Removed cruft from the RethinkDB source tree
* Fix #635: Building fails quickly with troublesome versions of `coffee-script`
* Fix #694: Improved warnings when building with `clang` and `ccache`
* Fix #717: Fixed `./configure --fetch-protobuf`
* Migration
* Fix #782: Improved speed in migration script
## Other ##
* #508: Removed the JavaScript mock server
* [All closed issues between 1.4.5 and 1.5.0](https://github.com/rethinkdb/rethinkdb/issues?milestone=8&page=1&state=closed)
---
# Release 1.4.5 (Some Like It Hot) #
Released on 2013-05-03.
## Changes ##
Bug fix update:
* Increase the TCP accept backlog (#369).
---
# Release 1.4.4 (Some Like It Hot) #
Released on 2013-04-19.
## Changes ##
Bug fix update:
* Improved the documentation
* Made the output of `rethinkdb help` and `--help` consistent (#643)
* Clarify details about the client protocol (#649)
* Cap the size of data returned from rgets not just the number of values (#597)
* The limit changed from 4000 rows to 1MiB
* Partial bug fix: Rethinkdb server crashing (#621)
* Fixed bug: Can't insert objects that use 'self' as a key with Python driver (#619)
* Fixed bug: [Web UI] Statistics graphs are not plotted correctly in background tabs (#373)
* Fixed bug: [Web UI] Large JSON Causes Data Explorer to Hang (#536)
* Fixed bug: Import command doesn't import last row if doesn't have end-of-line (#637)
* Fixed bug: [Web UI] Cubism doesn't unbind some listeners (#622)
* Fixed crash: Made global optargs actually propagate to the shards properly (#683)
---
# Release 1.4.3 (Some Like It Hot) #
Released on 2013-04-10.
## Changes ##
Bug fix update:
* Improve the networking code in the Python driver
* Fix a crash triggered by a type error when using concatMap (#568)
* Fix a crash when running `rethinkdb proxy --help` (#565)
* Fix a bug in the Python driver that caused it to occasionally return `None` (#564)
---
# Release 1.4.2 (Some Like It Hot) #
Released on 2013-03-30.
## Changes ##
Bug fix update:
* Replace `~` with `About` in the web UI (#485)
* Add framing documentation to the protobuf spec (#500)
* Fix crashes triggered by .orderBy().skip() and .reduce(r.js()) (#522, #545)
* Replace MB with GB in an error message (#526)
* Remove some semicolons from the protobuf spec (#530)
* Fix the `rethinkdb import` command (#535)
* Improve handling of very large queries in the data explorer (#536)
* Fix variable shadowing in the javascript driver (#546)
---
# Release 1.4.1 (Some Like It Hot) #
Released on 2013-03-22.
## Changes ##
Bug fix update:
* Python driver fix for TCP streams (#495)
* Web UI fix that reduces the number of AJAX requests (#481)
* JS driver: added useOutdated to r.table() (#502)
* RDB protocol performance fix in release mode.
* Performance fix when using filter with object shortcut syntax.
* Do not abort when the `runuser` or `rungroup` options are present (#512)
---
# Release 1.4 (Some Like It Hot) #
Relased on 2013-03-18.
## Changes ##
* Improved ReQL wire protocol and client drivers
* New build system
* Data explorer query history
---
# Release 1.3.2 (Metropolis) #
Released on 2013-01-15.
## Changes ##
* Fixed security bug in http server.
---
# Release 1.3.1 (Metropolis) #
Released on 2012-12-20.
## Changes ##
* Fixed OS X crash on ReQL exceptions.
---
# Release 1.3.0 (Metropolis) #
Released on 2012-12-20.
## Changes ##
* Native OS X support.
* 32-bit support.
* Support for legacy systems (e.g. Ubuntu 10.04)
---
# Release 1.2.8 (Rashomon) #
Released on 2012-12-15.
## Changes ##
* Updating data explorer suggestions to account for recent `r.row`
changes.
---
# Release 1.2.7 (Rashomon) #
Released on 2012-12-14.
## Changes ##
* Lots and lots of bug fixes
---
# Release 1.2.6 (Rashomon) #
Released on 2012-11-13.
## Changes ##
* Fixed the version string
* Fixed 'crashing after crashed'
* Fixed json docs
---
# Release 1.2.5 (Rashomon) #
Released on 2012-11-11.
## Changes ##
* Checking for a null ifaattrs
---
# Release 1.2.4 (Rashomon) #
Released on 2012-11-11.
## Changes ##
* Local interface lookup is now more robust.
---
# Release 1.2.3 (Rashomon) #
Released on 2012-11-09.
## Changes ##
* Fixes a bug in the query engine that causes large range queries to
return incorrect results.
---
# Release 1.2.0 (Rashomon) #
Released on 2012-11-09.
## Changes ##
This is the first release of the product. It includes:
* JSON data model and immediate consistency support
* Distributed joins, subqueries, aggregation, atomic updates
* Hadoop-style map/reduce
* Friendly web and command-line administration tools
* Takes care of machine failures and network interrupts
* Multi-datacenter replication and failover
* Sharding and replication to multiple nodes
* Queries are automatically parallelized and distributed
* Lock-free operation via MVCC concurrency
## Limitations ##
There are a number of technical limitations that aren't baked into the
architecture, but were not resolved in this release due to time
pressure. They will be resolved in subsequent releases.
* Write requests have minimal batching in memory and are flushed to
disk on every write. This significantly limits write performance,
expecially on rotational disks.
* Range commands currently don't use an index.
* The clustering system has a bottleneck in cluster metadata
propagation. Cluster management slows down significantly when more
than sixteen shards are used.