rethinkdb- A driver for RethinkDB 2.1

Safe HaskellNone




data RethinkDBHandle Source

A connection to the database server




rdbSocket :: Socket
rdbWriteLock :: MVar (Maybe SomeException)
rdbToken :: IORef Token

The next token to use

rdbDatabase :: Database

The default database

rdbWait :: IORef (Map Token (Chan Response, Term, IO ()))
rdbThread :: ThreadId

connect :: HostName -> Integer -> Maybe String -> IO RethinkDBHandle Source

Create a new connection to the database server

Example: connect using the default port with no passphrase (note: IPv4 and IPv6 supported)

>>> h <- connect "localhost" 28015 Nothing
>>> h <- connect "::1" 28015 Nothing

close :: RethinkDBHandle -> IO () Source

Close an open connection

use :: Database -> RethinkDBHandle -> RethinkDBHandle Source

Set the default database

The new handle is an alias for the old one. Calling close on either one will close both.

next :: Cursor a -> IO (Maybe a) Source

Get the next value from a cursor

nextBatch :: Cursor a -> IO [a] Source

Get the next batch from a cursor

collect :: Cursor a -> IO [a] Source

A lazy stream of all the elements in the cursor

collect' :: Cursor a -> IO [a] Source

A strict version of collect

noReplyWait :: RethinkDBHandle -> IO () Source

Wait for NoReply queries to complete on the server

>>> () <- runOpts h [NoReply] $ table "users" # get "bob" # update (\row -> merge row ["occupation" := "teacher"])
>>> noReplyWait h

each :: Cursor a -> (a -> IO b) -> IO () Source