| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Database.CQL.Protocol
Contents
Description
The CQL native protocol is a binary frame-based protocol where
each frame has a Header, a Length and a body. The protocol
distinguishes Requests and Responses.
Some usage examples:
Constructing and Serialising a Request
let q = QueryString "select peer from system.peers where data_center = ? and rack = ?"
p = QueryParams One False ("uk-1", "r-0") Nothing Nothing Nothing
r = RqQuery (Query q p :: Query R (Text, Text) (Identity IP))
i = mkStreamId 0
in pack V3 noCompression False i r
Deserialising a Response
-- assumingbhcontains the raw header byte string andbbthe raw -- body byte string. case header V3 bh of Left e -> ... Right h -> unpack noCompression h bb
A generic query processing function
query :: (Tuple a, Tuple b) => Version -> Socket -> QueryString k a b -> QueryParams a -> IO (Response k a b)
query v s q p = do
let i = mkStreamId 0
sendToServer s (pack v noCompression False i (RqQuery (Query q p)))
b <- recv (if v == V3 then 9 else 8) s
h <- either (throwIO . MyException) return (header v b)
when (headerType h == RqHeader) $
throwIO UnexpectedRequestHeader
let len = lengthRepr (bodyLength h)
x <- recv (fromIntegral len) s
case unpack noCompression h x of
Left e -> throwIO $ AnotherException e
Right (RsError _ e) -> throwIO e
Right response -> return response
Synopsis
- class Cql a where
- newtype Keyspace = Keyspace {
- unKeyspace :: Text
- newtype Table = Table {}
- newtype PagingState = PagingState {}
- newtype QueryId k a b = QueryId {}
- newtype QueryString k a b = QueryString {}
- data Version
- data CqlVersion
- = Cqlv300
- | CqlVersion !Text
- data CompressionAlgorithm
- data Compression = Compression {
- algorithm :: !CompressionAlgorithm
- shrink :: ByteString -> Maybe ByteString
- expand :: ByteString -> Maybe ByteString
- noCompression :: Compression
- data Consistency
- = Any
- | One
- | LocalOne
- | Two
- | Three
- | Quorum
- | LocalQuorum
- | All
- | EachQuorum
- | Serial
- | LocalSerial
- data OpCode
- data ColumnType
- = CustomColumn !Text
- | AsciiColumn
- | BigIntColumn
- | BlobColumn
- | BooleanColumn
- | CounterColumn
- | DecimalColumn
- | DoubleColumn
- | FloatColumn
- | IntColumn
- | TextColumn
- | TimestampColumn
- | UuidColumn
- | VarCharColumn
- | VarIntColumn
- | TimeUuidColumn
- | InetColumn
- | MaybeColumn !ColumnType
- | ListColumn !ColumnType
- | SetColumn !ColumnType
- | MapColumn !ColumnType !ColumnType
- | TupleColumn [ColumnType]
- | UdtColumn !Text [(Text, ColumnType)]
- | DateColumn
- | TimeColumn
- | SmallIntColumn
- | TinyIntColumn
- newtype Ascii = Ascii {}
- newtype Blob = Blob {}
- newtype Counter = Counter {
- fromCounter :: Int64
- newtype TimeUuid = TimeUuid {
- fromTimeUuid :: UUID
- newtype Set a = Set {
- fromSet :: [a]
- newtype Map a b = Map {
- fromMap :: [(a, b)]
- data Value
- = CqlCustom !ByteString
- | CqlBoolean !Bool
- | CqlInt !Int32
- | CqlBigInt !Int64
- | CqlVarInt !Integer
- | CqlFloat !Float
- | CqlDecimal !Decimal
- | CqlDouble !Double
- | CqlText !Text
- | CqlInet !IP
- | CqlUuid !UUID
- | CqlTimestamp !Int64
- | CqlAscii !Text
- | CqlBlob !ByteString
- | CqlCounter !Int64
- | CqlTimeUuid !UUID
- | CqlMaybe (Maybe Value)
- | CqlList [Value]
- | CqlSet [Value]
- | CqlMap [(Value, Value)]
- | CqlTuple [Value]
- | CqlUdt [(Text, Value)]
- | CqlDate !Int32
- | CqlTime !Int64
- | CqlSmallInt !Int16
- | CqlTinyInt !Int8
- newtype Tagged a b = Tagged {
- untag :: b
- retag :: Tagged a c -> Tagged b c
- data R
- data W
- data S
- data Header = Header {
- headerType :: !HeaderType
- version :: !Version
- flags :: !Flags
- streamId :: !StreamId
- opCode :: !OpCode
- bodyLength :: !Length
- data HeaderType
- header :: Version -> ByteString -> Either String Header
- newtype Length = Length {
- lengthRepr :: Int32
- data StreamId
- mkStreamId :: Integral i => i -> StreamId
- fromStreamId :: StreamId -> Int
- data Flags
- compress :: Flags
- tracing :: Flags
- isSet :: Flags -> Flags -> Bool
- data Request k a b
- getOpCode :: Request k a b -> OpCode
- pack :: Tuple a => Version -> Compression -> Bool -> StreamId -> Request k a b -> Either String ByteString
- data Options = Options
- data Startup = Startup !CqlVersion !CompressionAlgorithm
- newtype AuthResponse = AuthResponse ByteString
- newtype Register = Register [EventType]
- data EventType
- data Query k a b = Query !(QueryString k a b) !(QueryParams a)
- data QueryParams a = QueryParams {}
- data SerialConsistency
- data Batch = Batch {}
- data BatchQuery where
- BatchQuery :: (Show a, Tuple a, Tuple b) => !(QueryString W a b) -> !a -> BatchQuery
- BatchPrepared :: (Show a, Tuple a, Tuple b) => !(QueryId W a b) -> !a -> BatchQuery
- data BatchType
- newtype Prepare k a b = Prepare (QueryString k a b)
- data Execute k a b = Execute !(QueryId k a b) !(QueryParams a)
- data Response k a b
- = RsError (Maybe UUID) [Text] !Error
- | RsReady (Maybe UUID) [Text] !Ready
- | RsAuthenticate (Maybe UUID) [Text] !Authenticate
- | RsAuthChallenge (Maybe UUID) [Text] !AuthChallenge
- | RsAuthSuccess (Maybe UUID) [Text] !AuthSuccess
- | RsSupported (Maybe UUID) [Text] !Supported
- | RsResult (Maybe UUID) [Text] !(Result k a b)
- | RsEvent (Maybe UUID) [Text] !Event
- warnings :: Response k a b -> [Text]
- traceId :: Response k a b -> Maybe UUID
- unpack :: (Tuple a, Tuple b) => Compression -> Header -> ByteString -> Either String (Response k a b)
- data Ready = Ready
- newtype Authenticate = Authenticate Text
- newtype AuthChallenge = AuthChallenge (Maybe ByteString)
- newtype AuthSuccess = AuthSuccess (Maybe ByteString)
- data Result k a b
- = VoidResult
- | RowsResult !MetaData [b]
- | SetKeyspaceResult !Keyspace
- | PreparedResult !(QueryId k a b) !MetaData !MetaData
- | SchemaChangeResult !SchemaChange
- data MetaData = MetaData {
- columnCount :: !Int32
- pagingState :: Maybe PagingState
- columnSpecs :: [ColumnSpec]
- primaryKeyIndices :: [Int32]
- data ColumnSpec = ColumnSpec {
- keyspace :: !Keyspace
- table :: !Table
- columnName :: !Text
- columnType :: !ColumnType
- data Supported = Supported [CompressionAlgorithm] [CqlVersion]
- data Event
- data TopologyChange
- data SchemaChange
- data StatusChange
- data Change
- = KeyspaceChange !Keyspace
- | TableChange !Keyspace !Table
- | TypeChange !Keyspace !Text
- | FunctionChange !Keyspace !Text ![Text]
- | AggregateChange !Keyspace !Text ![Text]
- data Error
- = AlreadyExists !Text !Keyspace !Table
- | BadCredentials !Text
- | ConfigError !Text
- | FunctionFailure !Text !Keyspace !Text ![Text]
- | Invalid !Text
- | IsBootstrapping !Text
- | Overloaded !Text
- | ProtocolError !Text
- | ServerError !Text
- | SyntaxError !Text
- | TruncateError !Text
- | Unauthorized !Text
- | Unprepared !Text !ByteString
- | Unavailable { }
- | ReadFailure { }
- | ReadTimeout { }
- | WriteFailure { }
- | WriteTimeout { }
- data WriteType
- class PrivateTuple a => Tuple a
- count :: PrivateTuple a => Tagged a Int
- check :: PrivateTuple a => Tagged a ([ColumnType] -> [ColumnType])
- tuple :: PrivateTuple a => Version -> [ColumnType] -> Get a
- store :: PrivateTuple a => Version -> Putter a
- data Row
- mkRow :: [(Value, ColumnType)] -> Row
- fromRow :: Cql a => Int -> Row -> Either String a
- columnTypes :: Row -> [ColumnType]
- rowLength :: Row -> Int
- class Record a where
- type family TupleType a
- recordInstance :: Name -> Q [Dec]
Cql type-class
A type that can be converted from and to some CQL Value.
This type-class is used to map custom types to Cassandra data-types. For example:
newtype MyType = MyType Int32
instance Cql MyType where
ctype = Tagged IntColumn
toCql (MyType i) = CqlInt i
fromCql (CqlInt i) = Right (MyType i)
fromCql _ = Left "Expected CqlInt"
Methods
ctype :: Tagged a ColumnType Source #
the column-type of a
map a to some CQL data-type
fromCql :: Value -> Either String a Source #
map a CQL value back to a
Instances
| Cql Bool Source # | |
| Cql Double Source # | |
| Cql Float Source # | |
| Cql Int8 Source # | |
| Cql Int16 Source # | |
| Cql Int32 Source # | |
| Cql Int64 Source # | |
| Cql Integer Source # | |
| Cql Decimal Source # | |
| Cql IP Source # | |
| Cql Text Source # | |
| Cql UTCTime Source # | |
| Cql UUID Source # | |
| Cql TimeUuid Source # | |
| Cql Counter Source # | |
| Cql Blob Source # | |
| Cql Ascii Source # | |
| Cql a => Cql [a] Source # | |
| Cql a => Cql (Maybe a) Source # | Please note that due to the fact that Cassandra internally represents
empty collection type values (i.e. lists, maps and sets) as |
| Cql a => Cql (Set a) Source # | |
| (Cql a1, Cql a2) => Cql (a1, a2) Source # | |
| (Cql a, Cql b) => Cql (Map a b) Source # | |
| (Cql a1, Cql a2, Cql a3) => Cql (a1, a2, a3) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4) => Cql (a1, a2, a3, a4) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5) => Cql (a1, a2, a3, a4, a5) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6) => Cql (a1, a2, a3, a4, a5, a6) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7) => Cql (a1, a2, a3, a4, a5, a6, a7) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8) => Cql (a1, a2, a3, a4, a5, a6, a7, a8) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) Source # | |
Defined in Database.CQL.Protocol.Class | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) Source # | |
Defined in Database.CQL.Protocol.Class | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) Source # | |
Defined in Database.CQL.Protocol.Class | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) Source # | |
Defined in Database.CQL.Protocol.Class Methods ctype :: Tagged (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) ColumnType Source # toCql :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) -> Value Source # fromCql :: Value -> Either String (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) Source # | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16) => Cql (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) Source # | |
Defined in Database.CQL.Protocol.Class Methods ctype :: Tagged (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) ColumnType Source # toCql :: (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) -> Value Source # fromCql :: Value -> Either String (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) Source # | |
Basic type definitions
newtype PagingState Source #
Opaque token passed to the server to continue result paging.
Constructors
| PagingState | |
Fields | |
Instances
| Eq PagingState Source # | |
Defined in Database.CQL.Protocol.Types | |
| Show PagingState Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> PagingState -> ShowS # show :: PagingState -> String # showList :: [PagingState] -> ShowS # | |
newtype QueryId k a b Source #
ID representing a prepared query.
Constructors
| QueryId | |
Fields | |
newtype QueryString k a b Source #
Constructors
| QueryString | |
Fields | |
Instances
| Eq (QueryString k a b) Source # | |
Defined in Database.CQL.Protocol.Types Methods (==) :: QueryString k a b -> QueryString k a b -> Bool # (/=) :: QueryString k a b -> QueryString k a b -> Bool # | |
| Show (QueryString k a b) Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> QueryString k a b -> ShowS # show :: QueryString k a b -> String # showList :: [QueryString k a b] -> ShowS # | |
| IsString (QueryString k a b) Source # | |
Defined in Database.CQL.Protocol.Types Methods fromString :: String -> QueryString k a b # | |
CQL binary protocol version.
data CqlVersion Source #
The CQL version (not the binary protocol version).
Constructors
| Cqlv300 | |
| CqlVersion !Text |
Instances
| Eq CqlVersion Source # | |
Defined in Database.CQL.Protocol.Types | |
| Show CqlVersion Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> CqlVersion -> ShowS # show :: CqlVersion -> String # showList :: [CqlVersion] -> ShowS # | |
data CompressionAlgorithm Source #
Instances
| Eq CompressionAlgorithm Source # | |
Defined in Database.CQL.Protocol.Types Methods (==) :: CompressionAlgorithm -> CompressionAlgorithm -> Bool # (/=) :: CompressionAlgorithm -> CompressionAlgorithm -> Bool # | |
| Show CompressionAlgorithm Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> CompressionAlgorithm -> ShowS # show :: CompressionAlgorithm -> String # showList :: [CompressionAlgorithm] -> ShowS # | |
data Compression Source #
Constructors
| Compression | |
Fields
| |
Instances
| Show Compression Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> Compression -> ShowS # show :: Compression -> String # showList :: [Compression] -> ShowS # | |
data Consistency Source #
Consistency level.
See: Consistency
Constructors
| Any | |
| One | |
| LocalOne | |
| Two | |
| Three | |
| Quorum | |
| LocalQuorum | |
| All | |
| EachQuorum | Only for write queries. |
| Serial | Only for read queries. |
| LocalSerial | Only for read queries. |
Instances
| Eq Consistency Source # | |
Defined in Database.CQL.Protocol.Types | |
| Show Consistency Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> Consistency -> ShowS # show :: Consistency -> String # showList :: [Consistency] -> ShowS # | |
An opcode is a tag to distinguish protocol frame bodies.
Constructors
| OcError | |
| OcStartup | |
| OcReady | |
| OcAuthenticate | |
| OcOptions | |
| OcSupported | |
| OcQuery | |
| OcResult | |
| OcPrepare | |
| OcExecute | |
| OcRegister | |
| OcEvent | |
| OcBatch | |
| OcAuthChallenge | |
| OcAuthResponse | |
| OcAuthSuccess |
data ColumnType Source #
The type of a single CQL column.
Constructors
Instances
| Eq ColumnType Source # | |
Defined in Database.CQL.Protocol.Types | |
| Show ColumnType Source # | |
Defined in Database.CQL.Protocol.Types Methods showsPrec :: Int -> ColumnType -> ShowS # show :: ColumnType -> String # showList :: [ColumnType] -> ShowS # | |
Constructors
| Blob | |
Fields | |
Constructors
| Counter | |
Fields
| |
Constructors
| TimeUuid | |
Fields
| |
A CQL value. The various constructors correspond to CQL data-types for individual columns in Cassandra.
Constructors
| CqlCustom !ByteString | |
| CqlBoolean !Bool | |
| CqlInt !Int32 | |
| CqlBigInt !Int64 | |
| CqlVarInt !Integer | |
| CqlFloat !Float | |
| CqlDecimal !Decimal | |
| CqlDouble !Double | |
| CqlText !Text | |
| CqlInet !IP | |
| CqlUuid !UUID | |
| CqlTimestamp !Int64 | |
| CqlAscii !Text | |
| CqlBlob !ByteString | |
| CqlCounter !Int64 | |
| CqlTimeUuid !UUID | |
| CqlMaybe (Maybe Value) | |
| CqlList [Value] | |
| CqlSet [Value] | |
| CqlMap [(Value, Value)] | |
| CqlTuple [Value] | |
| CqlUdt [(Text, Value)] | |
| CqlDate !Int32 | |
| CqlTime !Int64 | |
| CqlSmallInt !Int16 | |
| CqlTinyInt !Int8 |
Header
Protocol frame header.
Constructors
| Header | |
Fields
| |
data HeaderType Source #
Instances
| Show HeaderType Source # | |
Defined in Database.CQL.Protocol.Header Methods showsPrec :: Int -> HeaderType -> ShowS # show :: HeaderType -> String # showList :: [HeaderType] -> ShowS # | |
header :: Version -> ByteString -> Either String Header Source #
Deserialise a frame header using the version specific decoding format.
Length
The type denoting a protocol frame length.
Constructors
| Length | |
Fields
| |
StreamId
Streams allow multiplexing of requests over a single communication
channel. The StreamId correlates Requests with Responses.
mkStreamId :: Integral i => i -> StreamId Source #
fromStreamId :: StreamId -> Int Source #
Convert the stream ID to an integer.
Flags
Type representing header flags. Flags form a monoid and can be used
as in compress <> tracing <> mempty.
Tracing flag. If a request support tracing and the tracing flag was set, the response to this request will have the tracing flag set and contain tracing information.
Request
The type corresponding to the protocol request frame.
The type parameter k denotes the kind of request. It is present to allow
distinguishing read operations from write operations. Use R for read,
W for write and S for schema related operations.
a represents the argument type and b the return type of this request.
Arguments
| :: Tuple a | |
| => Version | protocol version, which determines the encoding |
| -> Compression | compression to use |
| -> Bool | enable/disable tracing |
| -> StreamId | the stream Id to use |
| -> Request k a b | the actual request to serialise |
| -> Either String ByteString |
Options
An options request, send prior to Startup to request the server's
startup options.
Constructors
| Options |
Startup
A startup request which is used when initialising a connection to the server. It specifies the CQL version to use and optionally the compression algorithm.
Constructors
| Startup !CqlVersion !CompressionAlgorithm |
Auth Response
newtype AuthResponse Source #
A request send in response to a previous authentication challenge.
Constructors
| AuthResponse ByteString |
Instances
| Show AuthResponse Source # | |
Defined in Database.CQL.Protocol.Request Methods showsPrec :: Int -> AuthResponse -> ShowS # show :: AuthResponse -> String # showList :: [AuthResponse] -> ShowS # | |
Register
Register's the connection this request is made through, to receive server events.
Event types to register.
Constructors
| TopologyChangeEvent | events related to change in the cluster topology |
| StatusChangeEvent | events related to change of node status |
| SchemaChangeEvent | events related to schema change |
Query
A CQL query (select, insert, etc.).
Constructors
| Query !(QueryString k a b) !(QueryParams a) |
data QueryParams a Source #
Query parameters.
Constructors
| QueryParams | |
Fields
| |
Instances
| Show a => Show (QueryParams a) Source # | |
Defined in Database.CQL.Protocol.Request Methods showsPrec :: Int -> QueryParams a -> ShowS # show :: QueryParams a -> String # showList :: [QueryParams a] -> ShowS # | |
data SerialConsistency Source #
Consistency level for the serial phase of conditional updates (aka "lightweight transactions").
See: SerialConsistency
Constructors
| SerialConsistency | Default. Quorum-based linearizable consistency. |
| LocalSerialConsistency | Like |
Instances
| Show SerialConsistency Source # | |
Defined in Database.CQL.Protocol.Request Methods showsPrec :: Int -> SerialConsistency -> ShowS # show :: SerialConsistency -> String # showList :: [SerialConsistency] -> ShowS # | |
Batch
Allows executing a list of queries (prepared or not) as a batch.
Constructors
| Batch | |
Fields | |
data BatchQuery where Source #
A GADT to unify queries and prepared queries both of which can be used in batch requests.
Constructors
| BatchQuery :: (Show a, Tuple a, Tuple b) => !(QueryString W a b) -> !a -> BatchQuery | |
| BatchPrepared :: (Show a, Tuple a, Tuple b) => !(QueryId W a b) -> !a -> BatchQuery |
Instances
| Show BatchQuery Source # | |
Defined in Database.CQL.Protocol.Request Methods showsPrec :: Int -> BatchQuery -> ShowS # show :: BatchQuery -> String # showList :: [BatchQuery] -> ShowS # | |
Constructors
| BatchLogged | default, uses a batch log for atomic application |
| BatchUnLogged | skip the batch log |
| BatchCounter | used for batched counter updates |
Prepare
newtype Prepare k a b Source #
Prepare a query for later execution (cf. Execute).
Constructors
| Prepare (QueryString k a b) |
Execute
Executes a prepared query.
Constructors
| Execute !(QueryId k a b) !(QueryParams a) |
Response
The type corresponding to the protocol response frame.
The type parameter k denotes the kind of response. It is present to allow
distinguishing read operations from write operations. Use R for read,
W for write and S for schema related operations.
a represents the argument type and b the return type of this
response.
Constructors
| RsError (Maybe UUID) [Text] !Error | |
| RsReady (Maybe UUID) [Text] !Ready | |
| RsAuthenticate (Maybe UUID) [Text] !Authenticate | |
| RsAuthChallenge (Maybe UUID) [Text] !AuthChallenge | |
| RsAuthSuccess (Maybe UUID) [Text] !AuthSuccess | |
| RsSupported (Maybe UUID) [Text] !Supported | |
| RsResult (Maybe UUID) [Text] !(Result k a b) | |
| RsEvent (Maybe UUID) [Text] !Event |
unpack :: (Tuple a, Tuple b) => Compression -> Header -> ByteString -> Either String (Response k a b) Source #
Deserialise a Response from the given ByteString.
Ready
The server is ready to process queries. Response of a Startup
request.
Constructors
| Ready |
Authenticate
newtype Authenticate Source #
The server requires authentication.
Constructors
| Authenticate Text |
Instances
| Show Authenticate Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> Authenticate -> ShowS # show :: Authenticate -> String # showList :: [Authenticate] -> ShowS # | |
newtype AuthChallenge Source #
A server-send authentication challenge.
Constructors
| AuthChallenge (Maybe ByteString) |
Instances
| Show AuthChallenge Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> AuthChallenge -> ShowS # show :: AuthChallenge -> String # showList :: [AuthChallenge] -> ShowS # | |
newtype AuthSuccess Source #
Indicates the success of an authentication phase.
Constructors
| AuthSuccess (Maybe ByteString) |
Instances
| Show AuthSuccess Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> AuthSuccess -> ShowS # show :: AuthSuccess -> String # showList :: [AuthSuccess] -> ShowS # | |
Result
Query response.
Constructors
| VoidResult | |
| RowsResult !MetaData [b] | |
| SetKeyspaceResult !Keyspace | |
| PreparedResult !(QueryId k a b) !MetaData !MetaData | |
| SchemaChangeResult !SchemaChange |
Part of a RowsResult. Describes the result set.
Constructors
| MetaData | |
Fields
| |
data ColumnSpec Source #
The column specification. Part of MetaData unless skipMetaData in
QueryParams was True.
Constructors
| ColumnSpec | |
Fields
| |
Instances
| Show ColumnSpec Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> ColumnSpec -> ShowS # show :: ColumnSpec -> String # showList :: [ColumnSpec] -> ShowS # | |
Supported
The startup options supported by the server. Response of an Options
request.
Constructors
| Supported [CompressionAlgorithm] [CqlVersion] |
Event
Messages send by the server without request, if the connection has
been Registered to receive such events.
Constructors
| TopologyEvent !TopologyChange !SockAddr | |
| StatusEvent !StatusChange !SockAddr | |
| SchemaEvent !SchemaChange |
data TopologyChange Source #
Constructors
| NewNode | |
| RemovedNode |
Instances
| Eq TopologyChange Source # | |
Defined in Database.CQL.Protocol.Response Methods (==) :: TopologyChange -> TopologyChange -> Bool # (/=) :: TopologyChange -> TopologyChange -> Bool # | |
| Ord TopologyChange Source # | |
Defined in Database.CQL.Protocol.Response Methods compare :: TopologyChange -> TopologyChange -> Ordering # (<) :: TopologyChange -> TopologyChange -> Bool # (<=) :: TopologyChange -> TopologyChange -> Bool # (>) :: TopologyChange -> TopologyChange -> Bool # (>=) :: TopologyChange -> TopologyChange -> Bool # max :: TopologyChange -> TopologyChange -> TopologyChange # min :: TopologyChange -> TopologyChange -> TopologyChange # | |
| Show TopologyChange Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> TopologyChange -> ShowS # show :: TopologyChange -> String # showList :: [TopologyChange] -> ShowS # | |
data SchemaChange Source #
Constructors
| SchemaCreated !Change | |
| SchemaUpdated !Change | |
| SchemaDropped !Change |
Instances
| Show SchemaChange Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> SchemaChange -> ShowS # show :: SchemaChange -> String # showList :: [SchemaChange] -> ShowS # | |
data StatusChange Source #
Instances
| Eq StatusChange Source # | |
Defined in Database.CQL.Protocol.Response | |
| Ord StatusChange Source # | |
Defined in Database.CQL.Protocol.Response Methods compare :: StatusChange -> StatusChange -> Ordering # (<) :: StatusChange -> StatusChange -> Bool # (<=) :: StatusChange -> StatusChange -> Bool # (>) :: StatusChange -> StatusChange -> Bool # (>=) :: StatusChange -> StatusChange -> Bool # max :: StatusChange -> StatusChange -> StatusChange # min :: StatusChange -> StatusChange -> StatusChange # | |
| Show StatusChange Source # | |
Defined in Database.CQL.Protocol.Response Methods showsPrec :: Int -> StatusChange -> ShowS # show :: StatusChange -> String # showList :: [StatusChange] -> ShowS # | |
Constructors
| KeyspaceChange !Keyspace | |
| TableChange !Keyspace !Table | |
| TypeChange !Keyspace !Text | |
| FunctionChange !Keyspace !Text ![Text] | |
| AggregateChange !Keyspace !Text ![Text] |
Error
Error response.
Constructors
| AlreadyExists !Text !Keyspace !Table | |
| BadCredentials !Text | |
| ConfigError !Text | |
| FunctionFailure !Text !Keyspace !Text ![Text] | |
| Invalid !Text | |
| IsBootstrapping !Text | |
| Overloaded !Text | |
| ProtocolError !Text | |
| ServerError !Text | |
| SyntaxError !Text | |
| TruncateError !Text | |
| Unauthorized !Text | |
| Unprepared !Text !ByteString | |
| Unavailable | |
Fields
| |
| ReadFailure | |
Fields
| |
| ReadTimeout | |
Fields
| |
| WriteFailure | |
Fields | |
| WriteTimeout | |
Fields | |
Instances
| Eq Error Source # | |
| Show Error Source # | |
| Exception Error Source # | |
Defined in Database.CQL.Protocol.Response Methods toException :: Error -> SomeException # fromException :: SomeException -> Maybe Error # displayException :: Error -> String # | |
Constructors
| WriteSimple | |
| WriteBatch | |
| WriteBatchLog | |
| WriteUnloggedBatch | |
| WriteCounter | |
| WriteCas | |
| WriteView | Since |
| WriteCdc | Since |
Row, Tuple and Record
class PrivateTuple a => Tuple a Source #
Instances
| Tuple () Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| Tuple Row Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| Cql a => Tuple (Identity a) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2) => Tuple (a1, a2) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3) => Tuple (a1, a2, a3) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4) => Tuple (a1, a2, a3, a4) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5) => Tuple (a1, a2, a3, a4, a5) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6) => Tuple (a1, a2, a3, a4, a5, a6) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7) => Tuple (a1, a2, a3, a4, a5, a6, a7) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42, Cql a43) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42, Cql a43, Cql a44) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42, Cql a43, Cql a44, Cql a45) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42, Cql a43, Cql a44, Cql a45, Cql a46) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42, Cql a43, Cql a44, Cql a45, Cql a46, Cql a47) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
| (Cql a1, Cql a2, Cql a3, Cql a4, Cql a5, Cql a6, Cql a7, Cql a8, Cql a9, Cql a10, Cql a11, Cql a12, Cql a13, Cql a14, Cql a15, Cql a16, Cql a17, Cql a18, Cql a19, Cql a20, Cql a21, Cql a22, Cql a23, Cql a24, Cql a25, Cql a26, Cql a27, Cql a28, Cql a29, Cql a30, Cql a31, Cql a32, Cql a33, Cql a34, Cql a35, Cql a36, Cql a37, Cql a38, Cql a39, Cql a40, Cql a41, Cql a42, Cql a43, Cql a44, Cql a45, Cql a46, Cql a47, Cql a48) => Tuple (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48) Source # | |
Defined in Database.CQL.Protocol.Tuple | |
check :: PrivateTuple a => Tagged a ([ColumnType] -> [ColumnType]) Source #
A row is a vector of Values.
columnTypes :: Row -> [ColumnType] Source #
Record/Tuple conversion. For example:
data Peer = Peer
{ peerAddr :: IP
, peerRPC :: IP
, peerDC :: Text
, peerRack :: Text
} deriving Show
recordInstance ''Peer
map asRecord <$> performQuery "SELECT peer, rpc_address, data_center, rack FROM system.peers"
The generated type-class instance maps between record and tuple constructors:
type instance TupleType Peer = (IP, IP, Text, Text)
instance Record Peer where
asTuple (Peer a b c d) = (a, b, c, d)
asRecord (a, b, c, d) = Peer a b c d