RethinkDB 1.4 is out: better protocol, drivers, data explorer history
rethinkdb.com
rethinkdb.com
--Adjust imports
Change: "from rethinkdb import r" To: "import rethinkdb as r"
--No more connection.run()
Change all your connection.run() to .run(connection)
For instance:
connection.run(r.db('test_db').table_create('test_table'))
becomes
r.db('test_db').table_create('test_table').run(connection)
--No more global connections
This one sucks IMHO. Took more than I'd like to refactor (still in progress). You have to explicitly pass a connection to every run() command. So this:
r.table('test_table').run()
becomes
r.table('test_table').run(C)
where C is a declared connection.
More notes as I find them....
As for the changes to `connection.run` and `query.run` please note that in the Python driver you can call `.repl()` on any newly created connection to set that connection as a global default. This should replicate the old behavior.
We decided that doing this by default was unsafe as it relied on global state modified any time a new connection is opened. Even so, we appreciate the convenience and kept the behavior in the form of the `.repl()` for when you're trying out RethinkDB in a simple script (or the Python REPL) that only creates one connection and doesn't use threads.
https://github.com/rethinkdb/rethinkdb/wiki/ReQL-changes-in-...
I don't see it on there.
--Remove primary key definition from .get()
No more primary key name is needed as a 2nd argument (and in fact breaks if you pass it). Just delete it.
--List of RDB objects is now a cursor, not a list
Some iterations (notably for loops in jinja2) don't iterate properly. Need to pass them a real list by calling list() on the cursor.
Because currently it seems that even for instance MySQL mostly performs a lot faster than RethinkDB and that makes me kinda sad, because I would really like to try this in a production environment.
Sorry for the temporary regression -- we promise we'll get the numbers back up!
https://gist.github.com/sibblegp/cfe88c672bf613eaba42
Managed to replicate it with ease :(
We'd love to get more drivers in (and the new, much simpler protocol we just shipped will go a long way towards community-supported drivers). But we decided that having a high quality product for the people using the drivers we do support is currently much more important than having wider driver support. Once we iron out a few more quirks in the core product, adding more drivers will be really easy. But until then, more drivers will help fewer people than improvements to the core language and product.
(BTW, getting Rethink to JVM users is something I'm personally very interested in, in my case because of Clojure, but Java programmers will also benefit)
Nonetheless, I must agree that focusing on the DB itself is for the best. Keep up the excellent work.
Nashorn would let you get rid of the Javascript Protobufs implementation and use the Java library from Google, among other potential optimizations.
alex @ rethinkdb
Am I wrong in thinking that?