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
@@ -12,2715 +12,3186 @@
 -----------------------------------------------------------------
 
 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)
+import Prelude ( Bool(..), Enum, Double, String, Maybe(..),
+                 Eq, Show, Ord,
+                 return, length, IO, fromIntegral, fromEnum, toEnum,
+                 (&&), (||), (==), (++), ($), (-) )
+
+import Control.Exception
+import Data.ByteString.Lazy
+import Data.Int
+import Data.Typeable ( Typeable )
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+
+import Thrift
+
+
+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
+  (_,_t227,_id228) <- readFieldBegin iprot
+  if _t227 == T_STOP then return record else
+    case _id228 of 
+      1 -> if _t227 == 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 _t227
+          read_Login_args_fields iprot record
+      _ -> do
+        skip iprot _t227
+        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
+  (_,_t232,_id233) <- readFieldBegin iprot
+  if _t232 == T_STOP then return record else
+    case _id233 of 
+      1 -> if _t232 == T_STRUCT then do
+        s <- (read_AuthenticationException iprot)
+        read_Login_result_fields iprot record{f_Login_result_authnx=Just s}
+        else do
+          skip iprot _t232
+          read_Login_result_fields iprot record
+      2 -> if _t232 == T_STRUCT then do
+        s <- (read_AuthorizationException iprot)
+        read_Login_result_fields iprot record{f_Login_result_authzx=Just s}
+        else do
+          skip iprot _t232
+          read_Login_result_fields iprot record
+      _ -> do
+        skip iprot _t232
+        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
+  (_,_t237,_id238) <- readFieldBegin iprot
+  if _t237 == T_STOP then return record else
+    case _id238 of 
+      1 -> if _t237 == 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 _t237
+          read_Set_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t237
+        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
+  (_,_t242,_id243) <- readFieldBegin iprot
+  if _t242 == T_STOP then return record else
+    case _id243 of 
+      1 -> if _t242 == 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 _t242
+          read_Set_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t242
+        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
+  (_,_t247,_id248) <- readFieldBegin iprot
+  if _t247 == T_STOP then return record else
+    case _id248 of 
+      1 -> if _t247 == T_STRING then do
+        s <- readBinary iprot
+        read_Get_args_fields iprot record{f_Get_args_key=Just s}
+        else do
+          skip iprot _t247
+          read_Get_args_fields iprot record
+      2 -> if _t247 == 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 _t247
+          read_Get_args_fields iprot record
+      3 -> if _t247 == 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 _t247
+          read_Get_args_fields iprot record
+      _ -> do
+        skip iprot _t247
+        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
+  (_,_t252,_id253) <- readFieldBegin iprot
+  if _t252 == T_STOP then return record else
+    case _id253 of 
+      0 -> if _t252 == T_STRUCT then do
+        s <- (read_ColumnOrSuperColumn iprot)
+        read_Get_result_fields iprot record{f_Get_result_success=Just s}
+        else do
+          skip iprot _t252
+          read_Get_result_fields iprot record
+      1 -> if _t252 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Get_result_fields iprot record{f_Get_result_ire=Just s}
+        else do
+          skip iprot _t252
+          read_Get_result_fields iprot record
+      2 -> if _t252 == T_STRUCT then do
+        s <- (read_NotFoundException iprot)
+        read_Get_result_fields iprot record{f_Get_result_nfe=Just s}
+        else do
+          skip iprot _t252
+          read_Get_result_fields iprot record
+      3 -> if _t252 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Get_result_fields iprot record{f_Get_result_ue=Just s}
+        else do
+          skip iprot _t252
+          read_Get_result_fields iprot record
+      4 -> if _t252 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Get_result_fields iprot record{f_Get_result_te=Just s}
+        else do
+          skip iprot _t252
+          read_Get_result_fields iprot record
+      _ -> do
+        skip iprot _t252
+        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
+  (_,_t257,_id258) <- readFieldBegin iprot
+  if _t257 == T_STOP then return record else
+    case _id258 of 
+      1 -> if _t257 == 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 _t257
+          read_Get_slice_args_fields iprot record
+      2 -> if _t257 == 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 _t257
+          read_Get_slice_args_fields iprot record
+      3 -> if _t257 == 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 _t257
+          read_Get_slice_args_fields iprot record
+      4 -> if _t257 == 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 _t257
+          read_Get_slice_args_fields iprot record
+      _ -> do
+        skip iprot _t257
+        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 (_viter261:t) = do {write_ColumnOrSuperColumn oprot _viter261;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
+  (_,_t263,_id264) <- readFieldBegin iprot
+  if _t263 == T_STOP then return record else
+    case _id264 of 
+      0 -> if _t263 == 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 {(_etype268,_size265) <- readListBegin iprot; f _size265})
+        read_Get_slice_result_fields iprot record{f_Get_slice_result_success=Just s}
+        else do
+          skip iprot _t263
+          read_Get_slice_result_fields iprot record
+      1 -> if _t263 == 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 _t263
+          read_Get_slice_result_fields iprot record
+      2 -> if _t263 == 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 _t263
+          read_Get_slice_result_fields iprot record
+      3 -> if _t263 == 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 _t263
+          read_Get_slice_result_fields iprot record
+      _ -> do
+        skip iprot _t263
+        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
+  (_,_t273,_id274) <- readFieldBegin iprot
+  if _t273 == T_STOP then return record else
+    case _id274 of 
+      1 -> if _t273 == 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 _t273
+          read_Get_count_args_fields iprot record
+      2 -> if _t273 == 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 _t273
+          read_Get_count_args_fields iprot record
+      3 -> if _t273 == 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 _t273
+          read_Get_count_args_fields iprot record
+      4 -> if _t273 == 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 _t273
+          read_Get_count_args_fields iprot record
+      _ -> do
+        skip iprot _t273
+        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
+  (_,_t278,_id279) <- readFieldBegin iprot
+  if _t278 == T_STOP then return record else
+    case _id279 of 
+      0 -> if _t278 == 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 _t278
+          read_Get_count_result_fields iprot record
+      1 -> if _t278 == 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 _t278
+          read_Get_count_result_fields iprot record
+      2 -> if _t278 == 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 _t278
+          read_Get_count_result_fields iprot record
+      3 -> if _t278 == 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 _t278
+          read_Get_count_result_fields iprot record
+      _ -> do
+        skip iprot _t278
+        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 (_viter282:t) = do {writeBinary oprot _viter282;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
+  (_,_t284,_id285) <- readFieldBegin iprot
+  if _t284 == T_STOP then return record else
+    case _id285 of 
+      1 -> if _t284 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readBinary iprot;r <- f (n-1); return $ v:r}} in do {(_etype289,_size286) <- readListBegin iprot; f _size286})
+        read_Multiget_slice_args_fields iprot record{f_Multiget_slice_args_keys=Just s}
+        else do
+          skip iprot _t284
+          read_Multiget_slice_args_fields iprot record
+      2 -> if _t284 == 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 _t284
+          read_Multiget_slice_args_fields iprot record
+      3 -> if _t284 == 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 _t284
+          read_Multiget_slice_args_fields iprot record
+      4 -> if _t284 == 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 _t284
+          read_Multiget_slice_args_fields iprot record
+      _ -> do
+        skip iprot _t284
+        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 ((_kiter293,_viter294):t) = do {do {writeBinary oprot _kiter293;(let {f [] = return (); f (_viter295:t) = do {write_ColumnOrSuperColumn oprot _viter295;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _viter294); f _viter294;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
+  (_,_t297,_id298) <- readFieldBegin iprot
+  if _t297 == T_STOP then return record else
+    case _id298 of 
+      0 -> if _t297 == 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 {(_etype307,_size304) <- readListBegin iprot; f _size304});r <- f (n-1); return $ (k,v):r}} in do {(_ktype300,_vtype301,_size299) <- readMapBegin iprot; l <- f _size299; return $ Map.fromList l})
+        read_Multiget_slice_result_fields iprot record{f_Multiget_slice_result_success=Just s}
+        else do
+          skip iprot _t297
+          read_Multiget_slice_result_fields iprot record
+      1 -> if _t297 == 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 _t297
+          read_Multiget_slice_result_fields iprot record
+      2 -> if _t297 == 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 _t297
+          read_Multiget_slice_result_fields iprot record
+      3 -> if _t297 == 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 _t297
+          read_Multiget_slice_result_fields iprot record
+      _ -> do
+        skip iprot _t297
+        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 (_viter311:t) = do {writeBinary oprot _viter311;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
+  (_,_t313,_id314) <- readFieldBegin iprot
+  if _t313 == T_STOP then return record else
+    case _id314 of 
+      1 -> if _t313 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readBinary iprot;r <- f (n-1); return $ v:r}} in do {(_etype318,_size315) <- readListBegin iprot; f _size315})
+        read_Multiget_count_args_fields iprot record{f_Multiget_count_args_keys=Just s}
+        else do
+          skip iprot _t313
+          read_Multiget_count_args_fields iprot record
+      2 -> if _t313 == 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 _t313
+          read_Multiget_count_args_fields iprot record
+      3 -> if _t313 == 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 _t313
+          read_Multiget_count_args_fields iprot record
+      4 -> if _t313 == 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 _t313
+          read_Multiget_count_args_fields iprot record
+      _ -> do
+        skip iprot _t313
+        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 ((_kiter322,_viter323):t) = do {do {writeBinary oprot _kiter322;writeI32 oprot _viter323};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
+  (_,_t325,_id326) <- readFieldBegin iprot
+  if _t325 == T_STOP then return record else
+    case _id326 of 
+      0 -> if _t325 == 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 {(_ktype328,_vtype329,_size327) <- readMapBegin iprot; l <- f _size327; return $ Map.fromList l})
+        read_Multiget_count_result_fields iprot record{f_Multiget_count_result_success=Just s}
+        else do
+          skip iprot _t325
+          read_Multiget_count_result_fields iprot record
+      1 -> if _t325 == 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 _t325
+          read_Multiget_count_result_fields iprot record
+      2 -> if _t325 == 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 _t325
+          read_Multiget_count_result_fields iprot record
+      3 -> if _t325 == 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 _t325
+          read_Multiget_count_result_fields iprot record
+      _ -> do
+        skip iprot _t325
+        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
+  (_,_t335,_id336) <- readFieldBegin iprot
+  if _t335 == T_STOP then return record else
+    case _id336 of 
+      1 -> if _t335 == 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 _t335
+          read_Get_range_slices_args_fields iprot record
+      2 -> if _t335 == 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 _t335
+          read_Get_range_slices_args_fields iprot record
+      3 -> if _t335 == 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 _t335
+          read_Get_range_slices_args_fields iprot record
+      4 -> if _t335 == 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 _t335
+          read_Get_range_slices_args_fields iprot record
+      _ -> do
+        skip iprot _t335
+        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 (_viter339:t) = do {write_KeySlice oprot _viter339;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
+  (_,_t341,_id342) <- readFieldBegin iprot
+  if _t341 == T_STOP then return record else
+    case _id342 of 
+      0 -> if _t341 == 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 {(_etype346,_size343) <- readListBegin iprot; f _size343})
+        read_Get_range_slices_result_fields iprot record{f_Get_range_slices_result_success=Just s}
+        else do
+          skip iprot _t341
+          read_Get_range_slices_result_fields iprot record
+      1 -> if _t341 == 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 _t341
+          read_Get_range_slices_result_fields iprot record
+      2 -> if _t341 == 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 _t341
+          read_Get_range_slices_result_fields iprot record
+      3 -> if _t341 == 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 _t341
+          read_Get_range_slices_result_fields iprot record
+      _ -> do
+        skip iprot _t341
+        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
+  (_,_t351,_id352) <- readFieldBegin iprot
+  if _t351 == T_STOP then return record else
+    case _id352 of 
+      1 -> if _t351 == 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 _t351
+          read_Get_indexed_slices_args_fields iprot record
+      2 -> if _t351 == 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 _t351
+          read_Get_indexed_slices_args_fields iprot record
+      3 -> if _t351 == 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 _t351
+          read_Get_indexed_slices_args_fields iprot record
+      4 -> if _t351 == 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 _t351
+          read_Get_indexed_slices_args_fields iprot record
+      _ -> do
+        skip iprot _t351
+        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 (_viter355:t) = do {write_KeySlice oprot _viter355;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
+  (_,_t357,_id358) <- readFieldBegin iprot
+  if _t357 == T_STOP then return record else
+    case _id358 of 
+      0 -> if _t357 == 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 {(_etype362,_size359) <- readListBegin iprot; f _size359})
+        read_Get_indexed_slices_result_fields iprot record{f_Get_indexed_slices_result_success=Just s}
+        else do
+          skip iprot _t357
+          read_Get_indexed_slices_result_fields iprot record
+      1 -> if _t357 == 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 _t357
+          read_Get_indexed_slices_result_fields iprot record
+      2 -> if _t357 == 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 _t357
+          read_Get_indexed_slices_result_fields iprot record
+      3 -> if _t357 == 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 _t357
+          read_Get_indexed_slices_result_fields iprot record
+      _ -> do
+        skip iprot _t357
+        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
+  (_,_t367,_id368) <- readFieldBegin iprot
+  if _t367 == T_STOP then return record else
+    case _id368 of 
+      1 -> if _t367 == T_STRING then do
+        s <- readBinary iprot
+        read_Insert_args_fields iprot record{f_Insert_args_key=Just s}
+        else do
+          skip iprot _t367
+          read_Insert_args_fields iprot record
+      2 -> if _t367 == 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 _t367
+          read_Insert_args_fields iprot record
+      3 -> if _t367 == T_STRUCT then do
+        s <- (read_Column iprot)
+        read_Insert_args_fields iprot record{f_Insert_args_column=Just s}
+        else do
+          skip iprot _t367
+          read_Insert_args_fields iprot record
+      4 -> if _t367 == 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 _t367
+          read_Insert_args_fields iprot record
+      _ -> do
+        skip iprot _t367
+        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
+  (_,_t372,_id373) <- readFieldBegin iprot
+  if _t372 == T_STOP then return record else
+    case _id373 of 
+      1 -> if _t372 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Insert_result_fields iprot record{f_Insert_result_ire=Just s}
+        else do
+          skip iprot _t372
+          read_Insert_result_fields iprot record
+      2 -> if _t372 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Insert_result_fields iprot record{f_Insert_result_ue=Just s}
+        else do
+          skip iprot _t372
+          read_Insert_result_fields iprot record
+      3 -> if _t372 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Insert_result_fields iprot record{f_Insert_result_te=Just s}
+        else do
+          skip iprot _t372
+          read_Insert_result_fields iprot record
+      _ -> do
+        skip iprot _t372
+        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 Add_args = Add_args{f_Add_args_key :: Maybe ByteString,f_Add_args_column_parent :: Maybe ColumnParent,f_Add_args_column :: Maybe CounterColumn,f_Add_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Add_args oprot record = do
+  writeStructBegin oprot "Add_args"
+  case f_Add_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Add_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_Add_args_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("column",T_STRUCT,3)
+    write_CounterColumn oprot _v
+    writeFieldEnd oprot}
+  case f_Add_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_Add_args_fields iprot record = do
+  (_,_t377,_id378) <- readFieldBegin iprot
+  if _t377 == T_STOP then return record else
+    case _id378 of 
+      1 -> if _t377 == T_STRING then do
+        s <- readBinary iprot
+        read_Add_args_fields iprot record{f_Add_args_key=Just s}
+        else do
+          skip iprot _t377
+          read_Add_args_fields iprot record
+      2 -> if _t377 == T_STRUCT then do
+        s <- (read_ColumnParent iprot)
+        read_Add_args_fields iprot record{f_Add_args_column_parent=Just s}
+        else do
+          skip iprot _t377
+          read_Add_args_fields iprot record
+      3 -> if _t377 == T_STRUCT then do
+        s <- (read_CounterColumn iprot)
+        read_Add_args_fields iprot record{f_Add_args_column=Just s}
+        else do
+          skip iprot _t377
+          read_Add_args_fields iprot record
+      4 -> if _t377 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Add_args_fields iprot record{f_Add_args_consistency_level=Just s}
+        else do
+          skip iprot _t377
+          read_Add_args_fields iprot record
+      _ -> do
+        skip iprot _t377
+        readFieldEnd iprot
+        read_Add_args_fields iprot record
+read_Add_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Add_args_fields iprot (Add_args{f_Add_args_key=Nothing,f_Add_args_column_parent=Nothing,f_Add_args_column=Nothing,f_Add_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Add_result = Add_result{f_Add_result_ire :: Maybe InvalidRequestException,f_Add_result_ue :: Maybe UnavailableException,f_Add_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Add_result oprot record = do
+  writeStructBegin oprot "Add_result"
+  case f_Add_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Add_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Add_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_Add_result_fields iprot record = do
+  (_,_t382,_id383) <- readFieldBegin iprot
+  if _t382 == T_STOP then return record else
+    case _id383 of 
+      1 -> if _t382 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Add_result_fields iprot record{f_Add_result_ire=Just s}
+        else do
+          skip iprot _t382
+          read_Add_result_fields iprot record
+      2 -> if _t382 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Add_result_fields iprot record{f_Add_result_ue=Just s}
+        else do
+          skip iprot _t382
+          read_Add_result_fields iprot record
+      3 -> if _t382 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Add_result_fields iprot record{f_Add_result_te=Just s}
+        else do
+          skip iprot _t382
+          read_Add_result_fields iprot record
+      _ -> do
+        skip iprot _t382
+        readFieldEnd iprot
+        read_Add_result_fields iprot record
+read_Add_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Add_result_fields iprot (Add_result{f_Add_result_ire=Nothing,f_Add_result_ue=Nothing,f_Add_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
+  (_,_t387,_id388) <- readFieldBegin iprot
+  if _t387 == T_STOP then return record else
+    case _id388 of 
+      1 -> if _t387 == T_STRING then do
+        s <- readBinary iprot
+        read_Remove_args_fields iprot record{f_Remove_args_key=Just s}
+        else do
+          skip iprot _t387
+          read_Remove_args_fields iprot record
+      2 -> if _t387 == 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 _t387
+          read_Remove_args_fields iprot record
+      3 -> if _t387 == T_I64 then do
+        s <- readI64 iprot
+        read_Remove_args_fields iprot record{f_Remove_args_timestamp=Just s}
+        else do
+          skip iprot _t387
+          read_Remove_args_fields iprot record
+      4 -> if _t387 == 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 _t387
+          read_Remove_args_fields iprot record
+      _ -> do
+        skip iprot _t387
+        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
+  (_,_t392,_id393) <- readFieldBegin iprot
+  if _t392 == T_STOP then return record else
+    case _id393 of 
+      1 -> if _t392 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Remove_result_fields iprot record{f_Remove_result_ire=Just s}
+        else do
+          skip iprot _t392
+          read_Remove_result_fields iprot record
+      2 -> if _t392 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Remove_result_fields iprot record{f_Remove_result_ue=Just s}
+        else do
+          skip iprot _t392
+          read_Remove_result_fields iprot record
+      3 -> if _t392 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Remove_result_fields iprot record{f_Remove_result_te=Just s}
+        else do
+          skip iprot _t392
+          read_Remove_result_fields iprot record
+      _ -> do
+        skip iprot _t392
+        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 Remove_counter_args = Remove_counter_args{f_Remove_counter_args_key :: Maybe ByteString,f_Remove_counter_args_path :: Maybe ColumnPath,f_Remove_counter_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
+write_Remove_counter_args oprot record = do
+  writeStructBegin oprot "Remove_counter_args"
+  case f_Remove_counter_args_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_counter_args_path record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("path",T_STRUCT,2)
+    write_ColumnPath oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_counter_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_Remove_counter_args_fields iprot record = do
+  (_,_t397,_id398) <- readFieldBegin iprot
+  if _t397 == T_STOP then return record else
+    case _id398 of 
+      1 -> if _t397 == T_STRING then do
+        s <- readBinary iprot
+        read_Remove_counter_args_fields iprot record{f_Remove_counter_args_key=Just s}
+        else do
+          skip iprot _t397
+          read_Remove_counter_args_fields iprot record
+      2 -> if _t397 == T_STRUCT then do
+        s <- (read_ColumnPath iprot)
+        read_Remove_counter_args_fields iprot record{f_Remove_counter_args_path=Just s}
+        else do
+          skip iprot _t397
+          read_Remove_counter_args_fields iprot record
+      3 -> if _t397 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Remove_counter_args_fields iprot record{f_Remove_counter_args_consistency_level=Just s}
+        else do
+          skip iprot _t397
+          read_Remove_counter_args_fields iprot record
+      _ -> do
+        skip iprot _t397
+        readFieldEnd iprot
+        read_Remove_counter_args_fields iprot record
+read_Remove_counter_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Remove_counter_args_fields iprot (Remove_counter_args{f_Remove_counter_args_key=Nothing,f_Remove_counter_args_path=Nothing,f_Remove_counter_args_consistency_level=Nothing})
+  readStructEnd iprot
+  return record
+data Remove_counter_result = Remove_counter_result{f_Remove_counter_result_ire :: Maybe InvalidRequestException,f_Remove_counter_result_ue :: Maybe UnavailableException,f_Remove_counter_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
+write_Remove_counter_result oprot record = do
+  writeStructBegin oprot "Remove_counter_result"
+  case f_Remove_counter_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_counter_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Remove_counter_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_counter_result_fields iprot record = do
+  (_,_t402,_id403) <- readFieldBegin iprot
+  if _t402 == T_STOP then return record else
+    case _id403 of 
+      1 -> if _t402 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Remove_counter_result_fields iprot record{f_Remove_counter_result_ire=Just s}
+        else do
+          skip iprot _t402
+          read_Remove_counter_result_fields iprot record
+      2 -> if _t402 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Remove_counter_result_fields iprot record{f_Remove_counter_result_ue=Just s}
+        else do
+          skip iprot _t402
+          read_Remove_counter_result_fields iprot record
+      3 -> if _t402 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Remove_counter_result_fields iprot record{f_Remove_counter_result_te=Just s}
+        else do
+          skip iprot _t402
+          read_Remove_counter_result_fields iprot record
+      _ -> do
+        skip iprot _t402
+        readFieldEnd iprot
+        read_Remove_counter_result_fields iprot record
+read_Remove_counter_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Remove_counter_result_fields iprot (Remove_counter_result{f_Remove_counter_result_ire=Nothing,f_Remove_counter_result_ue=Nothing,f_Remove_counter_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 ((_kiter406,_viter407):t) = do {do {writeBinary oprot _kiter406;(let {f [] = return (); f ((_kiter408,_viter409):t) = do {do {writeString oprot _kiter408;(let {f [] = return (); f (_viter410:t) = do {write_Mutation oprot _viter410;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _viter409); f _viter409;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,fromIntegral $ Map.size _viter407); f (Map.toList _viter407);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
+  (_,_t412,_id413) <- readFieldBegin iprot
+  if _t412 == T_STOP then return record else
+    case _id413 of 
+      1 -> if _t412 == 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 {(_etype427,_size424) <- readListBegin iprot; f _size424});r <- f (n-1); return $ (k,v):r}} in do {(_ktype420,_vtype421,_size419) <- readMapBegin iprot; l <- f _size419; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype415,_vtype416,_size414) <- readMapBegin iprot; l <- f _size414; return $ Map.fromList l})
+        read_Batch_mutate_args_fields iprot record{f_Batch_mutate_args_mutation_map=Just s}
+        else do
+          skip iprot _t412
+          read_Batch_mutate_args_fields iprot record
+      2 -> if _t412 == 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 _t412
+          read_Batch_mutate_args_fields iprot record
+      _ -> do
+        skip iprot _t412
+        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
+  (_,_t432,_id433) <- readFieldBegin iprot
+  if _t432 == T_STOP then return record else
+    case _id433 of 
+      1 -> if _t432 == 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 _t432
+          read_Batch_mutate_result_fields iprot record
+      2 -> if _t432 == 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 _t432
+          read_Batch_mutate_result_fields iprot record
+      3 -> if _t432 == 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 _t432
+          read_Batch_mutate_result_fields iprot record
+      _ -> do
+        skip iprot _t432
+        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
+  (_,_t437,_id438) <- readFieldBegin iprot
+  if _t437 == T_STOP then return record else
+    case _id438 of 
+      1 -> if _t437 == T_STRING then do
+        s <- readString iprot
+        read_Truncate_args_fields iprot record{f_Truncate_args_cfname=Just s}
+        else do
+          skip iprot _t437
+          read_Truncate_args_fields iprot record
+      _ -> do
+        skip iprot _t437
+        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
+  (_,_t442,_id443) <- readFieldBegin iprot
+  if _t442 == T_STOP then return record else
+    case _id443 of 
+      1 -> if _t442 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Truncate_result_fields iprot record{f_Truncate_result_ire=Just s}
+        else do
+          skip iprot _t442
+          read_Truncate_result_fields iprot record
+      2 -> if _t442 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Truncate_result_fields iprot record{f_Truncate_result_ue=Just s}
+        else do
+          skip iprot _t442
+          read_Truncate_result_fields iprot record
+      _ -> do
+        skip iprot _t442
+        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
+  (_,_t447,_id448) <- readFieldBegin iprot
+  if _t447 == T_STOP then return record else
+    case _id448 of 
+      _ -> do
+        skip iprot _t447
+        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 ((_kiter451,_viter452):t) = do {do {writeString oprot _kiter451;(let {f [] = return (); f (_viter453:t) = do {writeString oprot _viter453;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _viter452); f _viter452;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
+  (_,_t455,_id456) <- readFieldBegin iprot
+  if _t455 == T_STOP then return record else
+    case _id456 of 
+      0 -> if _t455 == 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 {(_etype465,_size462) <- readListBegin iprot; f _size462});r <- f (n-1); return $ (k,v):r}} in do {(_ktype458,_vtype459,_size457) <- readMapBegin iprot; l <- f _size457; return $ Map.fromList l})
+        read_Describe_schema_versions_result_fields iprot record{f_Describe_schema_versions_result_success=Just s}
+        else do
+          skip iprot _t455
+          read_Describe_schema_versions_result_fields iprot record
+      1 -> if _t455 == 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 _t455
+          read_Describe_schema_versions_result_fields iprot record
+      _ -> do
+        skip iprot _t455
+        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
+  (_,_t470,_id471) <- readFieldBegin iprot
+  if _t470 == T_STOP then return record else
+    case _id471 of 
+      _ -> do
+        skip iprot _t470
+        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 (_viter474:t) = do {write_KsDef oprot _viter474;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
+  (_,_t476,_id477) <- readFieldBegin iprot
+  if _t476 == T_STOP then return record else
+    case _id477 of 
+      0 -> if _t476 == 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 {(_etype481,_size478) <- readListBegin iprot; f _size478})
+        read_Describe_keyspaces_result_fields iprot record{f_Describe_keyspaces_result_success=Just s}
+        else do
+          skip iprot _t476
+          read_Describe_keyspaces_result_fields iprot record
+      1 -> if _t476 == 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 _t476
+          read_Describe_keyspaces_result_fields iprot record
+      _ -> do
+        skip iprot _t476
+        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
+  (_,_t486,_id487) <- readFieldBegin iprot
+  if _t486 == T_STOP then return record else
+    case _id487 of 
+      _ -> do
+        skip iprot _t486
+        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
+  (_,_t491,_id492) <- readFieldBegin iprot
+  if _t491 == T_STOP then return record else
+    case _id492 of 
+      0 -> if _t491 == 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 _t491
+          read_Describe_cluster_name_result_fields iprot record
+      _ -> do
+        skip iprot _t491
+        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
+  (_,_t496,_id497) <- readFieldBegin iprot
+  if _t496 == T_STOP then return record else
+    case _id497 of 
+      _ -> do
+        skip iprot _t496
+        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
+  (_,_t501,_id502) <- readFieldBegin iprot
+  if _t501 == T_STOP then return record else
+    case _id502 of 
+      0 -> if _t501 == 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 _t501
+          read_Describe_version_result_fields iprot record
+      _ -> do
+        skip iprot _t501
+        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
+  (_,_t506,_id507) <- readFieldBegin iprot
+  if _t506 == T_STOP then return record else
+    case _id507 of 
+      1 -> if _t506 == 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 _t506
+          read_Describe_ring_args_fields iprot record
+      _ -> do
+        skip iprot _t506
+        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 (_viter510:t) = do {write_TokenRange oprot _viter510;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
+  (_,_t512,_id513) <- readFieldBegin iprot
+  if _t512 == T_STOP then return record else
+    case _id513 of 
+      0 -> if _t512 == 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 {(_etype517,_size514) <- readListBegin iprot; f _size514})
+        read_Describe_ring_result_fields iprot record{f_Describe_ring_result_success=Just s}
+        else do
+          skip iprot _t512
+          read_Describe_ring_result_fields iprot record
+      1 -> if _t512 == 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 _t512
+          read_Describe_ring_result_fields iprot record
+      _ -> do
+        skip iprot _t512
+        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
+  (_,_t522,_id523) <- readFieldBegin iprot
+  if _t522 == T_STOP then return record else
+    case _id523 of 
+      _ -> do
+        skip iprot _t522
+        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
+  (_,_t527,_id528) <- readFieldBegin iprot
+  if _t527 == T_STOP then return record else
+    case _id528 of 
+      0 -> if _t527 == 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 _t527
+          read_Describe_partitioner_result_fields iprot record
+      _ -> do
+        skip iprot _t527
+        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
+  (_,_t532,_id533) <- readFieldBegin iprot
+  if _t532 == T_STOP then return record else
+    case _id533 of 
+      _ -> do
+        skip iprot _t532
+        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
+  (_,_t537,_id538) <- readFieldBegin iprot
+  if _t537 == T_STOP then return record else
+    case _id538 of 
+      0 -> if _t537 == 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 _t537
+          read_Describe_snitch_result_fields iprot record
+      _ -> do
+        skip iprot _t537
+        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
+  (_,_t542,_id543) <- readFieldBegin iprot
+  if _t542 == T_STOP then return record else
+    case _id543 of 
+      1 -> if _t542 == 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 _t542
+          read_Describe_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t542
+        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
+  (_,_t547,_id548) <- readFieldBegin iprot
+  if _t547 == T_STOP then return record else
+    case _id548 of 
+      0 -> if _t547 == 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 _t547
+          read_Describe_keyspace_result_fields iprot record
+      1 -> if _t547 == 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 _t547
+          read_Describe_keyspace_result_fields iprot record
+      2 -> if _t547 == 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 _t547
+          read_Describe_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t547
+        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
+  (_,_t552,_id553) <- readFieldBegin iprot
+  if _t552 == T_STOP then return record else
+    case _id553 of 
+      1 -> if _t552 == 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 _t552
+          read_Describe_splits_args_fields iprot record
+      2 -> if _t552 == 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 _t552
+          read_Describe_splits_args_fields iprot record
+      3 -> if _t552 == 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 _t552
+          read_Describe_splits_args_fields iprot record
+      4 -> if _t552 == 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 _t552
+          read_Describe_splits_args_fields iprot record
+      _ -> do
+        skip iprot _t552
+        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],f_Describe_splits_result_ire :: Maybe InvalidRequestException} 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 (_viter556:t) = do {writeString oprot _viter556;f t}} in do {writeListBegin oprot (T_STRING,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_Describe_splits_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_splits_result_fields iprot record = do
+  (_,_t558,_id559) <- readFieldBegin iprot
+  if _t558 == T_STOP then return record else
+    case _id559 of 
+      0 -> if _t558 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype563,_size560) <- readListBegin iprot; f _size560})
+        read_Describe_splits_result_fields iprot record{f_Describe_splits_result_success=Just s}
+        else do
+          skip iprot _t558
+          read_Describe_splits_result_fields iprot record
+      1 -> if _t558 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Describe_splits_result_fields iprot record{f_Describe_splits_result_ire=Just s}
+        else do
+          skip iprot _t558
+          read_Describe_splits_result_fields iprot record
+      _ -> do
+        skip iprot _t558
+        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,f_Describe_splits_result_ire=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
+  (_,_t568,_id569) <- readFieldBegin iprot
+  if _t568 == T_STOP then return record else
+    case _id569 of 
+      1 -> if _t568 == 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 _t568
+          read_System_add_column_family_args_fields iprot record
+      _ -> do
+        skip iprot _t568
+        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,f_System_add_column_family_result_sde :: Maybe SchemaDisagreementException} 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}
+  case f_System_add_column_family_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,2)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_add_column_family_result_fields iprot record = do
+  (_,_t573,_id574) <- readFieldBegin iprot
+  if _t573 == T_STOP then return record else
+    case _id574 of 
+      0 -> if _t573 == 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 _t573
+          read_System_add_column_family_result_fields iprot record
+      1 -> if _t573 == 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 _t573
+          read_System_add_column_family_result_fields iprot record
+      2 -> if _t573 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_System_add_column_family_result_fields iprot record{f_System_add_column_family_result_sde=Just s}
+        else do
+          skip iprot _t573
+          read_System_add_column_family_result_fields iprot record
+      _ -> do
+        skip iprot _t573
+        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,f_System_add_column_family_result_sde=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
+  (_,_t578,_id579) <- readFieldBegin iprot
+  if _t578 == T_STOP then return record else
+    case _id579 of 
+      1 -> if _t578 == 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 _t578
+          read_System_drop_column_family_args_fields iprot record
+      _ -> do
+        skip iprot _t578
+        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,f_System_drop_column_family_result_sde :: Maybe SchemaDisagreementException} 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}
+  case f_System_drop_column_family_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,2)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_drop_column_family_result_fields iprot record = do
+  (_,_t583,_id584) <- readFieldBegin iprot
+  if _t583 == T_STOP then return record else
+    case _id584 of 
+      0 -> if _t583 == 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 _t583
+          read_System_drop_column_family_result_fields iprot record
+      1 -> if _t583 == 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 _t583
+          read_System_drop_column_family_result_fields iprot record
+      2 -> if _t583 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_System_drop_column_family_result_fields iprot record{f_System_drop_column_family_result_sde=Just s}
+        else do
+          skip iprot _t583
+          read_System_drop_column_family_result_fields iprot record
+      _ -> do
+        skip iprot _t583
+        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,f_System_drop_column_family_result_sde=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
+  (_,_t588,_id589) <- readFieldBegin iprot
+  if _t588 == T_STOP then return record else
+    case _id589 of 
+      1 -> if _t588 == 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 _t588
+          read_System_add_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t588
+        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,f_System_add_keyspace_result_sde :: Maybe SchemaDisagreementException} 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}
+  case f_System_add_keyspace_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,2)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_add_keyspace_result_fields iprot record = do
+  (_,_t593,_id594) <- readFieldBegin iprot
+  if _t593 == T_STOP then return record else
+    case _id594 of 
+      0 -> if _t593 == 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 _t593
+          read_System_add_keyspace_result_fields iprot record
+      1 -> if _t593 == 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 _t593
+          read_System_add_keyspace_result_fields iprot record
+      2 -> if _t593 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_System_add_keyspace_result_fields iprot record{f_System_add_keyspace_result_sde=Just s}
+        else do
+          skip iprot _t593
+          read_System_add_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t593
+        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,f_System_add_keyspace_result_sde=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
+  (_,_t598,_id599) <- readFieldBegin iprot
+  if _t598 == T_STOP then return record else
+    case _id599 of 
+      1 -> if _t598 == 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 _t598
+          read_System_drop_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t598
+        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,f_System_drop_keyspace_result_sde :: Maybe SchemaDisagreementException} 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}
+  case f_System_drop_keyspace_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,2)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_drop_keyspace_result_fields iprot record = do
+  (_,_t603,_id604) <- readFieldBegin iprot
+  if _t603 == T_STOP then return record else
+    case _id604 of 
+      0 -> if _t603 == 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 _t603
+          read_System_drop_keyspace_result_fields iprot record
+      1 -> if _t603 == 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 _t603
+          read_System_drop_keyspace_result_fields iprot record
+      2 -> if _t603 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_System_drop_keyspace_result_fields iprot record{f_System_drop_keyspace_result_sde=Just s}
+        else do
+          skip iprot _t603
+          read_System_drop_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t603
+        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,f_System_drop_keyspace_result_sde=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
+  (_,_t608,_id609) <- readFieldBegin iprot
+  if _t608 == T_STOP then return record else
+    case _id609 of 
+      1 -> if _t608 == 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 _t608
+          read_System_update_keyspace_args_fields iprot record
+      _ -> do
+        skip iprot _t608
+        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,f_System_update_keyspace_result_sde :: Maybe SchemaDisagreementException} 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}
+  case f_System_update_keyspace_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,2)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_update_keyspace_result_fields iprot record = do
+  (_,_t613,_id614) <- readFieldBegin iprot
+  if _t613 == T_STOP then return record else
+    case _id614 of 
+      0 -> if _t613 == 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 _t613
+          read_System_update_keyspace_result_fields iprot record
+      1 -> if _t613 == 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 _t613
+          read_System_update_keyspace_result_fields iprot record
+      2 -> if _t613 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_System_update_keyspace_result_fields iprot record{f_System_update_keyspace_result_sde=Just s}
+        else do
+          skip iprot _t613
+          read_System_update_keyspace_result_fields iprot record
+      _ -> do
+        skip iprot _t613
+        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,f_System_update_keyspace_result_sde=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
+  (_,_t618,_id619) <- readFieldBegin iprot
+  if _t618 == T_STOP then return record else
+    case _id619 of 
+      1 -> if _t618 == 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 _t618
+          read_System_update_column_family_args_fields iprot record
+      _ -> do
+        skip iprot _t618
+        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,f_System_update_column_family_result_sde :: Maybe SchemaDisagreementException} 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}
+  case f_System_update_column_family_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,2)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_System_update_column_family_result_fields iprot record = do
+  (_,_t623,_id624) <- readFieldBegin iprot
+  if _t623 == T_STOP then return record else
+    case _id624 of 
+      0 -> if _t623 == 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 _t623
+          read_System_update_column_family_result_fields iprot record
+      1 -> if _t623 == 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 _t623
+          read_System_update_column_family_result_fields iprot record
+      2 -> if _t623 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_System_update_column_family_result_fields iprot record{f_System_update_column_family_result_sde=Just s}
+        else do
+          skip iprot _t623
+          read_System_update_column_family_result_fields iprot record
+      _ -> do
+        skip iprot _t623
+        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,f_System_update_column_family_result_sde=Nothing})
+  readStructEnd iprot
+  return record
+data Execute_cql_query_args = Execute_cql_query_args{f_Execute_cql_query_args_query :: Maybe ByteString,f_Execute_cql_query_args_compression :: Maybe Compression} deriving (Show,Eq,Ord,Typeable)
+write_Execute_cql_query_args oprot record = do
+  writeStructBegin oprot "Execute_cql_query_args"
+  case f_Execute_cql_query_args_query record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("query",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_Execute_cql_query_args_compression record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("compression",T_I32,2)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Execute_cql_query_args_fields iprot record = do
+  (_,_t628,_id629) <- readFieldBegin iprot
+  if _t628 == T_STOP then return record else
+    case _id629 of 
+      1 -> if _t628 == T_STRING then do
+        s <- readBinary iprot
+        read_Execute_cql_query_args_fields iprot record{f_Execute_cql_query_args_query=Just s}
+        else do
+          skip iprot _t628
+          read_Execute_cql_query_args_fields iprot record
+      2 -> if _t628 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_Execute_cql_query_args_fields iprot record{f_Execute_cql_query_args_compression=Just s}
+        else do
+          skip iprot _t628
+          read_Execute_cql_query_args_fields iprot record
+      _ -> do
+        skip iprot _t628
+        readFieldEnd iprot
+        read_Execute_cql_query_args_fields iprot record
+read_Execute_cql_query_args iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Execute_cql_query_args_fields iprot (Execute_cql_query_args{f_Execute_cql_query_args_query=Nothing,f_Execute_cql_query_args_compression=Nothing})
+  readStructEnd iprot
+  return record
+data Execute_cql_query_result = Execute_cql_query_result{f_Execute_cql_query_result_success :: Maybe CqlResult,f_Execute_cql_query_result_ire :: Maybe InvalidRequestException,f_Execute_cql_query_result_ue :: Maybe UnavailableException,f_Execute_cql_query_result_te :: Maybe TimedOutException,f_Execute_cql_query_result_sde :: Maybe SchemaDisagreementException} deriving (Show,Eq,Ord,Typeable)
+write_Execute_cql_query_result oprot record = do
+  writeStructBegin oprot "Execute_cql_query_result"
+  case f_Execute_cql_query_result_success record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("success",T_STRUCT,0)
+    write_CqlResult oprot _v
+    writeFieldEnd oprot}
+  case f_Execute_cql_query_result_ire record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ire",T_STRUCT,1)
+    write_InvalidRequestException oprot _v
+    writeFieldEnd oprot}
+  case f_Execute_cql_query_result_ue record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("ue",T_STRUCT,2)
+    write_UnavailableException oprot _v
+    writeFieldEnd oprot}
+  case f_Execute_cql_query_result_te record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("te",T_STRUCT,3)
+    write_TimedOutException oprot _v
+    writeFieldEnd oprot}
+  case f_Execute_cql_query_result_sde record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("sde",T_STRUCT,4)
+    write_SchemaDisagreementException oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_Execute_cql_query_result_fields iprot record = do
+  (_,_t633,_id634) <- readFieldBegin iprot
+  if _t633 == T_STOP then return record else
+    case _id634 of 
+      0 -> if _t633 == T_STRUCT then do
+        s <- (read_CqlResult iprot)
+        read_Execute_cql_query_result_fields iprot record{f_Execute_cql_query_result_success=Just s}
+        else do
+          skip iprot _t633
+          read_Execute_cql_query_result_fields iprot record
+      1 -> if _t633 == T_STRUCT then do
+        s <- (read_InvalidRequestException iprot)
+        read_Execute_cql_query_result_fields iprot record{f_Execute_cql_query_result_ire=Just s}
+        else do
+          skip iprot _t633
+          read_Execute_cql_query_result_fields iprot record
+      2 -> if _t633 == T_STRUCT then do
+        s <- (read_UnavailableException iprot)
+        read_Execute_cql_query_result_fields iprot record{f_Execute_cql_query_result_ue=Just s}
+        else do
+          skip iprot _t633
+          read_Execute_cql_query_result_fields iprot record
+      3 -> if _t633 == T_STRUCT then do
+        s <- (read_TimedOutException iprot)
+        read_Execute_cql_query_result_fields iprot record{f_Execute_cql_query_result_te=Just s}
+        else do
+          skip iprot _t633
+          read_Execute_cql_query_result_fields iprot record
+      4 -> if _t633 == T_STRUCT then do
+        s <- (read_SchemaDisagreementException iprot)
+        read_Execute_cql_query_result_fields iprot record{f_Execute_cql_query_result_sde=Just s}
+        else do
+          skip iprot _t633
+          read_Execute_cql_query_result_fields iprot record
+      _ -> do
+        skip iprot _t633
+        readFieldEnd iprot
+        read_Execute_cql_query_result_fields iprot record
+read_Execute_cql_query_result iprot = do
+  _ <- readStructBegin iprot
+  record <- read_Execute_cql_query_result_fields iprot (Execute_cql_query_result{f_Execute_cql_query_result_success=Nothing,f_Execute_cql_query_result_ire=Nothing,f_Execute_cql_query_result_ue=Nothing,f_Execute_cql_query_result_te=Nothing,f_Execute_cql_query_result_sde=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_add (seqid, iprot, oprot, handler) = do
+  args <- read_Add_args iprot
+  readMessageEnd iprot
+  rs <- return (Add_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.add handler (f_Add_args_key args) (f_Add_args_column_parent args) (f_Add_args_column args) (f_Add_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Add_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Add_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Add_result_te =Just e}))
+  writeMessageBegin oprot ("add", M_REPLY, seqid);
+  write_Add_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_remove_counter (seqid, iprot, oprot, handler) = do
+  args <- read_Remove_counter_args iprot
+  readMessageEnd iprot
+  rs <- return (Remove_counter_result Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (do
+          Iface.remove_counter handler (f_Remove_counter_args_key args) (f_Remove_counter_args_path args) (f_Remove_counter_args_consistency_level args)
+          return rs)
+        (\e  -> 
+          return rs{f_Remove_counter_result_ire =Just e}))
+      (\e  -> 
+        return rs{f_Remove_counter_result_ue =Just e}))
+    (\e  -> 
+      return rs{f_Remove_counter_result_te =Just e}))
+  writeMessageBegin oprot ("remove_counter", M_REPLY, seqid);
+  write_Remove_counter_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 Nothing)
+  res <- (Control.Exception.catch
+    (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})
+    (\e  -> 
+      return rs{f_Describe_splits_result_ire =Just e}))
+  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 Nothing)
+  res <- (Control.Exception.catch
+    (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}))
+    (\e  -> 
+      return rs{f_System_add_column_family_result_sde =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 Nothing)
+  res <- (Control.Exception.catch
+    (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}))
+    (\e  -> 
+      return rs{f_System_drop_column_family_result_sde =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 Nothing)
+  res <- (Control.Exception.catch
+    (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}))
+    (\e  -> 
+      return rs{f_System_add_keyspace_result_sde =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 Nothing)
+  res <- (Control.Exception.catch
+    (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}))
+    (\e  -> 
+      return rs{f_System_drop_keyspace_result_sde =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 Nothing)
+  res <- (Control.Exception.catch
+    (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}))
+    (\e  -> 
+      return rs{f_System_update_keyspace_result_sde =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 Nothing)
+  res <- (Control.Exception.catch
+    (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}))
+    (\e  -> 
+      return rs{f_System_update_column_family_result_sde =Just e}))
+  writeMessageBegin oprot ("system_update_column_family", M_REPLY, seqid);
+  write_System_update_column_family_result oprot res
+  writeMessageEnd oprot
+  tFlush (getTransport oprot)
+process_execute_cql_query (seqid, iprot, oprot, handler) = do
+  args <- read_Execute_cql_query_args iprot
+  readMessageEnd iprot
+  rs <- return (Execute_cql_query_result Nothing Nothing Nothing Nothing Nothing)
+  res <- (Control.Exception.catch
+    (Control.Exception.catch
+      (Control.Exception.catch
+        (Control.Exception.catch
+          (do
+            res <- Iface.execute_cql_query handler (f_Execute_cql_query_args_query args) (f_Execute_cql_query_args_compression args)
+            return rs{f_Execute_cql_query_result_success= Just res})
+          (\e  -> 
+            return rs{f_Execute_cql_query_result_ire =Just e}))
+        (\e  -> 
+          return rs{f_Execute_cql_query_result_ue =Just e}))
+      (\e  -> 
+        return rs{f_Execute_cql_query_result_te =Just e}))
+    (\e  -> 
+      return rs{f_Execute_cql_query_result_sde =Just e}))
+  writeMessageBegin oprot ("execute_cql_query", M_REPLY, seqid);
+  write_Execute_cql_query_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)
+  "add" -> process_add (seqid,iprot,oprot,handler)
+  "remove" -> process_remove (seqid,iprot,oprot,handler)
+  "remove_counter" -> process_remove_counter (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)
+  "execute_cql_query" -> process_execute_cql_query (seqid,iprot,oprot,handler)
   _ -> do
     skip iprot T_STRUCT
     readMessageEnd iprot
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
@@ -11,17 +11,23 @@
 -- 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
+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,add,remove,remove_counter,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,execute_cql_query) where
 import Data.IORef
-import Thrift
-import Data.Typeable ( Typeable )
+import Prelude ( Bool(..), Enum, Double, String, Maybe(..),
+                 Eq, Show, Ord,
+                 return, length, IO, fromIntegral, fromEnum, toEnum,
+                 (&&), (||), (==), (++), ($), (-) )
+
 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 Data.Typeable ( Typeable )
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+
+import Thrift
+
+
 import Database.Cassandra.Thrift.Cassandra_Types
 import Database.Cassandra.Thrift.Cassandra 
 seqid = newIORef 0
@@ -330,6 +336,35 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
+add (ip,op) arg_key arg_column_parent arg_column arg_consistency_level = do
+  send_add op arg_key arg_column_parent arg_column arg_consistency_level
+  recv_add ip
+send_add op arg_key arg_column_parent arg_column arg_consistency_level = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("add", M_CALL, seqn)
+  write_Add_args op (Add_args{f_Add_args_key=Just arg_key,f_Add_args_column_parent=Just arg_column_parent,f_Add_args_column=Just arg_column,f_Add_args_consistency_level=Just arg_consistency_level})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_add ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Add_result ip
+  readMessageEnd ip
+  case f_Add_result_ire res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Add_result_ue res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Add_result_te res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  return ()
 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
@@ -359,6 +394,35 @@
     Nothing -> return ()
     Just _v -> throw _v
   return ()
+remove_counter (ip,op) arg_key arg_path arg_consistency_level = do
+  send_remove_counter op arg_key arg_path arg_consistency_level
+  recv_remove_counter ip
+send_remove_counter op arg_key arg_path arg_consistency_level = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("remove_counter", M_CALL, seqn)
+  write_Remove_counter_args op (Remove_counter_args{f_Remove_counter_args_key=Just arg_key,f_Remove_counter_args_path=Just arg_path,f_Remove_counter_args_consistency_level=Just arg_consistency_level})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_remove_counter ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Remove_counter_result ip
+  readMessageEnd ip
+  case f_Remove_counter_result_ire res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Remove_counter_result_ue res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  case f_Remove_counter_result_te res of
+    Nothing -> return ()
+    Just _v -> throw _v
+  return ()
 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
@@ -635,6 +699,9 @@
   case f_Describe_splits_result_success res of
     Just v -> return v
     Nothing -> do
+      case f_Describe_splits_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
       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
@@ -661,6 +728,9 @@
       case f_System_add_column_family_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_System_add_column_family_result_sde 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
@@ -687,6 +757,9 @@
       case f_System_drop_column_family_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_System_drop_column_family_result_sde 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
@@ -713,6 +786,9 @@
       case f_System_add_keyspace_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_System_add_keyspace_result_sde 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
@@ -739,6 +815,9 @@
       case f_System_drop_keyspace_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_System_drop_keyspace_result_sde 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
@@ -765,6 +844,9 @@
       case f_System_update_keyspace_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_System_update_keyspace_result_sde 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
@@ -791,4 +873,42 @@
       case f_System_update_column_family_result_ire res of
         Nothing -> return ()
         Just _v -> throw _v
+      case f_System_update_column_family_result_sde res of
+        Nothing -> return ()
+        Just _v -> throw _v
       throw (AppExn AE_MISSING_RESULT "system_update_column_family failed: unknown result")
+execute_cql_query (ip,op) arg_query arg_compression = do
+  send_execute_cql_query op arg_query arg_compression
+  recv_execute_cql_query ip
+send_execute_cql_query op arg_query arg_compression = do
+  seq <- seqid
+  seqn <- readIORef seq
+  writeMessageBegin op ("execute_cql_query", M_CALL, seqn)
+  write_Execute_cql_query_args op (Execute_cql_query_args{f_Execute_cql_query_args_query=Just arg_query,f_Execute_cql_query_args_compression=Just arg_compression})
+  writeMessageEnd op
+  tFlush (getTransport op)
+recv_execute_cql_query ip = do
+  (fname, mtype, rseqid) <- readMessageBegin ip
+  if mtype == M_EXCEPTION then do
+    x <- readAppExn ip
+    readMessageEnd ip
+    throw x
+    else return ()
+  res <- read_Execute_cql_query_result ip
+  readMessageEnd ip
+  case f_Execute_cql_query_result_success res of
+    Just v -> return v
+    Nothing -> do
+      case f_Execute_cql_query_result_ire res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      case f_Execute_cql_query_result_ue res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      case f_Execute_cql_query_result_te res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      case f_Execute_cql_query_result_sde res of
+        Nothing -> return ()
+        Just _v -> throw _v
+      throw (AppExn AE_MISSING_RESULT "execute_cql_query 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
@@ -12,16 +12,22 @@
 -----------------------------------------------------------------
 
 module Database.Cassandra.Thrift.Cassandra_Consts where
-import Thrift
-import Data.Typeable ( Typeable )
+import Prelude ( Bool(..), Enum, Double, String, Maybe(..),
+                 Eq, Show, Ord,
+                 return, length, IO, fromIntegral, fromEnum, toEnum,
+                 (&&), (||), (==), (++), ($), (-) )
+
 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 Data.Typeable ( Typeable )
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+
+import Thrift
+
+
 import Database.Cassandra.Thrift.Cassandra_Types
 vERSION :: String
-vERSION = "19.4.0"
+vERSION = "19.10.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
@@ -12,15 +12,21 @@
 -----------------------------------------------------------------
 
 module Database.Cassandra.Thrift.Cassandra_Iface where
-import Thrift
-import Data.Typeable ( Typeable )
+import Prelude ( Bool(..), Enum, Double, String, Maybe(..),
+                 Eq, Show, Ord,
+                 return, length, IO, fromIntegral, fromEnum, toEnum,
+                 (&&), (||), (==), (++), ($), (-) )
+
 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 Data.Typeable ( Typeable )
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+
+import Thrift
+
+
 import Database.Cassandra.Thrift.Cassandra_Types
 
 class Cassandra_Iface a where
@@ -34,7 +40,9 @@
   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 ()
+  add :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe CounterColumn -> Maybe ConsistencyLevel -> IO ()
   remove :: a -> Maybe ByteString -> Maybe ColumnPath -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
+  remove_counter :: a -> Maybe ByteString -> Maybe ColumnPath -> 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])
@@ -52,3 +60,4 @@
   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
+  execute_cql_query :: a -> Maybe ByteString -> Maybe Compression -> IO CqlResult
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
@@ -12,15 +12,21 @@
 -----------------------------------------------------------------
 
 module Database.Cassandra.Thrift.Cassandra_Types where
-import Thrift
-import Data.Typeable ( Typeable )
+import Prelude ( Bool(..), Enum, Double, String, Maybe(..),
+                 Eq, Show, Ord,
+                 return, length, IO, fromIntegral, fromEnum, toEnum,
+                 (&&), (||), (==), (++), ($), (-) )
+
 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 Data.Typeable ( Typeable )
+import qualified Data.Map as Map
+import qualified Data.Set as Set
+
+import Thrift
+
+
 data ConsistencyLevel = ONE|QUORUM|LOCAL_QUORUM|EACH_QUORUM|ALL|ANY|TWO|THREE  deriving (Show,Eq, Typeable, Ord)
 instance Enum ConsistencyLevel where
   fromEnum t = case t of
@@ -64,6 +70,26 @@
   toEnum t = case t of
     0 -> KEYS
     _ -> throw ThriftException
+data Compression = GZIP|NONE  deriving (Show,Eq, Typeable, Ord)
+instance Enum Compression where
+  fromEnum t = case t of
+    GZIP -> 1
+    NONE -> 2
+  toEnum t = case t of
+    1 -> GZIP
+    2 -> NONE
+    _ -> throw ThriftException
+data CqlResultType = ROWS|VOID|INT  deriving (Show,Eq, Typeable, Ord)
+instance Enum CqlResultType where
+  fromEnum t = case t of
+    ROWS -> 1
+    VOID -> 2
+    INT -> 3
+  toEnum t = case t of
+    1 -> ROWS
+    2 -> VOID
+    3 -> INT
+    _ -> 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"
@@ -160,7 +186,83 @@
   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)
+data CounterColumn = CounterColumn{f_CounterColumn_name :: Maybe ByteString,f_CounterColumn_value :: Maybe Int64} deriving (Show,Eq,Ord,Typeable)
+write_CounterColumn oprot record = do
+  writeStructBegin oprot "CounterColumn"
+  case f_CounterColumn_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_CounterColumn_value record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("value",T_I64,2)
+    writeI64 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_CounterColumn_fields iprot record = do
+  (_,_t19,_id20) <- readFieldBegin iprot
+  if _t19 == T_STOP then return record else
+    case _id20 of 
+      1 -> if _t19 == T_STRING then do
+        s <- readBinary iprot
+        read_CounterColumn_fields iprot record{f_CounterColumn_name=Just s}
+        else do
+          skip iprot _t19
+          read_CounterColumn_fields iprot record
+      2 -> if _t19 == T_I64 then do
+        s <- readI64 iprot
+        read_CounterColumn_fields iprot record{f_CounterColumn_value=Just s}
+        else do
+          skip iprot _t19
+          read_CounterColumn_fields iprot record
+      _ -> do
+        skip iprot _t19
+        readFieldEnd iprot
+        read_CounterColumn_fields iprot record
+read_CounterColumn iprot = do
+  _ <- readStructBegin iprot
+  record <- read_CounterColumn_fields iprot (CounterColumn{f_CounterColumn_name=Nothing,f_CounterColumn_value=Nothing})
+  readStructEnd iprot
+  return record
+data CounterSuperColumn = CounterSuperColumn{f_CounterSuperColumn_name :: Maybe ByteString,f_CounterSuperColumn_columns :: Maybe [CounterColumn]} deriving (Show,Eq,Ord,Typeable)
+write_CounterSuperColumn oprot record = do
+  writeStructBegin oprot "CounterSuperColumn"
+  case f_CounterSuperColumn_name record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("name",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_CounterSuperColumn_columns record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("columns",T_LIST,2)
+    (let {f [] = return (); f (_viter23:t) = do {write_CounterColumn oprot _viter23;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_CounterSuperColumn_fields iprot record = do
+  (_,_t25,_id26) <- readFieldBegin iprot
+  if _t25 == T_STOP then return record else
+    case _id26 of 
+      1 -> if _t25 == T_STRING then do
+        s <- readBinary iprot
+        read_CounterSuperColumn_fields iprot record{f_CounterSuperColumn_name=Just s}
+        else do
+          skip iprot _t25
+          read_CounterSuperColumn_fields iprot record
+      2 -> if _t25 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_CounterColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype30,_size27) <- readListBegin iprot; f _size27})
+        read_CounterSuperColumn_fields iprot record{f_CounterSuperColumn_columns=Just s}
+        else do
+          skip iprot _t25
+          read_CounterSuperColumn_fields iprot record
+      _ -> do
+        skip iprot _t25
+        readFieldEnd iprot
+        read_CounterSuperColumn_fields iprot record
+read_CounterSuperColumn iprot = do
+  _ <- readStructBegin iprot
+  record <- read_CounterSuperColumn_fields iprot (CounterSuperColumn{f_CounterSuperColumn_name=Nothing,f_CounterSuperColumn_columns=Nothing})
+  readStructEnd iprot
+  return record
+data ColumnOrSuperColumn = ColumnOrSuperColumn{f_ColumnOrSuperColumn_column :: Maybe Column,f_ColumnOrSuperColumn_super_column :: Maybe SuperColumn,f_ColumnOrSuperColumn_counter_column :: Maybe CounterColumn,f_ColumnOrSuperColumn_counter_super_column :: Maybe CounterSuperColumn} deriving (Show,Eq,Ord,Typeable)
 write_ColumnOrSuperColumn oprot record = do
   writeStructBegin oprot "ColumnOrSuperColumn"
   case f_ColumnOrSuperColumn_column record of {Nothing -> return (); Just _v -> do
@@ -171,31 +273,51 @@
     writeFieldBegin oprot ("super_column",T_STRUCT,2)
     write_SuperColumn oprot _v
     writeFieldEnd oprot}
+  case f_ColumnOrSuperColumn_counter_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("counter_column",T_STRUCT,3)
+    write_CounterColumn oprot _v
+    writeFieldEnd oprot}
+  case f_ColumnOrSuperColumn_counter_super_column record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("counter_super_column",T_STRUCT,4)
+    write_CounterSuperColumn 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
+  (_,_t35,_id36) <- readFieldBegin iprot
+  if _t35 == T_STOP then return record else
+    case _id36 of 
+      1 -> if _t35 == T_STRUCT then do
         s <- (read_Column iprot)
         read_ColumnOrSuperColumn_fields iprot record{f_ColumnOrSuperColumn_column=Just s}
         else do
-          skip iprot _t19
+          skip iprot _t35
           read_ColumnOrSuperColumn_fields iprot record
-      2 -> if _t19 == T_STRUCT then do
+      2 -> if _t35 == T_STRUCT then do
         s <- (read_SuperColumn iprot)
         read_ColumnOrSuperColumn_fields iprot record{f_ColumnOrSuperColumn_super_column=Just s}
         else do
-          skip iprot _t19
+          skip iprot _t35
           read_ColumnOrSuperColumn_fields iprot record
+      3 -> if _t35 == T_STRUCT then do
+        s <- (read_CounterColumn iprot)
+        read_ColumnOrSuperColumn_fields iprot record{f_ColumnOrSuperColumn_counter_column=Just s}
+        else do
+          skip iprot _t35
+          read_ColumnOrSuperColumn_fields iprot record
+      4 -> if _t35 == T_STRUCT then do
+        s <- (read_CounterSuperColumn iprot)
+        read_ColumnOrSuperColumn_fields iprot record{f_ColumnOrSuperColumn_counter_super_column=Just s}
+        else do
+          skip iprot _t35
+          read_ColumnOrSuperColumn_fields iprot record
       _ -> do
-        skip iprot _t19
+        skip iprot _t35
         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})
+  record <- read_ColumnOrSuperColumn_fields iprot (ColumnOrSuperColumn{f_ColumnOrSuperColumn_column=Nothing,f_ColumnOrSuperColumn_super_column=Nothing,f_ColumnOrSuperColumn_counter_column=Nothing,f_ColumnOrSuperColumn_counter_super_column=Nothing})
   readStructEnd iprot
   return record
 data NotFoundException = NotFoundException deriving (Show,Eq,Ord,Typeable)
@@ -205,11 +327,11 @@
   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 
+  (_,_t40,_id41) <- readFieldBegin iprot
+  if _t40 == T_STOP then return record else
+    case _id41 of 
       _ -> do
-        skip iprot _t24
+        skip iprot _t40
         readFieldEnd iprot
         read_NotFoundException_fields iprot record
 read_NotFoundException iprot = do
@@ -228,17 +350,17 @@
   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
+  (_,_t45,_id46) <- readFieldBegin iprot
+  if _t45 == T_STOP then return record else
+    case _id46 of 
+      1 -> if _t45 == T_STRING then do
         s <- readString iprot
         read_InvalidRequestException_fields iprot record{f_InvalidRequestException_why=Just s}
         else do
-          skip iprot _t29
+          skip iprot _t45
           read_InvalidRequestException_fields iprot record
       _ -> do
-        skip iprot _t29
+        skip iprot _t45
         readFieldEnd iprot
         read_InvalidRequestException_fields iprot record
 read_InvalidRequestException iprot = do
@@ -253,11 +375,11 @@
   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 
+  (_,_t50,_id51) <- readFieldBegin iprot
+  if _t50 == T_STOP then return record else
+    case _id51 of 
       _ -> do
-        skip iprot _t34
+        skip iprot _t50
         readFieldEnd iprot
         read_UnavailableException_fields iprot record
 read_UnavailableException iprot = do
@@ -272,11 +394,11 @@
   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 
+  (_,_t55,_id56) <- readFieldBegin iprot
+  if _t55 == T_STOP then return record else
+    case _id56 of 
       _ -> do
-        skip iprot _t39
+        skip iprot _t55
         readFieldEnd iprot
         read_TimedOutException_fields iprot record
 read_TimedOutException iprot = do
@@ -295,17 +417,17 @@
   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
+  (_,_t60,_id61) <- readFieldBegin iprot
+  if _t60 == T_STOP then return record else
+    case _id61 of 
+      1 -> if _t60 == T_STRING then do
         s <- readString iprot
         read_AuthenticationException_fields iprot record{f_AuthenticationException_why=Just s}
         else do
-          skip iprot _t44
+          skip iprot _t60
           read_AuthenticationException_fields iprot record
       _ -> do
-        skip iprot _t44
+        skip iprot _t60
         readFieldEnd iprot
         read_AuthenticationException_fields iprot record
 read_AuthenticationException iprot = do
@@ -324,17 +446,17 @@
   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
+  (_,_t65,_id66) <- readFieldBegin iprot
+  if _t65 == T_STOP then return record else
+    case _id66 of 
+      1 -> if _t65 == T_STRING then do
         s <- readString iprot
         read_AuthorizationException_fields iprot record{f_AuthorizationException_why=Just s}
         else do
-          skip iprot _t49
+          skip iprot _t65
           read_AuthorizationException_fields iprot record
       _ -> do
-        skip iprot _t49
+        skip iprot _t65
         readFieldEnd iprot
         read_AuthorizationException_fields iprot record
 read_AuthorizationException iprot = do
@@ -342,6 +464,25 @@
   record <- read_AuthorizationException_fields iprot (AuthorizationException{f_AuthorizationException_why=Nothing})
   readStructEnd iprot
   return record
+data SchemaDisagreementException = SchemaDisagreementException deriving (Show,Eq,Ord,Typeable)
+instance Exception SchemaDisagreementException
+write_SchemaDisagreementException oprot record = do
+  writeStructBegin oprot "SchemaDisagreementException"
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_SchemaDisagreementException_fields iprot record = do
+  (_,_t70,_id71) <- readFieldBegin iprot
+  if _t70 == T_STOP then return record else
+    case _id71 of 
+      _ -> do
+        skip iprot _t70
+        readFieldEnd iprot
+        read_SchemaDisagreementException_fields iprot record
+read_SchemaDisagreementException iprot = do
+  _ <- readStructBegin iprot
+  record <- read_SchemaDisagreementException_fields iprot (SchemaDisagreementException{})
+  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"
@@ -356,23 +497,23 @@
   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
+  (_,_t75,_id76) <- readFieldBegin iprot
+  if _t75 == T_STOP then return record else
+    case _id76 of 
+      3 -> if _t75 == T_STRING then do
         s <- readString iprot
         read_ColumnParent_fields iprot record{f_ColumnParent_column_family=Just s}
         else do
-          skip iprot _t54
+          skip iprot _t75
           read_ColumnParent_fields iprot record
-      4 -> if _t54 == T_STRING then do
+      4 -> if _t75 == T_STRING then do
         s <- readBinary iprot
         read_ColumnParent_fields iprot record{f_ColumnParent_super_column=Just s}
         else do
-          skip iprot _t54
+          skip iprot _t75
           read_ColumnParent_fields iprot record
       _ -> do
-        skip iprot _t54
+        skip iprot _t75
         readFieldEnd iprot
         read_ColumnParent_fields iprot record
 read_ColumnParent iprot = do
@@ -398,29 +539,29 @@
   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
+  (_,_t80,_id81) <- readFieldBegin iprot
+  if _t80 == T_STOP then return record else
+    case _id81 of 
+      3 -> if _t80 == T_STRING then do
         s <- readString iprot
         read_ColumnPath_fields iprot record{f_ColumnPath_column_family=Just s}
         else do
-          skip iprot _t59
+          skip iprot _t80
           read_ColumnPath_fields iprot record
-      4 -> if _t59 == T_STRING then do
+      4 -> if _t80 == T_STRING then do
         s <- readBinary iprot
         read_ColumnPath_fields iprot record{f_ColumnPath_super_column=Just s}
         else do
-          skip iprot _t59
+          skip iprot _t80
           read_ColumnPath_fields iprot record
-      5 -> if _t59 == T_STRING then do
+      5 -> if _t80 == T_STRING then do
         s <- readBinary iprot
         read_ColumnPath_fields iprot record{f_ColumnPath_column=Just s}
         else do
-          skip iprot _t59
+          skip iprot _t80
           read_ColumnPath_fields iprot record
       _ -> do
-        skip iprot _t59
+        skip iprot _t80
         readFieldEnd iprot
         read_ColumnPath_fields iprot record
 read_ColumnPath iprot = do
@@ -450,35 +591,35 @@
   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
+  (_,_t85,_id86) <- readFieldBegin iprot
+  if _t85 == T_STOP then return record else
+    case _id86 of 
+      1 -> if _t85 == T_STRING then do
         s <- readBinary iprot
         read_SliceRange_fields iprot record{f_SliceRange_start=Just s}
         else do
-          skip iprot _t64
+          skip iprot _t85
           read_SliceRange_fields iprot record
-      2 -> if _t64 == T_STRING then do
+      2 -> if _t85 == T_STRING then do
         s <- readBinary iprot
         read_SliceRange_fields iprot record{f_SliceRange_finish=Just s}
         else do
-          skip iprot _t64
+          skip iprot _t85
           read_SliceRange_fields iprot record
-      3 -> if _t64 == T_BOOL then do
+      3 -> if _t85 == T_BOOL then do
         s <- readBool iprot
         read_SliceRange_fields iprot record{f_SliceRange_reversed=Just s}
         else do
-          skip iprot _t64
+          skip iprot _t85
           read_SliceRange_fields iprot record
-      4 -> if _t64 == T_I32 then do
+      4 -> if _t85 == T_I32 then do
         s <- readI32 iprot
         read_SliceRange_fields iprot record{f_SliceRange_count=Just s}
         else do
-          skip iprot _t64
+          skip iprot _t85
           read_SliceRange_fields iprot record
       _ -> do
-        skip iprot _t64
+        skip iprot _t85
         readFieldEnd iprot
         read_SliceRange_fields iprot record
 read_SliceRange iprot = do
@@ -491,7 +632,7 @@
   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})
+    (let {f [] = return (); f (_viter89:t) = do {writeBinary oprot _viter89;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)
@@ -500,23 +641,23 @@
   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})
+  (_,_t91,_id92) <- readFieldBegin iprot
+  if _t91 == T_STOP then return record else
+    case _id92 of 
+      1 -> if _t91 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readBinary iprot;r <- f (n-1); return $ v:r}} in do {(_etype96,_size93) <- readListBegin iprot; f _size93})
         read_SlicePredicate_fields iprot record{f_SlicePredicate_column_names=Just s}
         else do
-          skip iprot _t70
+          skip iprot _t91
           read_SlicePredicate_fields iprot record
-      2 -> if _t70 == T_STRUCT then do
+      2 -> if _t91 == T_STRUCT then do
         s <- (read_SliceRange iprot)
         read_SlicePredicate_fields iprot record{f_SlicePredicate_slice_range=Just s}
         else do
-          skip iprot _t70
+          skip iprot _t91
           read_SlicePredicate_fields iprot record
       _ -> do
-        skip iprot _t70
+        skip iprot _t91
         readFieldEnd iprot
         read_SlicePredicate_fields iprot record
 read_SlicePredicate iprot = do
@@ -542,29 +683,29 @@
   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
+  (_,_t101,_id102) <- readFieldBegin iprot
+  if _t101 == T_STOP then return record else
+    case _id102 of 
+      1 -> if _t101 == T_STRING then do
         s <- readBinary iprot
         read_IndexExpression_fields iprot record{f_IndexExpression_column_name=Just s}
         else do
-          skip iprot _t80
+          skip iprot _t101
           read_IndexExpression_fields iprot record
-      2 -> if _t80 == T_I32 then do
+      2 -> if _t101 == 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
+          skip iprot _t101
           read_IndexExpression_fields iprot record
-      3 -> if _t80 == T_STRING then do
+      3 -> if _t101 == T_STRING then do
         s <- readBinary iprot
         read_IndexExpression_fields iprot record{f_IndexExpression_value=Just s}
         else do
-          skip iprot _t80
+          skip iprot _t101
           read_IndexExpression_fields iprot record
       _ -> do
-        skip iprot _t80
+        skip iprot _t101
         readFieldEnd iprot
         read_IndexExpression_fields iprot record
 read_IndexExpression iprot = do
@@ -577,7 +718,7 @@
   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})
+    (let {f [] = return (); f (_viter105:t) = do {write_IndexExpression oprot _viter105;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)
@@ -590,29 +731,29 @@
   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})
+  (_,_t107,_id108) <- readFieldBegin iprot
+  if _t107 == T_STOP then return record else
+    case _id108 of 
+      1 -> if _t107 == 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 {(_etype112,_size109) <- readListBegin iprot; f _size109})
         read_IndexClause_fields iprot record{f_IndexClause_expressions=Just s}
         else do
-          skip iprot _t86
+          skip iprot _t107
           read_IndexClause_fields iprot record
-      2 -> if _t86 == T_STRING then do
+      2 -> if _t107 == T_STRING then do
         s <- readBinary iprot
         read_IndexClause_fields iprot record{f_IndexClause_start_key=Just s}
         else do
-          skip iprot _t86
+          skip iprot _t107
           read_IndexClause_fields iprot record
-      3 -> if _t86 == T_I32 then do
+      3 -> if _t107 == T_I32 then do
         s <- readI32 iprot
         read_IndexClause_fields iprot record{f_IndexClause_count=Just s}
         else do
-          skip iprot _t86
+          skip iprot _t107
           read_IndexClause_fields iprot record
       _ -> do
-        skip iprot _t86
+        skip iprot _t107
         readFieldEnd iprot
         read_IndexClause_fields iprot record
 read_IndexClause iprot = do
@@ -646,41 +787,41 @@
   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
+  (_,_t117,_id118) <- readFieldBegin iprot
+  if _t117 == T_STOP then return record else
+    case _id118 of 
+      1 -> if _t117 == T_STRING then do
         s <- readBinary iprot
         read_KeyRange_fields iprot record{f_KeyRange_start_key=Just s}
         else do
-          skip iprot _t96
+          skip iprot _t117
           read_KeyRange_fields iprot record
-      2 -> if _t96 == T_STRING then do
+      2 -> if _t117 == T_STRING then do
         s <- readBinary iprot
         read_KeyRange_fields iprot record{f_KeyRange_end_key=Just s}
         else do
-          skip iprot _t96
+          skip iprot _t117
           read_KeyRange_fields iprot record
-      3 -> if _t96 == T_STRING then do
+      3 -> if _t117 == T_STRING then do
         s <- readString iprot
         read_KeyRange_fields iprot record{f_KeyRange_start_token=Just s}
         else do
-          skip iprot _t96
+          skip iprot _t117
           read_KeyRange_fields iprot record
-      4 -> if _t96 == T_STRING then do
+      4 -> if _t117 == T_STRING then do
         s <- readString iprot
         read_KeyRange_fields iprot record{f_KeyRange_end_token=Just s}
         else do
-          skip iprot _t96
+          skip iprot _t117
           read_KeyRange_fields iprot record
-      5 -> if _t96 == T_I32 then do
+      5 -> if _t117 == T_I32 then do
         s <- readI32 iprot
         read_KeyRange_fields iprot record{f_KeyRange_count=Just s}
         else do
-          skip iprot _t96
+          skip iprot _t117
           read_KeyRange_fields iprot record
       _ -> do
-        skip iprot _t96
+        skip iprot _t117
         readFieldEnd iprot
         read_KeyRange_fields iprot record
 read_KeyRange iprot = do
@@ -697,28 +838,28 @@
     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})
+    (let {f [] = return (); f (_viter121:t) = do {write_ColumnOrSuperColumn oprot _viter121;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
+  (_,_t123,_id124) <- readFieldBegin iprot
+  if _t123 == T_STOP then return record else
+    case _id124 of 
+      1 -> if _t123 == T_STRING then do
         s <- readBinary iprot
         read_KeySlice_fields iprot record{f_KeySlice_key=Just s}
         else do
-          skip iprot _t102
+          skip iprot _t123
           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})
+      2 -> if _t123 == 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 {(_etype128,_size125) <- readListBegin iprot; f _size125})
         read_KeySlice_fields iprot record{f_KeySlice_columns=Just s}
         else do
-          skip iprot _t102
+          skip iprot _t123
           read_KeySlice_fields iprot record
       _ -> do
-        skip iprot _t102
+        skip iprot _t123
         readFieldEnd iprot
         read_KeySlice_fields iprot record
 read_KeySlice iprot = do
@@ -740,23 +881,23 @@
   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
+  (_,_t133,_id134) <- readFieldBegin iprot
+  if _t133 == T_STOP then return record else
+    case _id134 of 
+      1 -> if _t133 == T_STRING then do
         s <- readBinary iprot
         read_KeyCount_fields iprot record{f_KeyCount_key=Just s}
         else do
-          skip iprot _t112
+          skip iprot _t133
           read_KeyCount_fields iprot record
-      2 -> if _t112 == T_I32 then do
+      2 -> if _t133 == T_I32 then do
         s <- readI32 iprot
         read_KeyCount_fields iprot record{f_KeyCount_count=Just s}
         else do
-          skip iprot _t112
+          skip iprot _t133
           read_KeyCount_fields iprot record
       _ -> do
-        skip iprot _t112
+        skip iprot _t133
         readFieldEnd iprot
         read_KeyCount_fields iprot record
 read_KeyCount iprot = do
@@ -782,29 +923,29 @@
   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
+  (_,_t138,_id139) <- readFieldBegin iprot
+  if _t138 == T_STOP then return record else
+    case _id139 of 
+      1 -> if _t138 == T_I64 then do
         s <- readI64 iprot
         read_Deletion_fields iprot record{f_Deletion_timestamp=Just s}
         else do
-          skip iprot _t117
+          skip iprot _t138
           read_Deletion_fields iprot record
-      2 -> if _t117 == T_STRING then do
+      2 -> if _t138 == T_STRING then do
         s <- readBinary iprot
         read_Deletion_fields iprot record{f_Deletion_super_column=Just s}
         else do
-          skip iprot _t117
+          skip iprot _t138
           read_Deletion_fields iprot record
-      3 -> if _t117 == T_STRUCT then do
+      3 -> if _t138 == T_STRUCT then do
         s <- (read_SlicePredicate iprot)
         read_Deletion_fields iprot record{f_Deletion_predicate=Just s}
         else do
-          skip iprot _t117
+          skip iprot _t138
           read_Deletion_fields iprot record
       _ -> do
-        skip iprot _t117
+        skip iprot _t138
         readFieldEnd iprot
         read_Deletion_fields iprot record
 read_Deletion iprot = do
@@ -826,23 +967,23 @@
   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
+  (_,_t143,_id144) <- readFieldBegin iprot
+  if _t143 == T_STOP then return record else
+    case _id144 of 
+      1 -> if _t143 == 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
+          skip iprot _t143
           read_Mutation_fields iprot record
-      2 -> if _t122 == T_STRUCT then do
+      2 -> if _t143 == T_STRUCT then do
         s <- (read_Deletion iprot)
         read_Mutation_fields iprot record{f_Mutation_deletion=Just s}
         else do
-          skip iprot _t122
+          skip iprot _t143
           read_Mutation_fields iprot record
       _ -> do
-        skip iprot _t122
+        skip iprot _t143
         readFieldEnd iprot
         read_Mutation_fields iprot record
 read_Mutation iprot = do
@@ -863,34 +1004,34 @@
     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})
+    (let {f [] = return (); f (_viter147:t) = do {writeString oprot _viter147;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
+  (_,_t149,_id150) <- readFieldBegin iprot
+  if _t149 == T_STOP then return record else
+    case _id150 of 
+      1 -> if _t149 == T_STRING then do
         s <- readString iprot
         read_TokenRange_fields iprot record{f_TokenRange_start_token=Just s}
         else do
-          skip iprot _t128
+          skip iprot _t149
           read_TokenRange_fields iprot record
-      2 -> if _t128 == T_STRING then do
+      2 -> if _t149 == T_STRING then do
         s <- readString iprot
         read_TokenRange_fields iprot record{f_TokenRange_end_token=Just s}
         else do
-          skip iprot _t128
+          skip iprot _t149
           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})
+      3 -> if _t149 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype154,_size151) <- readListBegin iprot; f _size151})
         read_TokenRange_fields iprot record{f_TokenRange_endpoints=Just s}
         else do
-          skip iprot _t128
+          skip iprot _t149
           read_TokenRange_fields iprot record
       _ -> do
-        skip iprot _t128
+        skip iprot _t149
         readFieldEnd iprot
         read_TokenRange_fields iprot record
 read_TokenRange iprot = do
@@ -903,22 +1044,22 @@
   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})
+    (let {f [] = return (); f ((_kiter158,_viter159):t) = do {do {writeString oprot _kiter158;writeString oprot _viter159};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})
+  (_,_t161,_id162) <- readFieldBegin iprot
+  if _t161 == T_STOP then return record else
+    case _id162 of 
+      1 -> if _t161 == 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 {(_ktype164,_vtype165,_size163) <- readMapBegin iprot; l <- f _size163; return $ Map.fromList l})
         read_AuthenticationRequest_fields iprot record{f_AuthenticationRequest_credentials=Just s}
         else do
-          skip iprot _t140
+          skip iprot _t161
           read_AuthenticationRequest_fields iprot record
       _ -> do
-        skip iprot _t140
+        skip iprot _t161
         readFieldEnd iprot
         read_AuthenticationRequest_fields iprot record
 read_AuthenticationRequest iprot = do
@@ -948,35 +1089,35 @@
   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
+  (_,_t171,_id172) <- readFieldBegin iprot
+  if _t171 == T_STOP then return record else
+    case _id172 of 
+      1 -> if _t171 == T_STRING then do
         s <- readBinary iprot
         read_ColumnDef_fields iprot record{f_ColumnDef_name=Just s}
         else do
-          skip iprot _t150
+          skip iprot _t171
           read_ColumnDef_fields iprot record
-      2 -> if _t150 == T_STRING then do
+      2 -> if _t171 == T_STRING then do
         s <- readString iprot
         read_ColumnDef_fields iprot record{f_ColumnDef_validation_class=Just s}
         else do
-          skip iprot _t150
+          skip iprot _t171
           read_ColumnDef_fields iprot record
-      3 -> if _t150 == T_I32 then do
+      3 -> if _t171 == 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
+          skip iprot _t171
           read_ColumnDef_fields iprot record
-      4 -> if _t150 == T_STRING then do
+      4 -> if _t171 == T_STRING then do
         s <- readString iprot
         read_ColumnDef_fields iprot record{f_ColumnDef_index_name=Just s}
         else do
-          skip iprot _t150
+          skip iprot _t171
           read_ColumnDef_fields iprot record
       _ -> do
-        skip iprot _t150
+        skip iprot _t171
         readFieldEnd iprot
         read_ColumnDef_fields iprot record
 read_ColumnDef iprot = do
@@ -984,7 +1125,7 @@
   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)
+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,f_CfDef_replicate_on_write :: Maybe Bool,f_CfDef_merge_shards_chance :: Maybe Double,f_CfDef_key_validation_class :: Maybe String,f_CfDef_row_cache_provider :: Maybe String,f_CfDef_key_alias :: Maybe ByteString} deriving (Show,Eq,Ord,Typeable)
 write_CfDef oprot record = do
   writeStructBegin oprot "CfDef"
   case f_CfDef_keyspace record of {Nothing -> return (); Just _v -> do
@@ -1025,7 +1166,7 @@
     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})
+    (let {f [] = return (); f (_viter175:t) = do {write_ColumnDef oprot _viter175;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)
@@ -1067,139 +1208,189 @@
     writeFieldBegin oprot ("memtable_operations_in_millions",T_DOUBLE,23)
     writeDouble oprot _v
     writeFieldEnd oprot}
+  case f_CfDef_replicate_on_write record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("replicate_on_write",T_BOOL,24)
+    writeBool oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_merge_shards_chance record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("merge_shards_chance",T_DOUBLE,25)
+    writeDouble oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_key_validation_class record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key_validation_class",T_STRING,26)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_row_cache_provider record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("row_cache_provider",T_STRING,27)
+    writeString oprot _v
+    writeFieldEnd oprot}
+  case f_CfDef_key_alias record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key_alias",T_STRING,28)
+    writeBinary 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
+  (_,_t177,_id178) <- readFieldBegin iprot
+  if _t177 == T_STOP then return record else
+    case _id178 of 
+      1 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_keyspace=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      2 -> if _t156 == T_STRING then do
+      2 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_name=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      3 -> if _t156 == T_STRING then do
+      3 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_column_type=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      5 -> if _t156 == T_STRING then do
+      5 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_comparator_type=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      6 -> if _t156 == T_STRING then do
+      6 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_subcomparator_type=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      8 -> if _t156 == T_STRING then do
+      8 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_comment=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      9 -> if _t156 == T_DOUBLE then do
+      9 -> if _t177 == T_DOUBLE then do
         s <- readDouble iprot
         read_CfDef_fields iprot record{f_CfDef_row_cache_size=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      11 -> if _t156 == T_DOUBLE then do
+      11 -> if _t177 == T_DOUBLE then do
         s <- readDouble iprot
         read_CfDef_fields iprot record{f_CfDef_key_cache_size=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      12 -> if _t156 == T_DOUBLE then do
+      12 -> if _t177 == T_DOUBLE then do
         s <- readDouble iprot
         read_CfDef_fields iprot record{f_CfDef_read_repair_chance=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           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})
+      13 -> if _t177 == 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 {(_etype182,_size179) <- readListBegin iprot; f _size179})
         read_CfDef_fields iprot record{f_CfDef_column_metadata=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      14 -> if _t156 == T_I32 then do
+      14 -> if _t177 == T_I32 then do
         s <- readI32 iprot
         read_CfDef_fields iprot record{f_CfDef_gc_grace_seconds=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      15 -> if _t156 == T_STRING then do
+      15 -> if _t177 == T_STRING then do
         s <- readString iprot
         read_CfDef_fields iprot record{f_CfDef_default_validation_class=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      16 -> if _t156 == T_I32 then do
+      16 -> if _t177 == T_I32 then do
         s <- readI32 iprot
         read_CfDef_fields iprot record{f_CfDef_id=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      17 -> if _t156 == T_I32 then do
+      17 -> if _t177 == T_I32 then do
         s <- readI32 iprot
         read_CfDef_fields iprot record{f_CfDef_min_compaction_threshold=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      18 -> if _t156 == T_I32 then do
+      18 -> if _t177 == T_I32 then do
         s <- readI32 iprot
         read_CfDef_fields iprot record{f_CfDef_max_compaction_threshold=Just s}
         else do
-          skip iprot _t156
+          skip iprot _t177
           read_CfDef_fields iprot record
-      19 -> if _t156 == T_I32 then do
+      19 -> if _t177 == 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
+          skip iprot _t177
           read_CfDef_fields iprot record
-      20 -> if _t156 == T_I32 then do
+      20 -> if _t177 == 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
+          skip iprot _t177
           read_CfDef_fields iprot record
-      21 -> if _t156 == T_I32 then do
+      21 -> if _t177 == 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
+          skip iprot _t177
           read_CfDef_fields iprot record
-      22 -> if _t156 == T_I32 then do
+      22 -> if _t177 == 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
+          skip iprot _t177
           read_CfDef_fields iprot record
-      23 -> if _t156 == T_DOUBLE then do
+      23 -> if _t177 == 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
+          skip iprot _t177
           read_CfDef_fields iprot record
+      24 -> if _t177 == T_BOOL then do
+        s <- readBool iprot
+        read_CfDef_fields iprot record{f_CfDef_replicate_on_write=Just s}
+        else do
+          skip iprot _t177
+          read_CfDef_fields iprot record
+      25 -> if _t177 == T_DOUBLE then do
+        s <- readDouble iprot
+        read_CfDef_fields iprot record{f_CfDef_merge_shards_chance=Just s}
+        else do
+          skip iprot _t177
+          read_CfDef_fields iprot record
+      26 -> if _t177 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_key_validation_class=Just s}
+        else do
+          skip iprot _t177
+          read_CfDef_fields iprot record
+      27 -> if _t177 == T_STRING then do
+        s <- readString iprot
+        read_CfDef_fields iprot record{f_CfDef_row_cache_provider=Just s}
+        else do
+          skip iprot _t177
+          read_CfDef_fields iprot record
+      28 -> if _t177 == T_STRING then do
+        s <- readBinary iprot
+        read_CfDef_fields iprot record{f_CfDef_key_alias=Just s}
+        else do
+          skip iprot _t177
+          read_CfDef_fields iprot record
       _ -> do
-        skip iprot _t156
+        skip iprot _t177
         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})
+  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,f_CfDef_replicate_on_write=Nothing,f_CfDef_merge_shards_chance=Nothing,f_CfDef_key_validation_class=Nothing,f_CfDef_row_cache_provider=Nothing,f_CfDef_key_alias=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)
@@ -1215,7 +1406,7 @@
     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})
+    (let {f [] = return (); f ((_kiter186,_viter187):t) = do {do {writeString oprot _kiter186;writeString oprot _viter187};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)
@@ -1223,50 +1414,136 @@
     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})
+    (let {f [] = return (); f (_viter188:t) = do {write_CfDef oprot _viter188;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
+  (_,_t190,_id191) <- readFieldBegin iprot
+  if _t190 == T_STOP then return record else
+    case _id191 of 
+      1 -> if _t190 == T_STRING then do
         s <- readString iprot
         read_KsDef_fields iprot record{f_KsDef_name=Just s}
         else do
-          skip iprot _t169
+          skip iprot _t190
           read_KsDef_fields iprot record
-      2 -> if _t169 == T_STRING then do
+      2 -> if _t190 == T_STRING then do
         s <- readString iprot
         read_KsDef_fields iprot record{f_KsDef_strategy_class=Just s}
         else do
-          skip iprot _t169
+          skip iprot _t190
           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})
+      3 -> if _t190 == 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 {(_ktype193,_vtype194,_size192) <- readMapBegin iprot; l <- f _size192; return $ Map.fromList l})
         read_KsDef_fields iprot record{f_KsDef_strategy_options=Just s}
         else do
-          skip iprot _t169
+          skip iprot _t190
           read_KsDef_fields iprot record
-      4 -> if _t169 == T_I32 then do
+      4 -> if _t190 == T_I32 then do
         s <- readI32 iprot
         read_KsDef_fields iprot record{f_KsDef_replication_factor=Just s}
         else do
-          skip iprot _t169
+          skip iprot _t190
           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})
+      5 -> if _t190 == 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 {(_etype200,_size197) <- readListBegin iprot; f _size197})
         read_KsDef_fields iprot record{f_KsDef_cf_defs=Just s}
         else do
-          skip iprot _t169
+          skip iprot _t190
           read_KsDef_fields iprot record
       _ -> do
-        skip iprot _t169
+        skip iprot _t190
         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
+data CqlRow = CqlRow{f_CqlRow_key :: Maybe ByteString,f_CqlRow_columns :: Maybe [Column]} deriving (Show,Eq,Ord,Typeable)
+write_CqlRow oprot record = do
+  writeStructBegin oprot "CqlRow"
+  case f_CqlRow_key record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("key",T_STRING,1)
+    writeBinary oprot _v
+    writeFieldEnd oprot}
+  case f_CqlRow_columns record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("columns",T_LIST,2)
+    (let {f [] = return (); f (_viter204:t) = do {write_Column oprot _viter204;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_CqlRow_fields iprot record = do
+  (_,_t206,_id207) <- readFieldBegin iprot
+  if _t206 == T_STOP then return record else
+    case _id207 of 
+      1 -> if _t206 == T_STRING then do
+        s <- readBinary iprot
+        read_CqlRow_fields iprot record{f_CqlRow_key=Just s}
+        else do
+          skip iprot _t206
+          read_CqlRow_fields iprot record
+      2 -> if _t206 == 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 {(_etype211,_size208) <- readListBegin iprot; f _size208})
+        read_CqlRow_fields iprot record{f_CqlRow_columns=Just s}
+        else do
+          skip iprot _t206
+          read_CqlRow_fields iprot record
+      _ -> do
+        skip iprot _t206
+        readFieldEnd iprot
+        read_CqlRow_fields iprot record
+read_CqlRow iprot = do
+  _ <- readStructBegin iprot
+  record <- read_CqlRow_fields iprot (CqlRow{f_CqlRow_key=Nothing,f_CqlRow_columns=Nothing})
+  readStructEnd iprot
+  return record
+data CqlResult = CqlResult{f_CqlResult_type :: Maybe CqlResultType,f_CqlResult_rows :: Maybe [CqlRow],f_CqlResult_num :: Maybe Int32} deriving (Show,Eq,Ord,Typeable)
+write_CqlResult oprot record = do
+  writeStructBegin oprot "CqlResult"
+  case f_CqlResult_type record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("type",T_I32,1)
+    writeI32 oprot (fromIntegral $ fromEnum _v)
+    writeFieldEnd oprot}
+  case f_CqlResult_rows record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("rows",T_LIST,2)
+    (let {f [] = return (); f (_viter215:t) = do {write_CqlRow oprot _viter215;f t}} in do {writeListBegin oprot (T_STRUCT,fromIntegral $ Prelude.length _v); f _v;writeListEnd oprot})
+    writeFieldEnd oprot}
+  case f_CqlResult_num record of {Nothing -> return (); Just _v -> do
+    writeFieldBegin oprot ("num",T_I32,3)
+    writeI32 oprot _v
+    writeFieldEnd oprot}
+  writeFieldStop oprot
+  writeStructEnd oprot
+read_CqlResult_fields iprot record = do
+  (_,_t217,_id218) <- readFieldBegin iprot
+  if _t217 == T_STOP then return record else
+    case _id218 of 
+      1 -> if _t217 == T_I32 then do
+        s <- (do {i <- readI32 iprot; return $ toEnum $ fromIntegral i})
+        read_CqlResult_fields iprot record{f_CqlResult_type=Just s}
+        else do
+          skip iprot _t217
+          read_CqlResult_fields iprot record
+      2 -> if _t217 == T_LIST then do
+        s <- (let {f 0 = return []; f n = do {v <- (read_CqlRow iprot);r <- f (n-1); return $ v:r}} in do {(_etype222,_size219) <- readListBegin iprot; f _size219})
+        read_CqlResult_fields iprot record{f_CqlResult_rows=Just s}
+        else do
+          skip iprot _t217
+          read_CqlResult_fields iprot record
+      3 -> if _t217 == T_I32 then do
+        s <- readI32 iprot
+        read_CqlResult_fields iprot record{f_CqlResult_num=Just s}
+        else do
+          skip iprot _t217
+          read_CqlResult_fields iprot record
+      _ -> do
+        skip iprot _t217
+        readFieldEnd iprot
+        read_CqlResult_fields iprot record
+read_CqlResult iprot = do
+  _ <- readStructBegin iprot
+  record <- read_CqlResult_fields iprot (CqlResult{f_CqlResult_type=Nothing,f_CqlResult_rows=Nothing,f_CqlResult_num=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.7.4
+Version: 0.8.0
 License: OtherLicense 
 License-File: LICENSE
-Cabal-version: >= 1.6
-Author: Thrift v.0.5.0 
+Cabal-version: >= 1.4
+Author: Thrift v.0.6.0 
 Maintainer: kirk@glyphsoftware.com 
 Stability: alpha
 Synopsis: thrift bindings to the cassandra database 
 Description:
-  The Cassandra (v.0.7.4) database bindings, generated using the Thrift (v.0.5.0) compliler, Released under the Apache 2.0 license. 
+  The Cassandra (v.0.8.0) database bindings, generated using the Thrift (v.0.6.0) 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.5.0.2,
+                     Thrift == 0.6.0,
                      bytestring
