rethinkdb-1.15.0.0: A driver for the RethinkDB database server

Safe HaskellNone

Database.RethinkDB.Network

Synopsis

Documentation

data RethinkDBHandle Source

A connection to the database server

Constructors

RethinkDBHandle 

Fields

rdbHandle :: Handle
 
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
 

Instances

connect :: HostName -> Integer -> Maybe String -> IO RethinkDBHandleSource

Create a new connection to the database server

Example: connect using the default port with no passphrase

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

close :: RethinkDBHandle -> IO ()Source

Close an open connection

use :: Database -> RethinkDBHandle -> RethinkDBHandleSource

Set the default database

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

data Cursor a Source

Constructors

Cursor 

Fields

cursorMBox :: MVar Response
 
cursorBuffer :: MVar (Either RethinkDBError ([Datum], Bool))
 
cursorMap :: Datum -> IO a
 

Instances

Functor Cursor 
FromDatum a => Result (Cursor a) 

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

data Response Source

The response to a query

Instances

data RethinkDBError Source

Instances

Show RethinkDBError 
Typeable RethinkDBError 
Exception RethinkDBError 

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