diff --git a/Database/Cassandra/Thrift/Cassandra.hs b/Database/Cassandra/Thrift/Cassandra.hs
--- a/Database/Cassandra/Thrift/Cassandra.hs
+++ b/Database/Cassandra/Thrift/Cassandra.hs
@@ -1,2303 +1,2734 @@
 {-# LANGUAGE DeriveDataTypeable #-}
------------------------------------------------------------------
--- Autogenerated by Thrift                                     --
---                                                             --
--- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
------------------------------------------------------------------
-
-module Database.Cassandra.Thrift.Cassandra where
-import Thrift
-import Data.Typeable ( Typeable )
-import Control.Exception
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import Data.Int;
-import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
-import Database.Cassandra.Thrift.Cassandra_Types
-import qualified Database.Cassandra.Thrift.Cassandra_Iface as Iface
--- HELPER FUNCTIONS AND STRUCTURES --
-
-data Login_args = Login_args{f_Login_args_keyspace :: Maybe String,f_Login_args_auth_request :: Maybe AuthenticationRequest} deriving (Show,Eq,Ord,Typeable)
-write_Login_args oprot rec = do
-  writeStructBegin oprot "Login_args"
-  case f_Login_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Login_args_auth_request rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("auth_request",T_STRUCT,2)
-    write_AuthenticationRequest oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Login_args_fields iprot rec = do
-  (_,_t129,_id130) <- readFieldBegin iprot
-  if _t129 == T_STOP then return rec else
-    case _id130 of 
-      1 -> if _t129 == T_STRING then do
-        s <- readString iprot
-        read_Login_args_fields iprot rec{f_Login_args_keyspace=Just s}
-        else do
-          skip iprot _t129
-          read_Login_args_fields iprot rec
-      2 -> if _t129 == T_STRUCT then do
-        s <- (read_AuthenticationRequest iprot)
-        read_Login_args_fields iprot rec{f_Login_args_auth_request=Just s}
-        else do
-          skip iprot _t129
-          read_Login_args_fields iprot rec
-      _ -> do
-        skip iprot _t129
-        readFieldEnd iprot
-        read_Login_args_fields iprot rec
-read_Login_args iprot = do
-  readStructBegin iprot
-  rec <- read_Login_args_fields iprot (Login_args{f_Login_args_keyspace=Nothing,f_Login_args_auth_request=Nothing})
-  readStructEnd iprot
-  return rec
-data Login_result = Login_result{f_Login_result_authnx :: Maybe AuthenticationException,f_Login_result_authzx :: Maybe AuthorizationException} deriving (Show,Eq,Ord,Typeable)
-write_Login_result oprot rec = do
-  writeStructBegin oprot "Login_result"
-  case f_Login_result_authnx rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("authnx",T_STRUCT,1)
-    write_AuthenticationException oprot _v
-    writeFieldEnd oprot}
-  case f_Login_result_authzx rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("authzx",T_STRUCT,2)
-    write_AuthorizationException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Login_result_fields iprot rec = do
-  (_,_t134,_id135) <- readFieldBegin iprot
-  if _t134 == T_STOP then return rec else
-    case _id135 of 
-      1 -> if _t134 == T_STRUCT then do
-        s <- (read_AuthenticationException iprot)
-        read_Login_result_fields iprot rec{f_Login_result_authnx=Just s}
-        else do
-          skip iprot _t134
-          read_Login_result_fields iprot rec
-      2 -> if _t134 == T_STRUCT then do
-        s <- (read_AuthorizationException iprot)
-        read_Login_result_fields iprot rec{f_Login_result_authzx=Just s}
-        else do
-          skip iprot _t134
-          read_Login_result_fields iprot rec
-      _ -> do
-        skip iprot _t134
-        readFieldEnd iprot
-        read_Login_result_fields iprot rec
-read_Login_result iprot = do
-  readStructBegin iprot
-  rec <- read_Login_result_fields iprot (Login_result{f_Login_result_authnx=Nothing,f_Login_result_authzx=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_args = Get_args{f_Get_args_keyspace :: Maybe String,f_Get_args_key :: Maybe String,f_Get_args_column_path :: Maybe ColumnPath,f_Get_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_args oprot rec = do
-  writeStructBegin oprot "Get_args"
-  case f_Get_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Get_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_args_fields iprot rec = do
-  (_,_t139,_id140) <- readFieldBegin iprot
-  if _t139 == T_STOP then return rec else
-    case _id140 of 
-      1 -> if _t139 == T_STRING then do
-        s <- readString iprot
-        read_Get_args_fields iprot rec{f_Get_args_keyspace=Just s}
-        else do
-          skip iprot _t139
-          read_Get_args_fields iprot rec
-      2 -> if _t139 == T_STRING then do
-        s <- readString iprot
-        read_Get_args_fields iprot rec{f_Get_args_key=Just s}
-        else do
-          skip iprot _t139
-          read_Get_args_fields iprot rec
-      3 -> if _t139 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Get_args_fields iprot rec{f_Get_args_column_path=Just s}
-        else do
-          skip iprot _t139
-          read_Get_args_fields iprot rec
-      4 -> if _t139 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_args_fields iprot rec{f_Get_args_consistency_level=Just s}
-        else do
-          skip iprot _t139
-          read_Get_args_fields iprot rec
-      _ -> do
-        skip iprot _t139
-        readFieldEnd iprot
-        read_Get_args_fields iprot rec
-read_Get_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_args_fields iprot (Get_args{f_Get_args_keyspace=Nothing,f_Get_args_key=Nothing,f_Get_args_column_path=Nothing,f_Get_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_result = Get_result{f_Get_result_success :: Maybe ColumnOrSuperColumn,f_Get_result_ire :: Maybe InvalidRequestException,f_Get_result_nfe :: Maybe NotFoundException,f_Get_result_ue :: Maybe UnavailableException,f_Get_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_result oprot rec = do
-  writeStructBegin oprot "Get_result"
-  case f_Get_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRUCT,0)
-    write_ColumnOrSuperColumn oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_nfe rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("nfe",T_STRUCT,2)
-    write_NotFoundException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,3)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,4)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_result_fields iprot rec = do
-  (_,_t144,_id145) <- readFieldBegin iprot
-  if _t144 == T_STOP then return rec else
-    case _id145 of 
-      0 -> if _t144 == T_STRUCT then do
-        s <- (read_ColumnOrSuperColumn iprot)
-        read_Get_result_fields iprot rec{f_Get_result_success=Just s}
-        else do
-          skip iprot _t144
-          read_Get_result_fields iprot rec
-      1 -> if _t144 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_ire=Just s}
-        else do
-          skip iprot _t144
-          read_Get_result_fields iprot rec
-      2 -> if _t144 == T_STRUCT then do
-        s <- (read_NotFoundException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_nfe=Just s}
-        else do
-          skip iprot _t144
-          read_Get_result_fields iprot rec
-      3 -> if _t144 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_ue=Just s}
-        else do
-          skip iprot _t144
-          read_Get_result_fields iprot rec
-      4 -> if _t144 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_result_fields iprot rec{f_Get_result_te=Just s}
-        else do
-          skip iprot _t144
-          read_Get_result_fields iprot rec
-      _ -> do
-        skip iprot _t144
-        readFieldEnd iprot
-        read_Get_result_fields iprot rec
-read_Get_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_result_fields iprot (Get_result{f_Get_result_success=Nothing,f_Get_result_ire=Nothing,f_Get_result_nfe=Nothing,f_Get_result_ue=Nothing,f_Get_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_slice_args = Get_slice_args{f_Get_slice_args_keyspace :: Maybe String,f_Get_slice_args_key :: Maybe String,f_Get_slice_args_column_parent :: Maybe ColumnParent,f_Get_slice_args_predicate :: Maybe SlicePredicate,f_Get_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_slice_args oprot rec = do
-  writeStructBegin oprot "Get_slice_args"
-  case f_Get_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,4)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_slice_args_fields iprot rec = do
-  (_,_t149,_id150) <- readFieldBegin iprot
-  if _t149 == T_STOP then return rec else
-    case _id150 of 
-      1 -> if _t149 == T_STRING then do
-        s <- readString iprot
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_keyspace=Just s}
-        else do
-          skip iprot _t149
-          read_Get_slice_args_fields iprot rec
-      2 -> if _t149 == T_STRING then do
-        s <- readString iprot
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_key=Just s}
-        else do
-          skip iprot _t149
-          read_Get_slice_args_fields iprot rec
-      3 -> if _t149 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_column_parent=Just s}
-        else do
-          skip iprot _t149
-          read_Get_slice_args_fields iprot rec
-      4 -> if _t149 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_predicate=Just s}
-        else do
-          skip iprot _t149
-          read_Get_slice_args_fields iprot rec
-      5 -> if _t149 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_slice_args_fields iprot rec{f_Get_slice_args_consistency_level=Just s}
-        else do
-          skip iprot _t149
-          read_Get_slice_args_fields iprot rec
-      _ -> do
-        skip iprot _t149
-        readFieldEnd iprot
-        read_Get_slice_args_fields iprot rec
-read_Get_slice_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_slice_args_fields iprot (Get_slice_args{f_Get_slice_args_keyspace=Nothing,f_Get_slice_args_key=Nothing,f_Get_slice_args_column_parent=Nothing,f_Get_slice_args_predicate=Nothing,f_Get_slice_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_slice_result = Get_slice_result{f_Get_slice_result_success :: Maybe [ColumnOrSuperColumn],f_Get_slice_result_ire :: Maybe InvalidRequestException,f_Get_slice_result_ue :: Maybe UnavailableException,f_Get_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_slice_result oprot rec = do
-  writeStructBegin oprot "Get_slice_result"
-  case f_Get_slice_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter153:t) = do {write_ColumnOrSuperColumn oprot _viter153;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Get_slice_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_slice_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_slice_result_fields iprot rec = do
-  (_,_t155,_id156) <- readFieldBegin iprot
-  if _t155 == T_STOP then return rec else
-    case _id156 of 
-      0 -> if _t155 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype160,_size157) <- readListBegin iprot; f _size157})
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_success=Just s}
-        else do
-          skip iprot _t155
-          read_Get_slice_result_fields iprot rec
-      1 -> if _t155 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ire=Just s}
-        else do
-          skip iprot _t155
-          read_Get_slice_result_fields iprot rec
-      2 -> if _t155 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ue=Just s}
-        else do
-          skip iprot _t155
-          read_Get_slice_result_fields iprot rec
-      3 -> if _t155 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_slice_result_fields iprot rec{f_Get_slice_result_te=Just s}
-        else do
-          skip iprot _t155
-          read_Get_slice_result_fields iprot rec
-      _ -> do
-        skip iprot _t155
-        readFieldEnd iprot
-        read_Get_slice_result_fields iprot rec
-read_Get_slice_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_slice_result_fields iprot (Get_slice_result{f_Get_slice_result_success=Nothing,f_Get_slice_result_ire=Nothing,f_Get_slice_result_ue=Nothing,f_Get_slice_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_args = Multiget_args{f_Multiget_args_keyspace :: Maybe String,f_Multiget_args_keys :: Maybe [String],f_Multiget_args_column_path :: Maybe ColumnPath,f_Multiget_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_args oprot rec = do
-  writeStructBegin oprot "Multiget_args"
-  case f_Multiget_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_args_keys rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keys",T_LIST,2)
-    (let {f [] = return (); f (_viter164:t) = do {writeString oprot _viter164;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_args_fields iprot rec = do
-  (_,_t166,_id167) <- readFieldBegin iprot
-  if _t166 == T_STOP then return rec else
-    case _id167 of 
-      1 -> if _t166 == T_STRING then do
-        s <- readString iprot
-        read_Multiget_args_fields iprot rec{f_Multiget_args_keyspace=Just s}
-        else do
-          skip iprot _t166
-          read_Multiget_args_fields iprot rec
-      2 -> if _t166 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype171,_size168) <- readListBegin iprot; f _size168})
-        read_Multiget_args_fields iprot rec{f_Multiget_args_keys=Just s}
-        else do
-          skip iprot _t166
-          read_Multiget_args_fields iprot rec
-      3 -> if _t166 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Multiget_args_fields iprot rec{f_Multiget_args_column_path=Just s}
-        else do
-          skip iprot _t166
-          read_Multiget_args_fields iprot rec
-      4 -> if _t166 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Multiget_args_fields iprot rec{f_Multiget_args_consistency_level=Just s}
-        else do
-          skip iprot _t166
-          read_Multiget_args_fields iprot rec
-      _ -> do
-        skip iprot _t166
-        readFieldEnd iprot
-        read_Multiget_args_fields iprot rec
-read_Multiget_args iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_args_fields iprot (Multiget_args{f_Multiget_args_keyspace=Nothing,f_Multiget_args_keys=Nothing,f_Multiget_args_column_path=Nothing,f_Multiget_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_result = Multiget_result{f_Multiget_result_success :: Maybe (Map.Map String ColumnOrSuperColumn),f_Multiget_result_ire :: Maybe InvalidRequestException,f_Multiget_result_ue :: Maybe UnavailableException,f_Multiget_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_result oprot rec = do
-  writeStructBegin oprot "Multiget_result"
-  case f_Multiget_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_MAP,0)
-    (let {f [] = return (); f ((_kiter175,_viter176):t) = do {do {writeString oprot _kiter175;write_ColumnOrSuperColumn oprot _viter176};f t}} in do {writeMapBegin oprot (T_STRING,T_STRUCT,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_result_fields iprot rec = do
-  (_,_t178,_id179) <- readFieldBegin iprot
-  if _t178 == T_STOP then return rec else
-    case _id179 of 
-      0 -> if _t178 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ (k,v):r}} in do {(_ktype181,_vtype182,_size180) <- readMapBegin iprot; l <- f _size180; return $ Map.fromList l})
-        read_Multiget_result_fields iprot rec{f_Multiget_result_success=Just s}
-        else do
-          skip iprot _t178
-          read_Multiget_result_fields iprot rec
-      1 -> if _t178 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Multiget_result_fields iprot rec{f_Multiget_result_ire=Just s}
-        else do
-          skip iprot _t178
-          read_Multiget_result_fields iprot rec
-      2 -> if _t178 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Multiget_result_fields iprot rec{f_Multiget_result_ue=Just s}
-        else do
-          skip iprot _t178
-          read_Multiget_result_fields iprot rec
-      3 -> if _t178 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Multiget_result_fields iprot rec{f_Multiget_result_te=Just s}
-        else do
-          skip iprot _t178
-          read_Multiget_result_fields iprot rec
-      _ -> do
-        skip iprot _t178
-        readFieldEnd iprot
-        read_Multiget_result_fields iprot rec
-read_Multiget_result iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_result_fields iprot (Multiget_result{f_Multiget_result_success=Nothing,f_Multiget_result_ire=Nothing,f_Multiget_result_ue=Nothing,f_Multiget_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_slice_args = Multiget_slice_args{f_Multiget_slice_args_keyspace :: Maybe String,f_Multiget_slice_args_keys :: Maybe [String],f_Multiget_slice_args_column_parent :: Maybe ColumnParent,f_Multiget_slice_args_predicate :: Maybe SlicePredicate,f_Multiget_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_slice_args oprot rec = do
-  writeStructBegin oprot "Multiget_slice_args"
-  case f_Multiget_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_keys rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keys",T_LIST,2)
-    (let {f [] = return (); f (_viter187:t) = do {writeString oprot _viter187;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,4)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_slice_args_fields iprot rec = do
-  (_,_t189,_id190) <- readFieldBegin iprot
-  if _t189 == T_STOP then return rec else
-    case _id190 of 
-      1 -> if _t189 == T_STRING then do
-        s <- readString iprot
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keyspace=Just s}
-        else do
-          skip iprot _t189
-          read_Multiget_slice_args_fields iprot rec
-      2 -> if _t189 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype194,_size191) <- readListBegin iprot; f _size191})
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keys=Just s}
-        else do
-          skip iprot _t189
-          read_Multiget_slice_args_fields iprot rec
-      3 -> if _t189 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_column_parent=Just s}
-        else do
-          skip iprot _t189
-          read_Multiget_slice_args_fields iprot rec
-      4 -> if _t189 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_predicate=Just s}
-        else do
-          skip iprot _t189
-          read_Multiget_slice_args_fields iprot rec
-      5 -> if _t189 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_consistency_level=Just s}
-        else do
-          skip iprot _t189
-          read_Multiget_slice_args_fields iprot rec
-      _ -> do
-        skip iprot _t189
-        readFieldEnd iprot
-        read_Multiget_slice_args_fields iprot rec
-read_Multiget_slice_args iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_slice_args_fields iprot (Multiget_slice_args{f_Multiget_slice_args_keyspace=Nothing,f_Multiget_slice_args_keys=Nothing,f_Multiget_slice_args_column_parent=Nothing,f_Multiget_slice_args_predicate=Nothing,f_Multiget_slice_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Multiget_slice_result = Multiget_slice_result{f_Multiget_slice_result_success :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Multiget_slice_result_ire :: Maybe InvalidRequestException,f_Multiget_slice_result_ue :: Maybe UnavailableException,f_Multiget_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Multiget_slice_result oprot rec = do
-  writeStructBegin oprot "Multiget_slice_result"
-  case f_Multiget_slice_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_MAP,0)
-    (let {f [] = return (); f ((_kiter198,_viter199):t) = do {do {writeString oprot _kiter198;(let {f [] = return (); f (_viter200:t) = do {write_ColumnOrSuperColumn oprot _viter200;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter199); f _viter199;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Multiget_slice_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Multiget_slice_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Multiget_slice_result_fields iprot rec = do
-  (_,_t202,_id203) <- readFieldBegin iprot
-  if _t202 == T_STOP then return rec else
-    case _id203 of 
-      0 -> if _t202 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype212,_size209) <- readListBegin iprot; f _size209});r <- f (n-1); return $ (k,v):r}} in do {(_ktype205,_vtype206,_size204) <- readMapBegin iprot; l <- f _size204; return $ Map.fromList l})
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_success=Just s}
-        else do
-          skip iprot _t202
-          read_Multiget_slice_result_fields iprot rec
-      1 -> if _t202 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ire=Just s}
-        else do
-          skip iprot _t202
-          read_Multiget_slice_result_fields iprot rec
-      2 -> if _t202 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ue=Just s}
-        else do
-          skip iprot _t202
-          read_Multiget_slice_result_fields iprot rec
-      3 -> if _t202 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_te=Just s}
-        else do
-          skip iprot _t202
-          read_Multiget_slice_result_fields iprot rec
-      _ -> do
-        skip iprot _t202
-        readFieldEnd iprot
-        read_Multiget_slice_result_fields iprot rec
-read_Multiget_slice_result iprot = do
-  readStructBegin iprot
-  rec <- read_Multiget_slice_result_fields iprot (Multiget_slice_result{f_Multiget_slice_result_success=Nothing,f_Multiget_slice_result_ire=Nothing,f_Multiget_slice_result_ue=Nothing,f_Multiget_slice_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_count_args = Get_count_args{f_Get_count_args_keyspace :: Maybe String,f_Get_count_args_key :: Maybe String,f_Get_count_args_column_parent :: Maybe ColumnParent,f_Get_count_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_count_args oprot rec = do
-  writeStructBegin oprot "Get_count_args"
-  case f_Get_count_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_count_args_fields iprot rec = do
-  (_,_t217,_id218) <- readFieldBegin iprot
-  if _t217 == T_STOP then return rec else
-    case _id218 of 
-      1 -> if _t217 == T_STRING then do
-        s <- readString iprot
-        read_Get_count_args_fields iprot rec{f_Get_count_args_keyspace=Just s}
-        else do
-          skip iprot _t217
-          read_Get_count_args_fields iprot rec
-      2 -> if _t217 == T_STRING then do
-        s <- readString iprot
-        read_Get_count_args_fields iprot rec{f_Get_count_args_key=Just s}
-        else do
-          skip iprot _t217
-          read_Get_count_args_fields iprot rec
-      3 -> if _t217 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_count_args_fields iprot rec{f_Get_count_args_column_parent=Just s}
-        else do
-          skip iprot _t217
-          read_Get_count_args_fields iprot rec
-      4 -> if _t217 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_count_args_fields iprot rec{f_Get_count_args_consistency_level=Just s}
-        else do
-          skip iprot _t217
-          read_Get_count_args_fields iprot rec
-      _ -> do
-        skip iprot _t217
-        readFieldEnd iprot
-        read_Get_count_args_fields iprot rec
-read_Get_count_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_count_args_fields iprot (Get_count_args{f_Get_count_args_keyspace=Nothing,f_Get_count_args_key=Nothing,f_Get_count_args_column_parent=Nothing,f_Get_count_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_count_result = Get_count_result{f_Get_count_result_success :: Maybe Int,f_Get_count_result_ire :: Maybe InvalidRequestException,f_Get_count_result_ue :: Maybe UnavailableException,f_Get_count_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_count_result oprot rec = do
-  writeStructBegin oprot "Get_count_result"
-  case f_Get_count_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_I32,0)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_count_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_count_result_fields iprot rec = do
-  (_,_t222,_id223) <- readFieldBegin iprot
-  if _t222 == T_STOP then return rec else
-    case _id223 of 
-      0 -> if _t222 == T_I32 then do
-        s <- readI32 iprot
-        read_Get_count_result_fields iprot rec{f_Get_count_result_success=Just s}
-        else do
-          skip iprot _t222
-          read_Get_count_result_fields iprot rec
-      1 -> if _t222 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_count_result_fields iprot rec{f_Get_count_result_ire=Just s}
-        else do
-          skip iprot _t222
-          read_Get_count_result_fields iprot rec
-      2 -> if _t222 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_count_result_fields iprot rec{f_Get_count_result_ue=Just s}
-        else do
-          skip iprot _t222
-          read_Get_count_result_fields iprot rec
-      3 -> if _t222 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_count_result_fields iprot rec{f_Get_count_result_te=Just s}
-        else do
-          skip iprot _t222
-          read_Get_count_result_fields iprot rec
-      _ -> do
-        skip iprot _t222
-        readFieldEnd iprot
-        read_Get_count_result_fields iprot rec
-read_Get_count_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_count_result_fields iprot (Get_count_result{f_Get_count_result_success=Nothing,f_Get_count_result_ire=Nothing,f_Get_count_result_ue=Nothing,f_Get_count_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_range_slice_args = Get_range_slice_args{f_Get_range_slice_args_keyspace :: Maybe String,f_Get_range_slice_args_column_parent :: Maybe ColumnParent,f_Get_range_slice_args_predicate :: Maybe SlicePredicate,f_Get_range_slice_args_start_key :: Maybe String,f_Get_range_slice_args_finish_key :: Maybe String,f_Get_range_slice_args_row_count :: Maybe Int,f_Get_range_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_range_slice_args oprot rec = do
-  writeStructBegin oprot "Get_range_slice_args"
-  case f_Get_range_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,3)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_start_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start_key",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_finish_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("finish_key",T_STRING,5)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_row_count rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("row_count",T_I32,6)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,7)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_range_slice_args_fields iprot rec = do
-  (_,_t227,_id228) <- readFieldBegin iprot
-  if _t227 == T_STOP then return rec else
-    case _id228 of 
-      1 -> if _t227 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_keyspace=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      2 -> if _t227 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_column_parent=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      3 -> if _t227 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_predicate=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      4 -> if _t227 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_start_key=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      5 -> if _t227 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_finish_key=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      6 -> if _t227 == T_I32 then do
-        s <- readI32 iprot
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_row_count=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      7 -> if _t227 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_consistency_level=Just s}
-        else do
-          skip iprot _t227
-          read_Get_range_slice_args_fields iprot rec
-      _ -> do
-        skip iprot _t227
-        readFieldEnd iprot
-        read_Get_range_slice_args_fields iprot rec
-read_Get_range_slice_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_range_slice_args_fields iprot (Get_range_slice_args{f_Get_range_slice_args_keyspace=Nothing,f_Get_range_slice_args_column_parent=Nothing,f_Get_range_slice_args_predicate=Nothing,f_Get_range_slice_args_start_key=Nothing,f_Get_range_slice_args_finish_key=Nothing,f_Get_range_slice_args_row_count=Nothing,f_Get_range_slice_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_range_slice_result = Get_range_slice_result{f_Get_range_slice_result_success :: Maybe [KeySlice],f_Get_range_slice_result_ire :: Maybe InvalidRequestException,f_Get_range_slice_result_ue :: Maybe UnavailableException,f_Get_range_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_range_slice_result oprot rec = do
-  writeStructBegin oprot "Get_range_slice_result"
-  case f_Get_range_slice_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter231:t) = do {write_KeySlice oprot _viter231;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Get_range_slice_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slice_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_range_slice_result_fields iprot rec = do
-  (_,_t233,_id234) <- readFieldBegin iprot
-  if _t233 == T_STOP then return rec else
-    case _id234 of 
-      0 -> if _t233 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype238,_size235) <- readListBegin iprot; f _size235})
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_success=Just s}
-        else do
-          skip iprot _t233
-          read_Get_range_slice_result_fields iprot rec
-      1 -> if _t233 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ire=Just s}
-        else do
-          skip iprot _t233
-          read_Get_range_slice_result_fields iprot rec
-      2 -> if _t233 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ue=Just s}
-        else do
-          skip iprot _t233
-          read_Get_range_slice_result_fields iprot rec
-      3 -> if _t233 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_te=Just s}
-        else do
-          skip iprot _t233
-          read_Get_range_slice_result_fields iprot rec
-      _ -> do
-        skip iprot _t233
-        readFieldEnd iprot
-        read_Get_range_slice_result_fields iprot rec
-read_Get_range_slice_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_range_slice_result_fields iprot (Get_range_slice_result{f_Get_range_slice_result_success=Nothing,f_Get_range_slice_result_ire=Nothing,f_Get_range_slice_result_ue=Nothing,f_Get_range_slice_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_range_slices_args = Get_range_slices_args{f_Get_range_slices_args_keyspace :: Maybe String,f_Get_range_slices_args_column_parent :: Maybe ColumnParent,f_Get_range_slices_args_predicate :: Maybe SlicePredicate,f_Get_range_slices_args_range :: Maybe KeyRange,f_Get_range_slices_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Get_range_slices_args oprot rec = do
-  writeStructBegin oprot "Get_range_slices_args"
-  case f_Get_range_slices_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slices_args_column_parent rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
-    write_ColumnParent oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slices_args_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,3)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slices_args_range rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("range",T_STRUCT,4)
-    write_KeyRange oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slices_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_range_slices_args_fields iprot rec = do
-  (_,_t243,_id244) <- readFieldBegin iprot
-  if _t243 == T_STOP then return rec else
-    case _id244 of 
-      1 -> if _t243 == T_STRING then do
-        s <- readString iprot
-        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_keyspace=Just s}
-        else do
-          skip iprot _t243
-          read_Get_range_slices_args_fields iprot rec
-      2 -> if _t243 == T_STRUCT then do
-        s <- (read_ColumnParent iprot)
-        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_column_parent=Just s}
-        else do
-          skip iprot _t243
-          read_Get_range_slices_args_fields iprot rec
-      3 -> if _t243 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_predicate=Just s}
-        else do
-          skip iprot _t243
-          read_Get_range_slices_args_fields iprot rec
-      4 -> if _t243 == T_STRUCT then do
-        s <- (read_KeyRange iprot)
-        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_range=Just s}
-        else do
-          skip iprot _t243
-          read_Get_range_slices_args_fields iprot rec
-      5 -> if _t243 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Get_range_slices_args_fields iprot rec{f_Get_range_slices_args_consistency_level=Just s}
-        else do
-          skip iprot _t243
-          read_Get_range_slices_args_fields iprot rec
-      _ -> do
-        skip iprot _t243
-        readFieldEnd iprot
-        read_Get_range_slices_args_fields iprot rec
-read_Get_range_slices_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_range_slices_args_fields iprot (Get_range_slices_args{f_Get_range_slices_args_keyspace=Nothing,f_Get_range_slices_args_column_parent=Nothing,f_Get_range_slices_args_predicate=Nothing,f_Get_range_slices_args_range=Nothing,f_Get_range_slices_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_range_slices_result = Get_range_slices_result{f_Get_range_slices_result_success :: Maybe [KeySlice],f_Get_range_slices_result_ire :: Maybe InvalidRequestException,f_Get_range_slices_result_ue :: Maybe UnavailableException,f_Get_range_slices_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Get_range_slices_result oprot rec = do
-  writeStructBegin oprot "Get_range_slices_result"
-  case f_Get_range_slices_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter247:t) = do {write_KeySlice oprot _viter247;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Get_range_slices_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slices_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Get_range_slices_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_range_slices_result_fields iprot rec = do
-  (_,_t249,_id250) <- readFieldBegin iprot
-  if _t249 == T_STOP then return rec else
-    case _id250 of 
-      0 -> if _t249 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype254,_size251) <- readListBegin iprot; f _size251})
-        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_success=Just s}
-        else do
-          skip iprot _t249
-          read_Get_range_slices_result_fields iprot rec
-      1 -> if _t249 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_ire=Just s}
-        else do
-          skip iprot _t249
-          read_Get_range_slices_result_fields iprot rec
-      2 -> if _t249 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_ue=Just s}
-        else do
-          skip iprot _t249
-          read_Get_range_slices_result_fields iprot rec
-      3 -> if _t249 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Get_range_slices_result_fields iprot rec{f_Get_range_slices_result_te=Just s}
-        else do
-          skip iprot _t249
-          read_Get_range_slices_result_fields iprot rec
-      _ -> do
-        skip iprot _t249
-        readFieldEnd iprot
-        read_Get_range_slices_result_fields iprot rec
-read_Get_range_slices_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_range_slices_result_fields iprot (Get_range_slices_result{f_Get_range_slices_result_success=Nothing,f_Get_range_slices_result_ire=Nothing,f_Get_range_slices_result_ue=Nothing,f_Get_range_slices_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Insert_args = Insert_args{f_Insert_args_keyspace :: Maybe String,f_Insert_args_key :: Maybe String,f_Insert_args_column_path :: Maybe ColumnPath,f_Insert_args_value :: Maybe String,f_Insert_args_timestamp :: Maybe Int64,f_Insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Insert_args oprot rec = do
-  writeStructBegin oprot "Insert_args"
-  case f_Insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_value rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("value",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_timestamp rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("timestamp",T_I64,5)
-    writeI64 oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,6)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Insert_args_fields iprot rec = do
-  (_,_t259,_id260) <- readFieldBegin iprot
-  if _t259 == T_STOP then return rec else
-    case _id260 of 
-      1 -> if _t259 == T_STRING then do
-        s <- readString iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_keyspace=Just s}
-        else do
-          skip iprot _t259
-          read_Insert_args_fields iprot rec
-      2 -> if _t259 == T_STRING then do
-        s <- readString iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_key=Just s}
-        else do
-          skip iprot _t259
-          read_Insert_args_fields iprot rec
-      3 -> if _t259 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Insert_args_fields iprot rec{f_Insert_args_column_path=Just s}
-        else do
-          skip iprot _t259
-          read_Insert_args_fields iprot rec
-      4 -> if _t259 == T_STRING then do
-        s <- readString iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_value=Just s}
-        else do
-          skip iprot _t259
-          read_Insert_args_fields iprot rec
-      5 -> if _t259 == T_I64 then do
-        s <- readI64 iprot
-        read_Insert_args_fields iprot rec{f_Insert_args_timestamp=Just s}
-        else do
-          skip iprot _t259
-          read_Insert_args_fields iprot rec
-      6 -> if _t259 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Insert_args_fields iprot rec{f_Insert_args_consistency_level=Just s}
-        else do
-          skip iprot _t259
-          read_Insert_args_fields iprot rec
-      _ -> do
-        skip iprot _t259
-        readFieldEnd iprot
-        read_Insert_args_fields iprot rec
-read_Insert_args iprot = do
-  readStructBegin iprot
-  rec <- read_Insert_args_fields iprot (Insert_args{f_Insert_args_keyspace=Nothing,f_Insert_args_key=Nothing,f_Insert_args_column_path=Nothing,f_Insert_args_value=Nothing,f_Insert_args_timestamp=Nothing,f_Insert_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Insert_result = Insert_result{f_Insert_result_ire :: Maybe InvalidRequestException,f_Insert_result_ue :: Maybe UnavailableException,f_Insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Insert_result oprot rec = do
-  writeStructBegin oprot "Insert_result"
-  case f_Insert_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Insert_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Insert_result_fields iprot rec = do
-  (_,_t264,_id265) <- readFieldBegin iprot
-  if _t264 == T_STOP then return rec else
-    case _id265 of 
-      1 -> if _t264 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Insert_result_fields iprot rec{f_Insert_result_ire=Just s}
-        else do
-          skip iprot _t264
-          read_Insert_result_fields iprot rec
-      2 -> if _t264 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Insert_result_fields iprot rec{f_Insert_result_ue=Just s}
-        else do
-          skip iprot _t264
-          read_Insert_result_fields iprot rec
-      3 -> if _t264 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Insert_result_fields iprot rec{f_Insert_result_te=Just s}
-        else do
-          skip iprot _t264
-          read_Insert_result_fields iprot rec
-      _ -> do
-        skip iprot _t264
-        readFieldEnd iprot
-        read_Insert_result_fields iprot rec
-read_Insert_result iprot = do
-  readStructBegin iprot
-  rec <- read_Insert_result_fields iprot (Insert_result{f_Insert_result_ire=Nothing,f_Insert_result_ue=Nothing,f_Insert_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Batch_insert_args = Batch_insert_args{f_Batch_insert_args_keyspace :: Maybe String,f_Batch_insert_args_key :: Maybe String,f_Batch_insert_args_cfmap :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Batch_insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Batch_insert_args oprot rec = do
-  writeStructBegin oprot "Batch_insert_args"
-  case f_Batch_insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_args_cfmap rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("cfmap",T_MAP,3)
-    (let {f [] = return (); f ((_kiter268,_viter269):t) = do {do {writeString oprot _kiter268;(let {f [] = return (); f (_viter270:t) = do {write_ColumnOrSuperColumn oprot _viter270;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter269); f _viter269;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Batch_insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,4)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Batch_insert_args_fields iprot rec = do
-  (_,_t272,_id273) <- readFieldBegin iprot
-  if _t272 == T_STOP then return rec else
-    case _id273 of 
-      1 -> if _t272 == T_STRING then do
-        s <- readString iprot
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_keyspace=Just s}
-        else do
-          skip iprot _t272
-          read_Batch_insert_args_fields iprot rec
-      2 -> if _t272 == T_STRING then do
-        s <- readString iprot
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_key=Just s}
-        else do
-          skip iprot _t272
-          read_Batch_insert_args_fields iprot rec
-      3 -> if _t272 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype282,_size279) <- readListBegin iprot; f _size279});r <- f (n-1); return $ (k,v):r}} in do {(_ktype275,_vtype276,_size274) <- readMapBegin iprot; l <- f _size274; return $ Map.fromList l})
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_cfmap=Just s}
-        else do
-          skip iprot _t272
-          read_Batch_insert_args_fields iprot rec
-      4 -> if _t272 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_consistency_level=Just s}
-        else do
-          skip iprot _t272
-          read_Batch_insert_args_fields iprot rec
-      _ -> do
-        skip iprot _t272
-        readFieldEnd iprot
-        read_Batch_insert_args_fields iprot rec
-read_Batch_insert_args iprot = do
-  readStructBegin iprot
-  rec <- read_Batch_insert_args_fields iprot (Batch_insert_args{f_Batch_insert_args_keyspace=Nothing,f_Batch_insert_args_key=Nothing,f_Batch_insert_args_cfmap=Nothing,f_Batch_insert_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Batch_insert_result = Batch_insert_result{f_Batch_insert_result_ire :: Maybe InvalidRequestException,f_Batch_insert_result_ue :: Maybe UnavailableException,f_Batch_insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Batch_insert_result oprot rec = do
-  writeStructBegin oprot "Batch_insert_result"
-  case f_Batch_insert_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_insert_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Batch_insert_result_fields iprot rec = do
-  (_,_t287,_id288) <- readFieldBegin iprot
-  if _t287 == T_STOP then return rec else
-    case _id288 of 
-      1 -> if _t287 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ire=Just s}
-        else do
-          skip iprot _t287
-          read_Batch_insert_result_fields iprot rec
-      2 -> if _t287 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ue=Just s}
-        else do
-          skip iprot _t287
-          read_Batch_insert_result_fields iprot rec
-      3 -> if _t287 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_te=Just s}
-        else do
-          skip iprot _t287
-          read_Batch_insert_result_fields iprot rec
-      _ -> do
-        skip iprot _t287
-        readFieldEnd iprot
-        read_Batch_insert_result_fields iprot rec
-read_Batch_insert_result iprot = do
-  readStructBegin iprot
-  rec <- read_Batch_insert_result_fields iprot (Batch_insert_result{f_Batch_insert_result_ire=Nothing,f_Batch_insert_result_ue=Nothing,f_Batch_insert_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Remove_args = Remove_args{f_Remove_args_keyspace :: Maybe String,f_Remove_args_key :: Maybe String,f_Remove_args_column_path :: Maybe ColumnPath,f_Remove_args_timestamp :: Maybe Int64,f_Remove_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Remove_args oprot rec = do
-  writeStructBegin oprot "Remove_args"
-  case f_Remove_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_column_path rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_path",T_STRUCT,3)
-    write_ColumnPath oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_timestamp rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("timestamp",T_I64,4)
-    writeI64 oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,5)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Remove_args_fields iprot rec = do
-  (_,_t292,_id293) <- readFieldBegin iprot
-  if _t292 == T_STOP then return rec else
-    case _id293 of 
-      1 -> if _t292 == T_STRING then do
-        s <- readString iprot
-        read_Remove_args_fields iprot rec{f_Remove_args_keyspace=Just s}
-        else do
-          skip iprot _t292
-          read_Remove_args_fields iprot rec
-      2 -> if _t292 == T_STRING then do
-        s <- readString iprot
-        read_Remove_args_fields iprot rec{f_Remove_args_key=Just s}
-        else do
-          skip iprot _t292
-          read_Remove_args_fields iprot rec
-      3 -> if _t292 == T_STRUCT then do
-        s <- (read_ColumnPath iprot)
-        read_Remove_args_fields iprot rec{f_Remove_args_column_path=Just s}
-        else do
-          skip iprot _t292
-          read_Remove_args_fields iprot rec
-      4 -> if _t292 == T_I64 then do
-        s <- readI64 iprot
-        read_Remove_args_fields iprot rec{f_Remove_args_timestamp=Just s}
-        else do
-          skip iprot _t292
-          read_Remove_args_fields iprot rec
-      5 -> if _t292 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Remove_args_fields iprot rec{f_Remove_args_consistency_level=Just s}
-        else do
-          skip iprot _t292
-          read_Remove_args_fields iprot rec
-      _ -> do
-        skip iprot _t292
-        readFieldEnd iprot
-        read_Remove_args_fields iprot rec
-read_Remove_args iprot = do
-  readStructBegin iprot
-  rec <- read_Remove_args_fields iprot (Remove_args{f_Remove_args_keyspace=Nothing,f_Remove_args_key=Nothing,f_Remove_args_column_path=Nothing,f_Remove_args_timestamp=Nothing,f_Remove_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Remove_result = Remove_result{f_Remove_result_ire :: Maybe InvalidRequestException,f_Remove_result_ue :: Maybe UnavailableException,f_Remove_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Remove_result oprot rec = do
-  writeStructBegin oprot "Remove_result"
-  case f_Remove_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Remove_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Remove_result_fields iprot rec = do
-  (_,_t297,_id298) <- readFieldBegin iprot
-  if _t297 == T_STOP then return rec else
-    case _id298 of 
-      1 -> if _t297 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Remove_result_fields iprot rec{f_Remove_result_ire=Just s}
-        else do
-          skip iprot _t297
-          read_Remove_result_fields iprot rec
-      2 -> if _t297 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Remove_result_fields iprot rec{f_Remove_result_ue=Just s}
-        else do
-          skip iprot _t297
-          read_Remove_result_fields iprot rec
-      3 -> if _t297 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Remove_result_fields iprot rec{f_Remove_result_te=Just s}
-        else do
-          skip iprot _t297
-          read_Remove_result_fields iprot rec
-      _ -> do
-        skip iprot _t297
-        readFieldEnd iprot
-        read_Remove_result_fields iprot rec
-read_Remove_result iprot = do
-  readStructBegin iprot
-  rec <- read_Remove_result_fields iprot (Remove_result{f_Remove_result_ire=Nothing,f_Remove_result_ue=Nothing,f_Remove_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Batch_mutate_args = Batch_mutate_args{f_Batch_mutate_args_keyspace :: Maybe String,f_Batch_mutate_args_mutation_map :: Maybe (Map.Map String (Map.Map String [Mutation])),f_Batch_mutate_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
-write_Batch_mutate_args oprot rec = do
-  writeStructBegin oprot "Batch_mutate_args"
-  case f_Batch_mutate_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_mutate_args_mutation_map rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("mutation_map",T_MAP,2)
-    (let {f [] = return (); f ((_kiter301,_viter302):t) = do {do {writeString oprot _kiter301;(let {f [] = return (); f ((_kiter303,_viter304):t) = do {do {writeString oprot _kiter303;(let {f [] = return (); f (_viter305:t) = do {write_Mutation oprot _viter305;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter304); f _viter304;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _viter302); f (Map.toList _viter302);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Batch_mutate_args_consistency_level rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("consistency_level",T_I32,3)
-    writeI32 oprot (fromEnum _v)
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Batch_mutate_args_fields iprot rec = do
-  (_,_t307,_id308) <- readFieldBegin iprot
-  if _t307 == T_STOP then return rec else
-    case _id308 of 
-      1 -> if _t307 == T_STRING then do
-        s <- readString iprot
-        read_Batch_mutate_args_fields iprot rec{f_Batch_mutate_args_keyspace=Just s}
-        else do
-          skip iprot _t307
-          read_Batch_mutate_args_fields iprot rec
-      2 -> if _t307 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_Mutation iprot);r <- f (n-1); return $ v:r}} in do {(_etype322,_size319) <- readListBegin iprot; f _size319});r <- f (n-1); return $ (k,v):r}} in do {(_ktype315,_vtype316,_size314) <- readMapBegin iprot; l <- f _size314; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype310,_vtype311,_size309) <- readMapBegin iprot; l <- f _size309; return $ Map.fromList l})
-        read_Batch_mutate_args_fields iprot rec{f_Batch_mutate_args_mutation_map=Just s}
-        else do
-          skip iprot _t307
-          read_Batch_mutate_args_fields iprot rec
-      3 -> if _t307 == T_I32 then do
-        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
-        read_Batch_mutate_args_fields iprot rec{f_Batch_mutate_args_consistency_level=Just s}
-        else do
-          skip iprot _t307
-          read_Batch_mutate_args_fields iprot rec
-      _ -> do
-        skip iprot _t307
-        readFieldEnd iprot
-        read_Batch_mutate_args_fields iprot rec
-read_Batch_mutate_args iprot = do
-  readStructBegin iprot
-  rec <- read_Batch_mutate_args_fields iprot (Batch_mutate_args{f_Batch_mutate_args_keyspace=Nothing,f_Batch_mutate_args_mutation_map=Nothing,f_Batch_mutate_args_consistency_level=Nothing})
-  readStructEnd iprot
-  return rec
-data Batch_mutate_result = Batch_mutate_result{f_Batch_mutate_result_ire :: Maybe InvalidRequestException,f_Batch_mutate_result_ue :: Maybe UnavailableException,f_Batch_mutate_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
-write_Batch_mutate_result oprot rec = do
-  writeStructBegin oprot "Batch_mutate_result"
-  case f_Batch_mutate_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_mutate_result_ue rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ue",T_STRUCT,2)
-    write_UnavailableException oprot _v
-    writeFieldEnd oprot}
-  case f_Batch_mutate_result_te rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("te",T_STRUCT,3)
-    write_TimedOutException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Batch_mutate_result_fields iprot rec = do
-  (_,_t327,_id328) <- readFieldBegin iprot
-  if _t327 == T_STOP then return rec else
-    case _id328 of 
-      1 -> if _t327 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Batch_mutate_result_fields iprot rec{f_Batch_mutate_result_ire=Just s}
-        else do
-          skip iprot _t327
-          read_Batch_mutate_result_fields iprot rec
-      2 -> if _t327 == T_STRUCT then do
-        s <- (read_UnavailableException iprot)
-        read_Batch_mutate_result_fields iprot rec{f_Batch_mutate_result_ue=Just s}
-        else do
-          skip iprot _t327
-          read_Batch_mutate_result_fields iprot rec
-      3 -> if _t327 == T_STRUCT then do
-        s <- (read_TimedOutException iprot)
-        read_Batch_mutate_result_fields iprot rec{f_Batch_mutate_result_te=Just s}
-        else do
-          skip iprot _t327
-          read_Batch_mutate_result_fields iprot rec
-      _ -> do
-        skip iprot _t327
-        readFieldEnd iprot
-        read_Batch_mutate_result_fields iprot rec
-read_Batch_mutate_result iprot = do
-  readStructBegin iprot
-  rec <- read_Batch_mutate_result_fields iprot (Batch_mutate_result{f_Batch_mutate_result_ire=Nothing,f_Batch_mutate_result_ue=Nothing,f_Batch_mutate_result_te=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_property_args = Get_string_property_args{f_Get_string_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_property_args oprot rec = do
-  writeStructBegin oprot "Get_string_property_args"
-  case f_Get_string_property_args_property rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("property",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_property_args_fields iprot rec = do
-  (_,_t332,_id333) <- readFieldBegin iprot
-  if _t332 == T_STOP then return rec else
-    case _id333 of 
-      1 -> if _t332 == T_STRING then do
-        s <- readString iprot
-        read_Get_string_property_args_fields iprot rec{f_Get_string_property_args_property=Just s}
-        else do
-          skip iprot _t332
-          read_Get_string_property_args_fields iprot rec
-      _ -> do
-        skip iprot _t332
-        readFieldEnd iprot
-        read_Get_string_property_args_fields iprot rec
-read_Get_string_property_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_property_args_fields iprot (Get_string_property_args{f_Get_string_property_args_property=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_property_result = Get_string_property_result{f_Get_string_property_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_property_result oprot rec = do
-  writeStructBegin oprot "Get_string_property_result"
-  case f_Get_string_property_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRING,0)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_property_result_fields iprot rec = do
-  (_,_t337,_id338) <- readFieldBegin iprot
-  if _t337 == T_STOP then return rec else
-    case _id338 of 
-      0 -> if _t337 == T_STRING then do
-        s <- readString iprot
-        read_Get_string_property_result_fields iprot rec{f_Get_string_property_result_success=Just s}
-        else do
-          skip iprot _t337
-          read_Get_string_property_result_fields iprot rec
-      _ -> do
-        skip iprot _t337
-        readFieldEnd iprot
-        read_Get_string_property_result_fields iprot rec
-read_Get_string_property_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_property_result_fields iprot (Get_string_property_result{f_Get_string_property_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_list_property_args = Get_string_list_property_args{f_Get_string_list_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_list_property_args oprot rec = do
-  writeStructBegin oprot "Get_string_list_property_args"
-  case f_Get_string_list_property_args_property rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("property",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_list_property_args_fields iprot rec = do
-  (_,_t342,_id343) <- readFieldBegin iprot
-  if _t342 == T_STOP then return rec else
-    case _id343 of 
-      1 -> if _t342 == T_STRING then do
-        s <- readString iprot
-        read_Get_string_list_property_args_fields iprot rec{f_Get_string_list_property_args_property=Just s}
-        else do
-          skip iprot _t342
-          read_Get_string_list_property_args_fields iprot rec
-      _ -> do
-        skip iprot _t342
-        readFieldEnd iprot
-        read_Get_string_list_property_args_fields iprot rec
-read_Get_string_list_property_args iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_list_property_args_fields iprot (Get_string_list_property_args{f_Get_string_list_property_args_property=Nothing})
-  readStructEnd iprot
-  return rec
-data Get_string_list_property_result = Get_string_list_property_result{f_Get_string_list_property_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
-write_Get_string_list_property_result oprot rec = do
-  writeStructBegin oprot "Get_string_list_property_result"
-  case f_Get_string_list_property_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter346:t) = do {writeString oprot _viter346;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Get_string_list_property_result_fields iprot rec = do
-  (_,_t348,_id349) <- readFieldBegin iprot
-  if _t348 == T_STOP then return rec else
-    case _id349 of 
-      0 -> if _t348 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype353,_size350) <- readListBegin iprot; f _size350})
-        read_Get_string_list_property_result_fields iprot rec{f_Get_string_list_property_result_success=Just s}
-        else do
-          skip iprot _t348
-          read_Get_string_list_property_result_fields iprot rec
-      _ -> do
-        skip iprot _t348
-        readFieldEnd iprot
-        read_Get_string_list_property_result_fields iprot rec
-read_Get_string_list_property_result iprot = do
-  readStructBegin iprot
-  rec <- read_Get_string_list_property_result_fields iprot (Get_string_list_property_result{f_Get_string_list_property_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_keyspaces_args = Describe_keyspaces_args deriving (Show,Eq,Ord,Typeable)
-write_Describe_keyspaces_args oprot rec = do
-  writeStructBegin oprot "Describe_keyspaces_args"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_keyspaces_args_fields iprot rec = do
-  (_,_t358,_id359) <- readFieldBegin iprot
-  if _t358 == T_STOP then return rec else
-    case _id359 of 
-      _ -> do
-        skip iprot _t358
-        readFieldEnd iprot
-        read_Describe_keyspaces_args_fields iprot rec
-read_Describe_keyspaces_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_keyspaces_args_fields iprot (Describe_keyspaces_args{})
-  readStructEnd iprot
-  return rec
-data Describe_keyspaces_result = Describe_keyspaces_result{f_Describe_keyspaces_result_success :: Maybe (Set.Set String)} deriving (Show,Eq,Ord,Typeable)
-write_Describe_keyspaces_result oprot rec = do
-  writeStructBegin oprot "Describe_keyspaces_result"
-  case f_Describe_keyspaces_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_SET,0)
-    (let {f [] = return (); f (_viter362:t) = do {writeString oprot _viter362;f t}} in do {writeSetBegin oprot (T_STRING,Set.size _v); f (Set.toList _v);writeSetEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_keyspaces_result_fields iprot rec = do
-  (_,_t364,_id365) <- readFieldBegin iprot
-  if _t364 == T_STOP then return rec else
-    case _id365 of 
-      0 -> if _t364 == T_SET then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype369,_size366) <- readSetBegin iprot; l <- f _size366; return $ Set.fromList l})
-        read_Describe_keyspaces_result_fields iprot rec{f_Describe_keyspaces_result_success=Just s}
-        else do
-          skip iprot _t364
-          read_Describe_keyspaces_result_fields iprot rec
-      _ -> do
-        skip iprot _t364
-        readFieldEnd iprot
-        read_Describe_keyspaces_result_fields iprot rec
-read_Describe_keyspaces_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_keyspaces_result_fields iprot (Describe_keyspaces_result{f_Describe_keyspaces_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_cluster_name_args = Describe_cluster_name_args deriving (Show,Eq,Ord,Typeable)
-write_Describe_cluster_name_args oprot rec = do
-  writeStructBegin oprot "Describe_cluster_name_args"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_cluster_name_args_fields iprot rec = do
-  (_,_t374,_id375) <- readFieldBegin iprot
-  if _t374 == T_STOP then return rec else
-    case _id375 of 
-      _ -> do
-        skip iprot _t374
-        readFieldEnd iprot
-        read_Describe_cluster_name_args_fields iprot rec
-read_Describe_cluster_name_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_cluster_name_args_fields iprot (Describe_cluster_name_args{})
-  readStructEnd iprot
-  return rec
-data Describe_cluster_name_result = Describe_cluster_name_result{f_Describe_cluster_name_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Describe_cluster_name_result oprot rec = do
-  writeStructBegin oprot "Describe_cluster_name_result"
-  case f_Describe_cluster_name_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRING,0)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_cluster_name_result_fields iprot rec = do
-  (_,_t379,_id380) <- readFieldBegin iprot
-  if _t379 == T_STOP then return rec else
-    case _id380 of 
-      0 -> if _t379 == T_STRING then do
-        s <- readString iprot
-        read_Describe_cluster_name_result_fields iprot rec{f_Describe_cluster_name_result_success=Just s}
-        else do
-          skip iprot _t379
-          read_Describe_cluster_name_result_fields iprot rec
-      _ -> do
-        skip iprot _t379
-        readFieldEnd iprot
-        read_Describe_cluster_name_result_fields iprot rec
-read_Describe_cluster_name_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_cluster_name_result_fields iprot (Describe_cluster_name_result{f_Describe_cluster_name_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_version_args = Describe_version_args deriving (Show,Eq,Ord,Typeable)
-write_Describe_version_args oprot rec = do
-  writeStructBegin oprot "Describe_version_args"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_version_args_fields iprot rec = do
-  (_,_t384,_id385) <- readFieldBegin iprot
-  if _t384 == T_STOP then return rec else
-    case _id385 of 
-      _ -> do
-        skip iprot _t384
-        readFieldEnd iprot
-        read_Describe_version_args_fields iprot rec
-read_Describe_version_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_version_args_fields iprot (Describe_version_args{})
-  readStructEnd iprot
-  return rec
-data Describe_version_result = Describe_version_result{f_Describe_version_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Describe_version_result oprot rec = do
-  writeStructBegin oprot "Describe_version_result"
-  case f_Describe_version_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRING,0)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_version_result_fields iprot rec = do
-  (_,_t389,_id390) <- readFieldBegin iprot
-  if _t389 == T_STOP then return rec else
-    case _id390 of 
-      0 -> if _t389 == T_STRING then do
-        s <- readString iprot
-        read_Describe_version_result_fields iprot rec{f_Describe_version_result_success=Just s}
-        else do
-          skip iprot _t389
-          read_Describe_version_result_fields iprot rec
-      _ -> do
-        skip iprot _t389
-        readFieldEnd iprot
-        read_Describe_version_result_fields iprot rec
-read_Describe_version_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_version_result_fields iprot (Describe_version_result{f_Describe_version_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_ring_args = Describe_ring_args{f_Describe_ring_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Describe_ring_args oprot rec = do
-  writeStructBegin oprot "Describe_ring_args"
-  case f_Describe_ring_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_ring_args_fields iprot rec = do
-  (_,_t394,_id395) <- readFieldBegin iprot
-  if _t394 == T_STOP then return rec else
-    case _id395 of 
-      1 -> if _t394 == T_STRING then do
-        s <- readString iprot
-        read_Describe_ring_args_fields iprot rec{f_Describe_ring_args_keyspace=Just s}
-        else do
-          skip iprot _t394
-          read_Describe_ring_args_fields iprot rec
-      _ -> do
-        skip iprot _t394
-        readFieldEnd iprot
-        read_Describe_ring_args_fields iprot rec
-read_Describe_ring_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_ring_args_fields iprot (Describe_ring_args{f_Describe_ring_args_keyspace=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_ring_result = Describe_ring_result{f_Describe_ring_result_success :: Maybe [TokenRange],f_Describe_ring_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
-write_Describe_ring_result oprot rec = do
-  writeStructBegin oprot "Describe_ring_result"
-  case f_Describe_ring_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter398:t) = do {write_TokenRange oprot _viter398;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_Describe_ring_result_ire rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("ire",T_STRUCT,1)
-    write_InvalidRequestException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_ring_result_fields iprot rec = do
-  (_,_t400,_id401) <- readFieldBegin iprot
-  if _t400 == T_STOP then return rec else
-    case _id401 of 
-      0 -> if _t400 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_TokenRange iprot);r <- f (n-1); return $ v:r}} in do {(_etype405,_size402) <- readListBegin iprot; f _size402})
-        read_Describe_ring_result_fields iprot rec{f_Describe_ring_result_success=Just s}
-        else do
-          skip iprot _t400
-          read_Describe_ring_result_fields iprot rec
-      1 -> if _t400 == T_STRUCT then do
-        s <- (read_InvalidRequestException iprot)
-        read_Describe_ring_result_fields iprot rec{f_Describe_ring_result_ire=Just s}
-        else do
-          skip iprot _t400
-          read_Describe_ring_result_fields iprot rec
-      _ -> do
-        skip iprot _t400
-        readFieldEnd iprot
-        read_Describe_ring_result_fields iprot rec
-read_Describe_ring_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_ring_result_fields iprot (Describe_ring_result{f_Describe_ring_result_success=Nothing,f_Describe_ring_result_ire=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_partitioner_args = Describe_partitioner_args deriving (Show,Eq,Ord,Typeable)
-write_Describe_partitioner_args oprot rec = do
-  writeStructBegin oprot "Describe_partitioner_args"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_partitioner_args_fields iprot rec = do
-  (_,_t410,_id411) <- readFieldBegin iprot
-  if _t410 == T_STOP then return rec else
-    case _id411 of 
-      _ -> do
-        skip iprot _t410
-        readFieldEnd iprot
-        read_Describe_partitioner_args_fields iprot rec
-read_Describe_partitioner_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_partitioner_args_fields iprot (Describe_partitioner_args{})
-  readStructEnd iprot
-  return rec
-data Describe_partitioner_result = Describe_partitioner_result{f_Describe_partitioner_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Describe_partitioner_result oprot rec = do
-  writeStructBegin oprot "Describe_partitioner_result"
-  case f_Describe_partitioner_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_STRING,0)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_partitioner_result_fields iprot rec = do
-  (_,_t415,_id416) <- readFieldBegin iprot
-  if _t415 == T_STOP then return rec else
-    case _id416 of 
-      0 -> if _t415 == T_STRING then do
-        s <- readString iprot
-        read_Describe_partitioner_result_fields iprot rec{f_Describe_partitioner_result_success=Just s}
-        else do
-          skip iprot _t415
-          read_Describe_partitioner_result_fields iprot rec
-      _ -> do
-        skip iprot _t415
-        readFieldEnd iprot
-        read_Describe_partitioner_result_fields iprot rec
-read_Describe_partitioner_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_partitioner_result_fields iprot (Describe_partitioner_result{f_Describe_partitioner_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_keyspace_args = Describe_keyspace_args{f_Describe_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_Describe_keyspace_args oprot rec = do
-  writeStructBegin oprot "Describe_keyspace_args"
-  case f_Describe_keyspace_args_keyspace rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keyspace",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_keyspace_args_fields iprot rec = do
-  (_,_t420,_id421) <- readFieldBegin iprot
-  if _t420 == T_STOP then return rec else
-    case _id421 of 
-      1 -> if _t420 == T_STRING then do
-        s <- readString iprot
-        read_Describe_keyspace_args_fields iprot rec{f_Describe_keyspace_args_keyspace=Just s}
-        else do
-          skip iprot _t420
-          read_Describe_keyspace_args_fields iprot rec
-      _ -> do
-        skip iprot _t420
-        readFieldEnd iprot
-        read_Describe_keyspace_args_fields iprot rec
-read_Describe_keyspace_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_keyspace_args_fields iprot (Describe_keyspace_args{f_Describe_keyspace_args_keyspace=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_keyspace_result = Describe_keyspace_result{f_Describe_keyspace_result_success :: Maybe (Map.Map String (Map.Map String String)),f_Describe_keyspace_result_nfe :: Maybe NotFoundException} deriving (Show,Eq,Ord,Typeable)
-write_Describe_keyspace_result oprot rec = do
-  writeStructBegin oprot "Describe_keyspace_result"
-  case f_Describe_keyspace_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_MAP,0)
-    (let {f [] = return (); f ((_kiter424,_viter425):t) = do {do {writeString oprot _kiter424;(let {f [] = return (); f ((_kiter426,_viter427):t) = do {do {writeString oprot _kiter426;writeString oprot _viter427};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,Map.size _viter425); f (Map.toList _viter425);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  case f_Describe_keyspace_result_nfe rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("nfe",T_STRUCT,1)
-    write_NotFoundException oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_keyspace_result_fields iprot rec = do
-  (_,_t429,_id430) <- readFieldBegin iprot
-  if _t429 == T_STOP then return rec else
-    case _id430 of 
-      0 -> if _t429 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype437,_vtype438,_size436) <- readMapBegin iprot; l <- f _size436; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype432,_vtype433,_size431) <- readMapBegin iprot; l <- f _size431; return $ Map.fromList l})
-        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_success=Just s}
-        else do
-          skip iprot _t429
-          read_Describe_keyspace_result_fields iprot rec
-      1 -> if _t429 == T_STRUCT then do
-        s <- (read_NotFoundException iprot)
-        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_nfe=Just s}
-        else do
-          skip iprot _t429
-          read_Describe_keyspace_result_fields iprot rec
-      _ -> do
-        skip iprot _t429
-        readFieldEnd iprot
-        read_Describe_keyspace_result_fields iprot rec
-read_Describe_keyspace_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_keyspace_result_fields iprot (Describe_keyspace_result{f_Describe_keyspace_result_success=Nothing,f_Describe_keyspace_result_nfe=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_splits_args = Describe_splits_args{f_Describe_splits_args_start_token :: Maybe String,f_Describe_splits_args_end_token :: Maybe String,f_Describe_splits_args_keys_per_split :: Maybe Int} deriving (Show,Eq,Ord,Typeable)
-write_Describe_splits_args oprot rec = do
-  writeStructBegin oprot "Describe_splits_args"
-  case f_Describe_splits_args_start_token rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start_token",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Describe_splits_args_end_token rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("end_token",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Describe_splits_args_keys_per_split rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("keys_per_split",T_I32,3)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_splits_args_fields iprot rec = do
-  (_,_t444,_id445) <- readFieldBegin iprot
-  if _t444 == T_STOP then return rec else
-    case _id445 of 
-      1 -> if _t444 == T_STRING then do
-        s <- readString iprot
-        read_Describe_splits_args_fields iprot rec{f_Describe_splits_args_start_token=Just s}
-        else do
-          skip iprot _t444
-          read_Describe_splits_args_fields iprot rec
-      2 -> if _t444 == T_STRING then do
-        s <- readString iprot
-        read_Describe_splits_args_fields iprot rec{f_Describe_splits_args_end_token=Just s}
-        else do
-          skip iprot _t444
-          read_Describe_splits_args_fields iprot rec
-      3 -> if _t444 == T_I32 then do
-        s <- readI32 iprot
-        read_Describe_splits_args_fields iprot rec{f_Describe_splits_args_keys_per_split=Just s}
-        else do
-          skip iprot _t444
-          read_Describe_splits_args_fields iprot rec
-      _ -> do
-        skip iprot _t444
-        readFieldEnd iprot
-        read_Describe_splits_args_fields iprot rec
-read_Describe_splits_args iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_splits_args_fields iprot (Describe_splits_args{f_Describe_splits_args_start_token=Nothing,f_Describe_splits_args_end_token=Nothing,f_Describe_splits_args_keys_per_split=Nothing})
-  readStructEnd iprot
-  return rec
-data Describe_splits_result = Describe_splits_result{f_Describe_splits_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
-write_Describe_splits_result oprot rec = do
-  writeStructBegin oprot "Describe_splits_result"
-  case f_Describe_splits_result_success rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("success",T_LIST,0)
-    (let {f [] = return (); f (_viter448:t) = do {writeString oprot _viter448;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Describe_splits_result_fields iprot rec = do
-  (_,_t450,_id451) <- readFieldBegin iprot
-  if _t450 == T_STOP then return rec else
-    case _id451 of 
-      0 -> if _t450 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype455,_size452) <- readListBegin iprot; f _size452})
-        read_Describe_splits_result_fields iprot rec{f_Describe_splits_result_success=Just s}
-        else do
-          skip iprot _t450
-          read_Describe_splits_result_fields iprot rec
-      _ -> do
-        skip iprot _t450
-        readFieldEnd iprot
-        read_Describe_splits_result_fields iprot rec
-read_Describe_splits_result iprot = do
-  readStructBegin iprot
-  rec <- read_Describe_splits_result_fields iprot (Describe_splits_result{f_Describe_splits_result_success=Nothing})
-  readStructEnd iprot
-  return rec
-process_login (seqid, iprot, oprot, handler) = do
-  args <- read_Login_args iprot
-  readMessageEnd iprot
-  rs <- return (Login_result Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (do
-        Iface.login handler (f_Login_args_keyspace args) (f_Login_args_auth_request args)
-        return rs)
-      (\e  -> 
-        return rs{f_Login_result_authnx =Just e}))
-    (\e  -> 
-      return rs{f_Login_result_authzx =Just e}))
-  writeMessageBegin oprot ("login", M_REPLY, seqid);
-  write_Login_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get (seqid, iprot, oprot, handler) = do
-  args <- read_Get_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_result Nothing Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (Control.Exception.catch
-          (do
-            res <- Iface.get handler (f_Get_args_keyspace args) (f_Get_args_key args) (f_Get_args_column_path args) (f_Get_args_consistency_level args)
-            return rs{f_Get_result_success= Just res})
-          (\e  -> 
-            return rs{f_Get_result_ire =Just e}))
-        (\e  -> 
-          return rs{f_Get_result_nfe =Just e}))
-      (\e  -> 
-        return rs{f_Get_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_result_te =Just e}))
-  writeMessageBegin oprot ("get", M_REPLY, seqid);
-  write_Get_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_slice (seqid, iprot, oprot, handler) = do
-  args <- read_Get_slice_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_slice_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_slice handler (f_Get_slice_args_keyspace args) (f_Get_slice_args_key args) (f_Get_slice_args_column_parent args) (f_Get_slice_args_predicate args) (f_Get_slice_args_consistency_level args)
-          return rs{f_Get_slice_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_slice_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_slice_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_slice_result_te =Just e}))
-  writeMessageBegin oprot ("get_slice", M_REPLY, seqid);
-  write_Get_slice_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_multiget (seqid, iprot, oprot, handler) = do
-  args <- read_Multiget_args iprot
-  readMessageEnd iprot
-  rs <- return (Multiget_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.multiget handler (f_Multiget_args_keyspace args) (f_Multiget_args_keys args) (f_Multiget_args_column_path args) (f_Multiget_args_consistency_level args)
-          return rs{f_Multiget_result_success= Just res})
-        (\e  -> 
-          return rs{f_Multiget_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Multiget_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Multiget_result_te =Just e}))
-  writeMessageBegin oprot ("multiget", M_REPLY, seqid);
-  write_Multiget_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_multiget_slice (seqid, iprot, oprot, handler) = do
-  args <- read_Multiget_slice_args iprot
-  readMessageEnd iprot
-  rs <- return (Multiget_slice_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.multiget_slice handler (f_Multiget_slice_args_keyspace args) (f_Multiget_slice_args_keys args) (f_Multiget_slice_args_column_parent args) (f_Multiget_slice_args_predicate args) (f_Multiget_slice_args_consistency_level args)
-          return rs{f_Multiget_slice_result_success= Just res})
-        (\e  -> 
-          return rs{f_Multiget_slice_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Multiget_slice_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Multiget_slice_result_te =Just e}))
-  writeMessageBegin oprot ("multiget_slice", M_REPLY, seqid);
-  write_Multiget_slice_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_count (seqid, iprot, oprot, handler) = do
-  args <- read_Get_count_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_count_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_count handler (f_Get_count_args_keyspace args) (f_Get_count_args_key args) (f_Get_count_args_column_parent args) (f_Get_count_args_consistency_level args)
-          return rs{f_Get_count_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_count_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_count_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_count_result_te =Just e}))
-  writeMessageBegin oprot ("get_count", M_REPLY, seqid);
-  write_Get_count_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_range_slice (seqid, iprot, oprot, handler) = do
-  args <- read_Get_range_slice_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_range_slice_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_range_slice handler (f_Get_range_slice_args_keyspace args) (f_Get_range_slice_args_column_parent args) (f_Get_range_slice_args_predicate args) (f_Get_range_slice_args_start_key args) (f_Get_range_slice_args_finish_key args) (f_Get_range_slice_args_row_count args) (f_Get_range_slice_args_consistency_level args)
-          return rs{f_Get_range_slice_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_range_slice_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_range_slice_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_range_slice_result_te =Just e}))
-  writeMessageBegin oprot ("get_range_slice", M_REPLY, seqid);
-  write_Get_range_slice_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_range_slices (seqid, iprot, oprot, handler) = do
-  args <- read_Get_range_slices_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_range_slices_result Nothing Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          res <- Iface.get_range_slices handler (f_Get_range_slices_args_keyspace args) (f_Get_range_slices_args_column_parent args) (f_Get_range_slices_args_predicate args) (f_Get_range_slices_args_range args) (f_Get_range_slices_args_consistency_level args)
-          return rs{f_Get_range_slices_result_success= Just res})
-        (\e  -> 
-          return rs{f_Get_range_slices_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Get_range_slices_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Get_range_slices_result_te =Just e}))
-  writeMessageBegin oprot ("get_range_slices", M_REPLY, seqid);
-  write_Get_range_slices_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_insert (seqid, iprot, oprot, handler) = do
-  args <- read_Insert_args iprot
-  readMessageEnd iprot
-  rs <- return (Insert_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.insert handler (f_Insert_args_keyspace args) (f_Insert_args_key args) (f_Insert_args_column_path args) (f_Insert_args_value args) (f_Insert_args_timestamp args) (f_Insert_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Insert_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Insert_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Insert_result_te =Just e}))
-  writeMessageBegin oprot ("insert", M_REPLY, seqid);
-  write_Insert_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_batch_insert (seqid, iprot, oprot, handler) = do
-  args <- read_Batch_insert_args iprot
-  readMessageEnd iprot
-  rs <- return (Batch_insert_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.batch_insert handler (f_Batch_insert_args_keyspace args) (f_Batch_insert_args_key args) (f_Batch_insert_args_cfmap args) (f_Batch_insert_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Batch_insert_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Batch_insert_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Batch_insert_result_te =Just e}))
-  writeMessageBegin oprot ("batch_insert", M_REPLY, seqid);
-  write_Batch_insert_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_remove (seqid, iprot, oprot, handler) = do
-  args <- read_Remove_args iprot
-  readMessageEnd iprot
-  rs <- return (Remove_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.remove handler (f_Remove_args_keyspace args) (f_Remove_args_key args) (f_Remove_args_column_path args) (f_Remove_args_timestamp args) (f_Remove_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Remove_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Remove_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Remove_result_te =Just e}))
-  writeMessageBegin oprot ("remove", M_REPLY, seqid);
-  write_Remove_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_batch_mutate (seqid, iprot, oprot, handler) = do
-  args <- read_Batch_mutate_args iprot
-  readMessageEnd iprot
-  rs <- return (Batch_mutate_result Nothing Nothing Nothing)
-  res <- (Control.Exception.catch
-    (Control.Exception.catch
-      (Control.Exception.catch
-        (do
-          Iface.batch_mutate handler (f_Batch_mutate_args_keyspace args) (f_Batch_mutate_args_mutation_map args) (f_Batch_mutate_args_consistency_level args)
-          return rs)
-        (\e  -> 
-          return rs{f_Batch_mutate_result_ire =Just e}))
-      (\e  -> 
-        return rs{f_Batch_mutate_result_ue =Just e}))
-    (\e  -> 
-      return rs{f_Batch_mutate_result_te =Just e}))
-  writeMessageBegin oprot ("batch_mutate", M_REPLY, seqid);
-  write_Batch_mutate_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_string_property (seqid, iprot, oprot, handler) = do
-  args <- read_Get_string_property_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_string_property_result Nothing)
-  res <- (do
-    res <- Iface.get_string_property handler (f_Get_string_property_args_property args)
-    return rs{f_Get_string_property_result_success= Just res})
-  writeMessageBegin oprot ("get_string_property", M_REPLY, seqid);
-  write_Get_string_property_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_get_string_list_property (seqid, iprot, oprot, handler) = do
-  args <- read_Get_string_list_property_args iprot
-  readMessageEnd iprot
-  rs <- return (Get_string_list_property_result Nothing)
-  res <- (do
-    res <- Iface.get_string_list_property handler (f_Get_string_list_property_args_property args)
-    return rs{f_Get_string_list_property_result_success= Just res})
-  writeMessageBegin oprot ("get_string_list_property", M_REPLY, seqid);
-  write_Get_string_list_property_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_keyspaces (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_keyspaces_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_keyspaces_result Nothing)
-  res <- (do
-    res <- Iface.describe_keyspaces handler
-    return rs{f_Describe_keyspaces_result_success= Just res})
-  writeMessageBegin oprot ("describe_keyspaces", M_REPLY, seqid);
-  write_Describe_keyspaces_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_cluster_name (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_cluster_name_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_cluster_name_result Nothing)
-  res <- (do
-    res <- Iface.describe_cluster_name handler
-    return rs{f_Describe_cluster_name_result_success= Just res})
-  writeMessageBegin oprot ("describe_cluster_name", M_REPLY, seqid);
-  write_Describe_cluster_name_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_version (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_version_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_version_result Nothing)
-  res <- (do
-    res <- Iface.describe_version handler
-    return rs{f_Describe_version_result_success= Just res})
-  writeMessageBegin oprot ("describe_version", M_REPLY, seqid);
-  write_Describe_version_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_ring (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_ring_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_ring_result Nothing Nothing)
-  res <- (Control.Exception.catch
-    (do
-      res <- Iface.describe_ring handler (f_Describe_ring_args_keyspace args)
-      return rs{f_Describe_ring_result_success= Just res})
-    (\e  -> 
-      return rs{f_Describe_ring_result_ire =Just e}))
-  writeMessageBegin oprot ("describe_ring", M_REPLY, seqid);
-  write_Describe_ring_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_partitioner (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_partitioner_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_partitioner_result Nothing)
-  res <- (do
-    res <- Iface.describe_partitioner handler
-    return rs{f_Describe_partitioner_result_success= Just res})
-  writeMessageBegin oprot ("describe_partitioner", M_REPLY, seqid);
-  write_Describe_partitioner_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_keyspace (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_keyspace_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_keyspace_result Nothing Nothing)
-  res <- (Control.Exception.catch
-    (do
-      res <- Iface.describe_keyspace handler (f_Describe_keyspace_args_keyspace args)
-      return rs{f_Describe_keyspace_result_success= Just res})
-    (\e  -> 
-      return rs{f_Describe_keyspace_result_nfe =Just e}))
-  writeMessageBegin oprot ("describe_keyspace", M_REPLY, seqid);
-  write_Describe_keyspace_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-process_describe_splits (seqid, iprot, oprot, handler) = do
-  args <- read_Describe_splits_args iprot
-  readMessageEnd iprot
-  rs <- return (Describe_splits_result Nothing)
-  res <- (do
-    res <- Iface.describe_splits handler (f_Describe_splits_args_start_token args) (f_Describe_splits_args_end_token args) (f_Describe_splits_args_keys_per_split args)
-    return rs{f_Describe_splits_result_success= Just res})
-  writeMessageBegin oprot ("describe_splits", M_REPLY, seqid);
-  write_Describe_splits_result oprot res
-  writeMessageEnd oprot
-  tFlush (getTransport oprot)
-proc handler (iprot,oprot) (name,typ,seqid) = case name of
-  "login" -> process_login (seqid,iprot,oprot,handler)
-  "get" -> process_get (seqid,iprot,oprot,handler)
-  "get_slice" -> process_get_slice (seqid,iprot,oprot,handler)
-  "multiget" -> process_multiget (seqid,iprot,oprot,handler)
-  "multiget_slice" -> process_multiget_slice (seqid,iprot,oprot,handler)
-  "get_count" -> process_get_count (seqid,iprot,oprot,handler)
-  "get_range_slice" -> process_get_range_slice (seqid,iprot,oprot,handler)
-  "get_range_slices" -> process_get_range_slices (seqid,iprot,oprot,handler)
-  "insert" -> process_insert (seqid,iprot,oprot,handler)
-  "batch_insert" -> process_batch_insert (seqid,iprot,oprot,handler)
-  "remove" -> process_remove (seqid,iprot,oprot,handler)
-  "batch_mutate" -> process_batch_mutate (seqid,iprot,oprot,handler)
-  "get_string_property" -> process_get_string_property (seqid,iprot,oprot,handler)
-  "get_string_list_property" -> process_get_string_list_property (seqid,iprot,oprot,handler)
-  "describe_keyspaces" -> process_describe_keyspaces (seqid,iprot,oprot,handler)
-  "describe_cluster_name" -> process_describe_cluster_name (seqid,iprot,oprot,handler)
-  "describe_version" -> process_describe_version (seqid,iprot,oprot,handler)
-  "describe_ring" -> process_describe_ring (seqid,iprot,oprot,handler)
-  "describe_partitioner" -> process_describe_partitioner (seqid,iprot,oprot,handler)
-  "describe_keyspace" -> process_describe_keyspace (seqid,iprot,oprot,handler)
-  "describe_splits" -> process_describe_splits (seqid,iprot,oprot,handler)
-  _ -> do
-    skip iprot T_STRUCT
-    readMessageEnd iprot
-    writeMessageBegin oprot (name,M_EXCEPTION,seqid)
-    writeAppExn oprot (AppExn AE_UNKNOWN_METHOD ("Unknown function " ++ name))
-    writeMessageEnd oprot
-    tFlush (getTransport oprot)
-process handler (iprot, oprot) = do
-  (name, typ, seqid) <- readMessageBegin iprot
-  proc handler (iprot,oprot) (name,typ,seqid)
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-----------------------------------------------------------------
+-- Autogenerated by Thrift                                     --
+--                                                             --
+-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
+-----------------------------------------------------------------
+
+module Database.Cassandra.Thrift.Cassandra where
+import Thrift
+import Data.Typeable ( Typeable )
+import Control.Exception
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import Data.ByteString.Lazy
+import Data.Int
+import Data.Word
+import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromIntegral, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
+import Database.Cassandra.Thrift.Cassandra_Types
+import qualified Database.Cassandra.Thrift.Cassandra_Iface as Iface
+-- HELPER FUNCTIONS AND STRUCTURES --
+
+data Login_args = Login_args{f_Login_args_auth_request :: Maybe AuthenticationRequest} deriving (Show,Eq,Ord,Typeable)
+write_Login_args oprot record = do
+  writeStructBegin oprot "Login_args"
+  case f_Login_args_auth_request record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("auth_request",T_STRUCT,1)
+    write_AuthenticationRequest oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Login_args_fields iprot record = do
+  (_,_t184,_id185) <- readFieldBegin iprot
+  if _t184 == T_STOP then return record else
+    case _id185 of 
+      1 -> if _t184 == T_STRUCT then do
+        s <- (read_AuthenticationRequest iprot)
+        read_Login_args_fields iprot record{f_Login_args_auth_request=Just s}
+        else do
+          skip iprot _t184
+          read_Login_args_fields iprot record
+      _ -> do
+        skip iprot _t184
+        readFieldEnd iprot
+        read_Login_args_fields iprot record
+read_Login_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Login_args_fields iprot (Login_args{f_Login_args_auth_request=Nothing})
+  readStructEnd iprot
+  return record
+data Login_result = Login_result{f_Login_result_authnx :: Maybe AuthenticationException,f_Login_result_authzx :: Maybe AuthorizationException} deriving (Show,Eq,Ord,Typeable)
+write_Login_result oprot record = do
+  writeStructBegin oprot "Login_result"
+  case f_Login_result_authnx record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("authnx",T_STRUCT,1)
+    write_AuthenticationException oprot _v
+    writeFieldEnd oprot}
+  case f_Login_result_authzx record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("authzx",T_STRUCT,2)
+    write_AuthorizationException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Login_result_fields iprot record = do
+  (_,_t189,_id190) <- readFieldBegin iprot
+  if _t189 == T_STOP then return record else
+    case _id190 of 
+      1 -> if _t189 == T_STRUCT then do
+        s <- (read_AuthenticationException iprot)
+        read_Login_result_fields iprot record{f_Login_result_authnx=Just s}
+        else do
+          skip iprot _t189
+          read_Login_result_fields iprot record
+      2 -> if _t189 == T_STRUCT then do
+        s <- (read_AuthorizationException iprot)
+        read_Login_result_fields iprot record{f_Login_result_authzx=Just s}
+        else do
+          skip iprot _t189
+          read_Login_result_fields iprot record
+      _ -> do
+        skip iprot _t189
+        readFieldEnd iprot
+        read_Login_result_fields iprot record
+read_Login_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Login_result_fields iprot (Login_result{f_Login_result_authnx=Nothing,f_Login_result_authzx=Nothing})
+  readStructEnd iprot
+  return record
+data Set_keyspace_args = Set_keyspace_args{f_Set_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Set_keyspace_args oprot record = do
+  writeStructBegin oprot "Set_keyspace_args"
+  case f_Set_keyspace_args_keyspace record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Set_keyspace_args_fields iprot record = do
+  (_,_t194,_id195) <- readFieldBegin iprot
+  if _t194 == T_STOP then return record else
+    case _id195 of 
+      1 -> if _t194 == T_STRING then do
+        s <- readString iprot
+        read_Set_keyspace_args_fields iprot record{f_Set_keyspace_args_keyspace=Just s}
+        else do
+          skip iprot _t194
+          read_Set_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t194
+        readFieldEnd iprot
+        read_Set_keyspace_args_fields iprot record
+read_Set_keyspace_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Set_keyspace_args_fields iprot (Set_keyspace_args{f_Set_keyspace_args_keyspace=Nothing})
+  readStructEnd iprot
+  return record
+data Set_keyspace_result = Set_keyspace_result{f_Set_keyspace_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_Set_keyspace_result oprot record = do
+  writeStructBegin oprot "Set_keyspace_result"
+  case f_Set_keyspace_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Set_keyspace_result_fields iprot record = do
+  (_,_t199,_id200) <- readFieldBegin iprot
+  if _t199 == T_STOP then return record else
+    case _id200 of 
+      1 -> if _t199 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Set_keyspace_result_fields iprot record{f_Set_keyspace_result_ire=Just s}
+        else do
+          skip iprot _t199
+          read_Set_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t199
+        readFieldEnd iprot
+        read_Set_keyspace_result_fields iprot record
+read_Set_keyspace_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Set_keyspace_result_fields iprot (Set_keyspace_result{f_Set_keyspace_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data Get_args = Get_args{f_Get_args_key :: Maybe ByteString,f_Get_args_column_path :: Maybe ColumnPath,f_Get_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_args oprot record = do
+  writeStructBegin oprot "Get_args"
+  case f_Get_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Get_args_column_path record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_path",T_STRUCT,2)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Get_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,3)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_args_fields iprot record = do
+  (_,_t204,_id205) <- readFieldBegin iprot
+  if _t204 == T_STOP then return record else
+    case _id205 of 
+      1 -> if _t204 == T_STRING then do
+        s <- readBinary iprot
+        read_Get_args_fields iprot record{f_Get_args_key=Just s}
+        else do
+          skip iprot _t204
+          read_Get_args_fields iprot record
+      2 -> if _t204 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Get_args_fields iprot record{f_Get_args_column_path=Just s}
+        else do
+          skip iprot _t204
+          read_Get_args_fields iprot record
+      3 -> if _t204 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Get_args_fields iprot record{f_Get_args_consistency_level=Just s}
+        else do
+          skip iprot _t204
+          read_Get_args_fields iprot record
+      _ -> do
+        skip iprot _t204
+        readFieldEnd iprot
+        read_Get_args_fields iprot record
+read_Get_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_args_fields iprot (Get_args{f_Get_args_key=Nothing,f_Get_args_column_path=Nothing,f_Get_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Get_result = Get_result{f_Get_result_success :: Maybe ColumnOrSuperColumn,f_Get_result_ire :: Maybe InvalidRequestException,f_Get_result_nfe :: Maybe NotFoundException,f_Get_result_ue :: Maybe UnavailableException,f_Get_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_result oprot record = do
+  writeStructBegin oprot "Get_result"
+  case f_Get_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRUCT,0)
+    write_ColumnOrSuperColumn oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_nfe record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("nfe",T_STRUCT,2)
+    write_NotFoundException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,3)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,4)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_result_fields iprot record = do
+  (_,_t209,_id210) <- readFieldBegin iprot
+  if _t209 == T_STOP then return record else
+    case _id210 of 
+      0 -> if _t209 == T_STRUCT then do
+        s <- (read_ColumnOrSuperColumn iprot)
+        read_Get_result_fields iprot record{f_Get_result_success=Just s}
+        else do
+          skip iprot _t209
+          read_Get_result_fields iprot record
+      1 -> if _t209 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_result_fields iprot record{f_Get_result_ire=Just s}
+        else do
+          skip iprot _t209
+          read_Get_result_fields iprot record
+      2 -> if _t209 == T_STRUCT then do
+        s <- (read_NotFoundException iprot)
+        read_Get_result_fields iprot record{f_Get_result_nfe=Just s}
+        else do
+          skip iprot _t209
+          read_Get_result_fields iprot record
+      3 -> if _t209 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_result_fields iprot record{f_Get_result_ue=Just s}
+        else do
+          skip iprot _t209
+          read_Get_result_fields iprot record
+      4 -> if _t209 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_result_fields iprot record{f_Get_result_te=Just s}
+        else do
+          skip iprot _t209
+          read_Get_result_fields iprot record
+      _ -> do
+        skip iprot _t209
+        readFieldEnd iprot
+        read_Get_result_fields iprot record
+read_Get_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_result_fields iprot (Get_result{f_Get_result_success=Nothing,f_Get_result_ire=Nothing,f_Get_result_nfe=Nothing,f_Get_result_ue=Nothing,f_Get_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Get_slice_args = Get_slice_args{f_Get_slice_args_key :: Maybe ByteString,f_Get_slice_args_column_parent :: Maybe ColumnParent,f_Get_slice_args_predicate :: Maybe SlicePredicate,f_Get_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_slice_args oprot record = do
+  writeStructBegin oprot "Get_slice_args"
+  case f_Get_slice_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_slice_args_fields iprot record = do
+  (_,_t214,_id215) <- readFieldBegin iprot
+  if _t214 == T_STOP then return record else
+    case _id215 of 
+      1 -> if _t214 == T_STRING then do
+        s <- readBinary iprot
+        read_Get_slice_args_fields iprot record{f_Get_slice_args_key=Just s}
+        else do
+          skip iprot _t214
+          read_Get_slice_args_fields iprot record
+      2 -> if _t214 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_slice_args_fields iprot record{f_Get_slice_args_column_parent=Just s}
+        else do
+          skip iprot _t214
+          read_Get_slice_args_fields iprot record
+      3 -> if _t214 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_slice_args_fields iprot record{f_Get_slice_args_predicate=Just s}
+        else do
+          skip iprot _t214
+          read_Get_slice_args_fields iprot record
+      4 -> if _t214 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Get_slice_args_fields iprot record{f_Get_slice_args_consistency_level=Just s}
+        else do
+          skip iprot _t214
+          read_Get_slice_args_fields iprot record
+      _ -> do
+        skip iprot _t214
+        readFieldEnd iprot
+        read_Get_slice_args_fields iprot record
+read_Get_slice_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_slice_args_fields iprot (Get_slice_args{f_Get_slice_args_key=Nothing,f_Get_slice_args_column_parent=Nothing,f_Get_slice_args_predicate=Nothing,f_Get_slice_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Get_slice_result = Get_slice_result{f_Get_slice_result_success :: Maybe [ColumnOrSuperColumn],f_Get_slice_result_ire :: Maybe InvalidRequestException,f_Get_slice_result_ue :: Maybe UnavailableException,f_Get_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_slice_result oprot record = do
+  writeStructBegin oprot "Get_slice_result"
+  case f_Get_slice_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter218:t) = do {write_ColumnOrSuperColumn oprot _viter218;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Get_slice_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_slice_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_slice_result_fields iprot record = do
+  (_,_t220,_id221) <- readFieldBegin iprot
+  if _t220 == T_STOP then return record else
+    case _id221 of 
+      0 -> if _t220 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype225,_size222) <- readListBegin iprot; f _size222})
+        read_Get_slice_result_fields iprot record{f_Get_slice_result_success=Just s}
+        else do
+          skip iprot _t220
+          read_Get_slice_result_fields iprot record
+      1 -> if _t220 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_slice_result_fields iprot record{f_Get_slice_result_ire=Just s}
+        else do
+          skip iprot _t220
+          read_Get_slice_result_fields iprot record
+      2 -> if _t220 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_slice_result_fields iprot record{f_Get_slice_result_ue=Just s}
+        else do
+          skip iprot _t220
+          read_Get_slice_result_fields iprot record
+      3 -> if _t220 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_slice_result_fields iprot record{f_Get_slice_result_te=Just s}
+        else do
+          skip iprot _t220
+          read_Get_slice_result_fields iprot record
+      _ -> do
+        skip iprot _t220
+        readFieldEnd iprot
+        read_Get_slice_result_fields iprot record
+read_Get_slice_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_slice_result_fields iprot (Get_slice_result{f_Get_slice_result_success=Nothing,f_Get_slice_result_ire=Nothing,f_Get_slice_result_ue=Nothing,f_Get_slice_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Get_count_args = Get_count_args{f_Get_count_args_key :: Maybe ByteString,f_Get_count_args_column_parent :: Maybe ColumnParent,f_Get_count_args_predicate :: Maybe SlicePredicate,f_Get_count_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_count_args oprot record = do
+  writeStructBegin oprot "Get_count_args"
+  case f_Get_count_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_args_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_count_args_fields iprot record = do
+  (_,_t230,_id231) <- readFieldBegin iprot
+  if _t230 == T_STOP then return record else
+    case _id231 of 
+      1 -> if _t230 == T_STRING then do
+        s <- readBinary iprot
+        read_Get_count_args_fields iprot record{f_Get_count_args_key=Just s}
+        else do
+          skip iprot _t230
+          read_Get_count_args_fields iprot record
+      2 -> if _t230 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_count_args_fields iprot record{f_Get_count_args_column_parent=Just s}
+        else do
+          skip iprot _t230
+          read_Get_count_args_fields iprot record
+      3 -> if _t230 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_count_args_fields iprot record{f_Get_count_args_predicate=Just s}
+        else do
+          skip iprot _t230
+          read_Get_count_args_fields iprot record
+      4 -> if _t230 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Get_count_args_fields iprot record{f_Get_count_args_consistency_level=Just s}
+        else do
+          skip iprot _t230
+          read_Get_count_args_fields iprot record
+      _ -> do
+        skip iprot _t230
+        readFieldEnd iprot
+        read_Get_count_args_fields iprot record
+read_Get_count_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_count_args_fields iprot (Get_count_args{f_Get_count_args_key=Nothing,f_Get_count_args_column_parent=Nothing,f_Get_count_args_predicate=Nothing,f_Get_count_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Get_count_result = Get_count_result{f_Get_count_result_success :: Maybe Int32,f_Get_count_result_ire :: Maybe InvalidRequestException,f_Get_count_result_ue :: Maybe UnavailableException,f_Get_count_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_count_result oprot record = do
+  writeStructBegin oprot "Get_count_result"
+  case f_Get_count_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_I32,0)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_count_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_count_result_fields iprot record = do
+  (_,_t235,_id236) <- readFieldBegin iprot
+  if _t235 == T_STOP then return record else
+    case _id236 of 
+      0 -> if _t235 == T_I32 then do
+        s <- readI32 iprot
+        read_Get_count_result_fields iprot record{f_Get_count_result_success=Just s}
+        else do
+          skip iprot _t235
+          read_Get_count_result_fields iprot record
+      1 -> if _t235 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_count_result_fields iprot record{f_Get_count_result_ire=Just s}
+        else do
+          skip iprot _t235
+          read_Get_count_result_fields iprot record
+      2 -> if _t235 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_count_result_fields iprot record{f_Get_count_result_ue=Just s}
+        else do
+          skip iprot _t235
+          read_Get_count_result_fields iprot record
+      3 -> if _t235 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_count_result_fields iprot record{f_Get_count_result_te=Just s}
+        else do
+          skip iprot _t235
+          read_Get_count_result_fields iprot record
+      _ -> do
+        skip iprot _t235
+        readFieldEnd iprot
+        read_Get_count_result_fields iprot record
+read_Get_count_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_count_result_fields iprot (Get_count_result{f_Get_count_result_success=Nothing,f_Get_count_result_ire=Nothing,f_Get_count_result_ue=Nothing,f_Get_count_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Multiget_slice_args = Multiget_slice_args{f_Multiget_slice_args_keys :: Maybe [ByteString],f_Multiget_slice_args_column_parent :: Maybe ColumnParent,f_Multiget_slice_args_predicate :: Maybe SlicePredicate,f_Multiget_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_slice_args oprot record = do
+  writeStructBegin oprot "Multiget_slice_args"
+  case f_Multiget_slice_args_keys record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keys",T_LIST,1)
+    (let {f [] = return (); f (_viter239:t) = do {writeBinary oprot _viter239;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_slice_args_fields iprot record = do
+  (_,_t241,_id242) <- readFieldBegin iprot
+  if _t241 == T_STOP then return record else
+    case _id242 of 
+      1 -> if _t241 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readBinary iprot;r <- f (n-1); return $ v:r}} in do {(_etype246,_size243) <- readListBegin iprot; f _size243})
+        read_Multiget_slice_args_fields iprot record{f_Multiget_slice_args_keys=Just s}
+        else do
+          skip iprot _t241
+          read_Multiget_slice_args_fields iprot record
+      2 -> if _t241 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Multiget_slice_args_fields iprot record{f_Multiget_slice_args_column_parent=Just s}
+        else do
+          skip iprot _t241
+          read_Multiget_slice_args_fields iprot record
+      3 -> if _t241 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Multiget_slice_args_fields iprot record{f_Multiget_slice_args_predicate=Just s}
+        else do
+          skip iprot _t241
+          read_Multiget_slice_args_fields iprot record
+      4 -> if _t241 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Multiget_slice_args_fields iprot record{f_Multiget_slice_args_consistency_level=Just s}
+        else do
+          skip iprot _t241
+          read_Multiget_slice_args_fields iprot record
+      _ -> do
+        skip iprot _t241
+        readFieldEnd iprot
+        read_Multiget_slice_args_fields iprot record
+read_Multiget_slice_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Multiget_slice_args_fields iprot (Multiget_slice_args{f_Multiget_slice_args_keys=Nothing,f_Multiget_slice_args_column_parent=Nothing,f_Multiget_slice_args_predicate=Nothing,f_Multiget_slice_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Multiget_slice_result = Multiget_slice_result{f_Multiget_slice_result_success :: Maybe (Map.Map ByteString [ColumnOrSuperColumn]),f_Multiget_slice_result_ire :: Maybe InvalidRequestException,f_Multiget_slice_result_ue :: Maybe UnavailableException,f_Multiget_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_slice_result oprot record = do
+  writeStructBegin oprot "Multiget_slice_result"
+  case f_Multiget_slice_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_MAP,0)
+    (let {f [] = return (); f ((_kiter250,_viter251):t) = do {do {writeBinary oprot _kiter250;(let {f [] = return (); f (_viter252:t) = do {write_ColumnOrSuperColumn oprot _viter252;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _viter251); f _viter251;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,fromIntegral $ Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_slice_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_slice_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_slice_result_fields iprot record = do
+  (_,_t254,_id255) <- readFieldBegin iprot
+  if _t254 == T_STOP then return record else
+    case _id255 of 
+      0 -> if _t254 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readBinary iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype264,_size261) <- readListBegin iprot; f _size261});r <- f (n-1); return $ (k,v):r}} in do {(_ktype257,_vtype258,_size256) <- readMapBegin iprot; l <- f _size256; return $ Map.fromList l})
+        read_Multiget_slice_result_fields iprot record{f_Multiget_slice_result_success=Just s}
+        else do
+          skip iprot _t254
+          read_Multiget_slice_result_fields iprot record
+      1 -> if _t254 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Multiget_slice_result_fields iprot record{f_Multiget_slice_result_ire=Just s}
+        else do
+          skip iprot _t254
+          read_Multiget_slice_result_fields iprot record
+      2 -> if _t254 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Multiget_slice_result_fields iprot record{f_Multiget_slice_result_ue=Just s}
+        else do
+          skip iprot _t254
+          read_Multiget_slice_result_fields iprot record
+      3 -> if _t254 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Multiget_slice_result_fields iprot record{f_Multiget_slice_result_te=Just s}
+        else do
+          skip iprot _t254
+          read_Multiget_slice_result_fields iprot record
+      _ -> do
+        skip iprot _t254
+        readFieldEnd iprot
+        read_Multiget_slice_result_fields iprot record
+read_Multiget_slice_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Multiget_slice_result_fields iprot (Multiget_slice_result{f_Multiget_slice_result_success=Nothing,f_Multiget_slice_result_ire=Nothing,f_Multiget_slice_result_ue=Nothing,f_Multiget_slice_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Multiget_count_args = Multiget_count_args{f_Multiget_count_args_keys :: Maybe [ByteString],f_Multiget_count_args_column_parent :: Maybe ColumnParent,f_Multiget_count_args_predicate :: Maybe SlicePredicate,f_Multiget_count_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_count_args oprot record = do
+  writeStructBegin oprot "Multiget_count_args"
+  case f_Multiget_count_args_keys record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keys",T_LIST,1)
+    (let {f [] = return (); f (_viter268:t) = do {writeBinary oprot _viter268;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_count_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_count_args_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_count_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_count_args_fields iprot record = do
+  (_,_t270,_id271) <- readFieldBegin iprot
+  if _t270 == T_STOP then return record else
+    case _id271 of 
+      1 -> if _t270 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readBinary iprot;r <- f (n-1); return $ v:r}} in do {(_etype275,_size272) <- readListBegin iprot; f _size272})
+        read_Multiget_count_args_fields iprot record{f_Multiget_count_args_keys=Just s}
+        else do
+          skip iprot _t270
+          read_Multiget_count_args_fields iprot record
+      2 -> if _t270 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Multiget_count_args_fields iprot record{f_Multiget_count_args_column_parent=Just s}
+        else do
+          skip iprot _t270
+          read_Multiget_count_args_fields iprot record
+      3 -> if _t270 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Multiget_count_args_fields iprot record{f_Multiget_count_args_predicate=Just s}
+        else do
+          skip iprot _t270
+          read_Multiget_count_args_fields iprot record
+      4 -> if _t270 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Multiget_count_args_fields iprot record{f_Multiget_count_args_consistency_level=Just s}
+        else do
+          skip iprot _t270
+          read_Multiget_count_args_fields iprot record
+      _ -> do
+        skip iprot _t270
+        readFieldEnd iprot
+        read_Multiget_count_args_fields iprot record
+read_Multiget_count_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Multiget_count_args_fields iprot (Multiget_count_args{f_Multiget_count_args_keys=Nothing,f_Multiget_count_args_column_parent=Nothing,f_Multiget_count_args_predicate=Nothing,f_Multiget_count_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Multiget_count_result = Multiget_count_result{f_Multiget_count_result_success :: Maybe (Map.Map ByteString Int32),f_Multiget_count_result_ire :: Maybe InvalidRequestException,f_Multiget_count_result_ue :: Maybe UnavailableException,f_Multiget_count_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Multiget_count_result oprot record = do
+  writeStructBegin oprot "Multiget_count_result"
+  case f_Multiget_count_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_MAP,0)
+    (let {f [] = return (); f ((_kiter279,_viter280):t) = do {do {writeBinary oprot _kiter279;writeI32 oprot _viter280};f t}} in do {writeMapBegin oprot (T_STRING,T_I32,fromIntegral $ Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Multiget_count_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_count_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Multiget_count_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Multiget_count_result_fields iprot record = do
+  (_,_t282,_id283) <- readFieldBegin iprot
+  if _t282 == T_STOP then return record else
+    case _id283 of 
+      0 -> if _t282 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readBinary iprot; v <- readI32 iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype285,_vtype286,_size284) <- readMapBegin iprot; l <- f _size284; return $ Map.fromList l})
+        read_Multiget_count_result_fields iprot record{f_Multiget_count_result_success=Just s}
+        else do
+          skip iprot _t282
+          read_Multiget_count_result_fields iprot record
+      1 -> if _t282 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Multiget_count_result_fields iprot record{f_Multiget_count_result_ire=Just s}
+        else do
+          skip iprot _t282
+          read_Multiget_count_result_fields iprot record
+      2 -> if _t282 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Multiget_count_result_fields iprot record{f_Multiget_count_result_ue=Just s}
+        else do
+          skip iprot _t282
+          read_Multiget_count_result_fields iprot record
+      3 -> if _t282 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Multiget_count_result_fields iprot record{f_Multiget_count_result_te=Just s}
+        else do
+          skip iprot _t282
+          read_Multiget_count_result_fields iprot record
+      _ -> do
+        skip iprot _t282
+        readFieldEnd iprot
+        read_Multiget_count_result_fields iprot record
+read_Multiget_count_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Multiget_count_result_fields iprot (Multiget_count_result{f_Multiget_count_result_success=Nothing,f_Multiget_count_result_ire=Nothing,f_Multiget_count_result_ue=Nothing,f_Multiget_count_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Get_range_slices_args = Get_range_slices_args{f_Get_range_slices_args_column_parent :: Maybe ColumnParent,f_Get_range_slices_args_predicate :: Maybe SlicePredicate,f_Get_range_slices_args_range :: Maybe KeyRange,f_Get_range_slices_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_range_slices_args oprot record = do
+  writeStructBegin oprot "Get_range_slices_args"
+  case f_Get_range_slices_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,1)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,2)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_range record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("range",T_STRUCT,3)
+    write_KeyRange oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_range_slices_args_fields iprot record = do
+  (_,_t292,_id293) <- readFieldBegin iprot
+  if _t292 == T_STOP then return record else
+    case _id293 of 
+      1 -> if _t292 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_range_slices_args_fields iprot record{f_Get_range_slices_args_column_parent=Just s}
+        else do
+          skip iprot _t292
+          read_Get_range_slices_args_fields iprot record
+      2 -> if _t292 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_range_slices_args_fields iprot record{f_Get_range_slices_args_predicate=Just s}
+        else do
+          skip iprot _t292
+          read_Get_range_slices_args_fields iprot record
+      3 -> if _t292 == T_STRUCT then do
+        s <- (read_KeyRange iprot)
+        read_Get_range_slices_args_fields iprot record{f_Get_range_slices_args_range=Just s}
+        else do
+          skip iprot _t292
+          read_Get_range_slices_args_fields iprot record
+      4 -> if _t292 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Get_range_slices_args_fields iprot record{f_Get_range_slices_args_consistency_level=Just s}
+        else do
+          skip iprot _t292
+          read_Get_range_slices_args_fields iprot record
+      _ -> do
+        skip iprot _t292
+        readFieldEnd iprot
+        read_Get_range_slices_args_fields iprot record
+read_Get_range_slices_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_range_slices_args_fields iprot (Get_range_slices_args{f_Get_range_slices_args_column_parent=Nothing,f_Get_range_slices_args_predicate=Nothing,f_Get_range_slices_args_range=Nothing,f_Get_range_slices_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Get_range_slices_result = Get_range_slices_result{f_Get_range_slices_result_success :: Maybe [KeySlice],f_Get_range_slices_result_ire :: Maybe InvalidRequestException,f_Get_range_slices_result_ue :: Maybe UnavailableException,f_Get_range_slices_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_range_slices_result oprot record = do
+  writeStructBegin oprot "Get_range_slices_result"
+  case f_Get_range_slices_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter296:t) = do {write_KeySlice oprot _viter296;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Get_range_slices_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_range_slices_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_range_slices_result_fields iprot record = do
+  (_,_t298,_id299) <- readFieldBegin iprot
+  if _t298 == T_STOP then return record else
+    case _id299 of 
+      0 -> if _t298 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype303,_size300) <- readListBegin iprot; f _size300})
+        read_Get_range_slices_result_fields iprot record{f_Get_range_slices_result_success=Just s}
+        else do
+          skip iprot _t298
+          read_Get_range_slices_result_fields iprot record
+      1 -> if _t298 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_range_slices_result_fields iprot record{f_Get_range_slices_result_ire=Just s}
+        else do
+          skip iprot _t298
+          read_Get_range_slices_result_fields iprot record
+      2 -> if _t298 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_range_slices_result_fields iprot record{f_Get_range_slices_result_ue=Just s}
+        else do
+          skip iprot _t298
+          read_Get_range_slices_result_fields iprot record
+      3 -> if _t298 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_range_slices_result_fields iprot record{f_Get_range_slices_result_te=Just s}
+        else do
+          skip iprot _t298
+          read_Get_range_slices_result_fields iprot record
+      _ -> do
+        skip iprot _t298
+        readFieldEnd iprot
+        read_Get_range_slices_result_fields iprot record
+read_Get_range_slices_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_range_slices_result_fields iprot (Get_range_slices_result{f_Get_range_slices_result_success=Nothing,f_Get_range_slices_result_ire=Nothing,f_Get_range_slices_result_ue=Nothing,f_Get_range_slices_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Get_indexed_slices_args = Get_indexed_slices_args{f_Get_indexed_slices_args_column_parent :: Maybe ColumnParent,f_Get_indexed_slices_args_index_clause :: Maybe IndexClause,f_Get_indexed_slices_args_column_predicate :: Maybe SlicePredicate,f_Get_indexed_slices_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Get_indexed_slices_args oprot record = do
+  writeStructBegin oprot "Get_indexed_slices_args"
+  case f_Get_indexed_slices_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,1)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Get_indexed_slices_args_index_clause record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("index_clause",T_STRUCT,2)
+    write_IndexClause oprot _v
+    writeFieldEnd oprot}
+  case f_Get_indexed_slices_args_column_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  case f_Get_indexed_slices_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_indexed_slices_args_fields iprot record = do
+  (_,_t308,_id309) <- readFieldBegin iprot
+  if _t308 == T_STOP then return record else
+    case _id309 of 
+      1 -> if _t308 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Get_indexed_slices_args_fields iprot record{f_Get_indexed_slices_args_column_parent=Just s}
+        else do
+          skip iprot _t308
+          read_Get_indexed_slices_args_fields iprot record
+      2 -> if _t308 == T_STRUCT then do
+        s <- (read_IndexClause iprot)
+        read_Get_indexed_slices_args_fields iprot record{f_Get_indexed_slices_args_index_clause=Just s}
+        else do
+          skip iprot _t308
+          read_Get_indexed_slices_args_fields iprot record
+      3 -> if _t308 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Get_indexed_slices_args_fields iprot record{f_Get_indexed_slices_args_column_predicate=Just s}
+        else do
+          skip iprot _t308
+          read_Get_indexed_slices_args_fields iprot record
+      4 -> if _t308 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Get_indexed_slices_args_fields iprot record{f_Get_indexed_slices_args_consistency_level=Just s}
+        else do
+          skip iprot _t308
+          read_Get_indexed_slices_args_fields iprot record
+      _ -> do
+        skip iprot _t308
+        readFieldEnd iprot
+        read_Get_indexed_slices_args_fields iprot record
+read_Get_indexed_slices_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_indexed_slices_args_fields iprot (Get_indexed_slices_args{f_Get_indexed_slices_args_column_parent=Nothing,f_Get_indexed_slices_args_index_clause=Nothing,f_Get_indexed_slices_args_column_predicate=Nothing,f_Get_indexed_slices_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Get_indexed_slices_result = Get_indexed_slices_result{f_Get_indexed_slices_result_success :: Maybe [KeySlice],f_Get_indexed_slices_result_ire :: Maybe InvalidRequestException,f_Get_indexed_slices_result_ue :: Maybe UnavailableException,f_Get_indexed_slices_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Get_indexed_slices_result oprot record = do
+  writeStructBegin oprot "Get_indexed_slices_result"
+  case f_Get_indexed_slices_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter312:t) = do {write_KeySlice oprot _viter312;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Get_indexed_slices_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_indexed_slices_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Get_indexed_slices_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Get_indexed_slices_result_fields iprot record = do
+  (_,_t314,_id315) <- readFieldBegin iprot
+  if _t314 == T_STOP then return record else
+    case _id315 of 
+      0 -> if _t314 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype319,_size316) <- readListBegin iprot; f _size316})
+        read_Get_indexed_slices_result_fields iprot record{f_Get_indexed_slices_result_success=Just s}
+        else do
+          skip iprot _t314
+          read_Get_indexed_slices_result_fields iprot record
+      1 -> if _t314 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_indexed_slices_result_fields iprot record{f_Get_indexed_slices_result_ire=Just s}
+        else do
+          skip iprot _t314
+          read_Get_indexed_slices_result_fields iprot record
+      2 -> if _t314 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_indexed_slices_result_fields iprot record{f_Get_indexed_slices_result_ue=Just s}
+        else do
+          skip iprot _t314
+          read_Get_indexed_slices_result_fields iprot record
+      3 -> if _t314 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_indexed_slices_result_fields iprot record{f_Get_indexed_slices_result_te=Just s}
+        else do
+          skip iprot _t314
+          read_Get_indexed_slices_result_fields iprot record
+      _ -> do
+        skip iprot _t314
+        readFieldEnd iprot
+        read_Get_indexed_slices_result_fields iprot record
+read_Get_indexed_slices_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Get_indexed_slices_result_fields iprot (Get_indexed_slices_result{f_Get_indexed_slices_result_success=Nothing,f_Get_indexed_slices_result_ire=Nothing,f_Get_indexed_slices_result_ue=Nothing,f_Get_indexed_slices_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Insert_args = Insert_args{f_Insert_args_key :: Maybe ByteString,f_Insert_args_column_parent :: Maybe ColumnParent,f_Insert_args_column :: Maybe Column,f_Insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Insert_args oprot record = do
+  writeStructBegin oprot "Insert_args"
+  case f_Insert_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_column_parent record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
+    write_ColumnParent oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column",T_STRUCT,3)
+    write_Column oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Insert_args_fields iprot record = do
+  (_,_t324,_id325) <- readFieldBegin iprot
+  if _t324 == T_STOP then return record else
+    case _id325 of 
+      1 -> if _t324 == T_STRING then do
+        s <- readBinary iprot
+        read_Insert_args_fields iprot record{f_Insert_args_key=Just s}
+        else do
+          skip iprot _t324
+          read_Insert_args_fields iprot record
+      2 -> if _t324 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Insert_args_fields iprot record{f_Insert_args_column_parent=Just s}
+        else do
+          skip iprot _t324
+          read_Insert_args_fields iprot record
+      3 -> if _t324 == T_STRUCT then do
+        s <- (read_Column iprot)
+        read_Insert_args_fields iprot record{f_Insert_args_column=Just s}
+        else do
+          skip iprot _t324
+          read_Insert_args_fields iprot record
+      4 -> if _t324 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Insert_args_fields iprot record{f_Insert_args_consistency_level=Just s}
+        else do
+          skip iprot _t324
+          read_Insert_args_fields iprot record
+      _ -> do
+        skip iprot _t324
+        readFieldEnd iprot
+        read_Insert_args_fields iprot record
+read_Insert_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Insert_args_fields iprot (Insert_args{f_Insert_args_key=Nothing,f_Insert_args_column_parent=Nothing,f_Insert_args_column=Nothing,f_Insert_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Insert_result = Insert_result{f_Insert_result_ire :: Maybe InvalidRequestException,f_Insert_result_ue :: Maybe UnavailableException,f_Insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Insert_result oprot record = do
+  writeStructBegin oprot "Insert_result"
+  case f_Insert_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Insert_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Insert_result_fields iprot record = do
+  (_,_t329,_id330) <- readFieldBegin iprot
+  if _t329 == T_STOP then return record else
+    case _id330 of 
+      1 -> if _t329 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Insert_result_fields iprot record{f_Insert_result_ire=Just s}
+        else do
+          skip iprot _t329
+          read_Insert_result_fields iprot record
+      2 -> if _t329 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Insert_result_fields iprot record{f_Insert_result_ue=Just s}
+        else do
+          skip iprot _t329
+          read_Insert_result_fields iprot record
+      3 -> if _t329 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Insert_result_fields iprot record{f_Insert_result_te=Just s}
+        else do
+          skip iprot _t329
+          read_Insert_result_fields iprot record
+      _ -> do
+        skip iprot _t329
+        readFieldEnd iprot
+        read_Insert_result_fields iprot record
+read_Insert_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Insert_result_fields iprot (Insert_result{f_Insert_result_ire=Nothing,f_Insert_result_ue=Nothing,f_Insert_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Remove_args = Remove_args{f_Remove_args_key :: Maybe ByteString,f_Remove_args_column_path :: Maybe ColumnPath,f_Remove_args_timestamp :: Maybe Int64,f_Remove_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Remove_args oprot record = do
+  writeStructBegin oprot "Remove_args"
+  case f_Remove_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_column_path record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_path",T_STRUCT,2)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_timestamp record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("timestamp",T_I64,3)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,4)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Remove_args_fields iprot record = do
+  (_,_t334,_id335) <- readFieldBegin iprot
+  if _t334 == T_STOP then return record else
+    case _id335 of 
+      1 -> if _t334 == T_STRING then do
+        s <- readBinary iprot
+        read_Remove_args_fields iprot record{f_Remove_args_key=Just s}
+        else do
+          skip iprot _t334
+          read_Remove_args_fields iprot record
+      2 -> if _t334 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Remove_args_fields iprot record{f_Remove_args_column_path=Just s}
+        else do
+          skip iprot _t334
+          read_Remove_args_fields iprot record
+      3 -> if _t334 == T_I64 then do
+        s <- readI64 iprot
+        read_Remove_args_fields iprot record{f_Remove_args_timestamp=Just s}
+        else do
+          skip iprot _t334
+          read_Remove_args_fields iprot record
+      4 -> if _t334 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Remove_args_fields iprot record{f_Remove_args_consistency_level=Just s}
+        else do
+          skip iprot _t334
+          read_Remove_args_fields iprot record
+      _ -> do
+        skip iprot _t334
+        readFieldEnd iprot
+        read_Remove_args_fields iprot record
+read_Remove_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Remove_args_fields iprot (Remove_args{f_Remove_args_key=Nothing,f_Remove_args_column_path=Nothing,f_Remove_args_timestamp=Nothing,f_Remove_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Remove_result = Remove_result{f_Remove_result_ire :: Maybe InvalidRequestException,f_Remove_result_ue :: Maybe UnavailableException,f_Remove_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Remove_result oprot record = do
+  writeStructBegin oprot "Remove_result"
+  case f_Remove_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Remove_result_fields iprot record = do
+  (_,_t339,_id340) <- readFieldBegin iprot
+  if _t339 == T_STOP then return record else
+    case _id340 of 
+      1 -> if _t339 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Remove_result_fields iprot record{f_Remove_result_ire=Just s}
+        else do
+          skip iprot _t339
+          read_Remove_result_fields iprot record
+      2 -> if _t339 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Remove_result_fields iprot record{f_Remove_result_ue=Just s}
+        else do
+          skip iprot _t339
+          read_Remove_result_fields iprot record
+      3 -> if _t339 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Remove_result_fields iprot record{f_Remove_result_te=Just s}
+        else do
+          skip iprot _t339
+          read_Remove_result_fields iprot record
+      _ -> do
+        skip iprot _t339
+        readFieldEnd iprot
+        read_Remove_result_fields iprot record
+read_Remove_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Remove_result_fields iprot (Remove_result{f_Remove_result_ire=Nothing,f_Remove_result_ue=Nothing,f_Remove_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Batch_mutate_args = Batch_mutate_args{f_Batch_mutate_args_mutation_map :: Maybe (Map.Map ByteString (Map.Map String [Mutation])),f_Batch_mutate_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Batch_mutate_args oprot record = do
+  writeStructBegin oprot "Batch_mutate_args"
+  case f_Batch_mutate_args_mutation_map record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("mutation_map",T_MAP,1)
+    (let {f [] = return (); f ((_kiter343,_viter344):t) = do {do {writeBinary oprot _kiter343;(let {f [] = return (); f ((_kiter345,_viter346):t) = do {do {writeString oprot _kiter345;(let {f [] = return (); f (_viter347:t) = do {write_Mutation oprot _viter347;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _viter346); f _viter346;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,fromIntegral $ Map.size _viter344); f (Map.toList _viter344);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,fromIntegral $ Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Batch_mutate_args_consistency_level record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("consistency_level",T_I32,2)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Batch_mutate_args_fields iprot record = do
+  (_,_t349,_id350) <- readFieldBegin iprot
+  if _t349 == T_STOP then return record else
+    case _id350 of 
+      1 -> if _t349 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readBinary iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_Mutation iprot);r <- f (n-1); return $ v:r}} in do {(_etype364,_size361) <- readListBegin iprot; f _size361});r <- f (n-1); return $ (k,v):r}} in do {(_ktype357,_vtype358,_size356) <- readMapBegin iprot; l <- f _size356; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype352,_vtype353,_size351) <- readMapBegin iprot; l <- f _size351; return $ Map.fromList l})
+        read_Batch_mutate_args_fields iprot record{f_Batch_mutate_args_mutation_map=Just s}
+        else do
+          skip iprot _t349
+          read_Batch_mutate_args_fields iprot record
+      2 -> if _t349 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Batch_mutate_args_fields iprot record{f_Batch_mutate_args_consistency_level=Just s}
+        else do
+          skip iprot _t349
+          read_Batch_mutate_args_fields iprot record
+      _ -> do
+        skip iprot _t349
+        readFieldEnd iprot
+        read_Batch_mutate_args_fields iprot record
+read_Batch_mutate_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Batch_mutate_args_fields iprot (Batch_mutate_args{f_Batch_mutate_args_mutation_map=Nothing,f_Batch_mutate_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Batch_mutate_result = Batch_mutate_result{f_Batch_mutate_result_ire :: Maybe InvalidRequestException,f_Batch_mutate_result_ue :: Maybe UnavailableException,f_Batch_mutate_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Batch_mutate_result oprot record = do
+  writeStructBegin oprot "Batch_mutate_result"
+  case f_Batch_mutate_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_mutate_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Batch_mutate_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Batch_mutate_result_fields iprot record = do
+  (_,_t369,_id370) <- readFieldBegin iprot
+  if _t369 == T_STOP then return record else
+    case _id370 of 
+      1 -> if _t369 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Batch_mutate_result_fields iprot record{f_Batch_mutate_result_ire=Just s}
+        else do
+          skip iprot _t369
+          read_Batch_mutate_result_fields iprot record
+      2 -> if _t369 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Batch_mutate_result_fields iprot record{f_Batch_mutate_result_ue=Just s}
+        else do
+          skip iprot _t369
+          read_Batch_mutate_result_fields iprot record
+      3 -> if _t369 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Batch_mutate_result_fields iprot record{f_Batch_mutate_result_te=Just s}
+        else do
+          skip iprot _t369
+          read_Batch_mutate_result_fields iprot record
+      _ -> do
+        skip iprot _t369
+        readFieldEnd iprot
+        read_Batch_mutate_result_fields iprot record
+read_Batch_mutate_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Batch_mutate_result_fields iprot (Batch_mutate_result{f_Batch_mutate_result_ire=Nothing,f_Batch_mutate_result_ue=Nothing,f_Batch_mutate_result_te=Nothing})
+  readStructEnd iprot
+  return record
+data Truncate_args = Truncate_args{f_Truncate_args_cfname :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Truncate_args oprot record = do
+  writeStructBegin oprot "Truncate_args"
+  case f_Truncate_args_cfname record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("cfname",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Truncate_args_fields iprot record = do
+  (_,_t374,_id375) <- readFieldBegin iprot
+  if _t374 == T_STOP then return record else
+    case _id375 of 
+      1 -> if _t374 == T_STRING then do
+        s <- readString iprot
+        read_Truncate_args_fields iprot record{f_Truncate_args_cfname=Just s}
+        else do
+          skip iprot _t374
+          read_Truncate_args_fields iprot record
+      _ -> do
+        skip iprot _t374
+        readFieldEnd iprot
+        read_Truncate_args_fields iprot record
+read_Truncate_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Truncate_args_fields iprot (Truncate_args{f_Truncate_args_cfname=Nothing})
+  readStructEnd iprot
+  return record
+data Truncate_result = Truncate_result{f_Truncate_result_ire :: Maybe InvalidRequestException,f_Truncate_result_ue :: Maybe UnavailableException} deriving (Show,Eq,Ord,Typeable)
+write_Truncate_result oprot record = do
+  writeStructBegin oprot "Truncate_result"
+  case f_Truncate_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Truncate_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Truncate_result_fields iprot record = do
+  (_,_t379,_id380) <- readFieldBegin iprot
+  if _t379 == T_STOP then return record else
+    case _id380 of 
+      1 -> if _t379 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Truncate_result_fields iprot record{f_Truncate_result_ire=Just s}
+        else do
+          skip iprot _t379
+          read_Truncate_result_fields iprot record
+      2 -> if _t379 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Truncate_result_fields iprot record{f_Truncate_result_ue=Just s}
+        else do
+          skip iprot _t379
+          read_Truncate_result_fields iprot record
+      _ -> do
+        skip iprot _t379
+        readFieldEnd iprot
+        read_Truncate_result_fields iprot record
+read_Truncate_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Truncate_result_fields iprot (Truncate_result{f_Truncate_result_ire=Nothing,f_Truncate_result_ue=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_schema_versions_args = Describe_schema_versions_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_schema_versions_args oprot record = do
+  writeStructBegin oprot "Describe_schema_versions_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_schema_versions_args_fields iprot record = do
+  (_,_t384,_id385) <- readFieldBegin iprot
+  if _t384 == T_STOP then return record else
+    case _id385 of 
+      _ -> do
+        skip iprot _t384
+        readFieldEnd iprot
+        read_Describe_schema_versions_args_fields iprot record
+read_Describe_schema_versions_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_schema_versions_args_fields iprot (Describe_schema_versions_args{})
+  readStructEnd iprot
+  return record
+data Describe_schema_versions_result = Describe_schema_versions_result{f_Describe_schema_versions_result_success :: Maybe (Map.Map String [String]),f_Describe_schema_versions_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_Describe_schema_versions_result oprot record = do
+  writeStructBegin oprot "Describe_schema_versions_result"
+  case f_Describe_schema_versions_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_MAP,0)
+    (let {f [] = return (); f ((_kiter388,_viter389):t) = do {do {writeString oprot _kiter388;(let {f [] = return (); f (_viter390:t) = do {writeString oprot _viter390;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _viter389); f _viter389;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,fromIntegral $ Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_Describe_schema_versions_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_schema_versions_result_fields iprot record = do
+  (_,_t392,_id393) <- readFieldBegin iprot
+  if _t392 == T_STOP then return record else
+    case _id393 of 
+      0 -> if _t392 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype402,_size399) <- readListBegin iprot; f _size399});r <- f (n-1); return $ (k,v):r}} in do {(_ktype395,_vtype396,_size394) <- readMapBegin iprot; l <- f _size394; return $ Map.fromList l})
+        read_Describe_schema_versions_result_fields iprot record{f_Describe_schema_versions_result_success=Just s}
+        else do
+          skip iprot _t392
+          read_Describe_schema_versions_result_fields iprot record
+      1 -> if _t392 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Describe_schema_versions_result_fields iprot record{f_Describe_schema_versions_result_ire=Just s}
+        else do
+          skip iprot _t392
+          read_Describe_schema_versions_result_fields iprot record
+      _ -> do
+        skip iprot _t392
+        readFieldEnd iprot
+        read_Describe_schema_versions_result_fields iprot record
+read_Describe_schema_versions_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_schema_versions_result_fields iprot (Describe_schema_versions_result{f_Describe_schema_versions_result_success=Nothing,f_Describe_schema_versions_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_keyspaces_args = Describe_keyspaces_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspaces_args oprot record = do
+  writeStructBegin oprot "Describe_keyspaces_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspaces_args_fields iprot record = do
+  (_,_t407,_id408) <- readFieldBegin iprot
+  if _t407 == T_STOP then return record else
+    case _id408 of 
+      _ -> do
+        skip iprot _t407
+        readFieldEnd iprot
+        read_Describe_keyspaces_args_fields iprot record
+read_Describe_keyspaces_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_keyspaces_args_fields iprot (Describe_keyspaces_args{})
+  readStructEnd iprot
+  return record
+data Describe_keyspaces_result = Describe_keyspaces_result{f_Describe_keyspaces_result_success :: Maybe [KsDef],f_Describe_keyspaces_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspaces_result oprot record = do
+  writeStructBegin oprot "Describe_keyspaces_result"
+  case f_Describe_keyspaces_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter411:t) = do {write_KsDef oprot _viter411;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Describe_keyspaces_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspaces_result_fields iprot record = do
+  (_,_t413,_id414) <- readFieldBegin iprot
+  if _t413 == T_STOP then return record else
+    case _id414 of 
+      0 -> if _t413 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_KsDef iprot);r <- f (n-1); return $ v:r}} in do {(_etype418,_size415) <- readListBegin iprot; f _size415})
+        read_Describe_keyspaces_result_fields iprot record{f_Describe_keyspaces_result_success=Just s}
+        else do
+          skip iprot _t413
+          read_Describe_keyspaces_result_fields iprot record
+      1 -> if _t413 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Describe_keyspaces_result_fields iprot record{f_Describe_keyspaces_result_ire=Just s}
+        else do
+          skip iprot _t413
+          read_Describe_keyspaces_result_fields iprot record
+      _ -> do
+        skip iprot _t413
+        readFieldEnd iprot
+        read_Describe_keyspaces_result_fields iprot record
+read_Describe_keyspaces_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_keyspaces_result_fields iprot (Describe_keyspaces_result{f_Describe_keyspaces_result_success=Nothing,f_Describe_keyspaces_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_cluster_name_args = Describe_cluster_name_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_cluster_name_args oprot record = do
+  writeStructBegin oprot "Describe_cluster_name_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_cluster_name_args_fields iprot record = do
+  (_,_t423,_id424) <- readFieldBegin iprot
+  if _t423 == T_STOP then return record else
+    case _id424 of 
+      _ -> do
+        skip iprot _t423
+        readFieldEnd iprot
+        read_Describe_cluster_name_args_fields iprot record
+read_Describe_cluster_name_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_cluster_name_args_fields iprot (Describe_cluster_name_args{})
+  readStructEnd iprot
+  return record
+data Describe_cluster_name_result = Describe_cluster_name_result{f_Describe_cluster_name_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_cluster_name_result oprot record = do
+  writeStructBegin oprot "Describe_cluster_name_result"
+  case f_Describe_cluster_name_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_cluster_name_result_fields iprot record = do
+  (_,_t428,_id429) <- readFieldBegin iprot
+  if _t428 == T_STOP then return record else
+    case _id429 of 
+      0 -> if _t428 == T_STRING then do
+        s <- readString iprot
+        read_Describe_cluster_name_result_fields iprot record{f_Describe_cluster_name_result_success=Just s}
+        else do
+          skip iprot _t428
+          read_Describe_cluster_name_result_fields iprot record
+      _ -> do
+        skip iprot _t428
+        readFieldEnd iprot
+        read_Describe_cluster_name_result_fields iprot record
+read_Describe_cluster_name_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_cluster_name_result_fields iprot (Describe_cluster_name_result{f_Describe_cluster_name_result_success=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_version_args = Describe_version_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_version_args oprot record = do
+  writeStructBegin oprot "Describe_version_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_version_args_fields iprot record = do
+  (_,_t433,_id434) <- readFieldBegin iprot
+  if _t433 == T_STOP then return record else
+    case _id434 of 
+      _ -> do
+        skip iprot _t433
+        readFieldEnd iprot
+        read_Describe_version_args_fields iprot record
+read_Describe_version_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_version_args_fields iprot (Describe_version_args{})
+  readStructEnd iprot
+  return record
+data Describe_version_result = Describe_version_result{f_Describe_version_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_version_result oprot record = do
+  writeStructBegin oprot "Describe_version_result"
+  case f_Describe_version_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_version_result_fields iprot record = do
+  (_,_t438,_id439) <- readFieldBegin iprot
+  if _t438 == T_STOP then return record else
+    case _id439 of 
+      0 -> if _t438 == T_STRING then do
+        s <- readString iprot
+        read_Describe_version_result_fields iprot record{f_Describe_version_result_success=Just s}
+        else do
+          skip iprot _t438
+          read_Describe_version_result_fields iprot record
+      _ -> do
+        skip iprot _t438
+        readFieldEnd iprot
+        read_Describe_version_result_fields iprot record
+read_Describe_version_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_version_result_fields iprot (Describe_version_result{f_Describe_version_result_success=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_ring_args = Describe_ring_args{f_Describe_ring_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_ring_args oprot record = do
+  writeStructBegin oprot "Describe_ring_args"
+  case f_Describe_ring_args_keyspace record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_ring_args_fields iprot record = do
+  (_,_t443,_id444) <- readFieldBegin iprot
+  if _t443 == T_STOP then return record else
+    case _id444 of 
+      1 -> if _t443 == T_STRING then do
+        s <- readString iprot
+        read_Describe_ring_args_fields iprot record{f_Describe_ring_args_keyspace=Just s}
+        else do
+          skip iprot _t443
+          read_Describe_ring_args_fields iprot record
+      _ -> do
+        skip iprot _t443
+        readFieldEnd iprot
+        read_Describe_ring_args_fields iprot record
+read_Describe_ring_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_ring_args_fields iprot (Describe_ring_args{f_Describe_ring_args_keyspace=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_ring_result = Describe_ring_result{f_Describe_ring_result_success :: Maybe [TokenRange],f_Describe_ring_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_Describe_ring_result oprot record = do
+  writeStructBegin oprot "Describe_ring_result"
+  case f_Describe_ring_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter447:t) = do {write_TokenRange oprot _viter447;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Describe_ring_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_ring_result_fields iprot record = do
+  (_,_t449,_id450) <- readFieldBegin iprot
+  if _t449 == T_STOP then return record else
+    case _id450 of 
+      0 -> if _t449 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_TokenRange iprot);r <- f (n-1); return $ v:r}} in do {(_etype454,_size451) <- readListBegin iprot; f _size451})
+        read_Describe_ring_result_fields iprot record{f_Describe_ring_result_success=Just s}
+        else do
+          skip iprot _t449
+          read_Describe_ring_result_fields iprot record
+      1 -> if _t449 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Describe_ring_result_fields iprot record{f_Describe_ring_result_ire=Just s}
+        else do
+          skip iprot _t449
+          read_Describe_ring_result_fields iprot record
+      _ -> do
+        skip iprot _t449
+        readFieldEnd iprot
+        read_Describe_ring_result_fields iprot record
+read_Describe_ring_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_ring_result_fields iprot (Describe_ring_result{f_Describe_ring_result_success=Nothing,f_Describe_ring_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_partitioner_args = Describe_partitioner_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_partitioner_args oprot record = do
+  writeStructBegin oprot "Describe_partitioner_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_partitioner_args_fields iprot record = do
+  (_,_t459,_id460) <- readFieldBegin iprot
+  if _t459 == T_STOP then return record else
+    case _id460 of 
+      _ -> do
+        skip iprot _t459
+        readFieldEnd iprot
+        read_Describe_partitioner_args_fields iprot record
+read_Describe_partitioner_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_partitioner_args_fields iprot (Describe_partitioner_args{})
+  readStructEnd iprot
+  return record
+data Describe_partitioner_result = Describe_partitioner_result{f_Describe_partitioner_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_partitioner_result oprot record = do
+  writeStructBegin oprot "Describe_partitioner_result"
+  case f_Describe_partitioner_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_partitioner_result_fields iprot record = do
+  (_,_t464,_id465) <- readFieldBegin iprot
+  if _t464 == T_STOP then return record else
+    case _id465 of 
+      0 -> if _t464 == T_STRING then do
+        s <- readString iprot
+        read_Describe_partitioner_result_fields iprot record{f_Describe_partitioner_result_success=Just s}
+        else do
+          skip iprot _t464
+          read_Describe_partitioner_result_fields iprot record
+      _ -> do
+        skip iprot _t464
+        readFieldEnd iprot
+        read_Describe_partitioner_result_fields iprot record
+read_Describe_partitioner_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_partitioner_result_fields iprot (Describe_partitioner_result{f_Describe_partitioner_result_success=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_snitch_args = Describe_snitch_args deriving (Show,Eq,Ord,Typeable)
+write_Describe_snitch_args oprot record = do
+  writeStructBegin oprot "Describe_snitch_args"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_snitch_args_fields iprot record = do
+  (_,_t469,_id470) <- readFieldBegin iprot
+  if _t469 == T_STOP then return record else
+    case _id470 of 
+      _ -> do
+        skip iprot _t469
+        readFieldEnd iprot
+        read_Describe_snitch_args_fields iprot record
+read_Describe_snitch_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_snitch_args_fields iprot (Describe_snitch_args{})
+  readStructEnd iprot
+  return record
+data Describe_snitch_result = Describe_snitch_result{f_Describe_snitch_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_snitch_result oprot record = do
+  writeStructBegin oprot "Describe_snitch_result"
+  case f_Describe_snitch_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_snitch_result_fields iprot record = do
+  (_,_t474,_id475) <- readFieldBegin iprot
+  if _t474 == T_STOP then return record else
+    case _id475 of 
+      0 -> if _t474 == T_STRING then do
+        s <- readString iprot
+        read_Describe_snitch_result_fields iprot record{f_Describe_snitch_result_success=Just s}
+        else do
+          skip iprot _t474
+          read_Describe_snitch_result_fields iprot record
+      _ -> do
+        skip iprot _t474
+        readFieldEnd iprot
+        read_Describe_snitch_result_fields iprot record
+read_Describe_snitch_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_snitch_result_fields iprot (Describe_snitch_result{f_Describe_snitch_result_success=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_keyspace_args = Describe_keyspace_args{f_Describe_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspace_args oprot record = do
+  writeStructBegin oprot "Describe_keyspace_args"
+  case f_Describe_keyspace_args_keyspace record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspace_args_fields iprot record = do
+  (_,_t479,_id480) <- readFieldBegin iprot
+  if _t479 == T_STOP then return record else
+    case _id480 of 
+      1 -> if _t479 == T_STRING then do
+        s <- readString iprot
+        read_Describe_keyspace_args_fields iprot record{f_Describe_keyspace_args_keyspace=Just s}
+        else do
+          skip iprot _t479
+          read_Describe_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t479
+        readFieldEnd iprot
+        read_Describe_keyspace_args_fields iprot record
+read_Describe_keyspace_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_keyspace_args_fields iprot (Describe_keyspace_args{f_Describe_keyspace_args_keyspace=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_keyspace_result = Describe_keyspace_result{f_Describe_keyspace_result_success :: Maybe KsDef,f_Describe_keyspace_result_nfe :: Maybe NotFoundException,f_Describe_keyspace_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_Describe_keyspace_result oprot record = do
+  writeStructBegin oprot "Describe_keyspace_result"
+  case f_Describe_keyspace_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRUCT,0)
+    write_KsDef oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_keyspace_result_nfe record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("nfe",T_STRUCT,1)
+    write_NotFoundException oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_keyspace_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,2)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_keyspace_result_fields iprot record = do
+  (_,_t484,_id485) <- readFieldBegin iprot
+  if _t484 == T_STOP then return record else
+    case _id485 of 
+      0 -> if _t484 == T_STRUCT then do
+        s <- (read_KsDef iprot)
+        read_Describe_keyspace_result_fields iprot record{f_Describe_keyspace_result_success=Just s}
+        else do
+          skip iprot _t484
+          read_Describe_keyspace_result_fields iprot record
+      1 -> if _t484 == T_STRUCT then do
+        s <- (read_NotFoundException iprot)
+        read_Describe_keyspace_result_fields iprot record{f_Describe_keyspace_result_nfe=Just s}
+        else do
+          skip iprot _t484
+          read_Describe_keyspace_result_fields iprot record
+      2 -> if _t484 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Describe_keyspace_result_fields iprot record{f_Describe_keyspace_result_ire=Just s}
+        else do
+          skip iprot _t484
+          read_Describe_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t484
+        readFieldEnd iprot
+        read_Describe_keyspace_result_fields iprot record
+read_Describe_keyspace_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_keyspace_result_fields iprot (Describe_keyspace_result{f_Describe_keyspace_result_success=Nothing,f_Describe_keyspace_result_nfe=Nothing,f_Describe_keyspace_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_splits_args = Describe_splits_args{f_Describe_splits_args_cfName :: Maybe String,f_Describe_splits_args_start_token :: Maybe String,f_Describe_splits_args_end_token :: Maybe String,f_Describe_splits_args_keys_per_split :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_Describe_splits_args oprot record = do
+  writeStructBegin oprot "Describe_splits_args"
+  case f_Describe_splits_args_cfName record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("cfName",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_splits_args_start_token record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_token",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_splits_args_end_token record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_token",T_STRING,3)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_Describe_splits_args_keys_per_split record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keys_per_split",T_I32,4)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_splits_args_fields iprot record = do
+  (_,_t489,_id490) <- readFieldBegin iprot
+  if _t489 == T_STOP then return record else
+    case _id490 of 
+      1 -> if _t489 == T_STRING then do
+        s <- readString iprot
+        read_Describe_splits_args_fields iprot record{f_Describe_splits_args_cfName=Just s}
+        else do
+          skip iprot _t489
+          read_Describe_splits_args_fields iprot record
+      2 -> if _t489 == T_STRING then do
+        s <- readString iprot
+        read_Describe_splits_args_fields iprot record{f_Describe_splits_args_start_token=Just s}
+        else do
+          skip iprot _t489
+          read_Describe_splits_args_fields iprot record
+      3 -> if _t489 == T_STRING then do
+        s <- readString iprot
+        read_Describe_splits_args_fields iprot record{f_Describe_splits_args_end_token=Just s}
+        else do
+          skip iprot _t489
+          read_Describe_splits_args_fields iprot record
+      4 -> if _t489 == T_I32 then do
+        s <- readI32 iprot
+        read_Describe_splits_args_fields iprot record{f_Describe_splits_args_keys_per_split=Just s}
+        else do
+          skip iprot _t489
+          read_Describe_splits_args_fields iprot record
+      _ -> do
+        skip iprot _t489
+        readFieldEnd iprot
+        read_Describe_splits_args_fields iprot record
+read_Describe_splits_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_splits_args_fields iprot (Describe_splits_args{f_Describe_splits_args_cfName=Nothing,f_Describe_splits_args_start_token=Nothing,f_Describe_splits_args_end_token=Nothing,f_Describe_splits_args_keys_per_split=Nothing})
+  readStructEnd iprot
+  return record
+data Describe_splits_result = Describe_splits_result{f_Describe_splits_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
+write_Describe_splits_result oprot record = do
+  writeStructBegin oprot "Describe_splits_result"
+  case f_Describe_splits_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_LIST,0)
+    (let {f [] = return (); f (_viter493:t) = do {writeString oprot _viter493;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Describe_splits_result_fields iprot record = do
+  (_,_t495,_id496) <- readFieldBegin iprot
+  if _t495 == T_STOP then return record else
+    case _id496 of 
+      0 -> if _t495 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype500,_size497) <- readListBegin iprot; f _size497})
+        read_Describe_splits_result_fields iprot record{f_Describe_splits_result_success=Just s}
+        else do
+          skip iprot _t495
+          read_Describe_splits_result_fields iprot record
+      _ -> do
+        skip iprot _t495
+        readFieldEnd iprot
+        read_Describe_splits_result_fields iprot record
+read_Describe_splits_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Describe_splits_result_fields iprot (Describe_splits_result{f_Describe_splits_result_success=Nothing})
+  readStructEnd iprot
+  return record
+data System_add_column_family_args = System_add_column_family_args{f_System_add_column_family_args_cf_def :: Maybe CfDef} deriving (Show,Eq,Ord,Typeable)
+write_System_add_column_family_args oprot record = do
+  writeStructBegin oprot "System_add_column_family_args"
+  case f_System_add_column_family_args_cf_def record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("cf_def",T_STRUCT,1)
+    write_CfDef oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_add_column_family_args_fields iprot record = do
+  (_,_t505,_id506) <- readFieldBegin iprot
+  if _t505 == T_STOP then return record else
+    case _id506 of 
+      1 -> if _t505 == T_STRUCT then do
+        s <- (read_CfDef iprot)
+        read_System_add_column_family_args_fields iprot record{f_System_add_column_family_args_cf_def=Just s}
+        else do
+          skip iprot _t505
+          read_System_add_column_family_args_fields iprot record
+      _ -> do
+        skip iprot _t505
+        readFieldEnd iprot
+        read_System_add_column_family_args_fields iprot record
+read_System_add_column_family_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_add_column_family_args_fields iprot (System_add_column_family_args{f_System_add_column_family_args_cf_def=Nothing})
+  readStructEnd iprot
+  return record
+data System_add_column_family_result = System_add_column_family_result{f_System_add_column_family_result_success :: Maybe String,f_System_add_column_family_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_System_add_column_family_result oprot record = do
+  writeStructBegin oprot "System_add_column_family_result"
+  case f_System_add_column_family_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_System_add_column_family_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_add_column_family_result_fields iprot record = do
+  (_,_t510,_id511) <- readFieldBegin iprot
+  if _t510 == T_STOP then return record else
+    case _id511 of 
+      0 -> if _t510 == T_STRING then do
+        s <- readString iprot
+        read_System_add_column_family_result_fields iprot record{f_System_add_column_family_result_success=Just s}
+        else do
+          skip iprot _t510
+          read_System_add_column_family_result_fields iprot record
+      1 -> if _t510 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_System_add_column_family_result_fields iprot record{f_System_add_column_family_result_ire=Just s}
+        else do
+          skip iprot _t510
+          read_System_add_column_family_result_fields iprot record
+      _ -> do
+        skip iprot _t510
+        readFieldEnd iprot
+        read_System_add_column_family_result_fields iprot record
+read_System_add_column_family_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_add_column_family_result_fields iprot (System_add_column_family_result{f_System_add_column_family_result_success=Nothing,f_System_add_column_family_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data System_drop_column_family_args = System_drop_column_family_args{f_System_drop_column_family_args_column_family :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_System_drop_column_family_args oprot record = do
+  writeStructBegin oprot "System_drop_column_family_args"
+  case f_System_drop_column_family_args_column_family record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_family",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_drop_column_family_args_fields iprot record = do
+  (_,_t515,_id516) <- readFieldBegin iprot
+  if _t515 == T_STOP then return record else
+    case _id516 of 
+      1 -> if _t515 == T_STRING then do
+        s <- readString iprot
+        read_System_drop_column_family_args_fields iprot record{f_System_drop_column_family_args_column_family=Just s}
+        else do
+          skip iprot _t515
+          read_System_drop_column_family_args_fields iprot record
+      _ -> do
+        skip iprot _t515
+        readFieldEnd iprot
+        read_System_drop_column_family_args_fields iprot record
+read_System_drop_column_family_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_drop_column_family_args_fields iprot (System_drop_column_family_args{f_System_drop_column_family_args_column_family=Nothing})
+  readStructEnd iprot
+  return record
+data System_drop_column_family_result = System_drop_column_family_result{f_System_drop_column_family_result_success :: Maybe String,f_System_drop_column_family_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_System_drop_column_family_result oprot record = do
+  writeStructBegin oprot "System_drop_column_family_result"
+  case f_System_drop_column_family_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_System_drop_column_family_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_drop_column_family_result_fields iprot record = do
+  (_,_t520,_id521) <- readFieldBegin iprot
+  if _t520 == T_STOP then return record else
+    case _id521 of 
+      0 -> if _t520 == T_STRING then do
+        s <- readString iprot
+        read_System_drop_column_family_result_fields iprot record{f_System_drop_column_family_result_success=Just s}
+        else do
+          skip iprot _t520
+          read_System_drop_column_family_result_fields iprot record
+      1 -> if _t520 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_System_drop_column_family_result_fields iprot record{f_System_drop_column_family_result_ire=Just s}
+        else do
+          skip iprot _t520
+          read_System_drop_column_family_result_fields iprot record
+      _ -> do
+        skip iprot _t520
+        readFieldEnd iprot
+        read_System_drop_column_family_result_fields iprot record
+read_System_drop_column_family_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_drop_column_family_result_fields iprot (System_drop_column_family_result{f_System_drop_column_family_result_success=Nothing,f_System_drop_column_family_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data System_add_keyspace_args = System_add_keyspace_args{f_System_add_keyspace_args_ks_def :: Maybe KsDef} deriving (Show,Eq,Ord,Typeable)
+write_System_add_keyspace_args oprot record = do
+  writeStructBegin oprot "System_add_keyspace_args"
+  case f_System_add_keyspace_args_ks_def record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ks_def",T_STRUCT,1)
+    write_KsDef oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_add_keyspace_args_fields iprot record = do
+  (_,_t525,_id526) <- readFieldBegin iprot
+  if _t525 == T_STOP then return record else
+    case _id526 of 
+      1 -> if _t525 == T_STRUCT then do
+        s <- (read_KsDef iprot)
+        read_System_add_keyspace_args_fields iprot record{f_System_add_keyspace_args_ks_def=Just s}
+        else do
+          skip iprot _t525
+          read_System_add_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t525
+        readFieldEnd iprot
+        read_System_add_keyspace_args_fields iprot record
+read_System_add_keyspace_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_add_keyspace_args_fields iprot (System_add_keyspace_args{f_System_add_keyspace_args_ks_def=Nothing})
+  readStructEnd iprot
+  return record
+data System_add_keyspace_result = System_add_keyspace_result{f_System_add_keyspace_result_success :: Maybe String,f_System_add_keyspace_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_System_add_keyspace_result oprot record = do
+  writeStructBegin oprot "System_add_keyspace_result"
+  case f_System_add_keyspace_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_System_add_keyspace_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_add_keyspace_result_fields iprot record = do
+  (_,_t530,_id531) <- readFieldBegin iprot
+  if _t530 == T_STOP then return record else
+    case _id531 of 
+      0 -> if _t530 == T_STRING then do
+        s <- readString iprot
+        read_System_add_keyspace_result_fields iprot record{f_System_add_keyspace_result_success=Just s}
+        else do
+          skip iprot _t530
+          read_System_add_keyspace_result_fields iprot record
+      1 -> if _t530 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_System_add_keyspace_result_fields iprot record{f_System_add_keyspace_result_ire=Just s}
+        else do
+          skip iprot _t530
+          read_System_add_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t530
+        readFieldEnd iprot
+        read_System_add_keyspace_result_fields iprot record
+read_System_add_keyspace_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_add_keyspace_result_fields iprot (System_add_keyspace_result{f_System_add_keyspace_result_success=Nothing,f_System_add_keyspace_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data System_drop_keyspace_args = System_drop_keyspace_args{f_System_drop_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_System_drop_keyspace_args oprot record = do
+  writeStructBegin oprot "System_drop_keyspace_args"
+  case f_System_drop_keyspace_args_keyspace record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_drop_keyspace_args_fields iprot record = do
+  (_,_t535,_id536) <- readFieldBegin iprot
+  if _t535 == T_STOP then return record else
+    case _id536 of 
+      1 -> if _t535 == T_STRING then do
+        s <- readString iprot
+        read_System_drop_keyspace_args_fields iprot record{f_System_drop_keyspace_args_keyspace=Just s}
+        else do
+          skip iprot _t535
+          read_System_drop_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t535
+        readFieldEnd iprot
+        read_System_drop_keyspace_args_fields iprot record
+read_System_drop_keyspace_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_drop_keyspace_args_fields iprot (System_drop_keyspace_args{f_System_drop_keyspace_args_keyspace=Nothing})
+  readStructEnd iprot
+  return record
+data System_drop_keyspace_result = System_drop_keyspace_result{f_System_drop_keyspace_result_success :: Maybe String,f_System_drop_keyspace_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_System_drop_keyspace_result oprot record = do
+  writeStructBegin oprot "System_drop_keyspace_result"
+  case f_System_drop_keyspace_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_System_drop_keyspace_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_drop_keyspace_result_fields iprot record = do
+  (_,_t540,_id541) <- readFieldBegin iprot
+  if _t540 == T_STOP then return record else
+    case _id541 of 
+      0 -> if _t540 == T_STRING then do
+        s <- readString iprot
+        read_System_drop_keyspace_result_fields iprot record{f_System_drop_keyspace_result_success=Just s}
+        else do
+          skip iprot _t540
+          read_System_drop_keyspace_result_fields iprot record
+      1 -> if _t540 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_System_drop_keyspace_result_fields iprot record{f_System_drop_keyspace_result_ire=Just s}
+        else do
+          skip iprot _t540
+          read_System_drop_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t540
+        readFieldEnd iprot
+        read_System_drop_keyspace_result_fields iprot record
+read_System_drop_keyspace_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_drop_keyspace_result_fields iprot (System_drop_keyspace_result{f_System_drop_keyspace_result_success=Nothing,f_System_drop_keyspace_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data System_update_keyspace_args = System_update_keyspace_args{f_System_update_keyspace_args_ks_def :: Maybe KsDef} deriving (Show,Eq,Ord,Typeable)
+write_System_update_keyspace_args oprot record = do
+  writeStructBegin oprot "System_update_keyspace_args"
+  case f_System_update_keyspace_args_ks_def record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ks_def",T_STRUCT,1)
+    write_KsDef oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_update_keyspace_args_fields iprot record = do
+  (_,_t545,_id546) <- readFieldBegin iprot
+  if _t545 == T_STOP then return record else
+    case _id546 of 
+      1 -> if _t545 == T_STRUCT then do
+        s <- (read_KsDef iprot)
+        read_System_update_keyspace_args_fields iprot record{f_System_update_keyspace_args_ks_def=Just s}
+        else do
+          skip iprot _t545
+          read_System_update_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t545
+        readFieldEnd iprot
+        read_System_update_keyspace_args_fields iprot record
+read_System_update_keyspace_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_update_keyspace_args_fields iprot (System_update_keyspace_args{f_System_update_keyspace_args_ks_def=Nothing})
+  readStructEnd iprot
+  return record
+data System_update_keyspace_result = System_update_keyspace_result{f_System_update_keyspace_result_success :: Maybe String,f_System_update_keyspace_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_System_update_keyspace_result oprot record = do
+  writeStructBegin oprot "System_update_keyspace_result"
+  case f_System_update_keyspace_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_System_update_keyspace_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_update_keyspace_result_fields iprot record = do
+  (_,_t550,_id551) <- readFieldBegin iprot
+  if _t550 == T_STOP then return record else
+    case _id551 of 
+      0 -> if _t550 == T_STRING then do
+        s <- readString iprot
+        read_System_update_keyspace_result_fields iprot record{f_System_update_keyspace_result_success=Just s}
+        else do
+          skip iprot _t550
+          read_System_update_keyspace_result_fields iprot record
+      1 -> if _t550 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_System_update_keyspace_result_fields iprot record{f_System_update_keyspace_result_ire=Just s}
+        else do
+          skip iprot _t550
+          read_System_update_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t550
+        readFieldEnd iprot
+        read_System_update_keyspace_result_fields iprot record
+read_System_update_keyspace_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_update_keyspace_result_fields iprot (System_update_keyspace_result{f_System_update_keyspace_result_success=Nothing,f_System_update_keyspace_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+data System_update_column_family_args = System_update_column_family_args{f_System_update_column_family_args_cf_def :: Maybe CfDef} deriving (Show,Eq,Ord,Typeable)
+write_System_update_column_family_args oprot record = do
+  writeStructBegin oprot "System_update_column_family_args"
+  case f_System_update_column_family_args_cf_def record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("cf_def",T_STRUCT,1)
+    write_CfDef oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_update_column_family_args_fields iprot record = do
+  (_,_t555,_id556) <- readFieldBegin iprot
+  if _t555 == T_STOP then return record else
+    case _id556 of 
+      1 -> if _t555 == T_STRUCT then do
+        s <- (read_CfDef iprot)
+        read_System_update_column_family_args_fields iprot record{f_System_update_column_family_args_cf_def=Just s}
+        else do
+          skip iprot _t555
+          read_System_update_column_family_args_fields iprot record
+      _ -> do
+        skip iprot _t555
+        readFieldEnd iprot
+        read_System_update_column_family_args_fields iprot record
+read_System_update_column_family_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_update_column_family_args_fields iprot (System_update_column_family_args{f_System_update_column_family_args_cf_def=Nothing})
+  readStructEnd iprot
+  return record
+data System_update_column_family_result = System_update_column_family_result{f_System_update_column_family_result_success :: Maybe String,f_System_update_column_family_result_ire :: Maybe InvalidRequestException} deriving (Show,Eq,Ord,Typeable)
+write_System_update_column_family_result oprot record = do
+  writeStructBegin oprot "System_update_column_family_result"
+  case f_System_update_column_family_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRING,0)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_System_update_column_family_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_update_column_family_result_fields iprot record = do
+  (_,_t560,_id561) <- readFieldBegin iprot
+  if _t560 == T_STOP then return record else
+    case _id561 of 
+      0 -> if _t560 == T_STRING then do
+        s <- readString iprot
+        read_System_update_column_family_result_fields iprot record{f_System_update_column_family_result_success=Just s}
+        else do
+          skip iprot _t560
+          read_System_update_column_family_result_fields iprot record
+      1 -> if _t560 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_System_update_column_family_result_fields iprot record{f_System_update_column_family_result_ire=Just s}
+        else do
+          skip iprot _t560
+          read_System_update_column_family_result_fields iprot record
+      _ -> do
+        skip iprot _t560
+        readFieldEnd iprot
+        read_System_update_column_family_result_fields iprot record
+read_System_update_column_family_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_System_update_column_family_result_fields iprot (System_update_column_family_result{f_System_update_column_family_result_success=Nothing,f_System_update_column_family_result_ire=Nothing})
+  readStructEnd iprot
+  return record
+process_login (seqid, iprot, oprot, handler) = do
+  args <- read_Login_args iprot
+  readMessageEnd iprot
+  rs <- return (Login_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (do
+        Iface.login handler (f_Login_args_auth_request args)
+        return rs)
+      (\e  -> 
+        return rs{f_Login_result_authnx =Just e}))
+    (\e  -> 
+      return rs{f_Login_result_authzx =Just e}))
+  writeMessageBegin oprot ("login", M_REPLY, seqid);
+  write_Login_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_set_keyspace (seqid, iprot, oprot, handler) = do
+  args <- read_Set_keyspace_args iprot
+  readMessageEnd iprot
+  rs <- return (Set_keyspace_result Nothing)
+  res <- (Control.Exception.catch
+    (do
+      Iface.set_keyspace handler (f_Set_keyspace_args_keyspace args)
+      return rs)
+    (\e  -> 
+      return rs{f_Set_keyspace_result_ire =Just e}))
+  writeMessageBegin oprot ("set_keyspace", M_REPLY, seqid);
+  write_Set_keyspace_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get (seqid, iprot, oprot, handler) = do
+  args <- read_Get_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_result Nothing Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (Control.Exception.catch
+          (do
+            res <- Iface.get handler (f_Get_args_key args) (f_Get_args_column_path args) (f_Get_args_consistency_level args)
+            return rs{f_Get_result_success= Just res})
+          (\e  -> 
+            return rs{f_Get_result_ire =Just e}))
+        (\e  -> 
+          return rs{f_Get_result_nfe =Just e}))
+      (\e  -> 
+        return rs{f_Get_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_result_te =Just e}))
+  writeMessageBegin oprot ("get", M_REPLY, seqid);
+  write_Get_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_slice (seqid, iprot, oprot, handler) = do
+  args <- read_Get_slice_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_slice_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_slice handler (f_Get_slice_args_key args) (f_Get_slice_args_column_parent args) (f_Get_slice_args_predicate args) (f_Get_slice_args_consistency_level args)
+          return rs{f_Get_slice_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_slice_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_slice_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_slice_result_te =Just e}))
+  writeMessageBegin oprot ("get_slice", M_REPLY, seqid);
+  write_Get_slice_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_count (seqid, iprot, oprot, handler) = do
+  args <- read_Get_count_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_count_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_count handler (f_Get_count_args_key args) (f_Get_count_args_column_parent args) (f_Get_count_args_predicate args) (f_Get_count_args_consistency_level args)
+          return rs{f_Get_count_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_count_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_count_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_count_result_te =Just e}))
+  writeMessageBegin oprot ("get_count", M_REPLY, seqid);
+  write_Get_count_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_multiget_slice (seqid, iprot, oprot, handler) = do
+  args <- read_Multiget_slice_args iprot
+  readMessageEnd iprot
+  rs <- return (Multiget_slice_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.multiget_slice handler (f_Multiget_slice_args_keys args) (f_Multiget_slice_args_column_parent args) (f_Multiget_slice_args_predicate args) (f_Multiget_slice_args_consistency_level args)
+          return rs{f_Multiget_slice_result_success= Just res})
+        (\e  -> 
+          return rs{f_Multiget_slice_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Multiget_slice_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Multiget_slice_result_te =Just e}))
+  writeMessageBegin oprot ("multiget_slice", M_REPLY, seqid);
+  write_Multiget_slice_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_multiget_count (seqid, iprot, oprot, handler) = do
+  args <- read_Multiget_count_args iprot
+  readMessageEnd iprot
+  rs <- return (Multiget_count_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.multiget_count handler (f_Multiget_count_args_keys args) (f_Multiget_count_args_column_parent args) (f_Multiget_count_args_predicate args) (f_Multiget_count_args_consistency_level args)
+          return rs{f_Multiget_count_result_success= Just res})
+        (\e  -> 
+          return rs{f_Multiget_count_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Multiget_count_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Multiget_count_result_te =Just e}))
+  writeMessageBegin oprot ("multiget_count", M_REPLY, seqid);
+  write_Multiget_count_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_range_slices (seqid, iprot, oprot, handler) = do
+  args <- read_Get_range_slices_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_range_slices_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_range_slices handler (f_Get_range_slices_args_column_parent args) (f_Get_range_slices_args_predicate args) (f_Get_range_slices_args_range args) (f_Get_range_slices_args_consistency_level args)
+          return rs{f_Get_range_slices_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_range_slices_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_range_slices_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_range_slices_result_te =Just e}))
+  writeMessageBegin oprot ("get_range_slices", M_REPLY, seqid);
+  write_Get_range_slices_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_get_indexed_slices (seqid, iprot, oprot, handler) = do
+  args <- read_Get_indexed_slices_args iprot
+  readMessageEnd iprot
+  rs <- return (Get_indexed_slices_result Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          res <- Iface.get_indexed_slices handler (f_Get_indexed_slices_args_column_parent args) (f_Get_indexed_slices_args_index_clause args) (f_Get_indexed_slices_args_column_predicate args) (f_Get_indexed_slices_args_consistency_level args)
+          return rs{f_Get_indexed_slices_result_success= Just res})
+        (\e  -> 
+          return rs{f_Get_indexed_slices_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Get_indexed_slices_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Get_indexed_slices_result_te =Just e}))
+  writeMessageBegin oprot ("get_indexed_slices", M_REPLY, seqid);
+  write_Get_indexed_slices_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_insert (seqid, iprot, oprot, handler) = do
+  args <- read_Insert_args iprot
+  readMessageEnd iprot
+  rs <- return (Insert_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.insert handler (f_Insert_args_key args) (f_Insert_args_column_parent args) (f_Insert_args_column args) (f_Insert_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Insert_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Insert_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Insert_result_te =Just e}))
+  writeMessageBegin oprot ("insert", M_REPLY, seqid);
+  write_Insert_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_remove (seqid, iprot, oprot, handler) = do
+  args <- read_Remove_args iprot
+  readMessageEnd iprot
+  rs <- return (Remove_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.remove handler (f_Remove_args_key args) (f_Remove_args_column_path args) (f_Remove_args_timestamp args) (f_Remove_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Remove_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Remove_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Remove_result_te =Just e}))
+  writeMessageBegin oprot ("remove", M_REPLY, seqid);
+  write_Remove_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_batch_mutate (seqid, iprot, oprot, handler) = do
+  args <- read_Batch_mutate_args iprot
+  readMessageEnd iprot
+  rs <- return (Batch_mutate_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.batch_mutate handler (f_Batch_mutate_args_mutation_map args) (f_Batch_mutate_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Batch_mutate_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Batch_mutate_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Batch_mutate_result_te =Just e}))
+  writeMessageBegin oprot ("batch_mutate", M_REPLY, seqid);
+  write_Batch_mutate_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_truncate (seqid, iprot, oprot, handler) = do
+  args <- read_Truncate_args iprot
+  readMessageEnd iprot
+  rs <- return (Truncate_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (do
+        Iface.truncate handler (f_Truncate_args_cfname args)
+        return rs)
+      (\e  -> 
+        return rs{f_Truncate_result_ire =Just e}))
+    (\e  -> 
+      return rs{f_Truncate_result_ue =Just e}))
+  writeMessageBegin oprot ("truncate", M_REPLY, seqid);
+  write_Truncate_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_schema_versions (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_schema_versions_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_schema_versions_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.describe_schema_versions handler
+      return rs{f_Describe_schema_versions_result_success= Just res})
+    (\e  -> 
+      return rs{f_Describe_schema_versions_result_ire =Just e}))
+  writeMessageBegin oprot ("describe_schema_versions", M_REPLY, seqid);
+  write_Describe_schema_versions_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_keyspaces (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_keyspaces_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_keyspaces_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.describe_keyspaces handler
+      return rs{f_Describe_keyspaces_result_success= Just res})
+    (\e  -> 
+      return rs{f_Describe_keyspaces_result_ire =Just e}))
+  writeMessageBegin oprot ("describe_keyspaces", M_REPLY, seqid);
+  write_Describe_keyspaces_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_cluster_name (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_cluster_name_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_cluster_name_result Nothing)
+  res <- (do
+    res <- Iface.describe_cluster_name handler
+    return rs{f_Describe_cluster_name_result_success= Just res})
+  writeMessageBegin oprot ("describe_cluster_name", M_REPLY, seqid);
+  write_Describe_cluster_name_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_version (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_version_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_version_result Nothing)
+  res <- (do
+    res <- Iface.describe_version handler
+    return rs{f_Describe_version_result_success= Just res})
+  writeMessageBegin oprot ("describe_version", M_REPLY, seqid);
+  write_Describe_version_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_ring (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_ring_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_ring_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.describe_ring handler (f_Describe_ring_args_keyspace args)
+      return rs{f_Describe_ring_result_success= Just res})
+    (\e  -> 
+      return rs{f_Describe_ring_result_ire =Just e}))
+  writeMessageBegin oprot ("describe_ring", M_REPLY, seqid);
+  write_Describe_ring_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_partitioner (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_partitioner_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_partitioner_result Nothing)
+  res <- (do
+    res <- Iface.describe_partitioner handler
+    return rs{f_Describe_partitioner_result_success= Just res})
+  writeMessageBegin oprot ("describe_partitioner", M_REPLY, seqid);
+  write_Describe_partitioner_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_snitch (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_snitch_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_snitch_result Nothing)
+  res <- (do
+    res <- Iface.describe_snitch handler
+    return rs{f_Describe_snitch_result_success= Just res})
+  writeMessageBegin oprot ("describe_snitch", M_REPLY, seqid);
+  write_Describe_snitch_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_keyspace (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_keyspace_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_keyspace_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (do
+        res <- Iface.describe_keyspace handler (f_Describe_keyspace_args_keyspace args)
+        return rs{f_Describe_keyspace_result_success= Just res})
+      (\e  -> 
+        return rs{f_Describe_keyspace_result_nfe =Just e}))
+    (\e  -> 
+      return rs{f_Describe_keyspace_result_ire =Just e}))
+  writeMessageBegin oprot ("describe_keyspace", M_REPLY, seqid);
+  write_Describe_keyspace_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_describe_splits (seqid, iprot, oprot, handler) = do
+  args <- read_Describe_splits_args iprot
+  readMessageEnd iprot
+  rs <- return (Describe_splits_result Nothing)
+  res <- (do
+    res <- Iface.describe_splits handler (f_Describe_splits_args_cfName args) (f_Describe_splits_args_start_token args) (f_Describe_splits_args_end_token args) (f_Describe_splits_args_keys_per_split args)
+    return rs{f_Describe_splits_result_success= Just res})
+  writeMessageBegin oprot ("describe_splits", M_REPLY, seqid);
+  write_Describe_splits_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_system_add_column_family (seqid, iprot, oprot, handler) = do
+  args <- read_System_add_column_family_args iprot
+  readMessageEnd iprot
+  rs <- return (System_add_column_family_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.system_add_column_family handler (f_System_add_column_family_args_cf_def args)
+      return rs{f_System_add_column_family_result_success= Just res})
+    (\e  -> 
+      return rs{f_System_add_column_family_result_ire =Just e}))
+  writeMessageBegin oprot ("system_add_column_family", M_REPLY, seqid);
+  write_System_add_column_family_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_system_drop_column_family (seqid, iprot, oprot, handler) = do
+  args <- read_System_drop_column_family_args iprot
+  readMessageEnd iprot
+  rs <- return (System_drop_column_family_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.system_drop_column_family handler (f_System_drop_column_family_args_column_family args)
+      return rs{f_System_drop_column_family_result_success= Just res})
+    (\e  -> 
+      return rs{f_System_drop_column_family_result_ire =Just e}))
+  writeMessageBegin oprot ("system_drop_column_family", M_REPLY, seqid);
+  write_System_drop_column_family_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_system_add_keyspace (seqid, iprot, oprot, handler) = do
+  args <- read_System_add_keyspace_args iprot
+  readMessageEnd iprot
+  rs <- return (System_add_keyspace_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.system_add_keyspace handler (f_System_add_keyspace_args_ks_def args)
+      return rs{f_System_add_keyspace_result_success= Just res})
+    (\e  -> 
+      return rs{f_System_add_keyspace_result_ire =Just e}))
+  writeMessageBegin oprot ("system_add_keyspace", M_REPLY, seqid);
+  write_System_add_keyspace_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_system_drop_keyspace (seqid, iprot, oprot, handler) = do
+  args <- read_System_drop_keyspace_args iprot
+  readMessageEnd iprot
+  rs <- return (System_drop_keyspace_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.system_drop_keyspace handler (f_System_drop_keyspace_args_keyspace args)
+      return rs{f_System_drop_keyspace_result_success= Just res})
+    (\e  -> 
+      return rs{f_System_drop_keyspace_result_ire =Just e}))
+  writeMessageBegin oprot ("system_drop_keyspace", M_REPLY, seqid);
+  write_System_drop_keyspace_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_system_update_keyspace (seqid, iprot, oprot, handler) = do
+  args <- read_System_update_keyspace_args iprot
+  readMessageEnd iprot
+  rs <- return (System_update_keyspace_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.system_update_keyspace handler (f_System_update_keyspace_args_ks_def args)
+      return rs{f_System_update_keyspace_result_success= Just res})
+    (\e  -> 
+      return rs{f_System_update_keyspace_result_ire =Just e}))
+  writeMessageBegin oprot ("system_update_keyspace", M_REPLY, seqid);
+  write_System_update_keyspace_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_system_update_column_family (seqid, iprot, oprot, handler) = do
+  args <- read_System_update_column_family_args iprot
+  readMessageEnd iprot
+  rs <- return (System_update_column_family_result Nothing Nothing)
+  res <- (Control.Exception.catch
+    (do
+      res <- Iface.system_update_column_family handler (f_System_update_column_family_args_cf_def args)
+      return rs{f_System_update_column_family_result_success= Just res})
+    (\e  -> 
+      return rs{f_System_update_column_family_result_ire =Just e}))
+  writeMessageBegin oprot ("system_update_column_family", M_REPLY, seqid);
+  write_System_update_column_family_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+proc_ handler (iprot,oprot) (name,typ,seqid) = case name of
+  "login" -> process_login (seqid,iprot,oprot,handler)
+  "set_keyspace" -> process_set_keyspace (seqid,iprot,oprot,handler)
+  "get" -> process_get (seqid,iprot,oprot,handler)
+  "get_slice" -> process_get_slice (seqid,iprot,oprot,handler)
+  "get_count" -> process_get_count (seqid,iprot,oprot,handler)
+  "multiget_slice" -> process_multiget_slice (seqid,iprot,oprot,handler)
+  "multiget_count" -> process_multiget_count (seqid,iprot,oprot,handler)
+  "get_range_slices" -> process_get_range_slices (seqid,iprot,oprot,handler)
+  "get_indexed_slices" -> process_get_indexed_slices (seqid,iprot,oprot,handler)
+  "insert" -> process_insert (seqid,iprot,oprot,handler)
+  "remove" -> process_remove (seqid,iprot,oprot,handler)
+  "batch_mutate" -> process_batch_mutate (seqid,iprot,oprot,handler)
+  "truncate" -> process_truncate (seqid,iprot,oprot,handler)
+  "describe_schema_versions" -> process_describe_schema_versions (seqid,iprot,oprot,handler)
+  "describe_keyspaces" -> process_describe_keyspaces (seqid,iprot,oprot,handler)
+  "describe_cluster_name" -> process_describe_cluster_name (seqid,iprot,oprot,handler)
+  "describe_version" -> process_describe_version (seqid,iprot,oprot,handler)
+  "describe_ring" -> process_describe_ring (seqid,iprot,oprot,handler)
+  "describe_partitioner" -> process_describe_partitioner (seqid,iprot,oprot,handler)
+  "describe_snitch" -> process_describe_snitch (seqid,iprot,oprot,handler)
+  "describe_keyspace" -> process_describe_keyspace (seqid,iprot,oprot,handler)
+  "describe_splits" -> process_describe_splits (seqid,iprot,oprot,handler)
+  "system_add_column_family" -> process_system_add_column_family (seqid,iprot,oprot,handler)
+  "system_drop_column_family" -> process_system_drop_column_family (seqid,iprot,oprot,handler)
+  "system_add_keyspace" -> process_system_add_keyspace (seqid,iprot,oprot,handler)
+  "system_drop_keyspace" -> process_system_drop_keyspace (seqid,iprot,oprot,handler)
+  "system_update_keyspace" -> process_system_update_keyspace (seqid,iprot,oprot,handler)
+  "system_update_column_family" -> process_system_update_column_family (seqid,iprot,oprot,handler)
+  _ -> do
+    skip iprot T_STRUCT
+    readMessageEnd iprot
+    writeMessageBegin oprot (name,M_EXCEPTION,seqid)
+    writeAppExn oprot (AppExn AE_UNKNOWN_METHOD ("Unknown function " ++ name))
+    writeMessageEnd oprot
+    tFlush (getTransport oprot)
+process handler (iprot, oprot) = do
+  (name, typ, seqid) <- readMessageBegin iprot
+  proc_ handler (iprot,oprot) (name,typ,seqid)
   return True
diff --git a/Database/Cassandra/Thrift/Cassandra_Client.hs b/Database/Cassandra/Thrift/Cassandra_Client.hs
--- a/Database/Cassandra/Thrift/Cassandra_Client.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Client.hs
@@ -1,23 +1,38 @@
-module Database.Cassandra.Thrift.Cassandra_Client(login,get,get_slice,multiget,multiget_slice,get_count,get_range_slice,get_range_slices,insert,batch_insert,remove,batch_mutate,get_string_property,get_string_list_property,describe_keyspaces,describe_cluster_name,describe_version,describe_ring,describe_partitioner,describe_keyspace,describe_splits) where
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-----------------------------------------------------------------
+-- Autogenerated by Thrift                                     --
+--                                                             --
+-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
+-----------------------------------------------------------------
+
+module Database.Cassandra.Thrift.Cassandra_Client(login,set_keyspace,get,get_slice,get_count,multiget_slice,multiget_count,get_range_slices,get_indexed_slices,insert,remove,batch_mutate,truncate,describe_schema_versions,describe_keyspaces,describe_cluster_name,describe_version,describe_ring,describe_partitioner,describe_snitch,describe_keyspace,describe_splits,system_add_column_family,system_drop_column_family,system_add_keyspace,system_drop_keyspace,system_update_keyspace,system_update_column_family) where
 import Data.IORef
 import Thrift
 import Data.Typeable ( Typeable )
 import Control.Exception
 import qualified Data.Map as Map
 import qualified Data.Set as Set
-import Data.Int;
-import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromEnum, toEnum, Bool(..), (++), ($), Double, (-))
+import Data.ByteString.Lazy
+import Data.Int
+import Data.Word
+import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromIntegral, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
 import Database.Cassandra.Thrift.Cassandra_Types
 import Database.Cassandra.Thrift.Cassandra 
 seqid = newIORef 0
-login (ip,op) arg_keyspace arg_auth_request = do
-  send_login op arg_keyspace arg_auth_request
+login (ip,op) arg_auth_request = do
+  send_login op arg_auth_request
   recv_login ip
-send_login op arg_keyspace arg_auth_request = do
+send_login op arg_auth_request = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("login", M_CALL, seqn)
-  write_Login_args op (Login_args{f_Login_args_keyspace=Just arg_keyspace,f_Login_args_auth_request=Just arg_auth_request})
+  write_Login_args op (Login_args{f_Login_args_auth_request=Just arg_auth_request})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_login ip = do
@@ -36,14 +51,37 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
-get (ip,op) arg_keyspace arg_key arg_column_path arg_consistency_level = do
-  send_get op arg_keyspace arg_key arg_column_path arg_consistency_level
+set_keyspace (ip,op) arg_keyspace = do
+  send_set_keyspace op arg_keyspace
+  recv_set_keyspace ip
+send_set_keyspace op arg_keyspace = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("set_keyspace", M_CALL, seqn)
+  write_Set_keyspace_args op (Set_keyspace_args{f_Set_keyspace_args_keyspace=Just arg_keyspace})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_set_keyspace ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Set_keyspace_result ip
+  readMessageEnd ip
+  case f_Set_keyspace_result_ire res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  return ()
+get (ip,op) arg_key arg_column_path arg_consistency_level = do
+  send_get op arg_key arg_column_path arg_consistency_level
   recv_get ip
-send_get op arg_keyspace arg_key arg_column_path arg_consistency_level = do
+send_get op arg_key arg_column_path arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("get", M_CALL, seqn)
-  write_Get_args op (Get_args{f_Get_args_keyspace=Just arg_keyspace,f_Get_args_key=Just arg_key,f_Get_args_column_path=Just arg_column_path,f_Get_args_consistency_level=Just arg_consistency_level})
+  write_Get_args op (Get_args{f_Get_args_key=Just arg_key,f_Get_args_column_path=Just arg_column_path,f_Get_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_get ip = do
@@ -71,14 +109,14 @@
         Nothing -> return ()
         Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "get failed: unknown result")
-get_slice (ip,op) arg_keyspace arg_key arg_column_parent arg_predicate arg_consistency_level = do
-  send_get_slice op arg_keyspace arg_key arg_column_parent arg_predicate arg_consistency_level
+get_slice (ip,op) arg_key arg_column_parent arg_predicate arg_consistency_level = do
+  send_get_slice op arg_key arg_column_parent arg_predicate arg_consistency_level
   recv_get_slice ip
-send_get_slice op arg_keyspace arg_key arg_column_parent arg_predicate arg_consistency_level = do
+send_get_slice op arg_key arg_column_parent arg_predicate arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("get_slice", M_CALL, seqn)
-  write_Get_slice_args op (Get_slice_args{f_Get_slice_args_keyspace=Just arg_keyspace,f_Get_slice_args_key=Just arg_key,f_Get_slice_args_column_parent=Just arg_column_parent,f_Get_slice_args_predicate=Just arg_predicate,f_Get_slice_args_consistency_level=Just arg_consistency_level})
+  write_Get_slice_args op (Get_slice_args{f_Get_slice_args_key=Just arg_key,f_Get_slice_args_column_parent=Just arg_column_parent,f_Get_slice_args_predicate=Just arg_predicate,f_Get_slice_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_get_slice ip = do
@@ -103,46 +141,46 @@
         Nothing -> return ()
         Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "get_slice failed: unknown result")
-multiget (ip,op) arg_keyspace arg_keys arg_column_path arg_consistency_level = do
-  send_multiget op arg_keyspace arg_keys arg_column_path arg_consistency_level
-  recv_multiget ip
-send_multiget op arg_keyspace arg_keys arg_column_path arg_consistency_level = do
+get_count (ip,op) arg_key arg_column_parent arg_predicate arg_consistency_level = do
+  send_get_count op arg_key arg_column_parent arg_predicate arg_consistency_level
+  recv_get_count ip
+send_get_count op arg_key arg_column_parent arg_predicate arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("multiget", M_CALL, seqn)
-  write_Multiget_args op (Multiget_args{f_Multiget_args_keyspace=Just arg_keyspace,f_Multiget_args_keys=Just arg_keys,f_Multiget_args_column_path=Just arg_column_path,f_Multiget_args_consistency_level=Just arg_consistency_level})
+  writeMessageBegin op ("get_count", M_CALL, seqn)
+  write_Get_count_args op (Get_count_args{f_Get_count_args_key=Just arg_key,f_Get_count_args_column_parent=Just arg_column_parent,f_Get_count_args_predicate=Just arg_predicate,f_Get_count_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_multiget ip = do
+recv_get_count ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Multiget_result ip
+  res <- read_Get_count_result ip
   readMessageEnd ip
-  case f_Multiget_result_success res of
+  case f_Get_count_result_success res of
     Just v -> return v
     Nothing -> do
-      case f_Multiget_result_ire res of
+      case f_Get_count_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Multiget_result_ue res of
+      case f_Get_count_result_ue res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Multiget_result_te res of
+      case f_Get_count_result_te res of
         Nothing -> return ()
         Just _v -> throw _v
-      throw (AppExn AE_MISSING_RESULT "multiget failed: unknown result")
-multiget_slice (ip,op) arg_keyspace arg_keys arg_column_parent arg_predicate arg_consistency_level = do
-  send_multiget_slice op arg_keyspace arg_keys arg_column_parent arg_predicate arg_consistency_level
+      throw (AppExn AE_MISSING_RESULT "get_count failed: unknown result")
+multiget_slice (ip,op) arg_keys arg_column_parent arg_predicate arg_consistency_level = do
+  send_multiget_slice op arg_keys arg_column_parent arg_predicate arg_consistency_level
   recv_multiget_slice ip
-send_multiget_slice op arg_keyspace arg_keys arg_column_parent arg_predicate arg_consistency_level = do
+send_multiget_slice op arg_keys arg_column_parent arg_predicate arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("multiget_slice", M_CALL, seqn)
-  write_Multiget_slice_args op (Multiget_slice_args{f_Multiget_slice_args_keyspace=Just arg_keyspace,f_Multiget_slice_args_keys=Just arg_keys,f_Multiget_slice_args_column_parent=Just arg_column_parent,f_Multiget_slice_args_predicate=Just arg_predicate,f_Multiget_slice_args_consistency_level=Just arg_consistency_level})
+  write_Multiget_slice_args op (Multiget_slice_args{f_Multiget_slice_args_keys=Just arg_keys,f_Multiget_slice_args_column_parent=Just arg_column_parent,f_Multiget_slice_args_predicate=Just arg_predicate,f_Multiget_slice_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_multiget_slice ip = do
@@ -167,110 +205,110 @@
         Nothing -> return ()
         Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "multiget_slice failed: unknown result")
-get_count (ip,op) arg_keyspace arg_key arg_column_parent arg_consistency_level = do
-  send_get_count op arg_keyspace arg_key arg_column_parent arg_consistency_level
-  recv_get_count ip
-send_get_count op arg_keyspace arg_key arg_column_parent arg_consistency_level = do
+multiget_count (ip,op) arg_keys arg_column_parent arg_predicate arg_consistency_level = do
+  send_multiget_count op arg_keys arg_column_parent arg_predicate arg_consistency_level
+  recv_multiget_count ip
+send_multiget_count op arg_keys arg_column_parent arg_predicate arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_count", M_CALL, seqn)
-  write_Get_count_args op (Get_count_args{f_Get_count_args_keyspace=Just arg_keyspace,f_Get_count_args_key=Just arg_key,f_Get_count_args_column_parent=Just arg_column_parent,f_Get_count_args_consistency_level=Just arg_consistency_level})
+  writeMessageBegin op ("multiget_count", M_CALL, seqn)
+  write_Multiget_count_args op (Multiget_count_args{f_Multiget_count_args_keys=Just arg_keys,f_Multiget_count_args_column_parent=Just arg_column_parent,f_Multiget_count_args_predicate=Just arg_predicate,f_Multiget_count_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_count ip = do
+recv_multiget_count ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_count_result ip
+  res <- read_Multiget_count_result ip
   readMessageEnd ip
-  case f_Get_count_result_success res of
+  case f_Multiget_count_result_success res of
     Just v -> return v
     Nothing -> do
-      case f_Get_count_result_ire res of
+      case f_Multiget_count_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_count_result_ue res of
+      case f_Multiget_count_result_ue res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_count_result_te res of
+      case f_Multiget_count_result_te res of
         Nothing -> return ()
         Just _v -> throw _v
-      throw (AppExn AE_MISSING_RESULT "get_count failed: unknown result")
-get_range_slice (ip,op) arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do
-  send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level
-  recv_get_range_slice ip
-send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do
+      throw (AppExn AE_MISSING_RESULT "multiget_count failed: unknown result")
+get_range_slices (ip,op) arg_column_parent arg_predicate arg_range arg_consistency_level = do
+  send_get_range_slices op arg_column_parent arg_predicate arg_range arg_consistency_level
+  recv_get_range_slices ip
+send_get_range_slices op arg_column_parent arg_predicate arg_range arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_range_slice", M_CALL, seqn)
-  write_Get_range_slice_args op (Get_range_slice_args{f_Get_range_slice_args_keyspace=Just arg_keyspace,f_Get_range_slice_args_column_parent=Just arg_column_parent,f_Get_range_slice_args_predicate=Just arg_predicate,f_Get_range_slice_args_start_key=Just arg_start_key,f_Get_range_slice_args_finish_key=Just arg_finish_key,f_Get_range_slice_args_row_count=Just arg_row_count,f_Get_range_slice_args_consistency_level=Just arg_consistency_level})
+  writeMessageBegin op ("get_range_slices", M_CALL, seqn)
+  write_Get_range_slices_args op (Get_range_slices_args{f_Get_range_slices_args_column_parent=Just arg_column_parent,f_Get_range_slices_args_predicate=Just arg_predicate,f_Get_range_slices_args_range=Just arg_range,f_Get_range_slices_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_range_slice ip = do
+recv_get_range_slices ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_range_slice_result ip
+  res <- read_Get_range_slices_result ip
   readMessageEnd ip
-  case f_Get_range_slice_result_success res of
+  case f_Get_range_slices_result_success res of
     Just v -> return v
     Nothing -> do
-      case f_Get_range_slice_result_ire res of
+      case f_Get_range_slices_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_range_slice_result_ue res of
+      case f_Get_range_slices_result_ue res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_range_slice_result_te res of
+      case f_Get_range_slices_result_te res of
         Nothing -> return ()
         Just _v -> throw _v
-      throw (AppExn AE_MISSING_RESULT "get_range_slice failed: unknown result")
-get_range_slices (ip,op) arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level = do
-  send_get_range_slices op arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level
-  recv_get_range_slices ip
-send_get_range_slices op arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level = do
+      throw (AppExn AE_MISSING_RESULT "get_range_slices failed: unknown result")
+get_indexed_slices (ip,op) arg_column_parent arg_index_clause arg_column_predicate arg_consistency_level = do
+  send_get_indexed_slices op arg_column_parent arg_index_clause arg_column_predicate arg_consistency_level
+  recv_get_indexed_slices ip
+send_get_indexed_slices op arg_column_parent arg_index_clause arg_column_predicate arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_range_slices", M_CALL, seqn)
-  write_Get_range_slices_args op (Get_range_slices_args{f_Get_range_slices_args_keyspace=Just arg_keyspace,f_Get_range_slices_args_column_parent=Just arg_column_parent,f_Get_range_slices_args_predicate=Just arg_predicate,f_Get_range_slices_args_range=Just arg_range,f_Get_range_slices_args_consistency_level=Just arg_consistency_level})
+  writeMessageBegin op ("get_indexed_slices", M_CALL, seqn)
+  write_Get_indexed_slices_args op (Get_indexed_slices_args{f_Get_indexed_slices_args_column_parent=Just arg_column_parent,f_Get_indexed_slices_args_index_clause=Just arg_index_clause,f_Get_indexed_slices_args_column_predicate=Just arg_column_predicate,f_Get_indexed_slices_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_range_slices ip = do
+recv_get_indexed_slices ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_range_slices_result ip
+  res <- read_Get_indexed_slices_result ip
   readMessageEnd ip
-  case f_Get_range_slices_result_success res of
+  case f_Get_indexed_slices_result_success res of
     Just v -> return v
     Nothing -> do
-      case f_Get_range_slices_result_ire res of
+      case f_Get_indexed_slices_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_range_slices_result_ue res of
+      case f_Get_indexed_slices_result_ue res of
         Nothing -> return ()
         Just _v -> throw _v
-      case f_Get_range_slices_result_te res of
+      case f_Get_indexed_slices_result_te res of
         Nothing -> return ()
         Just _v -> throw _v
-      throw (AppExn AE_MISSING_RESULT "get_range_slices failed: unknown result")
-insert (ip,op) arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level = do
-  send_insert op arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level
+      throw (AppExn AE_MISSING_RESULT "get_indexed_slices failed: unknown result")
+insert (ip,op) arg_key arg_column_parent arg_column arg_consistency_level = do
+  send_insert op arg_key arg_column_parent arg_column arg_consistency_level
   recv_insert ip
-send_insert op arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level = do
+send_insert op arg_key arg_column_parent arg_column arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("insert", M_CALL, seqn)
-  write_Insert_args op (Insert_args{f_Insert_args_keyspace=Just arg_keyspace,f_Insert_args_key=Just arg_key,f_Insert_args_column_path=Just arg_column_path,f_Insert_args_value=Just arg_value,f_Insert_args_timestamp=Just arg_timestamp,f_Insert_args_consistency_level=Just arg_consistency_level})
+  write_Insert_args op (Insert_args{f_Insert_args_key=Just arg_key,f_Insert_args_column_parent=Just arg_column_parent,f_Insert_args_column=Just arg_column,f_Insert_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_insert ip = do
@@ -292,43 +330,14 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
-batch_insert (ip,op) arg_keyspace arg_key arg_cfmap arg_consistency_level = do
-  send_batch_insert op arg_keyspace arg_key arg_cfmap arg_consistency_level
-  recv_batch_insert ip
-send_batch_insert op arg_keyspace arg_key arg_cfmap arg_consistency_level = do
-  seq <- seqid
-  seqn <- readIORef seq
-  writeMessageBegin op ("batch_insert", M_CALL, seqn)
-  write_Batch_insert_args op (Batch_insert_args{f_Batch_insert_args_keyspace=Just arg_keyspace,f_Batch_insert_args_key=Just arg_key,f_Batch_insert_args_cfmap=Just arg_cfmap,f_Batch_insert_args_consistency_level=Just arg_consistency_level})
-  writeMessageEnd op
-  tFlush (getTransport op)
-recv_batch_insert ip = do
-  (fname, mtype, rseqid) <- readMessageBegin ip
-  if mtype == M_EXCEPTION then do
-    x <- readAppExn ip
-    readMessageEnd ip
-    throw x
-    else return ()
-  res <- read_Batch_insert_result ip
-  readMessageEnd ip
-  case f_Batch_insert_result_ire res of
-    Nothing -> return ()
-    Just _v -> throw _v
-  case f_Batch_insert_result_ue res of
-    Nothing -> return ()
-    Just _v -> throw _v
-  case f_Batch_insert_result_te res of
-    Nothing -> return ()
-    Just _v -> throw _v
-  return ()
-remove (ip,op) arg_keyspace arg_key arg_column_path arg_timestamp arg_consistency_level = do
-  send_remove op arg_keyspace arg_key arg_column_path arg_timestamp arg_consistency_level
+remove (ip,op) arg_key arg_column_path arg_timestamp arg_consistency_level = do
+  send_remove op arg_key arg_column_path arg_timestamp arg_consistency_level
   recv_remove ip
-send_remove op arg_keyspace arg_key arg_column_path arg_timestamp arg_consistency_level = do
+send_remove op arg_key arg_column_path arg_timestamp arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("remove", M_CALL, seqn)
-  write_Remove_args op (Remove_args{f_Remove_args_keyspace=Just arg_keyspace,f_Remove_args_key=Just arg_key,f_Remove_args_column_path=Just arg_column_path,f_Remove_args_timestamp=Just arg_timestamp,f_Remove_args_consistency_level=Just arg_consistency_level})
+  write_Remove_args op (Remove_args{f_Remove_args_key=Just arg_key,f_Remove_args_column_path=Just arg_column_path,f_Remove_args_timestamp=Just arg_timestamp,f_Remove_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_remove ip = do
@@ -350,14 +359,14 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
-batch_mutate (ip,op) arg_keyspace arg_mutation_map arg_consistency_level = do
-  send_batch_mutate op arg_keyspace arg_mutation_map arg_consistency_level
+batch_mutate (ip,op) arg_mutation_map arg_consistency_level = do
+  send_batch_mutate op arg_mutation_map arg_consistency_level
   recv_batch_mutate ip
-send_batch_mutate op arg_keyspace arg_mutation_map arg_consistency_level = do
+send_batch_mutate op arg_mutation_map arg_consistency_level = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("batch_mutate", M_CALL, seqn)
-  write_Batch_mutate_args op (Batch_mutate_args{f_Batch_mutate_args_keyspace=Just arg_keyspace,f_Batch_mutate_args_mutation_map=Just arg_mutation_map,f_Batch_mutate_args_consistency_level=Just arg_consistency_level})
+  write_Batch_mutate_args op (Batch_mutate_args{f_Batch_mutate_args_mutation_map=Just arg_mutation_map,f_Batch_mutate_args_consistency_level=Just arg_consistency_level})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_batch_mutate ip = do
@@ -379,52 +388,58 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
-get_string_property (ip,op) arg_property = do
-  send_get_string_property op arg_property
-  recv_get_string_property ip
-send_get_string_property op arg_property = do
+truncate (ip,op) arg_cfname = do
+  send_truncate op arg_cfname
+  recv_truncate ip
+send_truncate op arg_cfname = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_string_property", M_CALL, seqn)
-  write_Get_string_property_args op (Get_string_property_args{f_Get_string_property_args_property=Just arg_property})
+  writeMessageBegin op ("truncate", M_CALL, seqn)
+  write_Truncate_args op (Truncate_args{f_Truncate_args_cfname=Just arg_cfname})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_string_property ip = do
+recv_truncate ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_string_property_result ip
+  res <- read_Truncate_result ip
   readMessageEnd ip
-  case f_Get_string_property_result_success res of
-    Just v -> return v
-    Nothing -> do
-      throw (AppExn AE_MISSING_RESULT "get_string_property failed: unknown result")
-get_string_list_property (ip,op) arg_property = do
-  send_get_string_list_property op arg_property
-  recv_get_string_list_property ip
-send_get_string_list_property op arg_property = do
+  case f_Truncate_result_ire res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Truncate_result_ue res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  return ()
+describe_schema_versions (ip,op) = do
+  send_describe_schema_versions op
+  recv_describe_schema_versions ip
+send_describe_schema_versions op = do
   seq <- seqid
   seqn <- readIORef seq
-  writeMessageBegin op ("get_string_list_property", M_CALL, seqn)
-  write_Get_string_list_property_args op (Get_string_list_property_args{f_Get_string_list_property_args_property=Just arg_property})
+  writeMessageBegin op ("describe_schema_versions", M_CALL, seqn)
+  write_Describe_schema_versions_args op (Describe_schema_versions_args{})
   writeMessageEnd op
   tFlush (getTransport op)
-recv_get_string_list_property ip = do
+recv_describe_schema_versions ip = do
   (fname, mtype, rseqid) <- readMessageBegin ip
   if mtype == M_EXCEPTION then do
     x <- readAppExn ip
     readMessageEnd ip
     throw x
     else return ()
-  res <- read_Get_string_list_property_result ip
+  res <- read_Describe_schema_versions_result ip
   readMessageEnd ip
-  case f_Get_string_list_property_result_success res of
+  case f_Describe_schema_versions_result_success res of
     Just v -> return v
     Nothing -> do
-      throw (AppExn AE_MISSING_RESULT "get_string_list_property failed: unknown result")
+      case f_Describe_schema_versions_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "describe_schema_versions failed: unknown result")
 describe_keyspaces (ip,op) = do
   send_describe_keyspaces op
   recv_describe_keyspaces ip
@@ -447,6 +462,9 @@
   case f_Describe_keyspaces_result_success res of
     Just v -> return v
     Nothing -> do
+      case f_Describe_keyspaces_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "describe_keyspaces failed: unknown result")
 describe_cluster_name (ip,op) = do
   send_describe_cluster_name op
@@ -543,6 +561,29 @@
     Just v -> return v
     Nothing -> do
       throw (AppExn AE_MISSING_RESULT "describe_partitioner failed: unknown result")
+describe_snitch (ip,op) = do
+  send_describe_snitch op
+  recv_describe_snitch ip
+send_describe_snitch op = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("describe_snitch", M_CALL, seqn)
+  write_Describe_snitch_args op (Describe_snitch_args{})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_describe_snitch ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Describe_snitch_result ip
+  readMessageEnd ip
+  case f_Describe_snitch_result_success res of
+    Just v -> return v
+    Nothing -> do
+      throw (AppExn AE_MISSING_RESULT "describe_snitch failed: unknown result")
 describe_keyspace (ip,op) arg_keyspace = do
   send_describe_keyspace op arg_keyspace
   recv_describe_keyspace ip
@@ -568,15 +609,18 @@
       case f_Describe_keyspace_result_nfe res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_Describe_keyspace_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "describe_keyspace failed: unknown result")
-describe_splits (ip,op) arg_start_token arg_end_token arg_keys_per_split = do
-  send_describe_splits op arg_start_token arg_end_token arg_keys_per_split
+describe_splits (ip,op) arg_cfName arg_start_token arg_end_token arg_keys_per_split = do
+  send_describe_splits op arg_cfName arg_start_token arg_end_token arg_keys_per_split
   recv_describe_splits ip
-send_describe_splits op arg_start_token arg_end_token arg_keys_per_split = do
+send_describe_splits op arg_cfName arg_start_token arg_end_token arg_keys_per_split = do
   seq <- seqid
   seqn <- readIORef seq
   writeMessageBegin op ("describe_splits", M_CALL, seqn)
-  write_Describe_splits_args op (Describe_splits_args{f_Describe_splits_args_start_token=Just arg_start_token,f_Describe_splits_args_end_token=Just arg_end_token,f_Describe_splits_args_keys_per_split=Just arg_keys_per_split})
+  write_Describe_splits_args op (Describe_splits_args{f_Describe_splits_args_cfName=Just arg_cfName,f_Describe_splits_args_start_token=Just arg_start_token,f_Describe_splits_args_end_token=Just arg_end_token,f_Describe_splits_args_keys_per_split=Just arg_keys_per_split})
   writeMessageEnd op
   tFlush (getTransport op)
 recv_describe_splits ip = do
@@ -592,3 +636,159 @@
     Just v -> return v
     Nothing -> do
       throw (AppExn AE_MISSING_RESULT "describe_splits failed: unknown result")
+system_add_column_family (ip,op) arg_cf_def = do
+  send_system_add_column_family op arg_cf_def
+  recv_system_add_column_family ip
+send_system_add_column_family op arg_cf_def = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("system_add_column_family", M_CALL, seqn)
+  write_System_add_column_family_args op (System_add_column_family_args{f_System_add_column_family_args_cf_def=Just arg_cf_def})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_system_add_column_family ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_System_add_column_family_result ip
+  readMessageEnd ip
+  case f_System_add_column_family_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_System_add_column_family_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "system_add_column_family failed: unknown result")
+system_drop_column_family (ip,op) arg_column_family = do
+  send_system_drop_column_family op arg_column_family
+  recv_system_drop_column_family ip
+send_system_drop_column_family op arg_column_family = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("system_drop_column_family", M_CALL, seqn)
+  write_System_drop_column_family_args op (System_drop_column_family_args{f_System_drop_column_family_args_column_family=Just arg_column_family})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_system_drop_column_family ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_System_drop_column_family_result ip
+  readMessageEnd ip
+  case f_System_drop_column_family_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_System_drop_column_family_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "system_drop_column_family failed: unknown result")
+system_add_keyspace (ip,op) arg_ks_def = do
+  send_system_add_keyspace op arg_ks_def
+  recv_system_add_keyspace ip
+send_system_add_keyspace op arg_ks_def = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("system_add_keyspace", M_CALL, seqn)
+  write_System_add_keyspace_args op (System_add_keyspace_args{f_System_add_keyspace_args_ks_def=Just arg_ks_def})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_system_add_keyspace ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_System_add_keyspace_result ip
+  readMessageEnd ip
+  case f_System_add_keyspace_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_System_add_keyspace_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "system_add_keyspace failed: unknown result")
+system_drop_keyspace (ip,op) arg_keyspace = do
+  send_system_drop_keyspace op arg_keyspace
+  recv_system_drop_keyspace ip
+send_system_drop_keyspace op arg_keyspace = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("system_drop_keyspace", M_CALL, seqn)
+  write_System_drop_keyspace_args op (System_drop_keyspace_args{f_System_drop_keyspace_args_keyspace=Just arg_keyspace})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_system_drop_keyspace ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_System_drop_keyspace_result ip
+  readMessageEnd ip
+  case f_System_drop_keyspace_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_System_drop_keyspace_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "system_drop_keyspace failed: unknown result")
+system_update_keyspace (ip,op) arg_ks_def = do
+  send_system_update_keyspace op arg_ks_def
+  recv_system_update_keyspace ip
+send_system_update_keyspace op arg_ks_def = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("system_update_keyspace", M_CALL, seqn)
+  write_System_update_keyspace_args op (System_update_keyspace_args{f_System_update_keyspace_args_ks_def=Just arg_ks_def})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_system_update_keyspace ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_System_update_keyspace_result ip
+  readMessageEnd ip
+  case f_System_update_keyspace_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_System_update_keyspace_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "system_update_keyspace failed: unknown result")
+system_update_column_family (ip,op) arg_cf_def = do
+  send_system_update_column_family op arg_cf_def
+  recv_system_update_column_family ip
+send_system_update_column_family op arg_cf_def = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("system_update_column_family", M_CALL, seqn)
+  write_System_update_column_family_args op (System_update_column_family_args{f_System_update_column_family_args_cf_def=Just arg_cf_def})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_system_update_column_family ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_System_update_column_family_result ip
+  readMessageEnd ip
+  case f_System_update_column_family_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_System_update_column_family_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "system_update_column_family failed: unknown result")
diff --git a/Database/Cassandra/Thrift/Cassandra_Consts.hs b/Database/Cassandra/Thrift/Cassandra_Consts.hs
--- a/Database/Cassandra/Thrift/Cassandra_Consts.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Consts.hs
@@ -1,4 +1,10 @@
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
 -----------------------------------------------------------------
 -- Autogenerated by Thrift                                     --
 --                                                             --
@@ -11,9 +17,11 @@
 import Control.Exception
 import qualified Data.Map as Map
 import qualified Data.Set as Set
-import Data.Int;
-import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromEnum, toEnum, Bool(..), (++), ($), Double, (-))
+import Data.ByteString.Lazy
+import Data.Int
+import Data.Word
+import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromIntegral, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
 import Database.Cassandra.Thrift.Cassandra_Types
 vERSION :: String
-vERSION = "2.2.0"
+vERSION = "19.4.0"
 
diff --git a/Database/Cassandra/Thrift/Cassandra_Iface.hs b/Database/Cassandra/Thrift/Cassandra_Iface.hs
--- a/Database/Cassandra/Thrift/Cassandra_Iface.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Iface.hs
@@ -1,32 +1,54 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-----------------------------------------------------------------
+-- Autogenerated by Thrift                                     --
+--                                                             --
+-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
+-----------------------------------------------------------------
+
 module Database.Cassandra.Thrift.Cassandra_Iface where
 import Thrift
 import Data.Typeable ( Typeable )
 import Control.Exception
 import qualified Data.Map as Map
 import qualified Data.Set as Set
-import Data.Int;
-import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromEnum, toEnum, Bool(..), (++), ($), Double, (-))
+import Data.ByteString.Lazy
+import Data.Int
+import Data.Word
+import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromIntegral, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
 import Database.Cassandra.Thrift.Cassandra_Types
 
 class Cassandra_Iface a where
-  login :: a -> Maybe String -> Maybe AuthenticationRequest -> IO ()
-  get :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO ColumnOrSuperColumn
-  get_slice :: a -> Maybe String -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [ColumnOrSuperColumn]
-  multiget :: a -> Maybe String -> Maybe [String] -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO (Map.Map String ColumnOrSuperColumn)
-  multiget_slice :: a -> Maybe String -> Maybe [String] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map String [ColumnOrSuperColumn])
-  get_count :: a -> Maybe String -> Maybe String -> Maybe ColumnParent -> Maybe ConsistencyLevel -> IO Int
-  get_range_slice :: a -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe String -> Maybe String -> Maybe Int -> Maybe ConsistencyLevel -> IO [KeySlice]
-  get_range_slices :: a -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe KeyRange -> Maybe ConsistencyLevel -> IO [KeySlice]
-  insert :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe String -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
-  batch_insert :: a -> Maybe String -> Maybe String -> Maybe (Map.Map String [ColumnOrSuperColumn]) -> Maybe ConsistencyLevel -> IO ()
-  remove :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
-  batch_mutate :: a -> Maybe String -> Maybe (Map.Map String (Map.Map String [Mutation])) -> Maybe ConsistencyLevel -> IO ()
-  get_string_property :: a -> Maybe String -> IO String
-  get_string_list_property :: a -> Maybe String -> IO [String]
-  describe_keyspaces :: a -> IO (Set.Set String)
+  login :: a -> Maybe AuthenticationRequest -> IO ()
+  set_keyspace :: a -> Maybe String -> IO ()
+  get :: a -> Maybe ByteString -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO ColumnOrSuperColumn
+  get_slice :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [ColumnOrSuperColumn]
+  get_count :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO Int32
+  multiget_slice :: a -> Maybe [ByteString] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map ByteString [ColumnOrSuperColumn])
+  multiget_count :: a -> Maybe [ByteString] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map ByteString Int32)
+  get_range_slices :: a -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe KeyRange -> Maybe ConsistencyLevel -> IO [KeySlice]
+  get_indexed_slices :: a -> Maybe ColumnParent -> Maybe IndexClause -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [KeySlice]
+  insert :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe Column -> Maybe ConsistencyLevel -> IO ()
+  remove :: a -> Maybe ByteString -> Maybe ColumnPath -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
+  batch_mutate :: a -> Maybe (Map.Map ByteString (Map.Map String [Mutation])) -> Maybe ConsistencyLevel -> IO ()
+  truncate :: a -> Maybe String -> IO ()
+  describe_schema_versions :: a -> IO (Map.Map String [String])
+  describe_keyspaces :: a -> IO [KsDef]
   describe_cluster_name :: a -> IO String
   describe_version :: a -> IO String
   describe_ring :: a -> Maybe String -> IO [TokenRange]
   describe_partitioner :: a -> IO String
-  describe_keyspace :: a -> Maybe String -> IO (Map.Map String (Map.Map String String))
-  describe_splits :: a -> Maybe String -> Maybe String -> Maybe Int -> IO [String]
+  describe_snitch :: a -> IO String
+  describe_keyspace :: a -> Maybe String -> IO KsDef
+  describe_splits :: a -> Maybe String -> Maybe String -> Maybe String -> Maybe Int32 -> IO [String]
+  system_add_column_family :: a -> Maybe CfDef -> IO String
+  system_drop_column_family :: a -> Maybe String -> IO String
+  system_add_keyspace :: a -> Maybe KsDef -> IO String
+  system_drop_keyspace :: a -> Maybe String -> IO String
+  system_update_keyspace :: a -> Maybe KsDef -> IO String
+  system_update_column_family :: a -> Maybe CfDef -> IO String
diff --git a/Database/Cassandra/Thrift/Cassandra_Types.hs b/Database/Cassandra/Thrift/Cassandra_Types.hs
--- a/Database/Cassandra/Thrift/Cassandra_Types.hs
+++ b/Database/Cassandra/Thrift/Cassandra_Types.hs
@@ -1,752 +1,1268 @@
 {-# LANGUAGE DeriveDataTypeable #-}
------------------------------------------------------------------
--- Autogenerated by Thrift                                     --
---                                                             --
--- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
------------------------------------------------------------------
-
-module Database.Cassandra.Thrift.Cassandra_Types where
-import Thrift
-import Data.Typeable ( Typeable )
-import Control.Exception
-import qualified Data.Map as Map
-import qualified Data.Set as Set
-import Data.Int;
-import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
-data ConsistencyLevel = ZERO|ONE|QUORUM|DCQUORUM|DCQUORUMSYNC|ALL|ANY  deriving (Show,Eq, Typeable, Ord)
-instance Enum ConsistencyLevel where
-  fromEnum t = case t of
-    ZERO -> 0
-    ONE -> 1
-    QUORUM -> 2
-    DCQUORUM -> 3
-    DCQUORUMSYNC -> 4
-    ALL -> 5
-    ANY -> 6
-  toEnum t = case t of
-    0 -> ZERO
-    1 -> ONE
-    2 -> QUORUM
-    3 -> DCQUORUM
-    4 -> DCQUORUMSYNC
-    5 -> ALL
-    6 -> ANY
-    _ -> throw ThriftException
-data Column = Column{f_Column_name :: Maybe String,f_Column_value :: Maybe String,f_Column_timestamp :: Maybe Int64} deriving (Show,Eq,Ord,Typeable)
-write_Column oprot rec = do
-  writeStructBegin oprot "Column"
-  case f_Column_name rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("name",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Column_value rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("value",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Column_timestamp rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("timestamp",T_I64,3)
-    writeI64 oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Column_fields iprot rec = do
-  (_,_t3,_id4) <- readFieldBegin iprot
-  if _t3 == T_STOP then return rec else
-    case _id4 of 
-      1 -> if _t3 == T_STRING then do
-        s <- readString iprot
-        read_Column_fields iprot rec{f_Column_name=Just s}
-        else do
-          skip iprot _t3
-          read_Column_fields iprot rec
-      2 -> if _t3 == T_STRING then do
-        s <- readString iprot
-        read_Column_fields iprot rec{f_Column_value=Just s}
-        else do
-          skip iprot _t3
-          read_Column_fields iprot rec
-      3 -> if _t3 == T_I64 then do
-        s <- readI64 iprot
-        read_Column_fields iprot rec{f_Column_timestamp=Just s}
-        else do
-          skip iprot _t3
-          read_Column_fields iprot rec
-      _ -> do
-        skip iprot _t3
-        readFieldEnd iprot
-        read_Column_fields iprot rec
-read_Column iprot = do
-  readStructBegin iprot
-  rec <- read_Column_fields iprot (Column{f_Column_name=Nothing,f_Column_value=Nothing,f_Column_timestamp=Nothing})
-  readStructEnd iprot
-  return rec
-data SuperColumn = SuperColumn{f_SuperColumn_name :: Maybe String,f_SuperColumn_columns :: Maybe [Column]} deriving (Show,Eq,Ord,Typeable)
-write_SuperColumn oprot rec = do
-  writeStructBegin oprot "SuperColumn"
-  case f_SuperColumn_name rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("name",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_SuperColumn_columns rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("columns",T_LIST,2)
-    (let {f [] = return (); f (_viter7:t) = do {write_Column oprot _viter7;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_SuperColumn_fields iprot rec = do
-  (_,_t9,_id10) <- readFieldBegin iprot
-  if _t9 == T_STOP then return rec else
-    case _id10 of 
-      1 -> if _t9 == T_STRING then do
-        s <- readString iprot
-        read_SuperColumn_fields iprot rec{f_SuperColumn_name=Just s}
-        else do
-          skip iprot _t9
-          read_SuperColumn_fields iprot rec
-      2 -> if _t9 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_Column iprot);r <- f (n-1); return $ v:r}} in do {(_etype14,_size11) <- readListBegin iprot; f _size11})
-        read_SuperColumn_fields iprot rec{f_SuperColumn_columns=Just s}
-        else do
-          skip iprot _t9
-          read_SuperColumn_fields iprot rec
-      _ -> do
-        skip iprot _t9
-        readFieldEnd iprot
-        read_SuperColumn_fields iprot rec
-read_SuperColumn iprot = do
-  readStructBegin iprot
-  rec <- read_SuperColumn_fields iprot (SuperColumn{f_SuperColumn_name=Nothing,f_SuperColumn_columns=Nothing})
-  readStructEnd iprot
-  return rec
-data ColumnOrSuperColumn = ColumnOrSuperColumn{f_ColumnOrSuperColumn_column :: Maybe Column,f_ColumnOrSuperColumn_super_column :: Maybe SuperColumn} deriving (Show,Eq,Ord,Typeable)
-write_ColumnOrSuperColumn oprot rec = do
-  writeStructBegin oprot "ColumnOrSuperColumn"
-  case f_ColumnOrSuperColumn_column rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column",T_STRUCT,1)
-    write_Column oprot _v
-    writeFieldEnd oprot}
-  case f_ColumnOrSuperColumn_super_column rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("super_column",T_STRUCT,2)
-    write_SuperColumn oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_ColumnOrSuperColumn_fields iprot rec = do
-  (_,_t19,_id20) <- readFieldBegin iprot
-  if _t19 == T_STOP then return rec else
-    case _id20 of 
-      1 -> if _t19 == T_STRUCT then do
-        s <- (read_Column iprot)
-        read_ColumnOrSuperColumn_fields iprot rec{f_ColumnOrSuperColumn_column=Just s}
-        else do
-          skip iprot _t19
-          read_ColumnOrSuperColumn_fields iprot rec
-      2 -> if _t19 == T_STRUCT then do
-        s <- (read_SuperColumn iprot)
-        read_ColumnOrSuperColumn_fields iprot rec{f_ColumnOrSuperColumn_super_column=Just s}
-        else do
-          skip iprot _t19
-          read_ColumnOrSuperColumn_fields iprot rec
-      _ -> do
-        skip iprot _t19
-        readFieldEnd iprot
-        read_ColumnOrSuperColumn_fields iprot rec
-read_ColumnOrSuperColumn iprot = do
-  readStructBegin iprot
-  rec <- read_ColumnOrSuperColumn_fields iprot (ColumnOrSuperColumn{f_ColumnOrSuperColumn_column=Nothing,f_ColumnOrSuperColumn_super_column=Nothing})
-  readStructEnd iprot
-  return rec
-data NotFoundException = NotFoundException deriving (Show,Eq,Ord,Typeable)
-instance Exception NotFoundException
-write_NotFoundException oprot rec = do
-  writeStructBegin oprot "NotFoundException"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_NotFoundException_fields iprot rec = do
-  (_,_t24,_id25) <- readFieldBegin iprot
-  if _t24 == T_STOP then return rec else
-    case _id25 of 
-      _ -> do
-        skip iprot _t24
-        readFieldEnd iprot
-        read_NotFoundException_fields iprot rec
-read_NotFoundException iprot = do
-  readStructBegin iprot
-  rec <- read_NotFoundException_fields iprot (NotFoundException{})
-  readStructEnd iprot
-  return rec
-data InvalidRequestException = InvalidRequestException{f_InvalidRequestException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-instance Exception InvalidRequestException
-write_InvalidRequestException oprot rec = do
-  writeStructBegin oprot "InvalidRequestException"
-  case f_InvalidRequestException_why rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("why",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_InvalidRequestException_fields iprot rec = do
-  (_,_t29,_id30) <- readFieldBegin iprot
-  if _t29 == T_STOP then return rec else
-    case _id30 of 
-      1 -> if _t29 == T_STRING then do
-        s <- readString iprot
-        read_InvalidRequestException_fields iprot rec{f_InvalidRequestException_why=Just s}
-        else do
-          skip iprot _t29
-          read_InvalidRequestException_fields iprot rec
-      _ -> do
-        skip iprot _t29
-        readFieldEnd iprot
-        read_InvalidRequestException_fields iprot rec
-read_InvalidRequestException iprot = do
-  readStructBegin iprot
-  rec <- read_InvalidRequestException_fields iprot (InvalidRequestException{f_InvalidRequestException_why=Nothing})
-  readStructEnd iprot
-  return rec
-data UnavailableException = UnavailableException deriving (Show,Eq,Ord,Typeable)
-instance Exception UnavailableException
-write_UnavailableException oprot rec = do
-  writeStructBegin oprot "UnavailableException"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_UnavailableException_fields iprot rec = do
-  (_,_t34,_id35) <- readFieldBegin iprot
-  if _t34 == T_STOP then return rec else
-    case _id35 of 
-      _ -> do
-        skip iprot _t34
-        readFieldEnd iprot
-        read_UnavailableException_fields iprot rec
-read_UnavailableException iprot = do
-  readStructBegin iprot
-  rec <- read_UnavailableException_fields iprot (UnavailableException{})
-  readStructEnd iprot
-  return rec
-data TimedOutException = TimedOutException deriving (Show,Eq,Ord,Typeable)
-instance Exception TimedOutException
-write_TimedOutException oprot rec = do
-  writeStructBegin oprot "TimedOutException"
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_TimedOutException_fields iprot rec = do
-  (_,_t39,_id40) <- readFieldBegin iprot
-  if _t39 == T_STOP then return rec else
-    case _id40 of 
-      _ -> do
-        skip iprot _t39
-        readFieldEnd iprot
-        read_TimedOutException_fields iprot rec
-read_TimedOutException iprot = do
-  readStructBegin iprot
-  rec <- read_TimedOutException_fields iprot (TimedOutException{})
-  readStructEnd iprot
-  return rec
-data AuthenticationException = AuthenticationException{f_AuthenticationException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-instance Exception AuthenticationException
-write_AuthenticationException oprot rec = do
-  writeStructBegin oprot "AuthenticationException"
-  case f_AuthenticationException_why rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("why",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_AuthenticationException_fields iprot rec = do
-  (_,_t44,_id45) <- readFieldBegin iprot
-  if _t44 == T_STOP then return rec else
-    case _id45 of 
-      1 -> if _t44 == T_STRING then do
-        s <- readString iprot
-        read_AuthenticationException_fields iprot rec{f_AuthenticationException_why=Just s}
-        else do
-          skip iprot _t44
-          read_AuthenticationException_fields iprot rec
-      _ -> do
-        skip iprot _t44
-        readFieldEnd iprot
-        read_AuthenticationException_fields iprot rec
-read_AuthenticationException iprot = do
-  readStructBegin iprot
-  rec <- read_AuthenticationException_fields iprot (AuthenticationException{f_AuthenticationException_why=Nothing})
-  readStructEnd iprot
-  return rec
-data AuthorizationException = AuthorizationException{f_AuthorizationException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-instance Exception AuthorizationException
-write_AuthorizationException oprot rec = do
-  writeStructBegin oprot "AuthorizationException"
-  case f_AuthorizationException_why rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("why",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_AuthorizationException_fields iprot rec = do
-  (_,_t49,_id50) <- readFieldBegin iprot
-  if _t49 == T_STOP then return rec else
-    case _id50 of 
-      1 -> if _t49 == T_STRING then do
-        s <- readString iprot
-        read_AuthorizationException_fields iprot rec{f_AuthorizationException_why=Just s}
-        else do
-          skip iprot _t49
-          read_AuthorizationException_fields iprot rec
-      _ -> do
-        skip iprot _t49
-        readFieldEnd iprot
-        read_AuthorizationException_fields iprot rec
-read_AuthorizationException iprot = do
-  readStructBegin iprot
-  rec <- read_AuthorizationException_fields iprot (AuthorizationException{f_AuthorizationException_why=Nothing})
-  readStructEnd iprot
-  return rec
-data ColumnParent = ColumnParent{f_ColumnParent_column_family :: Maybe String,f_ColumnParent_super_column :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_ColumnParent oprot rec = do
-  writeStructBegin oprot "ColumnParent"
-  case f_ColumnParent_column_family rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_family",T_STRING,3)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_ColumnParent_super_column rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("super_column",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_ColumnParent_fields iprot rec = do
-  (_,_t54,_id55) <- readFieldBegin iprot
-  if _t54 == T_STOP then return rec else
-    case _id55 of 
-      3 -> if _t54 == T_STRING then do
-        s <- readString iprot
-        read_ColumnParent_fields iprot rec{f_ColumnParent_column_family=Just s}
-        else do
-          skip iprot _t54
-          read_ColumnParent_fields iprot rec
-      4 -> if _t54 == T_STRING then do
-        s <- readString iprot
-        read_ColumnParent_fields iprot rec{f_ColumnParent_super_column=Just s}
-        else do
-          skip iprot _t54
-          read_ColumnParent_fields iprot rec
-      _ -> do
-        skip iprot _t54
-        readFieldEnd iprot
-        read_ColumnParent_fields iprot rec
-read_ColumnParent iprot = do
-  readStructBegin iprot
-  rec <- read_ColumnParent_fields iprot (ColumnParent{f_ColumnParent_column_family=Nothing,f_ColumnParent_super_column=Nothing})
-  readStructEnd iprot
-  return rec
-data ColumnPath = ColumnPath{f_ColumnPath_column_family :: Maybe String,f_ColumnPath_super_column :: Maybe String,f_ColumnPath_column :: Maybe String} deriving (Show,Eq,Ord,Typeable)
-write_ColumnPath oprot rec = do
-  writeStructBegin oprot "ColumnPath"
-  case f_ColumnPath_column_family rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_family",T_STRING,3)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_ColumnPath_super_column rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("super_column",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_ColumnPath_column rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column",T_STRING,5)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_ColumnPath_fields iprot rec = do
-  (_,_t59,_id60) <- readFieldBegin iprot
-  if _t59 == T_STOP then return rec else
-    case _id60 of 
-      3 -> if _t59 == T_STRING then do
-        s <- readString iprot
-        read_ColumnPath_fields iprot rec{f_ColumnPath_column_family=Just s}
-        else do
-          skip iprot _t59
-          read_ColumnPath_fields iprot rec
-      4 -> if _t59 == T_STRING then do
-        s <- readString iprot
-        read_ColumnPath_fields iprot rec{f_ColumnPath_super_column=Just s}
-        else do
-          skip iprot _t59
-          read_ColumnPath_fields iprot rec
-      5 -> if _t59 == T_STRING then do
-        s <- readString iprot
-        read_ColumnPath_fields iprot rec{f_ColumnPath_column=Just s}
-        else do
-          skip iprot _t59
-          read_ColumnPath_fields iprot rec
-      _ -> do
-        skip iprot _t59
-        readFieldEnd iprot
-        read_ColumnPath_fields iprot rec
-read_ColumnPath iprot = do
-  readStructBegin iprot
-  rec <- read_ColumnPath_fields iprot (ColumnPath{f_ColumnPath_column_family=Nothing,f_ColumnPath_super_column=Nothing,f_ColumnPath_column=Nothing})
-  readStructEnd iprot
-  return rec
-data SliceRange = SliceRange{f_SliceRange_start :: Maybe String,f_SliceRange_finish :: Maybe String,f_SliceRange_reversed :: Maybe Bool,f_SliceRange_count :: Maybe Int} deriving (Show,Eq,Ord,Typeable)
-write_SliceRange oprot rec = do
-  writeStructBegin oprot "SliceRange"
-  case f_SliceRange_start rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_SliceRange_finish rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("finish",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_SliceRange_reversed rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("reversed",T_BOOL,3)
-    writeBool oprot _v
-    writeFieldEnd oprot}
-  case f_SliceRange_count rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("count",T_I32,4)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_SliceRange_fields iprot rec = do
-  (_,_t64,_id65) <- readFieldBegin iprot
-  if _t64 == T_STOP then return rec else
-    case _id65 of 
-      1 -> if _t64 == T_STRING then do
-        s <- readString iprot
-        read_SliceRange_fields iprot rec{f_SliceRange_start=Just s}
-        else do
-          skip iprot _t64
-          read_SliceRange_fields iprot rec
-      2 -> if _t64 == T_STRING then do
-        s <- readString iprot
-        read_SliceRange_fields iprot rec{f_SliceRange_finish=Just s}
-        else do
-          skip iprot _t64
-          read_SliceRange_fields iprot rec
-      3 -> if _t64 == T_BOOL then do
-        s <- readBool iprot
-        read_SliceRange_fields iprot rec{f_SliceRange_reversed=Just s}
-        else do
-          skip iprot _t64
-          read_SliceRange_fields iprot rec
-      4 -> if _t64 == T_I32 then do
-        s <- readI32 iprot
-        read_SliceRange_fields iprot rec{f_SliceRange_count=Just s}
-        else do
-          skip iprot _t64
-          read_SliceRange_fields iprot rec
-      _ -> do
-        skip iprot _t64
-        readFieldEnd iprot
-        read_SliceRange_fields iprot rec
-read_SliceRange iprot = do
-  readStructBegin iprot
-  rec <- read_SliceRange_fields iprot (SliceRange{f_SliceRange_start=Nothing,f_SliceRange_finish=Nothing,f_SliceRange_reversed=Nothing,f_SliceRange_count=Nothing})
-  readStructEnd iprot
-  return rec
-data SlicePredicate = SlicePredicate{f_SlicePredicate_column_names :: Maybe [String],f_SlicePredicate_slice_range :: Maybe SliceRange} deriving (Show,Eq,Ord,Typeable)
-write_SlicePredicate oprot rec = do
-  writeStructBegin oprot "SlicePredicate"
-  case f_SlicePredicate_column_names rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_names",T_LIST,1)
-    (let {f [] = return (); f (_viter68:t) = do {writeString oprot _viter68;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  case f_SlicePredicate_slice_range rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("slice_range",T_STRUCT,2)
-    write_SliceRange oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_SlicePredicate_fields iprot rec = do
-  (_,_t70,_id71) <- readFieldBegin iprot
-  if _t70 == T_STOP then return rec else
-    case _id71 of 
-      1 -> if _t70 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype75,_size72) <- readListBegin iprot; f _size72})
-        read_SlicePredicate_fields iprot rec{f_SlicePredicate_column_names=Just s}
-        else do
-          skip iprot _t70
-          read_SlicePredicate_fields iprot rec
-      2 -> if _t70 == T_STRUCT then do
-        s <- (read_SliceRange iprot)
-        read_SlicePredicate_fields iprot rec{f_SlicePredicate_slice_range=Just s}
-        else do
-          skip iprot _t70
-          read_SlicePredicate_fields iprot rec
-      _ -> do
-        skip iprot _t70
-        readFieldEnd iprot
-        read_SlicePredicate_fields iprot rec
-read_SlicePredicate iprot = do
-  readStructBegin iprot
-  rec <- read_SlicePredicate_fields iprot (SlicePredicate{f_SlicePredicate_column_names=Nothing,f_SlicePredicate_slice_range=Nothing})
-  readStructEnd iprot
-  return rec
-data KeyRange = KeyRange{f_KeyRange_start_key :: Maybe String,f_KeyRange_end_key :: Maybe String,f_KeyRange_start_token :: Maybe String,f_KeyRange_end_token :: Maybe String,f_KeyRange_count :: Maybe Int} deriving (Show,Eq,Ord,Typeable)
-write_KeyRange oprot rec = do
-  writeStructBegin oprot "KeyRange"
-  case f_KeyRange_start_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start_key",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_KeyRange_end_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("end_key",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_KeyRange_start_token rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start_token",T_STRING,3)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_KeyRange_end_token rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("end_token",T_STRING,4)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_KeyRange_count rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("count",T_I32,5)
-    writeI32 oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_KeyRange_fields iprot rec = do
-  (_,_t80,_id81) <- readFieldBegin iprot
-  if _t80 == T_STOP then return rec else
-    case _id81 of 
-      1 -> if _t80 == T_STRING then do
-        s <- readString iprot
-        read_KeyRange_fields iprot rec{f_KeyRange_start_key=Just s}
-        else do
-          skip iprot _t80
-          read_KeyRange_fields iprot rec
-      2 -> if _t80 == T_STRING then do
-        s <- readString iprot
-        read_KeyRange_fields iprot rec{f_KeyRange_end_key=Just s}
-        else do
-          skip iprot _t80
-          read_KeyRange_fields iprot rec
-      3 -> if _t80 == T_STRING then do
-        s <- readString iprot
-        read_KeyRange_fields iprot rec{f_KeyRange_start_token=Just s}
-        else do
-          skip iprot _t80
-          read_KeyRange_fields iprot rec
-      4 -> if _t80 == T_STRING then do
-        s <- readString iprot
-        read_KeyRange_fields iprot rec{f_KeyRange_end_token=Just s}
-        else do
-          skip iprot _t80
-          read_KeyRange_fields iprot rec
-      5 -> if _t80 == T_I32 then do
-        s <- readI32 iprot
-        read_KeyRange_fields iprot rec{f_KeyRange_count=Just s}
-        else do
-          skip iprot _t80
-          read_KeyRange_fields iprot rec
-      _ -> do
-        skip iprot _t80
-        readFieldEnd iprot
-        read_KeyRange_fields iprot rec
-read_KeyRange iprot = do
-  readStructBegin iprot
-  rec <- read_KeyRange_fields iprot (KeyRange{f_KeyRange_start_key=Nothing,f_KeyRange_end_key=Nothing,f_KeyRange_start_token=Nothing,f_KeyRange_end_token=Nothing,f_KeyRange_count=Nothing})
-  readStructEnd iprot
-  return rec
-data KeySlice = KeySlice{f_KeySlice_key :: Maybe String,f_KeySlice_columns :: Maybe [ColumnOrSuperColumn]} deriving (Show,Eq,Ord,Typeable)
-write_KeySlice oprot rec = do
-  writeStructBegin oprot "KeySlice"
-  case f_KeySlice_key rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("key",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_KeySlice_columns rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("columns",T_LIST,2)
-    (let {f [] = return (); f (_viter84:t) = do {write_ColumnOrSuperColumn oprot _viter84;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_KeySlice_fields iprot rec = do
-  (_,_t86,_id87) <- readFieldBegin iprot
-  if _t86 == T_STOP then return rec else
-    case _id87 of 
-      1 -> if _t86 == T_STRING then do
-        s <- readString iprot
-        read_KeySlice_fields iprot rec{f_KeySlice_key=Just s}
-        else do
-          skip iprot _t86
-          read_KeySlice_fields iprot rec
-      2 -> if _t86 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype91,_size88) <- readListBegin iprot; f _size88})
-        read_KeySlice_fields iprot rec{f_KeySlice_columns=Just s}
-        else do
-          skip iprot _t86
-          read_KeySlice_fields iprot rec
-      _ -> do
-        skip iprot _t86
-        readFieldEnd iprot
-        read_KeySlice_fields iprot rec
-read_KeySlice iprot = do
-  readStructBegin iprot
-  rec <- read_KeySlice_fields iprot (KeySlice{f_KeySlice_key=Nothing,f_KeySlice_columns=Nothing})
-  readStructEnd iprot
-  return rec
-data Deletion = Deletion{f_Deletion_timestamp :: Maybe Int64,f_Deletion_super_column :: Maybe String,f_Deletion_predicate :: Maybe SlicePredicate} deriving (Show,Eq,Ord,Typeable)
-write_Deletion oprot rec = do
-  writeStructBegin oprot "Deletion"
-  case f_Deletion_timestamp rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("timestamp",T_I64,1)
-    writeI64 oprot _v
-    writeFieldEnd oprot}
-  case f_Deletion_super_column rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("super_column",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_Deletion_predicate rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("predicate",T_STRUCT,3)
-    write_SlicePredicate oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Deletion_fields iprot rec = do
-  (_,_t96,_id97) <- readFieldBegin iprot
-  if _t96 == T_STOP then return rec else
-    case _id97 of 
-      1 -> if _t96 == T_I64 then do
-        s <- readI64 iprot
-        read_Deletion_fields iprot rec{f_Deletion_timestamp=Just s}
-        else do
-          skip iprot _t96
-          read_Deletion_fields iprot rec
-      2 -> if _t96 == T_STRING then do
-        s <- readString iprot
-        read_Deletion_fields iprot rec{f_Deletion_super_column=Just s}
-        else do
-          skip iprot _t96
-          read_Deletion_fields iprot rec
-      3 -> if _t96 == T_STRUCT then do
-        s <- (read_SlicePredicate iprot)
-        read_Deletion_fields iprot rec{f_Deletion_predicate=Just s}
-        else do
-          skip iprot _t96
-          read_Deletion_fields iprot rec
-      _ -> do
-        skip iprot _t96
-        readFieldEnd iprot
-        read_Deletion_fields iprot rec
-read_Deletion iprot = do
-  readStructBegin iprot
-  rec <- read_Deletion_fields iprot (Deletion{f_Deletion_timestamp=Nothing,f_Deletion_super_column=Nothing,f_Deletion_predicate=Nothing})
-  readStructEnd iprot
-  return rec
-data Mutation = Mutation{f_Mutation_column_or_supercolumn :: Maybe ColumnOrSuperColumn,f_Mutation_deletion :: Maybe Deletion} deriving (Show,Eq,Ord,Typeable)
-write_Mutation oprot rec = do
-  writeStructBegin oprot "Mutation"
-  case f_Mutation_column_or_supercolumn rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("column_or_supercolumn",T_STRUCT,1)
-    write_ColumnOrSuperColumn oprot _v
-    writeFieldEnd oprot}
-  case f_Mutation_deletion rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("deletion",T_STRUCT,2)
-    write_Deletion oprot _v
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_Mutation_fields iprot rec = do
-  (_,_t101,_id102) <- readFieldBegin iprot
-  if _t101 == T_STOP then return rec else
-    case _id102 of 
-      1 -> if _t101 == T_STRUCT then do
-        s <- (read_ColumnOrSuperColumn iprot)
-        read_Mutation_fields iprot rec{f_Mutation_column_or_supercolumn=Just s}
-        else do
-          skip iprot _t101
-          read_Mutation_fields iprot rec
-      2 -> if _t101 == T_STRUCT then do
-        s <- (read_Deletion iprot)
-        read_Mutation_fields iprot rec{f_Mutation_deletion=Just s}
-        else do
-          skip iprot _t101
-          read_Mutation_fields iprot rec
-      _ -> do
-        skip iprot _t101
-        readFieldEnd iprot
-        read_Mutation_fields iprot rec
-read_Mutation iprot = do
-  readStructBegin iprot
-  rec <- read_Mutation_fields iprot (Mutation{f_Mutation_column_or_supercolumn=Nothing,f_Mutation_deletion=Nothing})
-  readStructEnd iprot
-  return rec
-data TokenRange = TokenRange{f_TokenRange_start_token :: Maybe String,f_TokenRange_end_token :: Maybe String,f_TokenRange_endpoints :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
-write_TokenRange oprot rec = do
-  writeStructBegin oprot "TokenRange"
-  case f_TokenRange_start_token rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("start_token",T_STRING,1)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_TokenRange_end_token rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("end_token",T_STRING,2)
-    writeString oprot _v
-    writeFieldEnd oprot}
-  case f_TokenRange_endpoints rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("endpoints",T_LIST,3)
-    (let {f [] = return (); f (_viter105:t) = do {writeString oprot _viter105;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_TokenRange_fields iprot rec = do
-  (_,_t107,_id108) <- readFieldBegin iprot
-  if _t107 == T_STOP then return rec else
-    case _id108 of 
-      1 -> if _t107 == T_STRING then do
-        s <- readString iprot
-        read_TokenRange_fields iprot rec{f_TokenRange_start_token=Just s}
-        else do
-          skip iprot _t107
-          read_TokenRange_fields iprot rec
-      2 -> if _t107 == T_STRING then do
-        s <- readString iprot
-        read_TokenRange_fields iprot rec{f_TokenRange_end_token=Just s}
-        else do
-          skip iprot _t107
-          read_TokenRange_fields iprot rec
-      3 -> if _t107 == T_LIST then do
-        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype112,_size109) <- readListBegin iprot; f _size109})
-        read_TokenRange_fields iprot rec{f_TokenRange_endpoints=Just s}
-        else do
-          skip iprot _t107
-          read_TokenRange_fields iprot rec
-      _ -> do
-        skip iprot _t107
-        readFieldEnd iprot
-        read_TokenRange_fields iprot rec
-read_TokenRange iprot = do
-  readStructBegin iprot
-  rec <- read_TokenRange_fields iprot (TokenRange{f_TokenRange_start_token=Nothing,f_TokenRange_end_token=Nothing,f_TokenRange_endpoints=Nothing})
-  readStructEnd iprot
-  return rec
-data AuthenticationRequest = AuthenticationRequest{f_AuthenticationRequest_credentials :: Maybe (Map.Map String String)} deriving (Show,Eq,Ord,Typeable)
-write_AuthenticationRequest oprot rec = do
-  writeStructBegin oprot "AuthenticationRequest"
-  case f_AuthenticationRequest_credentials rec of {Nothing -> return (); Just _v -> do
-    writeFieldBegin oprot ("credentials",T_MAP,1)
-    (let {f [] = return (); f ((_kiter116,_viter117):t) = do {do {writeString oprot _kiter116;writeString oprot _viter117};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
-    writeFieldEnd oprot}
-  writeFieldStop oprot
-  writeStructEnd oprot
-read_AuthenticationRequest_fields iprot rec = do
-  (_,_t119,_id120) <- readFieldBegin iprot
-  if _t119 == T_STOP then return rec else
-    case _id120 of 
-      1 -> if _t119 == T_MAP then do
-        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype122,_vtype123,_size121) <- readMapBegin iprot; l <- f _size121; return $ Map.fromList l})
-        read_AuthenticationRequest_fields iprot rec{f_AuthenticationRequest_credentials=Just s}
-        else do
-          skip iprot _t119
-          read_AuthenticationRequest_fields iprot rec
-      _ -> do
-        skip iprot _t119
-        readFieldEnd iprot
-        read_AuthenticationRequest_fields iprot rec
-read_AuthenticationRequest iprot = do
-  readStructBegin iprot
-  rec <- read_AuthenticationRequest_fields iprot (AuthenticationRequest{f_AuthenticationRequest_credentials=Nothing})
-  readStructEnd iprot
-  return rec
+{-# OPTIONS_GHC -fno-warn-missing-fields #-}
+{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-----------------------------------------------------------------
+-- Autogenerated by Thrift                                     --
+--                                                             --
+-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
+-----------------------------------------------------------------
+
+module Database.Cassandra.Thrift.Cassandra_Types where
+import Thrift
+import Data.Typeable ( Typeable )
+import Control.Exception
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+import Data.ByteString.Lazy
+import Data.Int
+import Data.Word
+import Prelude ((==), String, Eq, Show, Ord, Maybe(..), (&&), (||), return, IO, Enum, fromIntegral, fromEnum, toEnum, Bool(..), (++), ($), Double, (-), length)
+data ConsistencyLevel = ONE|QUORUM|LOCAL_QUORUM|EACH_QUORUM|ALL|ANY  deriving (Show,Eq, Typeable, Ord)
+instance Enum ConsistencyLevel where
+  fromEnum t = case t of
+    ONE -> 1
+    QUORUM -> 2
+    LOCAL_QUORUM -> 3
+    EACH_QUORUM -> 4
+    ALL -> 5
+    ANY -> 6
+  toEnum t = case t of
+    1 -> ONE
+    2 -> QUORUM
+    3 -> LOCAL_QUORUM
+    4 -> EACH_QUORUM
+    5 -> ALL
+    6 -> ANY
+    _ -> throw ThriftException
+data IndexOperator = EQ|GTE|GT|LTE|LT  deriving (Show,Eq, Typeable, Ord)
+instance Enum IndexOperator where
+  fromEnum t = case t of
+    EQ -> 0
+    GTE -> 1
+    GT -> 2
+    LTE -> 3
+    LT -> 4
+  toEnum t = case t of
+    0 -> EQ
+    1 -> GTE
+    2 -> GT
+    3 -> LTE
+    4 -> LT
+    _ -> throw ThriftException
+data IndexType = KEYS  deriving (Show,Eq, Typeable, Ord)
+instance Enum IndexType where
+  fromEnum t = case t of
+    KEYS -> 0
+  toEnum t = case t of
+    0 -> KEYS
+    _ -> throw ThriftException
+data Column = Column{f_Column_name :: Maybe ByteString,f_Column_value :: Maybe ByteString,f_Column_timestamp :: Maybe Int64,f_Column_ttl :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_Column oprot record = do
+  writeStructBegin oprot "Column"
+  case f_Column_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Column_value record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("value",T_STRING,2)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Column_timestamp record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("timestamp",T_I64,3)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  case f_Column_ttl record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ttl",T_I32,4)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Column_fields iprot record = do
+  (_,_t3,_id4) <- readFieldBegin iprot
+  if _t3 == T_STOP then return record else
+    case _id4 of 
+      1 -> if _t3 == T_STRING then do
+        s <- readBinary iprot
+        read_Column_fields iprot record{f_Column_name=Just s}
+        else do
+          skip iprot _t3
+          read_Column_fields iprot record
+      2 -> if _t3 == T_STRING then do
+        s <- readBinary iprot
+        read_Column_fields iprot record{f_Column_value=Just s}
+        else do
+          skip iprot _t3
+          read_Column_fields iprot record
+      3 -> if _t3 == T_I64 then do
+        s <- readI64 iprot
+        read_Column_fields iprot record{f_Column_timestamp=Just s}
+        else do
+          skip iprot _t3
+          read_Column_fields iprot record
+      4 -> if _t3 == T_I32 then do
+        s <- readI32 iprot
+        read_Column_fields iprot record{f_Column_ttl=Just s}
+        else do
+          skip iprot _t3
+          read_Column_fields iprot record
+      _ -> do
+        skip iprot _t3
+        readFieldEnd iprot
+        read_Column_fields iprot record
+read_Column iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Column_fields iprot (Column{f_Column_name=Nothing,f_Column_value=Nothing,f_Column_timestamp=Nothing,f_Column_ttl=Nothing})
+  readStructEnd iprot
+  return record
+data SuperColumn = SuperColumn{f_SuperColumn_name :: Maybe ByteString,f_SuperColumn_columns :: Maybe [Column]} deriving (Show,Eq,Ord,Typeable)
+write_SuperColumn oprot record = do
+  writeStructBegin oprot "SuperColumn"
+  case f_SuperColumn_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_SuperColumn_columns record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("columns",T_LIST,2)
+    (let {f [] = return (); f (_viter7:t) = do {write_Column oprot _viter7;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_SuperColumn_fields iprot record = do
+  (_,_t9,_id10) <- readFieldBegin iprot
+  if _t9 == T_STOP then return record else
+    case _id10 of 
+      1 -> if _t9 == T_STRING then do
+        s <- readBinary iprot
+        read_SuperColumn_fields iprot record{f_SuperColumn_name=Just s}
+        else do
+          skip iprot _t9
+          read_SuperColumn_fields iprot record
+      2 -> if _t9 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_Column iprot);r <- f (n-1); return $ v:r}} in do {(_etype14,_size11) <- readListBegin iprot; f _size11})
+        read_SuperColumn_fields iprot record{f_SuperColumn_columns=Just s}
+        else do
+          skip iprot _t9
+          read_SuperColumn_fields iprot record
+      _ -> do
+        skip iprot _t9
+        readFieldEnd iprot
+        read_SuperColumn_fields iprot record
+read_SuperColumn iprot = do
+  _ <- readStructBegin iprot
+  record <- read_SuperColumn_fields iprot (SuperColumn{f_SuperColumn_name=Nothing,f_SuperColumn_columns=Nothing})
+  readStructEnd iprot
+  return record
+data ColumnOrSuperColumn = ColumnOrSuperColumn{f_ColumnOrSuperColumn_column :: Maybe Column,f_ColumnOrSuperColumn_super_column :: Maybe SuperColumn} deriving (Show,Eq,Ord,Typeable)
+write_ColumnOrSuperColumn oprot record = do
+  writeStructBegin oprot "ColumnOrSuperColumn"
+  case f_ColumnOrSuperColumn_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column",T_STRUCT,1)
+    write_Column oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnOrSuperColumn_super_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("super_column",T_STRUCT,2)
+    write_SuperColumn oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_ColumnOrSuperColumn_fields iprot record = do
+  (_,_t19,_id20) <- readFieldBegin iprot
+  if _t19 == T_STOP then return record else
+    case _id20 of 
+      1 -> if _t19 == T_STRUCT then do
+        s <- (read_Column iprot)
+        read_ColumnOrSuperColumn_fields iprot record{f_ColumnOrSuperColumn_column=Just s}
+        else do
+          skip iprot _t19
+          read_ColumnOrSuperColumn_fields iprot record
+      2 -> if _t19 == T_STRUCT then do
+        s <- (read_SuperColumn iprot)
+        read_ColumnOrSuperColumn_fields iprot record{f_ColumnOrSuperColumn_super_column=Just s}
+        else do
+          skip iprot _t19
+          read_ColumnOrSuperColumn_fields iprot record
+      _ -> do
+        skip iprot _t19
+        readFieldEnd iprot
+        read_ColumnOrSuperColumn_fields iprot record
+read_ColumnOrSuperColumn iprot = do
+  _ <- readStructBegin iprot
+  record <- read_ColumnOrSuperColumn_fields iprot (ColumnOrSuperColumn{f_ColumnOrSuperColumn_column=Nothing,f_ColumnOrSuperColumn_super_column=Nothing})
+  readStructEnd iprot
+  return record
+data NotFoundException = NotFoundException deriving (Show,Eq,Ord,Typeable)
+instance Exception NotFoundException
+write_NotFoundException oprot record = do
+  writeStructBegin oprot "NotFoundException"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_NotFoundException_fields iprot record = do
+  (_,_t24,_id25) <- readFieldBegin iprot
+  if _t24 == T_STOP then return record else
+    case _id25 of 
+      _ -> do
+        skip iprot _t24
+        readFieldEnd iprot
+        read_NotFoundException_fields iprot record
+read_NotFoundException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_NotFoundException_fields iprot (NotFoundException{})
+  readStructEnd iprot
+  return record
+data InvalidRequestException = InvalidRequestException{f_InvalidRequestException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+instance Exception InvalidRequestException
+write_InvalidRequestException oprot record = do
+  writeStructBegin oprot "InvalidRequestException"
+  case f_InvalidRequestException_why record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("why",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_InvalidRequestException_fields iprot record = do
+  (_,_t29,_id30) <- readFieldBegin iprot
+  if _t29 == T_STOP then return record else
+    case _id30 of 
+      1 -> if _t29 == T_STRING then do
+        s <- readString iprot
+        read_InvalidRequestException_fields iprot record{f_InvalidRequestException_why=Just s}
+        else do
+          skip iprot _t29
+          read_InvalidRequestException_fields iprot record
+      _ -> do
+        skip iprot _t29
+        readFieldEnd iprot
+        read_InvalidRequestException_fields iprot record
+read_InvalidRequestException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_InvalidRequestException_fields iprot (InvalidRequestException{f_InvalidRequestException_why=Nothing})
+  readStructEnd iprot
+  return record
+data UnavailableException = UnavailableException deriving (Show,Eq,Ord,Typeable)
+instance Exception UnavailableException
+write_UnavailableException oprot record = do
+  writeStructBegin oprot "UnavailableException"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_UnavailableException_fields iprot record = do
+  (_,_t34,_id35) <- readFieldBegin iprot
+  if _t34 == T_STOP then return record else
+    case _id35 of 
+      _ -> do
+        skip iprot _t34
+        readFieldEnd iprot
+        read_UnavailableException_fields iprot record
+read_UnavailableException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_UnavailableException_fields iprot (UnavailableException{})
+  readStructEnd iprot
+  return record
+data TimedOutException = TimedOutException deriving (Show,Eq,Ord,Typeable)
+instance Exception TimedOutException
+write_TimedOutException oprot record = do
+  writeStructBegin oprot "TimedOutException"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_TimedOutException_fields iprot record = do
+  (_,_t39,_id40) <- readFieldBegin iprot
+  if _t39 == T_STOP then return record else
+    case _id40 of 
+      _ -> do
+        skip iprot _t39
+        readFieldEnd iprot
+        read_TimedOutException_fields iprot record
+read_TimedOutException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_TimedOutException_fields iprot (TimedOutException{})
+  readStructEnd iprot
+  return record
+data AuthenticationException = AuthenticationException{f_AuthenticationException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+instance Exception AuthenticationException
+write_AuthenticationException oprot record = do
+  writeStructBegin oprot "AuthenticationException"
+  case f_AuthenticationException_why record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("why",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_AuthenticationException_fields iprot record = do
+  (_,_t44,_id45) <- readFieldBegin iprot
+  if _t44 == T_STOP then return record else
+    case _id45 of 
+      1 -> if _t44 == T_STRING then do
+        s <- readString iprot
+        read_AuthenticationException_fields iprot record{f_AuthenticationException_why=Just s}
+        else do
+          skip iprot _t44
+          read_AuthenticationException_fields iprot record
+      _ -> do
+        skip iprot _t44
+        readFieldEnd iprot
+        read_AuthenticationException_fields iprot record
+read_AuthenticationException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_AuthenticationException_fields iprot (AuthenticationException{f_AuthenticationException_why=Nothing})
+  readStructEnd iprot
+  return record
+data AuthorizationException = AuthorizationException{f_AuthorizationException_why :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+instance Exception AuthorizationException
+write_AuthorizationException oprot record = do
+  writeStructBegin oprot "AuthorizationException"
+  case f_AuthorizationException_why record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("why",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_AuthorizationException_fields iprot record = do
+  (_,_t49,_id50) <- readFieldBegin iprot
+  if _t49 == T_STOP then return record else
+    case _id50 of 
+      1 -> if _t49 == T_STRING then do
+        s <- readString iprot
+        read_AuthorizationException_fields iprot record{f_AuthorizationException_why=Just s}
+        else do
+          skip iprot _t49
+          read_AuthorizationException_fields iprot record
+      _ -> do
+        skip iprot _t49
+        readFieldEnd iprot
+        read_AuthorizationException_fields iprot record
+read_AuthorizationException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_AuthorizationException_fields iprot (AuthorizationException{f_AuthorizationException_why=Nothing})
+  readStructEnd iprot
+  return record
+data ColumnParent = ColumnParent{f_ColumnParent_column_family :: Maybe String,f_ColumnParent_super_column :: Maybe ByteString} deriving (Show,Eq,Ord,Typeable)
+write_ColumnParent oprot record = do
+  writeStructBegin oprot "ColumnParent"
+  case f_ColumnParent_column_family record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_family",T_STRING,3)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnParent_super_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("super_column",T_STRING,4)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_ColumnParent_fields iprot record = do
+  (_,_t54,_id55) <- readFieldBegin iprot
+  if _t54 == T_STOP then return record else
+    case _id55 of 
+      3 -> if _t54 == T_STRING then do
+        s <- readString iprot
+        read_ColumnParent_fields iprot record{f_ColumnParent_column_family=Just s}
+        else do
+          skip iprot _t54
+          read_ColumnParent_fields iprot record
+      4 -> if _t54 == T_STRING then do
+        s <- readBinary iprot
+        read_ColumnParent_fields iprot record{f_ColumnParent_super_column=Just s}
+        else do
+          skip iprot _t54
+          read_ColumnParent_fields iprot record
+      _ -> do
+        skip iprot _t54
+        readFieldEnd iprot
+        read_ColumnParent_fields iprot record
+read_ColumnParent iprot = do
+  _ <- readStructBegin iprot
+  record <- read_ColumnParent_fields iprot (ColumnParent{f_ColumnParent_column_family=Nothing,f_ColumnParent_super_column=Nothing})
+  readStructEnd iprot
+  return record
+data ColumnPath = ColumnPath{f_ColumnPath_column_family :: Maybe String,f_ColumnPath_super_column :: Maybe ByteString,f_ColumnPath_column :: Maybe ByteString} deriving (Show,Eq,Ord,Typeable)
+write_ColumnPath oprot record = do
+  writeStructBegin oprot "ColumnPath"
+  case f_ColumnPath_column_family record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_family",T_STRING,3)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnPath_super_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("super_column",T_STRING,4)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnPath_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column",T_STRING,5)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_ColumnPath_fields iprot record = do
+  (_,_t59,_id60) <- readFieldBegin iprot
+  if _t59 == T_STOP then return record else
+    case _id60 of 
+      3 -> if _t59 == T_STRING then do
+        s <- readString iprot
+        read_ColumnPath_fields iprot record{f_ColumnPath_column_family=Just s}
+        else do
+          skip iprot _t59
+          read_ColumnPath_fields iprot record
+      4 -> if _t59 == T_STRING then do
+        s <- readBinary iprot
+        read_ColumnPath_fields iprot record{f_ColumnPath_super_column=Just s}
+        else do
+          skip iprot _t59
+          read_ColumnPath_fields iprot record
+      5 -> if _t59 == T_STRING then do
+        s <- readBinary iprot
+        read_ColumnPath_fields iprot record{f_ColumnPath_column=Just s}
+        else do
+          skip iprot _t59
+          read_ColumnPath_fields iprot record
+      _ -> do
+        skip iprot _t59
+        readFieldEnd iprot
+        read_ColumnPath_fields iprot record
+read_ColumnPath iprot = do
+  _ <- readStructBegin iprot
+  record <- read_ColumnPath_fields iprot (ColumnPath{f_ColumnPath_column_family=Nothing,f_ColumnPath_super_column=Nothing,f_ColumnPath_column=Nothing})
+  readStructEnd iprot
+  return record
+data SliceRange = SliceRange{f_SliceRange_start :: Maybe ByteString,f_SliceRange_finish :: Maybe ByteString,f_SliceRange_reversed :: Maybe Bool,f_SliceRange_count :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_SliceRange oprot record = do
+  writeStructBegin oprot "SliceRange"
+  case f_SliceRange_start record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_SliceRange_finish record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("finish",T_STRING,2)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_SliceRange_reversed record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("reversed",T_BOOL,3)
+    writeBool oprot _v
+    writeFieldEnd oprot}
+  case f_SliceRange_count record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("count",T_I32,4)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_SliceRange_fields iprot record = do
+  (_,_t64,_id65) <- readFieldBegin iprot
+  if _t64 == T_STOP then return record else
+    case _id65 of 
+      1 -> if _t64 == T_STRING then do
+        s <- readBinary iprot
+        read_SliceRange_fields iprot record{f_SliceRange_start=Just s}
+        else do
+          skip iprot _t64
+          read_SliceRange_fields iprot record
+      2 -> if _t64 == T_STRING then do
+        s <- readBinary iprot
+        read_SliceRange_fields iprot record{f_SliceRange_finish=Just s}
+        else do
+          skip iprot _t64
+          read_SliceRange_fields iprot record
+      3 -> if _t64 == T_BOOL then do
+        s <- readBool iprot
+        read_SliceRange_fields iprot record{f_SliceRange_reversed=Just s}
+        else do
+          skip iprot _t64
+          read_SliceRange_fields iprot record
+      4 -> if _t64 == T_I32 then do
+        s <- readI32 iprot
+        read_SliceRange_fields iprot record{f_SliceRange_count=Just s}
+        else do
+          skip iprot _t64
+          read_SliceRange_fields iprot record
+      _ -> do
+        skip iprot _t64
+        readFieldEnd iprot
+        read_SliceRange_fields iprot record
+read_SliceRange iprot = do
+  _ <- readStructBegin iprot
+  record <- read_SliceRange_fields iprot (SliceRange{f_SliceRange_start=Nothing,f_SliceRange_finish=Nothing,f_SliceRange_reversed=Nothing,f_SliceRange_count=Nothing})
+  readStructEnd iprot
+  return record
+data SlicePredicate = SlicePredicate{f_SlicePredicate_column_names :: Maybe [ByteString],f_SlicePredicate_slice_range :: Maybe SliceRange} deriving (Show,Eq,Ord,Typeable)
+write_SlicePredicate oprot record = do
+  writeStructBegin oprot "SlicePredicate"
+  case f_SlicePredicate_column_names record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_names",T_LIST,1)
+    (let {f [] = return (); f (_viter68:t) = do {writeBinary oprot _viter68;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_SlicePredicate_slice_range record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("slice_range",T_STRUCT,2)
+    write_SliceRange oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_SlicePredicate_fields iprot record = do
+  (_,_t70,_id71) <- readFieldBegin iprot
+  if _t70 == T_STOP then return record else
+    case _id71 of 
+      1 -> if _t70 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readBinary iprot;r <- f (n-1); return $ v:r}} in do {(_etype75,_size72) <- readListBegin iprot; f _size72})
+        read_SlicePredicate_fields iprot record{f_SlicePredicate_column_names=Just s}
+        else do
+          skip iprot _t70
+          read_SlicePredicate_fields iprot record
+      2 -> if _t70 == T_STRUCT then do
+        s <- (read_SliceRange iprot)
+        read_SlicePredicate_fields iprot record{f_SlicePredicate_slice_range=Just s}
+        else do
+          skip iprot _t70
+          read_SlicePredicate_fields iprot record
+      _ -> do
+        skip iprot _t70
+        readFieldEnd iprot
+        read_SlicePredicate_fields iprot record
+read_SlicePredicate iprot = do
+  _ <- readStructBegin iprot
+  record <- read_SlicePredicate_fields iprot (SlicePredicate{f_SlicePredicate_column_names=Nothing,f_SlicePredicate_slice_range=Nothing})
+  readStructEnd iprot
+  return record
+data IndexExpression = IndexExpression{f_IndexExpression_column_name :: Maybe ByteString,f_IndexExpression_op :: Maybe IndexOperator,f_IndexExpression_value :: Maybe ByteString} deriving (Show,Eq,Ord,Typeable)
+write_IndexExpression oprot record = do
+  writeStructBegin oprot "IndexExpression"
+  case f_IndexExpression_column_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_name",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_IndexExpression_op record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("op",T_I32,2)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  case f_IndexExpression_value record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("value",T_STRING,3)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_IndexExpression_fields iprot record = do
+  (_,_t80,_id81) <- readFieldBegin iprot
+  if _t80 == T_STOP then return record else
+    case _id81 of 
+      1 -> if _t80 == T_STRING then do
+        s <- readBinary iprot
+        read_IndexExpression_fields iprot record{f_IndexExpression_column_name=Just s}
+        else do
+          skip iprot _t80
+          read_IndexExpression_fields iprot record
+      2 -> if _t80 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_IndexExpression_fields iprot record{f_IndexExpression_op=Just s}
+        else do
+          skip iprot _t80
+          read_IndexExpression_fields iprot record
+      3 -> if _t80 == T_STRING then do
+        s <- readBinary iprot
+        read_IndexExpression_fields iprot record{f_IndexExpression_value=Just s}
+        else do
+          skip iprot _t80
+          read_IndexExpression_fields iprot record
+      _ -> do
+        skip iprot _t80
+        readFieldEnd iprot
+        read_IndexExpression_fields iprot record
+read_IndexExpression iprot = do
+  _ <- readStructBegin iprot
+  record <- read_IndexExpression_fields iprot (IndexExpression{f_IndexExpression_column_name=Nothing,f_IndexExpression_op=Nothing,f_IndexExpression_value=Nothing})
+  readStructEnd iprot
+  return record
+data IndexClause = IndexClause{f_IndexClause_expressions :: Maybe [IndexExpression],f_IndexClause_start_key :: Maybe ByteString,f_IndexClause_count :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_IndexClause oprot record = do
+  writeStructBegin oprot "IndexClause"
+  case f_IndexClause_expressions record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("expressions",T_LIST,1)
+    (let {f [] = return (); f (_viter84:t) = do {write_IndexExpression oprot _viter84;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_IndexClause_start_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_key",T_STRING,2)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_IndexClause_count record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("count",T_I32,3)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_IndexClause_fields iprot record = do
+  (_,_t86,_id87) <- readFieldBegin iprot
+  if _t86 == T_STOP then return record else
+    case _id87 of 
+      1 -> if _t86 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_IndexExpression iprot);r <- f (n-1); return $ v:r}} in do {(_etype91,_size88) <- readListBegin iprot; f _size88})
+        read_IndexClause_fields iprot record{f_IndexClause_expressions=Just s}
+        else do
+          skip iprot _t86
+          read_IndexClause_fields iprot record
+      2 -> if _t86 == T_STRING then do
+        s <- readBinary iprot
+        read_IndexClause_fields iprot record{f_IndexClause_start_key=Just s}
+        else do
+          skip iprot _t86
+          read_IndexClause_fields iprot record
+      3 -> if _t86 == T_I32 then do
+        s <- readI32 iprot
+        read_IndexClause_fields iprot record{f_IndexClause_count=Just s}
+        else do
+          skip iprot _t86
+          read_IndexClause_fields iprot record
+      _ -> do
+        skip iprot _t86
+        readFieldEnd iprot
+        read_IndexClause_fields iprot record
+read_IndexClause iprot = do
+  _ <- readStructBegin iprot
+  record <- read_IndexClause_fields iprot (IndexClause{f_IndexClause_expressions=Nothing,f_IndexClause_start_key=Nothing,f_IndexClause_count=Nothing})
+  readStructEnd iprot
+  return record
+data KeyRange = KeyRange{f_KeyRange_start_key :: Maybe ByteString,f_KeyRange_end_key :: Maybe ByteString,f_KeyRange_start_token :: Maybe String,f_KeyRange_end_token :: Maybe String,f_KeyRange_count :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_KeyRange oprot record = do
+  writeStructBegin oprot "KeyRange"
+  case f_KeyRange_start_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_end_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_key",T_STRING,2)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_start_token record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_token",T_STRING,3)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_end_token record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_token",T_STRING,4)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KeyRange_count record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("count",T_I32,5)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_KeyRange_fields iprot record = do
+  (_,_t96,_id97) <- readFieldBegin iprot
+  if _t96 == T_STOP then return record else
+    case _id97 of 
+      1 -> if _t96 == T_STRING then do
+        s <- readBinary iprot
+        read_KeyRange_fields iprot record{f_KeyRange_start_key=Just s}
+        else do
+          skip iprot _t96
+          read_KeyRange_fields iprot record
+      2 -> if _t96 == T_STRING then do
+        s <- readBinary iprot
+        read_KeyRange_fields iprot record{f_KeyRange_end_key=Just s}
+        else do
+          skip iprot _t96
+          read_KeyRange_fields iprot record
+      3 -> if _t96 == T_STRING then do
+        s <- readString iprot
+        read_KeyRange_fields iprot record{f_KeyRange_start_token=Just s}
+        else do
+          skip iprot _t96
+          read_KeyRange_fields iprot record
+      4 -> if _t96 == T_STRING then do
+        s <- readString iprot
+        read_KeyRange_fields iprot record{f_KeyRange_end_token=Just s}
+        else do
+          skip iprot _t96
+          read_KeyRange_fields iprot record
+      5 -> if _t96 == T_I32 then do
+        s <- readI32 iprot
+        read_KeyRange_fields iprot record{f_KeyRange_count=Just s}
+        else do
+          skip iprot _t96
+          read_KeyRange_fields iprot record
+      _ -> do
+        skip iprot _t96
+        readFieldEnd iprot
+        read_KeyRange_fields iprot record
+read_KeyRange iprot = do
+  _ <- readStructBegin iprot
+  record <- read_KeyRange_fields iprot (KeyRange{f_KeyRange_start_key=Nothing,f_KeyRange_end_key=Nothing,f_KeyRange_start_token=Nothing,f_KeyRange_end_token=Nothing,f_KeyRange_count=Nothing})
+  readStructEnd iprot
+  return record
+data KeySlice = KeySlice{f_KeySlice_key :: Maybe ByteString,f_KeySlice_columns :: Maybe [ColumnOrSuperColumn]} deriving (Show,Eq,Ord,Typeable)
+write_KeySlice oprot record = do
+  writeStructBegin oprot "KeySlice"
+  case f_KeySlice_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_KeySlice_columns record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("columns",T_LIST,2)
+    (let {f [] = return (); f (_viter100:t) = do {write_ColumnOrSuperColumn oprot _viter100;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_KeySlice_fields iprot record = do
+  (_,_t102,_id103) <- readFieldBegin iprot
+  if _t102 == T_STOP then return record else
+    case _id103 of 
+      1 -> if _t102 == T_STRING then do
+        s <- readBinary iprot
+        read_KeySlice_fields iprot record{f_KeySlice_key=Just s}
+        else do
+          skip iprot _t102
+          read_KeySlice_fields iprot record
+      2 -> if _t102 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype107,_size104) <- readListBegin iprot; f _size104})
+        read_KeySlice_fields iprot record{f_KeySlice_columns=Just s}
+        else do
+          skip iprot _t102
+          read_KeySlice_fields iprot record
+      _ -> do
+        skip iprot _t102
+        readFieldEnd iprot
+        read_KeySlice_fields iprot record
+read_KeySlice iprot = do
+  _ <- readStructBegin iprot
+  record <- read_KeySlice_fields iprot (KeySlice{f_KeySlice_key=Nothing,f_KeySlice_columns=Nothing})
+  readStructEnd iprot
+  return record
+data KeyCount = KeyCount{f_KeyCount_key :: Maybe ByteString,f_KeyCount_count :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_KeyCount oprot record = do
+  writeStructBegin oprot "KeyCount"
+  case f_KeyCount_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_KeyCount_count record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("count",T_I32,2)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_KeyCount_fields iprot record = do
+  (_,_t112,_id113) <- readFieldBegin iprot
+  if _t112 == T_STOP then return record else
+    case _id113 of 
+      1 -> if _t112 == T_STRING then do
+        s <- readBinary iprot
+        read_KeyCount_fields iprot record{f_KeyCount_key=Just s}
+        else do
+          skip iprot _t112
+          read_KeyCount_fields iprot record
+      2 -> if _t112 == T_I32 then do
+        s <- readI32 iprot
+        read_KeyCount_fields iprot record{f_KeyCount_count=Just s}
+        else do
+          skip iprot _t112
+          read_KeyCount_fields iprot record
+      _ -> do
+        skip iprot _t112
+        readFieldEnd iprot
+        read_KeyCount_fields iprot record
+read_KeyCount iprot = do
+  _ <- readStructBegin iprot
+  record <- read_KeyCount_fields iprot (KeyCount{f_KeyCount_key=Nothing,f_KeyCount_count=Nothing})
+  readStructEnd iprot
+  return record
+data Deletion = Deletion{f_Deletion_timestamp :: Maybe Int64,f_Deletion_super_column :: Maybe ByteString,f_Deletion_predicate :: Maybe SlicePredicate} deriving (Show,Eq,Ord,Typeable)
+write_Deletion oprot record = do
+  writeStructBegin oprot "Deletion"
+  case f_Deletion_timestamp record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("timestamp",T_I64,1)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  case f_Deletion_super_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("super_column",T_STRING,2)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Deletion_predicate record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("predicate",T_STRUCT,3)
+    write_SlicePredicate oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Deletion_fields iprot record = do
+  (_,_t117,_id118) <- readFieldBegin iprot
+  if _t117 == T_STOP then return record else
+    case _id118 of 
+      1 -> if _t117 == T_I64 then do
+        s <- readI64 iprot
+        read_Deletion_fields iprot record{f_Deletion_timestamp=Just s}
+        else do
+          skip iprot _t117
+          read_Deletion_fields iprot record
+      2 -> if _t117 == T_STRING then do
+        s <- readBinary iprot
+        read_Deletion_fields iprot record{f_Deletion_super_column=Just s}
+        else do
+          skip iprot _t117
+          read_Deletion_fields iprot record
+      3 -> if _t117 == T_STRUCT then do
+        s <- (read_SlicePredicate iprot)
+        read_Deletion_fields iprot record{f_Deletion_predicate=Just s}
+        else do
+          skip iprot _t117
+          read_Deletion_fields iprot record
+      _ -> do
+        skip iprot _t117
+        readFieldEnd iprot
+        read_Deletion_fields iprot record
+read_Deletion iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Deletion_fields iprot (Deletion{f_Deletion_timestamp=Nothing,f_Deletion_super_column=Nothing,f_Deletion_predicate=Nothing})
+  readStructEnd iprot
+  return record
+data Mutation = Mutation{f_Mutation_column_or_supercolumn :: Maybe ColumnOrSuperColumn,f_Mutation_deletion :: Maybe Deletion} deriving (Show,Eq,Ord,Typeable)
+write_Mutation oprot record = do
+  writeStructBegin oprot "Mutation"
+  case f_Mutation_column_or_supercolumn record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_or_supercolumn",T_STRUCT,1)
+    write_ColumnOrSuperColumn oprot _v
+    writeFieldEnd oprot}
+  case f_Mutation_deletion record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("deletion",T_STRUCT,2)
+    write_Deletion oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Mutation_fields iprot record = do
+  (_,_t122,_id123) <- readFieldBegin iprot
+  if _t122 == T_STOP then return record else
+    case _id123 of 
+      1 -> if _t122 == T_STRUCT then do
+        s <- (read_ColumnOrSuperColumn iprot)
+        read_Mutation_fields iprot record{f_Mutation_column_or_supercolumn=Just s}
+        else do
+          skip iprot _t122
+          read_Mutation_fields iprot record
+      2 -> if _t122 == T_STRUCT then do
+        s <- (read_Deletion iprot)
+        read_Mutation_fields iprot record{f_Mutation_deletion=Just s}
+        else do
+          skip iprot _t122
+          read_Mutation_fields iprot record
+      _ -> do
+        skip iprot _t122
+        readFieldEnd iprot
+        read_Mutation_fields iprot record
+read_Mutation iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Mutation_fields iprot (Mutation{f_Mutation_column_or_supercolumn=Nothing,f_Mutation_deletion=Nothing})
+  readStructEnd iprot
+  return record
+data TokenRange = TokenRange{f_TokenRange_start_token :: Maybe String,f_TokenRange_end_token :: Maybe String,f_TokenRange_endpoints :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
+write_TokenRange oprot record = do
+  writeStructBegin oprot "TokenRange"
+  case f_TokenRange_start_token record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("start_token",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_TokenRange_end_token record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("end_token",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_TokenRange_endpoints record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("endpoints",T_LIST,3)
+    (let {f [] = return (); f (_viter126:t) = do {writeString oprot _viter126;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_TokenRange_fields iprot record = do
+  (_,_t128,_id129) <- readFieldBegin iprot
+  if _t128 == T_STOP then return record else
+    case _id129 of 
+      1 -> if _t128 == T_STRING then do
+        s <- readString iprot
+        read_TokenRange_fields iprot record{f_TokenRange_start_token=Just s}
+        else do
+          skip iprot _t128
+          read_TokenRange_fields iprot record
+      2 -> if _t128 == T_STRING then do
+        s <- readString iprot
+        read_TokenRange_fields iprot record{f_TokenRange_end_token=Just s}
+        else do
+          skip iprot _t128
+          read_TokenRange_fields iprot record
+      3 -> if _t128 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype133,_size130) <- readListBegin iprot; f _size130})
+        read_TokenRange_fields iprot record{f_TokenRange_endpoints=Just s}
+        else do
+          skip iprot _t128
+          read_TokenRange_fields iprot record
+      _ -> do
+        skip iprot _t128
+        readFieldEnd iprot
+        read_TokenRange_fields iprot record
+read_TokenRange iprot = do
+  _ <- readStructBegin iprot
+  record <- read_TokenRange_fields iprot (TokenRange{f_TokenRange_start_token=Nothing,f_TokenRange_end_token=Nothing,f_TokenRange_endpoints=Nothing})
+  readStructEnd iprot
+  return record
+data AuthenticationRequest = AuthenticationRequest{f_AuthenticationRequest_credentials :: Maybe (Map.Map String String)} deriving (Show,Eq,Ord,Typeable)
+write_AuthenticationRequest oprot record = do
+  writeStructBegin oprot "AuthenticationRequest"
+  case f_AuthenticationRequest_credentials record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("credentials",T_MAP,1)
+    (let {f [] = return (); f ((_kiter137,_viter138):t) = do {do {writeString oprot _kiter137;writeString oprot _viter138};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,fromIntegral $ Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_AuthenticationRequest_fields iprot record = do
+  (_,_t140,_id141) <- readFieldBegin iprot
+  if _t140 == T_STOP then return record else
+    case _id141 of 
+      1 -> if _t140 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype143,_vtype144,_size142) <- readMapBegin iprot; l <- f _size142; return $ Map.fromList l})
+        read_AuthenticationRequest_fields iprot record{f_AuthenticationRequest_credentials=Just s}
+        else do
+          skip iprot _t140
+          read_AuthenticationRequest_fields iprot record
+      _ -> do
+        skip iprot _t140
+        readFieldEnd iprot
+        read_AuthenticationRequest_fields iprot record
+read_AuthenticationRequest iprot = do
+  _ <- readStructBegin iprot
+  record <- read_AuthenticationRequest_fields iprot (AuthenticationRequest{f_AuthenticationRequest_credentials=Nothing})
+  readStructEnd iprot
+  return record
+data ColumnDef = ColumnDef{f_ColumnDef_name :: Maybe ByteString,f_ColumnDef_validation_class :: Maybe String,f_ColumnDef_index_type :: Maybe IndexType,f_ColumnDef_index_name :: Maybe String} deriving (Show,Eq,Ord,Typeable)
+write_ColumnDef oprot record = do
+  writeStructBegin oprot "ColumnDef"
+  case f_ColumnDef_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnDef_validation_class record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("validation_class",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnDef_index_type record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("index_type",T_I32,3)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  case f_ColumnDef_index_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("index_name",T_STRING,4)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_ColumnDef_fields iprot record = do
+  (_,_t150,_id151) <- readFieldBegin iprot
+  if _t150 == T_STOP then return record else
+    case _id151 of 
+      1 -> if _t150 == T_STRING then do
+        s <- readBinary iprot
+        read_ColumnDef_fields iprot record{f_ColumnDef_name=Just s}
+        else do
+          skip iprot _t150
+          read_ColumnDef_fields iprot record
+      2 -> if _t150 == T_STRING then do
+        s <- readString iprot
+        read_ColumnDef_fields iprot record{f_ColumnDef_validation_class=Just s}
+        else do
+          skip iprot _t150
+          read_ColumnDef_fields iprot record
+      3 -> if _t150 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_ColumnDef_fields iprot record{f_ColumnDef_index_type=Just s}
+        else do
+          skip iprot _t150
+          read_ColumnDef_fields iprot record
+      4 -> if _t150 == T_STRING then do
+        s <- readString iprot
+        read_ColumnDef_fields iprot record{f_ColumnDef_index_name=Just s}
+        else do
+          skip iprot _t150
+          read_ColumnDef_fields iprot record
+      _ -> do
+        skip iprot _t150
+        readFieldEnd iprot
+        read_ColumnDef_fields iprot record
+read_ColumnDef iprot = do
+  _ <- readStructBegin iprot
+  record <- read_ColumnDef_fields iprot (ColumnDef{f_ColumnDef_name=Nothing,f_ColumnDef_validation_class=Nothing,f_ColumnDef_index_type=Nothing,f_ColumnDef_index_name=Nothing})
+  readStructEnd iprot
+  return record
+data CfDef = CfDef{f_CfDef_keyspace :: Maybe String,f_CfDef_name :: Maybe String,f_CfDef_column_type :: Maybe String,f_CfDef_comparator_type :: Maybe String,f_CfDef_subcomparator_type :: Maybe String,f_CfDef_comment :: Maybe String,f_CfDef_row_cache_size :: Maybe Double,f_CfDef_key_cache_size :: Maybe Double,f_CfDef_read_repair_chance :: Maybe Double,f_CfDef_column_metadata :: Maybe [ColumnDef],f_CfDef_gc_grace_seconds :: Maybe Int32,f_CfDef_default_validation_class :: Maybe String,f_CfDef_id :: Maybe Int32,f_CfDef_min_compaction_threshold :: Maybe Int32,f_CfDef_max_compaction_threshold :: Maybe Int32,f_CfDef_row_cache_save_period_in_seconds :: Maybe Int32,f_CfDef_key_cache_save_period_in_seconds :: Maybe Int32,f_CfDef_memtable_flush_after_mins :: Maybe Int32,f_CfDef_memtable_throughput_in_mb :: Maybe Int32,f_CfDef_memtable_operations_in_millions :: Maybe Double} deriving (Show,Eq,Ord,Typeable)
+write_CfDef oprot record = do
+  writeStructBegin oprot "CfDef"
+  case f_CfDef_keyspace record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("keyspace",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_column_type record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_type",T_STRING,3)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_comparator_type record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("comparator_type",T_STRING,5)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_subcomparator_type record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("subcomparator_type",T_STRING,6)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_comment record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("comment",T_STRING,8)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_row_cache_size record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("row_cache_size",T_DOUBLE,9)
+    writeDouble oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_key_cache_size record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key_cache_size",T_DOUBLE,11)
+    writeDouble oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_read_repair_chance record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("read_repair_chance",T_DOUBLE,12)
+    writeDouble oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_column_metadata record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column_metadata",T_LIST,13)
+    (let {f [] = return (); f (_viter154:t) = do {write_ColumnDef oprot _viter154;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_CfDef_gc_grace_seconds record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("gc_grace_seconds",T_I32,14)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_default_validation_class record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("default_validation_class",T_STRING,15)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_id record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("id",T_I32,16)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_min_compaction_threshold record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("min_compaction_threshold",T_I32,17)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_max_compaction_threshold record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("max_compaction_threshold",T_I32,18)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_row_cache_save_period_in_seconds record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("row_cache_save_period_in_seconds",T_I32,19)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_key_cache_save_period_in_seconds record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key_cache_save_period_in_seconds",T_I32,20)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_memtable_flush_after_mins record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("memtable_flush_after_mins",T_I32,21)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_memtable_throughput_in_mb record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("memtable_throughput_in_mb",T_I32,22)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_memtable_operations_in_millions record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("memtable_operations_in_millions",T_DOUBLE,23)
+    writeDouble oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_CfDef_fields iprot record = do
+  (_,_t156,_id157) <- readFieldBegin iprot
+  if _t156 == T_STOP then return record else
+    case _id157 of 
+      1 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_keyspace=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      2 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_name=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      3 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_column_type=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      5 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_comparator_type=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      6 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_subcomparator_type=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      8 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_comment=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      9 -> if _t156 == T_DOUBLE then do
+        s <- readDouble iprot
+        read_CfDef_fields iprot record{f_CfDef_row_cache_size=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      11 -> if _t156 == T_DOUBLE then do
+        s <- readDouble iprot
+        read_CfDef_fields iprot record{f_CfDef_key_cache_size=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      12 -> if _t156 == T_DOUBLE then do
+        s <- readDouble iprot
+        read_CfDef_fields iprot record{f_CfDef_read_repair_chance=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      13 -> if _t156 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnDef iprot);r <- f (n-1); return $ v:r}} in do {(_etype161,_size158) <- readListBegin iprot; f _size158})
+        read_CfDef_fields iprot record{f_CfDef_column_metadata=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      14 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_gc_grace_seconds=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      15 -> if _t156 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_default_validation_class=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      16 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_id=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      17 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_min_compaction_threshold=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      18 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_max_compaction_threshold=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      19 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_row_cache_save_period_in_seconds=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      20 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_key_cache_save_period_in_seconds=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      21 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_memtable_flush_after_mins=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      22 -> if _t156 == T_I32 then do
+        s <- readI32 iprot
+        read_CfDef_fields iprot record{f_CfDef_memtable_throughput_in_mb=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      23 -> if _t156 == T_DOUBLE then do
+        s <- readDouble iprot
+        read_CfDef_fields iprot record{f_CfDef_memtable_operations_in_millions=Just s}
+        else do
+          skip iprot _t156
+          read_CfDef_fields iprot record
+      _ -> do
+        skip iprot _t156
+        readFieldEnd iprot
+        read_CfDef_fields iprot record
+read_CfDef iprot = do
+  _ <- readStructBegin iprot
+  record <- read_CfDef_fields iprot (CfDef{f_CfDef_keyspace=Nothing,f_CfDef_name=Nothing,f_CfDef_column_type=Nothing,f_CfDef_comparator_type=Nothing,f_CfDef_subcomparator_type=Nothing,f_CfDef_comment=Nothing,f_CfDef_row_cache_size=Nothing,f_CfDef_key_cache_size=Nothing,f_CfDef_read_repair_chance=Nothing,f_CfDef_column_metadata=Nothing,f_CfDef_gc_grace_seconds=Nothing,f_CfDef_default_validation_class=Nothing,f_CfDef_id=Nothing,f_CfDef_min_compaction_threshold=Nothing,f_CfDef_max_compaction_threshold=Nothing,f_CfDef_row_cache_save_period_in_seconds=Nothing,f_CfDef_key_cache_save_period_in_seconds=Nothing,f_CfDef_memtable_flush_after_mins=Nothing,f_CfDef_memtable_throughput_in_mb=Nothing,f_CfDef_memtable_operations_in_millions=Nothing})
+  readStructEnd iprot
+  return record
+data KsDef = KsDef{f_KsDef_name :: Maybe String,f_KsDef_strategy_class :: Maybe String,f_KsDef_strategy_options :: Maybe (Map.Map String String),f_KsDef_replication_factor :: Maybe Int32,f_KsDef_cf_defs :: Maybe [CfDef]} deriving (Show,Eq,Ord,Typeable)
+write_KsDef oprot record = do
+  writeStructBegin oprot "KsDef"
+  case f_KsDef_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,1)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KsDef_strategy_class record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("strategy_class",T_STRING,2)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_KsDef_strategy_options record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("strategy_options",T_MAP,3)
+    (let {f [] = return (); f ((_kiter165,_viter166):t) = do {do {writeString oprot _kiter165;writeString oprot _viter166};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,fromIntegral $ Map.size _v); f (Map.toList _v);writeMapEnd oprot})
+    writeFieldEnd oprot}
+  case f_KsDef_replication_factor record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("replication_factor",T_I32,4)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  case f_KsDef_cf_defs record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("cf_defs",T_LIST,5)
+    (let {f [] = return (); f (_viter167:t) = do {write_CfDef oprot _viter167;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_KsDef_fields iprot record = do
+  (_,_t169,_id170) <- readFieldBegin iprot
+  if _t169 == T_STOP then return record else
+    case _id170 of 
+      1 -> if _t169 == T_STRING then do
+        s <- readString iprot
+        read_KsDef_fields iprot record{f_KsDef_name=Just s}
+        else do
+          skip iprot _t169
+          read_KsDef_fields iprot record
+      2 -> if _t169 == T_STRING then do
+        s <- readString iprot
+        read_KsDef_fields iprot record{f_KsDef_strategy_class=Just s}
+        else do
+          skip iprot _t169
+          read_KsDef_fields iprot record
+      3 -> if _t169 == T_MAP then do
+        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype172,_vtype173,_size171) <- readMapBegin iprot; l <- f _size171; return $ Map.fromList l})
+        read_KsDef_fields iprot record{f_KsDef_strategy_options=Just s}
+        else do
+          skip iprot _t169
+          read_KsDef_fields iprot record
+      4 -> if _t169 == T_I32 then do
+        s <- readI32 iprot
+        read_KsDef_fields iprot record{f_KsDef_replication_factor=Just s}
+        else do
+          skip iprot _t169
+          read_KsDef_fields iprot record
+      5 -> if _t169 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_CfDef iprot);r <- f (n-1); return $ v:r}} in do {(_etype179,_size176) <- readListBegin iprot; f _size176})
+        read_KsDef_fields iprot record{f_KsDef_cf_defs=Just s}
+        else do
+          skip iprot _t169
+          read_KsDef_fields iprot record
+      _ -> do
+        skip iprot _t169
+        readFieldEnd iprot
+        read_KsDef_fields iprot record
+read_KsDef iprot = do
+  _ <- readStructBegin iprot
+  record <- read_KsDef_fields iprot (KsDef{f_KsDef_name=Nothing,f_KsDef_strategy_class=Nothing,f_KsDef_strategy_options=Nothing,f_KsDef_replication_factor=Nothing,f_KsDef_cf_defs=Nothing})
+  readStructEnd iprot
+  return record
diff --git a/cassandra-thrift.cabal b/cassandra-thrift.cabal
--- a/cassandra-thrift.cabal
+++ b/cassandra-thrift.cabal
@@ -1,14 +1,14 @@
 Name: cassandra-thrift 
-Version: 0.6.6
+Version: 0.7.0
 License: OtherLicense 
 License-File: LICENSE
 Cabal-version: >= 1.4
-Author: Thrift v.0.4.0 
+Author: Thrift v.0.5.0 
 Maintainer: kirk@glyphsoftware.com 
 Stability: alpha
 Synopsis: thrift bindings to the cassandra database 
 Description:
-  The Cassandra (v.0.6.6) database bindings, generated using the Thrift (v.0.4) compliler, Released under the Apache 2.0 license. 
+  The Cassandra (v.0.7.0) database bindings, generated using the Thrift (v.0.5) compliler, Released under the Apache 2.0 license. 
     
 Category: Database 
 Build-type: Simple
@@ -22,5 +22,5 @@
 
     build-depends:   base >= 4.2.0.0 && < 4.9, 
                      containers,
-                     Thrift == 0.4.0
-
+                     Thrift == 0.5.0,
+                     bytestring
