All Versions
Latest Version
Avg Release Cycle
68 days
Latest Release
1349 days ago

Changelog History
Page 5

  • v1.0.0 Changes

    June 27, 2015

    ๐Ÿš€ 1.0.0 is finally here, This is the first stable production ready release of RethinkDB-go!

    RethinkDB-go Logo

    ๐Ÿ‘€ In an attempt to make this library more "idiomatic" some functions have been renamed, for the full list of changes and bug fixes see below.

    โž• Added

    • Added more documentation.
    • Added Shards, Replicas and PrimaryReplicaTag optional arguments in TableCreateOpts.
    • Added MultiGroup and MultiGroupByIndex which are equivalent to the running group with the multi optional argument set to true.

    ๐Ÿ”„ Changed

    • Renamed Db to DB.
    • Renamed DbCreate to DBCreate.
    • Renamed DbDrop to DBDrop.
    • Renamed RqlConnectionError to RQLConnectionError.
    • Renamed RqlDriverError to RQLDriverError.
    • Renamed RqlClientError to RQLClientError.
    • Renamed RqlRuntimeError to RQLRuntimeError.
    • Renamed RqlCompileError to RQLCompileError.
    • Renamed Js to JS.
    • Renamed Json to JSON.
    • Renamed Http to HTTP.
    • Renamed GeoJson to GeoJSON.
    • Renamed ToGeoJson to ToGeoJSON.
    • Renamed WriteChanges to ChangeResponse, this is now a general type and can be used when dealing with changefeeds.
    • Removed depth limit when encoding values using Expr

    ๐Ÿ›  Fixed

    • Fixed issue causing errors when closing a changefeed cursor (#191)
    • Fixed issue causing nodes to remain unhealthy when host discovery is disabled (#195)
    • Fixed issue causing driver to fail when connecting to DB which did not have its canonical address set correctly (#200).
      • ๐Ÿ›  Fixed ongoing queries not being properly stopped when closing the cursor.

    โœ‚ Removed

    • Removed CacheSize and DataCenter optional arguments in TableCreateOpts.
    • Removed CacheSize optional argument from InsertOpts
  • v0.7.2 Changes

    May 05, 2015

    โž• Added

    • Added support for connecting to a server using TLS (#179)

    ๐Ÿ›  Fixed

    • Fixed issue causing driver to fail to connect to servers with the HTTP admin interface disabled (#181)
    • Fixed errors in documentation (#182, #184)
    • Fixed RunWrite not closing the cursor (#185)
  • v0.7.1 Changes

    April 19, 2015

    ๐Ÿ”„ Changed

    • ๐Ÿ‘Œ Improved logging of connection errors.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed bug causing empty times to be inserted into the DB even when the omitempty tag was set.
    • ๐Ÿ›  Fixed node status refresh loop leaking goroutines.
  • v0.7.0 Changes

    March 30, 2015

    ๐Ÿš€ This release includes support for RethinkDB 2.0 and connecting to clusters. To connect to a cluster you should use the new Addresses field in ConnectOpts, for example:

    session, err := r.Connect(r.ConnectOpts{
        Addresses: []string{"localhost:28015", "localhost:28016"},
    if err != nil {

    ๐Ÿ‘€ Also added was the ability to read from a cursor using a channel, this is especially useful when using changefeeds. For more information see this gist

    cursor, err := r.Table("items").Changes()
    ch := make(chan map[string]interface{})

    For more details checkout the README and godoc. As always if you have any further questions send me a message on Gitter.

    • โž• Added the ability to connect to multiple nodes, queries are then distributed between these nodes. If a node stops responding then queries stop being sent to this node.
    • โž• Added the DiscoverHosts optional argument to ConnectOpts, when this value is true the driver will listen for new nodes added to the cluster.
    • โž• Added the Addresses optional argument to ConnectOpts, this allows the driver to connect to multiple nodes in a cluster.
    • โž• Added the IncludeStates optional argument to Changes.
    • โž• Added MinVal and MaxVal which represent the smallest and largest possible values.
    • โž• Added the Listen cursor helper function which publishes database results to a channel.
    • โž• Added support for optional arguments for the Wait function.
    • โž• Added the Type function to the Cursor, by default this value will be "Cursor" unless using a changefeed.
    • ๐Ÿ”„ Changed the IndexesOf function to OffsetsOf .
    • ๐Ÿ”„ Changed driver to use the v0.4 protocol (used to use v0.3).
    • ๐Ÿ›  Fixed geometry tests not properly checking the expected results.
    • ๐Ÿ›  Fixed bug causing nil pointer panics when using an Unmarshaler
    • ๐Ÿ›  Fixed dropped millisecond precision if given value is too old
  • v0.6.3 Changes

    March 04, 2015

    โž• Added

    • โž• Add IdentifierFormat optarg to TableOpts (#158)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix struct alignment for ARM and x86-32 builds (#153)
    • ๐Ÿ›  Fix sprintf format for geometry error message (#157)
    • ๐Ÿ›  Fix duplicate if block (#159)
    • ๐Ÿ›  Fix incorrect assertion in decoder tests
  • v0.6.2 Changes

    February 15, 2015
    • ๐Ÿ›  Fixed writeQuery being too small when sending large queries
  • v0.6.1 Changes

    February 13, 2015
    • โฌ‡๏ธ Reduce GC by using buffers when reading and writing
    • ๐Ÿ›  Fixed encoding time.Time ignoring millseconds
    • ๐Ÿ›  Fixed pointers in structs that implement the Marshaler/Unmarshaler interfaces being ignored
  • v0.6.0 Changes

    January 01, 2015

    ๐Ÿš€ There are some major changes to the driver with this release that are not related to the RethinkDB v1.16 release. Please have a read through them:

    • ๐Ÿ‘Œ Improvements to result decoding by caching reflection calls.
    • Finished implementing the Marshaler/Unmarshaler interfaces
    • ๐Ÿš€ Connection pool overhauled. There were a couple of issues with connections in the previous releases so this release replaces the fatih/pool package with a connection pool based on the database/sql connection pool.
    • Another change is the removal of the prefetching mechanism as the connection+cursor logic was becoming quite complex and causing bugs, hopefully this will be added back in the near future but for now I am focusing my efforts on ensuring the driver is as stable as possible #130 #137
    • Due to the above change the API for connecting has changed slightly (The API is now closer to the database/sql API. ConnectOpts changes:
      • MaxActive renamed to MaxOpen
      • IdleTimeout renamed to Timeout
    • Cursors are now only closed automatically when calling either All or One
    • Exec now takes ExecOpts instead of RunOpts. The only difference is that Exec has the NoReply field

    With that out the way here are the v1.16 changes:

    • โž• Added Range which generates all numbers from a given range
    • โž• Added an optional squash argument to the changes command, which lets the server combine multiple changes to the same document (defaults to true)
    • โž• Added new admin functions (Config, Rebalance, Reconfigure, Status, Wait)
    • Added support for SUCCESS_ATOM_FEED
    • โž• Added MinIndex + MaxIndex functions
    • โž• Added ToJSON function
    • โšก๏ธ Updated WriteResponse type

    ๐Ÿš€ Since this release has a lot of changes and although I have tested these changes sometimes things fall through the gaps. If you discover any bugs please let me know and I will try to fix them as soon as possible.

  • v0.5.1 Changes

    December 14, 2014
    • ๐Ÿ›  Fixed empty slices being returned as []T(nil) not []T{} #138
  • v0.5.0 Changes

    October 06, 2014
    • โž• Added geospatial terms (Circle, Distance, Fill, Geojson, ToGeojson, GetIntersecting, GetNearest, Includes, Intersects, Line, Point, Polygon, PolygonSub)
    • โž• Added UUID term for generating unique IDs
    • โž• Added AtIndex term, combines Nth and GetField
    • โž• Added the Geometry type, see the types package
    • โšก๏ธ Updated the BatchConf field in RunOpts, now uses the BatchOpts type
    • โœ‚ Removed support for the FieldMapper interface

    Internal Changes

    • ๐Ÿ›  Fixed encoding performance issues, greatly improves writes/second
    • โšก๏ธ Updated Next to zero the destination value every time it is called.