/* Generated by Cython 0.29.14 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "depends": [
            "/Users/charger/src/kudu/src/kudu/client/client.h",
            "/Users/charger/src/kudu/src/kudu/client/resource_metrics.h",
            "/Users/charger/src/kudu/src/kudu/client/scan_batch.h",
            "/Users/charger/src/kudu/src/kudu/client/scan_predicate.h",
            "/Users/charger/src/kudu/src/kudu/client/schema.h",
            "/Users/charger/src/kudu/src/kudu/client/shared_ptr.h",
            "/Users/charger/src/kudu/src/kudu/client/value.h",
            "/Users/charger/src/kudu/src/kudu/client/write_op.h",
            "/Users/charger/src/kudu/src/kudu/common/partial_row.h",
            "/Users/charger/src/kudu/src/kudu/util/int128.h",
            "/Users/charger/src/kudu/src/kudu/util/monotime.h",
            "/Users/charger/src/kudu/src/kudu/util/slice.h",
            "/Users/charger/src/kudu/src/kudu/util/status.h"
        ],
        "include_dirs": [
            "/Users/charger/src/kudu/src",
            "/Users/charger/src/kudu/build/latest/src"
        ],
        "language": "c++",
        "libraries": [
            "kudu_client"
        ],
        "library_dirs": [
            "/Users/charger/src/kudu/build/latest/lib/exported"
        ],
        "name": "kudu.client",
        "runtime_library_dirs": [
            "/Users/charger/src/kudu/build/latest/lib/exported"
        ],
        "sources": [
            "kudu/client.pyx"
        ]
    },
    "module_name": "kudu.client"
}
END: Cython Metadata */

#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.6+ or Python 3.3+.
#else
#define CYTHON_ABI "0_29_14"
#define CYTHON_HEX_VERSION 0x001D0EF0
#define CYTHON_FUTURE_DIVISION 0
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#define __PYX_COMMA ,
#ifndef HAVE_LONG_LONG
  #if PY_VERSION_HEX >= 0x02070000
    #define HAVE_LONG_LONG
  #endif
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #undef CYTHON_AVOID_BORROWED_REFS
  #define CYTHON_AVOID_BORROWED_REFS 1
  #undef CYTHON_ASSUME_SAFE_MACROS
  #define CYTHON_ASSUME_SAFE_MACROS 0
  #undef CYTHON_UNPACK_METHODS
  #define CYTHON_UNPACK_METHODS 0
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#elif defined(PYSTON_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #undef CYTHON_USE_ASYNC_SLOTS
  #define CYTHON_USE_ASYNC_SLOTS 0
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_PYSTON 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYTYPE_LOOKUP
    #define CYTHON_USE_PYTYPE_LOOKUP 0
  #elif !defined(CYTHON_USE_PYTYPE_LOOKUP)
    #define CYTHON_USE_PYTYPE_LOOKUP 1
  #endif
  #if PY_MAJOR_VERSION < 3
    #undef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 0
  #elif !defined(CYTHON_USE_ASYNC_SLOTS)
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #if PY_VERSION_HEX < 0x02070000
    #undef CYTHON_USE_PYLONG_INTERNALS
    #define CYTHON_USE_PYLONG_INTERNALS 0
  #elif !defined(CYTHON_USE_PYLONG_INTERNALS)
    #define CYTHON_USE_PYLONG_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_PYLIST_INTERNALS
    #define CYTHON_USE_PYLIST_INTERNALS 1
  #endif
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #if PY_VERSION_HEX < 0x030300F0
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1)
  #endif
  #ifndef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
  #endif
  #ifndef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_MAYBE_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
#ifdef _MSC_VER
    #ifndef _MSC_STDINT_H_
        #if _MSC_VER < 1300
           typedef unsigned char     uint8_t;
           typedef unsigned int      uint32_t;
        #else
           typedef unsigned __int8   uint8_t;
           typedef unsigned __int32  uint32_t;
        #endif
    #endif
#else
   #include <stdint.h>
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus) && __cplusplus >= 201103L
    #if __has_cpp_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH [[fallthrough]]
    #elif __has_cpp_attribute(clang::fallthrough)
      #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
    #elif __has_cpp_attribute(gnu::fallthrough)
      #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
    #endif
  #endif
  #ifndef CYTHON_FALLTHROUGH
    #if __has_attribute(fallthrough)
      #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
    #else
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
  #if defined(__clang__ ) && defined(__apple_build_version__)
    #if __apple_build_version__ < 7000000
      #undef  CYTHON_FALLTHROUGH
      #define CYTHON_FALLTHROUGH
    #endif
  #endif
#endif

#ifndef __cplusplus
  #error "Cython files generated with the C++ option must be compiled with a C++ compiler."
#endif
#ifndef CYTHON_INLINE
  #if defined(__clang__)
    #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
  #else
    #define CYTHON_INLINE inline
  #endif
#endif
template<typename T>
void __Pyx_call_destructor(T& x) {
    x.~T();
}
template<typename T>
class __Pyx_FakeReference {
  public:
    __Pyx_FakeReference() : ptr(NULL) { }
    __Pyx_FakeReference(const T& ref) : ptr(const_cast<T*>(&ref)) { }
    T *operator->() { return ptr; }
    T *operator&() { return ptr; }
    operator T&() { return *ptr; }
    template<typename U> bool operator ==(U other) { return *ptr == other; }
    template<typename U> bool operator !=(U other) { return *ptr != other; }
  private:
    T *ptr;
};

#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
  #define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#endif
  #define __Pyx_DefaultClassType PyType_Type
#endif
#ifndef Py_TPFLAGS_CHECKTYPES
  #define Py_TPFLAGS_CHECKTYPES 0
#endif
#ifndef Py_TPFLAGS_HAVE_INDEX
  #define Py_TPFLAGS_HAVE_INDEX 0
#endif
#ifndef Py_TPFLAGS_HAVE_NEWBUFFER
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#ifndef Py_TPFLAGS_HAVE_FINALIZE
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#ifndef METH_STACKLESS
  #define METH_STACKLESS 0
#endif
#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
  #ifndef METH_FASTCALL
     #define METH_FASTCALL 0x80
  #endif
  typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
  typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
                                                          Py_ssize_t nargs, PyObject *kwnames);
#else
  #define __Pyx_PyCFunctionFast _PyCFunctionFast
  #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
#endif
#if CYTHON_FAST_PYCCALL
#define __Pyx_PyFastCFunction_Check(func)\
    ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)))))
#else
#define __Pyx_PyFastCFunction_Check(func) 0
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
  #define PyObject_Malloc(s)   PyMem_Malloc(s)
  #define PyObject_Free(p)     PyMem_Free(p)
  #define PyObject_Realloc(p)  PyMem_Realloc(p)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1
  #define PyMem_RawMalloc(n)           PyMem_Malloc(n)
  #define PyMem_RawRealloc(p, n)       PyMem_Realloc(p, n)
  #define PyMem_RawFree(p)             PyMem_Free(p)
#endif
#if CYTHON_COMPILING_IN_PYSTON
  #define __Pyx_PyCode_HasFreeVars(co)  PyCode_HasFreeVars(co)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno)
#else
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_PyFrame_SetLineNumber(frame, lineno)  (frame)->f_lineno = (lineno)
#endif
#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x03060000
  #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
#elif PY_VERSION_HEX >= 0x03000000
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#else
  #define __Pyx_PyThreadState_Current _PyThreadState_Current
#endif
#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
#include "pythread.h"
#define Py_tss_NEEDS_INIT 0
typedef int Py_tss_t;
static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
  *key = PyThread_create_key();
  return 0;
}
static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
  Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
  *key = Py_tss_NEEDS_INIT;
  return key;
}
static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
  PyObject_Free(key);
}
static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
  return *key != Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
  PyThread_delete_key(*key);
  *key = Py_tss_NEEDS_INIT;
}
static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
  return PyThread_set_key_value(*key, value);
}
static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
  return PyThread_get_key_value(*key);
}
#endif
#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized)
#define __Pyx_PyDict_NewPresized(n)  ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
#else
#define __Pyx_PyDict_NewPresized(n)  PyDict_New()
#endif
#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStr(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
#else
#define __Pyx_PyDict_GetItemStr(dict, name)  PyDict_GetItem(dict, name)
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  PyUnicode_WRITE(k, d, i, ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111)
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
  #define __Pyx_PyUnicode_WRITE(k, d, i, ch)  (((void)(k)), ((Py_UNICODE*)d)[i] = ch)
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_SIZE(u))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains)
  #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check)
  #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
#endif
#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format)
  #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
  #define PyObject_ASCII(o)            PyObject_Repr(o)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
  #define PyObject_Unicode             PyObject_Str
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#if CYTHON_ASSUME_SAFE_MACROS
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
#else
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
  #define _USE_MATH_DEFINES
#endif
#include <math.h>
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
#define __Pyx_truncl trunc
#else
#define __Pyx_truncl truncl
#endif


#define __PYX_ERR(f_index, lineno, Ln_error) \
{ \
  __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \
}

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__kudu__client
#define __PYX_HAVE_API__kudu__client
/* Early includes */
#include <stdint.h>
#include <string.h>
#include "ios"
#include "new"
#include "stdexcept"
#include "typeinfo"
#include <string>
#include <vector>
#include <utility>
#include <map>
#include <iostream>
#include "kudu/client/shared_ptr.h"
#include "kudu/util/status.h"
#include "kudu/util/int128.h"
#include "kudu/util/monotime.h"
#include "kudu/client/schema.h"
#include "kudu/client/scan_batch.h"
#include "kudu/util/slice.h"
#include "kudu/common/partial_row.h"
#include "kudu/client/write_op.h"
#include "kudu/client/scan_predicate.h"
#include "kudu/client/value.h"
#include "kudu/client/client.h"
#include "kudu/client/resource_metrics.h"
#include <stdio.h>
#include "pythread.h"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
#define CYTHON_WITHOUT_ASSERTIONS
#endif

typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_uchar_cast(c) ((unsigned char)c)
#define __Pyx_long_cast(x) ((long)x)
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (\
    (sizeof(type) < sizeof(Py_ssize_t))  ||\
    (sizeof(type) > sizeof(Py_ssize_t) &&\
          likely(v < (type)PY_SSIZE_T_MAX ||\
                 v == (type)PY_SSIZE_T_MAX)  &&\
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
                                v == (type)PY_SSIZE_T_MIN)))  ||\
    (sizeof(type) == sizeof(Py_ssize_t) &&\
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
    return (size_t) i < (size_t) limit;
}
#if defined (__cplusplus) && __cplusplus >= 201103L
    #include <cstdlib>
    #define __Pyx_sst_abs(value) std::abs(value)
#elif SIZEOF_INT >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) abs(value)
#elif SIZEOF_LONG >= SIZEOF_SIZE_T
    #define __Pyx_sst_abs(value) labs(value)
#elif defined (_MSC_VER)
    #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define __Pyx_sst_abs(value) llabs(value)
#elif defined (__GNUC__)
    #define __Pyx_sst_abs(value) __builtin_llabs(value)
#else
    #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyBytes_AsWritableString(s)     ((char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableSString(s)    ((signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsWritableUString(s)    ((unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsString(s)     ((const char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsSString(s)    ((const signed char*) PyBytes_AS_STRING(s))
#define __Pyx_PyBytes_AsUString(s)    ((const unsigned char*) PyBytes_AS_STRING(s))
#define __Pyx_PyObject_AsWritableString(s)    ((char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsSString(s)    ((const signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((const unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromCString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromCString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromCString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromCString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */
static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }

static PyObject *__pyx_m = NULL;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_cython_runtime = NULL;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static PyObject *__pyx_empty_unicode;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "kudu/client.pyx",
  "stringsource",
  "kudu/client.pxd",
  "kudu/schema.pxd",
  "type.pxd",
  "bool.pxd",
  "complex.pxd",
};

/*--- Type declarations ---*/
struct __pyx_obj_4kudu_6schema_KuduType;
struct __pyx_obj_4kudu_6schema_ColumnTypeAttributes;
struct __pyx_obj_4kudu_6schema_ColumnSchema;
struct __pyx_obj_4kudu_6schema_ColumnSpec;
struct __pyx_obj_4kudu_6schema_SchemaBuilder;
struct __pyx_obj_4kudu_6schema_Schema;
struct __pyx_obj_4kudu_6schema_KuduValue;
struct __pyx_obj_4kudu_6client_Client;
struct __pyx_obj_4kudu_6client_Session;
struct __pyx_obj_4kudu_6client_PartialRow;
struct __pyx_obj_4kudu_6client_Table;
struct __pyx_obj_4kudu_6client_TableAlterer;
struct __pyx_obj_4kudu_6client_TimeDelta;
struct __pyx_obj_4kudu_6client_RawValue;
struct __pyx_obj_4kudu_6client_Int8Val;
struct __pyx_obj_4kudu_6client_Int16Val;
struct __pyx_obj_4kudu_6client_Int32Val;
struct __pyx_obj_4kudu_6client_Int64Val;
struct __pyx_obj_4kudu_6client_DoubleVal;
struct __pyx_obj_4kudu_6client_FloatVal;
struct __pyx_obj_4kudu_6client_BoolVal;
struct __pyx_obj_4kudu_6client_StringVal;
struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal;
struct __pyx_obj_4kudu_6client_DateVal;
struct __pyx_obj_4kudu_6client_TabletServer;
struct __pyx_obj_4kudu_6client_Column;
struct __pyx_obj_4kudu_6client_Predicate;
struct __pyx_obj_4kudu_6client_Row;
struct __pyx_obj_4kudu_6client_RowBatch;
struct __pyx_obj_4kudu_6client_Scanner;
struct __pyx_obj_4kudu_6client_ScanToken;
struct __pyx_obj_4kudu_6client_ScanTokenBuilder;
struct __pyx_obj_4kudu_6client_Tablet;
struct __pyx_obj_4kudu_6client_Replica;
struct __pyx_obj_4kudu_6client_KuduError;
struct __pyx_obj_4kudu_6client_WriteOperation;
struct __pyx_obj_4kudu_6client_Insert;
struct __pyx_obj_4kudu_6client_InsertIgnore;
struct __pyx_obj_4kudu_6client_Upsert;
struct __pyx_obj_4kudu_6client_Update;
struct __pyx_obj_4kudu_6client_UpdateIgnore;
struct __pyx_obj_4kudu_6client_Delete;
struct __pyx_obj_4kudu_6client_DeleteIgnore;
struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__;
struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection;
struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode;
struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches;
struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode;
struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection;

/* "kudu/schema.pxd":24
 * 
 * 
 * cdef class KuduType(object):             # <<<<<<<<<<<<<<
 *     cdef readonly:
 *         DataType type
 */
struct __pyx_obj_4kudu_6schema_KuduType {
  PyObject_HEAD
  enum  kudu::client::KuduColumnSchema::DataType type;
};


/* "kudu/schema.pxd":29
 * 
 * 
 * cdef class ColumnTypeAttributes:             # <<<<<<<<<<<<<<
 *     """
 *     Wraps a Kudu client ColumnTypeAttributes object
 */
struct __pyx_obj_4kudu_6schema_ColumnTypeAttributes {
  PyObject_HEAD
  kudu::client::KuduColumnTypeAttributes *type_attributes;
};


/* "kudu/schema.pxd":37
 * 
 * 
 * cdef class ColumnSchema:             # <<<<<<<<<<<<<<
 *     """
 *     Wraps a Kudu client ColumnSchema object
 */
struct __pyx_obj_4kudu_6schema_ColumnSchema {
  PyObject_HEAD
  kudu::client::KuduColumnSchema *schema;
  struct __pyx_obj_4kudu_6schema_KuduType *_type;
};


/* "kudu/schema.pxd":46
 * 
 * 
 * cdef class ColumnSpec:             # <<<<<<<<<<<<<<
 *     cdef:
 *         KuduColumnSpec* spec
 */
struct __pyx_obj_4kudu_6schema_ColumnSpec {
  PyObject_HEAD
  kudu::client::KuduColumnSpec *spec;
  struct __pyx_obj_4kudu_6schema_KuduType *_type;
};


/* "kudu/schema.pxd":52
 * 
 * 
 * cdef class SchemaBuilder:             # <<<<<<<<<<<<<<
 *     cdef:
 *         KuduSchemaBuilder builder
 */
struct __pyx_obj_4kudu_6schema_SchemaBuilder {
  PyObject_HEAD
  kudu::client::KuduSchemaBuilder builder;
};


/* "kudu/schema.pxd":57
 * 
 * 
 * cdef class Schema:             # <<<<<<<<<<<<<<
 *     cdef:
 *         const KuduSchema* schema
 */
struct __pyx_obj_4kudu_6schema_Schema {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6schema_Schema *__pyx_vtab;
  kudu::client::KuduSchema const *schema;
  PyObject *parent;
  int own_schema;
  std::map<std::string,int>  _col_mapping;
  int _mapping_initialized;
};


/* "kudu/schema.pxd":71
 * 
 * 
 * cdef class KuduValue:             # <<<<<<<<<<<<<<
 *     cdef:
 *         C_KuduValue* _value
 */
struct __pyx_obj_4kudu_6schema_KuduValue {
  PyObject_HEAD
  kudu::client::KuduValue *_value;
};


/* "kudu/client.pxd":23
 * 
 * 
 * cdef class Client:             # <<<<<<<<<<<<<<
 * 
 *     cdef:
 */
struct __pyx_obj_4kudu_6client_Client {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Client *__pyx_vtab;
  kudu::client::sp::shared_ptr<kudu::client::KuduClient>  client;
  kudu::client::KuduClient *cp;
  PyObject *master_addrs;
};


/* "kudu/client.pxd":37
 * 
 * 
 * cdef class Session:             # <<<<<<<<<<<<<<
 *     cdef:
 *         shared_ptr[KuduSession] s
 */
struct __pyx_obj_4kudu_6client_Session {
  PyObject_HEAD
  kudu::client::sp::shared_ptr<kudu::client::KuduSession>  s;
};


/* "kudu/client.pxd":42
 * 
 * 
 * cdef class PartialRow:             # <<<<<<<<<<<<<<
 *     cdef:
 *         KuduPartialRow* row
 */
struct __pyx_obj_4kudu_6client_PartialRow {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_PartialRow *__pyx_vtab;
  kudu::KuduPartialRow *row;
  struct __pyx_obj_4kudu_6schema_Schema *schema;
  int _own;
};


/* "kudu/client.pxd":59
 * 
 * 
 * cdef class Table:             # <<<<<<<<<<<<<<
 * 
 *     cdef:
 */
struct __pyx_obj_4kudu_6client_Table {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Table *__pyx_vtab;
  kudu::client::sp::shared_ptr<kudu::client::KuduTable>  table;
  PyObject *_name;
  struct __pyx_obj_4kudu_6schema_Schema *schema;
  struct __pyx_obj_4kudu_6client_Client *parent;
  int num_replicas;
};


/* "kudu/client.pxd":76
 * 
 * 
 * cdef class TableAlterer:             # <<<<<<<<<<<<<<
 * 
 *     cdef:
 */
struct __pyx_obj_4kudu_6client_TableAlterer {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_TableAlterer *__pyx_vtab;
  kudu::client::KuduTableAlterer *_alterer;
  struct __pyx_obj_4kudu_6client_Table *_table;
  PyObject *_new_name;
};


/* "kudu/client.pyx":152
 *         return None
 * 
 * cdef class TimeDelta:             # <<<<<<<<<<<<<<
 *     """
 *     Wrapper interface for kudu MonoDelta class, which is used to specify
 */
struct __pyx_obj_4kudu_6client_TimeDelta {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_TimeDelta *__pyx_vtab;
  kudu::MonoDelta delta;
};


/* "kudu/client.pyx":665
 * 
 * 
 * cdef class RawValue:             # <<<<<<<<<<<<<<
 *     cdef:
 *         void* data
 */
struct __pyx_obj_4kudu_6client_RawValue {
  PyObject_HEAD
  void *data;
};


/* "kudu/client.pyx":673
 * 
 * 
 * cdef class Int8Val(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         int8_t val
 */
struct __pyx_obj_4kudu_6client_Int8Val {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  int8_t val;
};


/* "kudu/client.pyx":682
 * 
 * 
 * cdef class Int16Val(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         int16_t val
 */
struct __pyx_obj_4kudu_6client_Int16Val {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  int16_t val;
};


/* "kudu/client.pyx":691
 * 
 * 
 * cdef class Int32Val(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         int32_t val
 */
struct __pyx_obj_4kudu_6client_Int32Val {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  int32_t val;
};


/* "kudu/client.pyx":700
 * 
 * 
 * cdef class Int64Val(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         int64_t val
 */
struct __pyx_obj_4kudu_6client_Int64Val {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  int64_t val;
};


/* "kudu/client.pyx":709
 * 
 * 
 * cdef class DoubleVal(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         double val
 */
struct __pyx_obj_4kudu_6client_DoubleVal {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  double val;
};


/* "kudu/client.pyx":718
 * 
 * 
 * cdef class FloatVal(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         float val
 */
struct __pyx_obj_4kudu_6client_FloatVal {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  float val;
};


/* "kudu/client.pyx":727
 * 
 * 
 * cdef class BoolVal(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         c_bool val
 */
struct __pyx_obj_4kudu_6client_BoolVal {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  bool val;
};


/* "kudu/client.pyx":736
 * 
 * 
 * cdef class StringVal(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         # Python "str" object that was passed into the constructor.
 */
struct __pyx_obj_4kudu_6client_StringVal {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  PyObject *py_str;
  kudu::Slice *val;
};


/* "kudu/client.pyx":756
 *         del self.val
 * 
 * cdef class UnixtimeMicrosVal(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         int64_t val
 */
struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  int64_t val;
};


/* "kudu/client.pyx":764
 *         self.data = &self.val
 * 
 * cdef class DateVal(RawValue):             # <<<<<<<<<<<<<<
 *     cdef:
 *         int32_t val
 */
struct __pyx_obj_4kudu_6client_DateVal {
  struct __pyx_obj_4kudu_6client_RawValue __pyx_base;
  int32_t val;
};


/* "kudu/client.pyx":773
 * 
 * #----------------------------------------------------------------------
 * cdef class TabletServer:             # <<<<<<<<<<<<<<
 *     """
 *     Represents a Kudu tablet server, containing the uuid, hostname and port.
 */
struct __pyx_obj_4kudu_6client_TabletServer {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_TabletServer *__pyx_vtab;
  kudu::client::KuduTabletServer const *_tserver;
  int _own;
};


/* "kudu/client.pyx":1043
 * 
 * 
 * cdef class Column:             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_4kudu_6client_Column {
  PyObject_HEAD
  struct __pyx_obj_4kudu_6client_Table *parent;
  struct __pyx_obj_4kudu_6schema_ColumnSchema *spec;
  PyObject *name;
};


/* "kudu/client.pyx":1329
 * 
 * 
 * cdef class Predicate:             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_4kudu_6client_Predicate {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Predicate *__pyx_vtab;
  kudu::client::KuduPredicate *pred;
};


/* "kudu/client.pyx":1545
 * 
 * 
 * cdef class Row:             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_4kudu_6client_Row {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Row *__pyx_vtab;
  struct __pyx_obj_4kudu_6client_RowBatch *parent;
   kudu::client::KuduScanBatch::RowPtr row;
};


/* "kudu/client.pyx":1699
 * 
 * 
 * cdef class RowBatch:             # <<<<<<<<<<<<<<
 *     """
 *     Class holding a batch of rows from a Scanner
 */
struct __pyx_obj_4kudu_6client_RowBatch {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_RowBatch *__pyx_vtab;
  kudu::client::KuduScanBatch batch;
};


/* "kudu/client.pyx":1741
 * 
 * 
 * cdef class Scanner:             # <<<<<<<<<<<<<<
 *     """
 *     A class for defining a selection of data we wish to scan out of a Kudu
 */
struct __pyx_obj_4kudu_6client_Scanner {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Scanner *__pyx_vtab;
  struct __pyx_obj_4kudu_6client_Table *table;
  kudu::client::KuduScanner *scanner;
  int is_open;
};


/* "kudu/client.pyx":2269
 * 
 * 
 * cdef class ScanToken:             # <<<<<<<<<<<<<<
 *     """
 *     A ScanToken describes a partial scan of a Kudu table limited to a single
 */
struct __pyx_obj_4kudu_6client_ScanToken {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_ScanToken *__pyx_vtab;
  kudu::client::KuduScanToken *_token;
};


/* "kudu/client.pyx":2351
 * 
 * 
 * cdef class ScanTokenBuilder:             # <<<<<<<<<<<<<<
 *     """
 *     This class builds ScanTokens for a Table.
 */
struct __pyx_obj_4kudu_6client_ScanTokenBuilder {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_ScanTokenBuilder *__pyx_vtab;
  kudu::client::KuduScanTokenBuilder *_builder;
  struct __pyx_obj_4kudu_6client_Table *_table;
};


/* "kudu/client.pyx":2705
 * 
 * 
 * cdef class Tablet:             # <<<<<<<<<<<<<<
 *     """
 *     Represents a remote Tablet. Contains the tablet id and Replicas associated
 */
struct __pyx_obj_4kudu_6client_Tablet {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Tablet *__pyx_vtab;
  kudu::client::KuduTablet const *_tablet;
  std::vector<kudu::client::KuduReplica *>  _replicas;
};


/* "kudu/client.pyx":2731
 *         return result
 * 
 * cdef class Replica:             # <<<<<<<<<<<<<<
 *     """
 *     Represents a remote Tablet's replica. Retrieve a list of Replicas with the
 */
struct __pyx_obj_4kudu_6client_Replica {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_Replica *__pyx_vtab;
  kudu::client::KuduReplica const *_replica;
};


/* "kudu/client.pyx":2750
 *         return ts._init(&self._replica.ts())
 * 
 * cdef class KuduError:             # <<<<<<<<<<<<<<
 * 
 *     """
 */
struct __pyx_obj_4kudu_6client_KuduError {
  PyObject_HEAD
   kudu::client::KuduError *error;
};


/* "kudu/client.pyx":2918
 * 
 * 
 * cdef class WriteOperation:             # <<<<<<<<<<<<<<
 *     cdef:
 *         # Whether the WriteOperation has been applied.
 */
struct __pyx_obj_4kudu_6client_WriteOperation {
  PyObject_HEAD
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation *__pyx_vtab;
  int applied;
  kudu::client::KuduWriteOperation *op;
  struct __pyx_obj_4kudu_6client_PartialRow *py_row;
};


/* "kudu/client.pyx":2946
 * 
 * 
 * cdef class Insert(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsert()
 */
struct __pyx_obj_4kudu_6client_Insert {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":2956
 *         del self.op
 * 
 * cdef class InsertIgnore(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsertIgnore()
 */
struct __pyx_obj_4kudu_6client_InsertIgnore {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":2967
 * 
 * 
 * cdef class Upsert(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpsert()
 */
struct __pyx_obj_4kudu_6client_Upsert {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":2977
 * 
 * 
 * cdef class Update(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdate()
 */
struct __pyx_obj_4kudu_6client_Update {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":2987
 *         del self.op
 * 
 * cdef class UpdateIgnore(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdateIgnore()
 */
struct __pyx_obj_4kudu_6client_UpdateIgnore {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":2997
 *         del self.op
 * 
 * cdef class Delete(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDelete()
 */
struct __pyx_obj_4kudu_6client_Delete {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":3007
 *         del self.op
 * 
 * cdef class DeleteIgnore(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDeleteIgnore()
 */
struct __pyx_obj_4kudu_6client_DeleteIgnore {
  struct __pyx_obj_4kudu_6client_WriteOperation __pyx_base;
};


/* "kudu/client.pyx":1713
 *         return self.get_row(i).as_tuple()
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         cdef int i = 0
 *         for i in range(len(self)):
 */
struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ {
  PyObject_HEAD
  int __pyx_v_i;
  struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self;
  Py_ssize_t __pyx_t_0;
  Py_ssize_t __pyx_t_1;
  int __pyx_t_2;
};


/* "kudu/client.pyx":1839
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */
struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection {
  PyObject_HEAD
  PyObject *__pyx_v_replica_selection;
};


/* "kudu/client.pyx":1890
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */
struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode {
  PyObject_HEAD
  PyObject *__pyx_v_read_mode;
};


/* "kudu/client.pyx":2116
 *         return tuples
 * 
 *     def xbatches(self):             # <<<<<<<<<<<<<<
 *         """
 *         This method acts as a generator to enable more effective memory management
 */
struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches {
  PyObject_HEAD
  struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self;
};


/* "kudu/client.pyx":2421
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */
struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode {
  PyObject_HEAD
  PyObject *__pyx_v_read_mode;
};


/* "kudu/client.pyx":2528
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */
struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection {
  PyObject_HEAD
  PyObject *__pyx_v_replica_selection;
};



/* "kudu/schema.pxd":57
 * 
 * 
 * cdef class Schema:             # <<<<<<<<<<<<<<
 *     cdef:
 *         const KuduSchema* schema
 */

struct __pyx_vtabstruct_4kudu_6schema_Schema {
  int (*get_loc)(struct __pyx_obj_4kudu_6schema_Schema *, PyObject *);
  enum  kudu::client::KuduColumnSchema::DataType (*loc_type)(struct __pyx_obj_4kudu_6schema_Schema *, int);
};
static struct __pyx_vtabstruct_4kudu_6schema_Schema *__pyx_vtabptr_4kudu_6schema_Schema;
static CYTHON_INLINE enum  kudu::client::KuduColumnSchema::DataType __pyx_f_4kudu_6schema_6Schema_loc_type(struct __pyx_obj_4kudu_6schema_Schema *, int);


/* "kudu/client.pyx":285
 * 
 * 
 * cdef class Client:             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_4kudu_6client_Client {
  PyObject *(*close)(struct __pyx_obj_4kudu_6client_Client *, int __pyx_skip_dispatch);
  PyObject *(*_apply_partitioning)(struct __pyx_obj_4kudu_6client_Client *, kudu::client::KuduTableCreator *, PyObject *, struct __pyx_obj_4kudu_6schema_Schema *);
};
static struct __pyx_vtabstruct_4kudu_6client_Client *__pyx_vtabptr_4kudu_6client_Client;


/* "kudu/client.pyx":2797
 * 
 * 
 * cdef class PartialRow:             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, Schema schema):
 */

struct __pyx_vtabstruct_4kudu_6client_PartialRow {
  PyObject *(*set_field)(struct __pyx_obj_4kudu_6client_PartialRow *, PyObject *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*set_loc)(struct __pyx_obj_4kudu_6client_PartialRow *, int, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*set_field_null)(struct __pyx_obj_4kudu_6client_PartialRow *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*set_loc_null)(struct __pyx_obj_4kudu_6client_PartialRow *, int, int __pyx_skip_dispatch);
  PyObject *(*add_to_session)(struct __pyx_obj_4kudu_6client_PartialRow *, struct __pyx_obj_4kudu_6client_Session *);
};
static struct __pyx_vtabstruct_4kudu_6client_PartialRow *__pyx_vtabptr_4kudu_6client_PartialRow;


/* "kudu/client.pyx":813
 * 
 * 
 * cdef class Table:             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_4kudu_6client_Table {
  PyObject *(*init)(struct __pyx_obj_4kudu_6client_Table *);
  kudu::client::KuduTable *(*ptr)(struct __pyx_obj_4kudu_6client_Table *);
};
static struct __pyx_vtabstruct_4kudu_6client_Table *__pyx_vtabptr_4kudu_6client_Table;
static CYTHON_INLINE kudu::client::KuduTable *__pyx_f_4kudu_6client_5Table_ptr(struct __pyx_obj_4kudu_6client_Table *);


/* "kudu/client.pyx":3046
 * 
 * 
 * cdef class TableAlterer:             # <<<<<<<<<<<<<<
 *     """
 *     Alters an existing table based on the provided steps.
 */

struct __pyx_vtabstruct_4kudu_6client_TableAlterer {
  PyObject *(*_init)(struct __pyx_obj_4kudu_6client_TableAlterer *, kudu::client::KuduTableAlterer *);
};
static struct __pyx_vtabstruct_4kudu_6client_TableAlterer *__pyx_vtabptr_4kudu_6client_TableAlterer;


/* "kudu/client.pyx":152
 *         return None
 * 
 * cdef class TimeDelta:             # <<<<<<<<<<<<<<
 *     """
 *     Wrapper interface for kudu MonoDelta class, which is used to specify
 */

struct __pyx_vtabstruct_4kudu_6client_TimeDelta {
  double (*to_seconds)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch);
  int64_t (*to_millis)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch);
  int64_t (*to_micros)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch);
  int64_t (*to_nanos)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch);
  PyObject *(*init)(struct __pyx_obj_4kudu_6client_TimeDelta *, kudu::MonoDelta const &);
};
static struct __pyx_vtabstruct_4kudu_6client_TimeDelta *__pyx_vtabptr_4kudu_6client_TimeDelta;


/* "kudu/client.pyx":773
 * 
 * #----------------------------------------------------------------------
 * cdef class TabletServer:             # <<<<<<<<<<<<<<
 *     """
 *     Represents a Kudu tablet server, containing the uuid, hostname and port.
 */

struct __pyx_vtabstruct_4kudu_6client_TabletServer {
  PyObject *(*_init)(struct __pyx_obj_4kudu_6client_TabletServer *, kudu::client::KuduTabletServer const *);
};
static struct __pyx_vtabstruct_4kudu_6client_TabletServer *__pyx_vtabptr_4kudu_6client_TabletServer;


/* "kudu/client.pyx":1329
 * 
 * 
 * cdef class Predicate:             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_4kudu_6client_Predicate {
  PyObject *(*init)(struct __pyx_obj_4kudu_6client_Predicate *, kudu::client::KuduPredicate *);
};
static struct __pyx_vtabstruct_4kudu_6client_Predicate *__pyx_vtabptr_4kudu_6client_Predicate;


/* "kudu/client.pyx":1545
 * 
 * 
 * cdef class Row:             # <<<<<<<<<<<<<<
 * 
 *     """
 */

struct __pyx_vtabstruct_4kudu_6client_Row {
  PyObject *(*as_tuple)(struct __pyx_obj_4kudu_6client_Row *, int __pyx_skip_dispatch);
  PyObject *(*get_bool)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_int8)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_int16)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_int32)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_int64)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_double)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_float)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_string)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_binary)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_unixtime_micros)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*__pyx___get_unscaled_decimal)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_decimal)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_varchar)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_date)(struct __pyx_obj_4kudu_6client_Row *, int);
  PyObject *(*get_slot)(struct __pyx_obj_4kudu_6client_Row *, int);
  int (*is_null)(struct __pyx_obj_4kudu_6client_Row *, int);
};
static struct __pyx_vtabstruct_4kudu_6client_Row *__pyx_vtabptr_4kudu_6client_Row;
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_bool(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int8(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int16(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int32(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int64(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_double(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_float(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_string(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_binary(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_unixtime_micros(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row___get_unscaled_decimal(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_decimal(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_varchar(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_date(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_slot(struct __pyx_obj_4kudu_6client_Row *, int);
static CYTHON_INLINE int __pyx_f_4kudu_6client_3Row_is_null(struct __pyx_obj_4kudu_6client_Row *, int);


/* "kudu/client.pyx":1699
 * 
 * 
 * cdef class RowBatch:             # <<<<<<<<<<<<<<
 *     """
 *     Class holding a batch of rows from a Scanner
 */

struct __pyx_vtabstruct_4kudu_6client_RowBatch {
  struct __pyx_obj_4kudu_6client_Row *(*get_row)(struct __pyx_obj_4kudu_6client_RowBatch *, PyObject *);
};
static struct __pyx_vtabstruct_4kudu_6client_RowBatch *__pyx_vtabptr_4kudu_6client_RowBatch;


/* "kudu/client.pyx":1741
 * 
 * 
 * cdef class Scanner:             # <<<<<<<<<<<<<<
 *     """
 *     A class for defining a selection of data we wish to scan out of a Kudu
 */

struct __pyx_vtabstruct_4kudu_6client_Scanner {
  PyObject *(*ensure_open)(struct __pyx_obj_4kudu_6client_Scanner *);
  PyObject *(*add_predicate)(struct __pyx_obj_4kudu_6client_Scanner *, struct __pyx_obj_4kudu_6client_Predicate *, int __pyx_skip_dispatch);
  struct __pyx_obj_4kudu_6client_RowBatch *(*next_batch)(struct __pyx_obj_4kudu_6client_Scanner *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_4kudu_6client_Scanner *__pyx_vtabptr_4kudu_6client_Scanner;
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_7Scanner_ensure_open(struct __pyx_obj_4kudu_6client_Scanner *);


/* "kudu/client.pyx":2269
 * 
 * 
 * cdef class ScanToken:             # <<<<<<<<<<<<<<
 *     """
 *     A ScanToken describes a partial scan of a Kudu table limited to a single
 */

struct __pyx_vtabstruct_4kudu_6client_ScanToken {
  PyObject *(*_init)(struct __pyx_obj_4kudu_6client_ScanToken *, kudu::client::KuduScanToken *);
};
static struct __pyx_vtabstruct_4kudu_6client_ScanToken *__pyx_vtabptr_4kudu_6client_ScanToken;


/* "kudu/client.pyx":2351
 * 
 * 
 * cdef class ScanTokenBuilder:             # <<<<<<<<<<<<<<
 *     """
 *     This class builds ScanTokens for a Table.
 */

struct __pyx_vtabstruct_4kudu_6client_ScanTokenBuilder {
  PyObject *(*add_predicate)(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *, struct __pyx_obj_4kudu_6client_Predicate *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_4kudu_6client_ScanTokenBuilder *__pyx_vtabptr_4kudu_6client_ScanTokenBuilder;


/* "kudu/client.pyx":2705
 * 
 * 
 * cdef class Tablet:             # <<<<<<<<<<<<<<
 *     """
 *     Represents a remote Tablet. Contains the tablet id and Replicas associated
 */

struct __pyx_vtabstruct_4kudu_6client_Tablet {
  PyObject *(*_init)(struct __pyx_obj_4kudu_6client_Tablet *, kudu::client::KuduTablet const *);
};
static struct __pyx_vtabstruct_4kudu_6client_Tablet *__pyx_vtabptr_4kudu_6client_Tablet;


/* "kudu/client.pyx":2731
 *         return result
 * 
 * cdef class Replica:             # <<<<<<<<<<<<<<
 *     """
 *     Represents a remote Tablet's replica. Retrieve a list of Replicas with the
 */

struct __pyx_vtabstruct_4kudu_6client_Replica {
  PyObject *(*_init)(struct __pyx_obj_4kudu_6client_Replica *, kudu::client::KuduReplica const *);
};
static struct __pyx_vtabstruct_4kudu_6client_Replica *__pyx_vtabptr_4kudu_6client_Replica;


/* "kudu/client.pyx":2918
 * 
 * 
 * cdef class WriteOperation:             # <<<<<<<<<<<<<<
 *     cdef:
 *         # Whether the WriteOperation has been applied.
 */

struct __pyx_vtabstruct_4kudu_6client_WriteOperation {
  PyObject *(*add_to_session)(struct __pyx_obj_4kudu_6client_WriteOperation *, struct __pyx_obj_4kudu_6client_Session *);
};
static struct __pyx_vtabstruct_4kudu_6client_WriteOperation *__pyx_vtabptr_4kudu_6client_WriteOperation;


/* "kudu/client.pyx":2946
 * 
 * 
 * cdef class Insert(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsert()
 */

struct __pyx_vtabstruct_4kudu_6client_Insert {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_Insert *__pyx_vtabptr_4kudu_6client_Insert;


/* "kudu/client.pyx":2956
 *         del self.op
 * 
 * cdef class InsertIgnore(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsertIgnore()
 */

struct __pyx_vtabstruct_4kudu_6client_InsertIgnore {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_InsertIgnore *__pyx_vtabptr_4kudu_6client_InsertIgnore;


/* "kudu/client.pyx":2967
 * 
 * 
 * cdef class Upsert(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpsert()
 */

struct __pyx_vtabstruct_4kudu_6client_Upsert {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_Upsert *__pyx_vtabptr_4kudu_6client_Upsert;


/* "kudu/client.pyx":2977
 * 
 * 
 * cdef class Update(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdate()
 */

struct __pyx_vtabstruct_4kudu_6client_Update {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_Update *__pyx_vtabptr_4kudu_6client_Update;


/* "kudu/client.pyx":2987
 *         del self.op
 * 
 * cdef class UpdateIgnore(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdateIgnore()
 */

struct __pyx_vtabstruct_4kudu_6client_UpdateIgnore {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_UpdateIgnore *__pyx_vtabptr_4kudu_6client_UpdateIgnore;


/* "kudu/client.pyx":2997
 *         del self.op
 * 
 * cdef class Delete(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDelete()
 */

struct __pyx_vtabstruct_4kudu_6client_Delete {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_Delete *__pyx_vtabptr_4kudu_6client_Delete;


/* "kudu/client.pyx":3007
 *         del self.op
 * 
 * cdef class DeleteIgnore(WriteOperation):             # <<<<<<<<<<<<<<
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDeleteIgnore()
 */

struct __pyx_vtabstruct_4kudu_6client_DeleteIgnore {
  struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_base;
};
static struct __pyx_vtabstruct_4kudu_6client_DeleteIgnore *__pyx_vtabptr_4kudu_6client_DeleteIgnore;

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          if (acquire_gil) {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
              PyGILState_Release(__pyx_gilstate_save);\
          } else {\
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext()\
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_XDECREF(tmp);\
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; __Pyx_DECREF(tmp);\
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

/* PyObjectGetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

/* GetBuiltinName.proto */
static PyObject *__Pyx_GetBuiltinName(PyObject *name);

/* PyCFunctionFastCall.proto */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs);
#else
#define __Pyx_PyCFunction_FastCall(func, args, nargs)  (assert(0), NULL)
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#else
#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs)
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
  static size_t __pyx_pyframe_localsplus_offset = 0;
  #include "frameobject.h"
  #define __Pxy_PyFrame_Initialize_Offsets()\
    ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
     (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
  #define __Pyx_PyFrame_GetLocalsplus(frame)\
    (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
#endif

/* PyObjectCall.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

/* PyObjectCall2Args.proto */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2);

/* PyObjectCallMethO.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

/* PyObjectCallOneArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#define __Pyx_PyErr_Occurred()  __pyx_tstate->curexc_type
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  PyErr_Occurred()
#endif

/* PyErrFetchRestore.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
#define __Pyx_ErrRestoreWithState(type, value, tb)  __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)    __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)    __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
#else
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#endif
#else
#define __Pyx_PyErr_Clear() PyErr_Clear()
#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
#define __Pyx_ErrRestoreWithState(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchWithState(type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestoreInState(tstate, type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetchInState(tstate, type, value, tb)  PyErr_Fetch(type, value, tb)
#define __Pyx_ErrRestore(type, value, tb)  PyErr_Restore(type, value, tb)
#define __Pyx_ErrFetch(type, value, tb)  PyErr_Fetch(type, value, tb)
#endif

/* RaiseException.proto */
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

/* FetchCommonType.proto */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);

/* CythonFunction.proto */
#define __Pyx_CyFunction_USED 1
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#define __Pyx_CyFunction_GetClassObj(f)\
    (((__pyx_CyFunctionObject *) (f))->func_classobj)
#define __Pyx_CyFunction_Defaults(type, f)\
    ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
    ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
typedef struct {
    PyCFunctionObject func;
#if PY_VERSION_HEX < 0x030500A0
    PyObject *func_weakreflist;
#endif
    PyObject *func_dict;
    PyObject *func_name;
    PyObject *func_qualname;
    PyObject *func_doc;
    PyObject *func_globals;
    PyObject *func_code;
    PyObject *func_closure;
    PyObject *func_classobj;
    void *defaults;
    int defaults_pyobjects;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
} __pyx_CyFunctionObject;
static PyTypeObject *__pyx_CyFunctionType = 0;
#define __Pyx_CyFunction_Check(obj)  (__Pyx_TypeCheck(obj, __pyx_CyFunctionType))
#define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\
    __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code)
static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *self,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
                                                         size_t size,
                                                         int pyobjects);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
                                                            PyObject *tuple);
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
                                                             PyObject *dict);
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
                                                              PyObject *dict);
static int __pyx_CyFunction_init(void);

/* PyObjectCallNoArg.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

/* DictGetItem.proto */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
#define __Pyx_PyObject_Dict_GetItem(obj, name)\
    (likely(PyDict_CheckExact(obj)) ?\
     __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
#else
#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
#define __Pyx_PyObject_Dict_GetItem(obj, name)  PyObject_GetItem(obj, name)
#endif

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
#endif

/* SaveResetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSave(type, value, tb)  __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#define __Pyx_ExceptionReset(type, value, tb)  __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
#else
#define __Pyx_ExceptionSave(type, value, tb)   PyErr_GetExcInfo(type, value, tb)
#define __Pyx_ExceptionReset(type, value, tb)  PyErr_SetExcInfo(type, value, tb)
#endif

/* PyErrExceptionMatches.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
#else
#define __Pyx_PyErr_ExceptionMatches(err)  PyErr_ExceptionMatches(err)
#endif

/* GetException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_GetException(type, value, tb)  __Pyx__GetException(__pyx_tstate, type, value, tb)
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* Import.proto */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

/* IncludeStringH.proto */
#include <string.h>

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* StrEquals.proto */
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
#else
#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
#endif

/* RaiseArgTupleInvalid.proto */
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);

/* RaiseDoubleKeywords.proto */
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

/* ParseKeywords.proto */
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\
    const char* function_name);

/* PyDictVersioning.proto */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
#define __PYX_DICT_VERSION_INIT  ((PY_UINT64_T) -1)
#define __PYX_GET_DICT_VERSION(dict)  (((PyDictObject*)(dict))->ma_version_tag)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
    (version_var) = __PYX_GET_DICT_VERSION(dict);\
    (cache_var) = (value);
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
        (VAR) = __pyx_dict_cached_value;\
    } else {\
        (VAR) = __pyx_dict_cached_value = (LOOKUP);\
        __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
    }\
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
#else
#define __PYX_GET_DICT_VERSION(dict)  (0)
#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP)  (VAR) = (LOOKUP);
#endif

/* WriteUnraisableException.proto */
static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback, int nogil);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* GetModuleGlobalName.proto */
#if CYTHON_USE_DICT_VERSIONS
#define __Pyx_GetModuleGlobalName(var, name)  {\
    static PY_UINT64_T __pyx_dict_version = 0;\
    static PyObject *__pyx_dict_cached_value = NULL;\
    (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
        (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
        __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
#define __Pyx_GetModuleGlobalNameUncached(var, name)  {\
    PY_UINT64_T __pyx_dict_version;\
    PyObject *__pyx_dict_cached_value;\
    (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
}
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
#else
#define __Pyx_GetModuleGlobalName(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
#define __Pyx_GetModuleGlobalNameUncached(var, name)  (var) = __Pyx__GetModuleGlobalName(name)
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
#endif

/* ExtTypeTest.proto */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);

/* SwapException.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_ExceptionSwap(type, value, tb)  __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
#endif

/* RaiseTooManyValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

/* RaiseNeedMoreValuesToUnpack.proto */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

/* IterFinish.proto */
static CYTHON_INLINE int __Pyx_IterFinish(void);

/* UnpackItemEndCheck.proto */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

/* GetItemInt.proto */
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

/* ListAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

/* PyDictContains.proto */
static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
    int result = PyDict_Contains(dict, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* PyObjectGetMethod.proto */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);

/* PyObjectCallMethod1.proto */
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg);

/* append.proto */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x);

/* None.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);

/* ListExtend.proto */
static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject* none = _PyList_Extend((PyListObject*)L, v);
    if (unlikely(!none))
        return -1;
    Py_DECREF(none);
    return 0;
#else
    return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
#endif
}

/* ListCompAppend.proto */
#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len)) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
#endif

/* py_dict_items.proto */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d);

/* UnpackUnboundCMethod.proto */
typedef struct {
    PyObject *type;
    PyObject **method_name;
    PyCFunction func;
    PyObject *method;
    int flag;
} __Pyx_CachedCFunction;

/* CallUnboundCMethod0.proto */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CallUnboundCMethod0(cfunc, self)\
    (likely((cfunc)->func) ?\
        (likely((cfunc)->flag == METH_NOARGS) ?  (*((cfunc)->func))(self, NULL) :\
         (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
            (PY_VERSION_HEX >= 0x030700A0 ?\
                (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
                (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
          (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
            (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
            (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ?  ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
               ((cfunc)->flag == METH_VARARGS ?  (*((cfunc)->func))(self, __pyx_empty_tuple) :\
               __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
        __Pyx__CallUnboundCMethod0(cfunc, self))
#else
#define __Pyx_CallUnboundCMethod0(cfunc, self)  __Pyx__CallUnboundCMethod0(cfunc, self)
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* CallNextTpTraverse.proto */
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);

/* CallNextTpClear.proto */
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* SetVTable.proto */
static int __Pyx_SetVtable(PyObject *dict, void *vtable);

/* SetupReduce.proto */
static int __Pyx_setup_reduce(PyObject* type_obj);

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto
#define __PYX_HAVE_RT_ImportType_proto
enum __Pyx_ImportType_CheckSize {
   __Pyx_ImportType_CheckSize_Error = 0,
   __Pyx_ImportType_CheckSize_Warn = 1,
   __Pyx_ImportType_CheckSize_Ignore = 2
};
static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size);
#endif

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyObject *dict);

/* ImportFrom.proto */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

/* GetNameInClass.proto */
#define __Pyx_GetNameInClass(var, nmspace, name)  (var) = __Pyx__GetNameInClass(nmspace, name)
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name);

/* CalculateMetaclass.proto */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);

/* SetNameInClass.proto */
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value))
#elif CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_SetNameInClass(ns, name, value)\
    (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value))
#else
#define __Pyx_SetNameInClass(ns, name, value)  PyObject_SetItem(ns, name, value)
#endif

/* Py3ClassCreate.proto */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
                                           PyObject *mkw, PyObject *modname, PyObject *doc);
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass);

/* CLineInTraceback.proto */
#ifdef CYTHON_CLINE_IN_TRACEBACK
#define __Pyx_CLineForTraceback(tstate, c_line)  (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
#else
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
#endif

/* CodeObjectCache.proto */
typedef struct {
    PyCodeObject* code_object;
    int code_line;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

/* AddTraceback.proto */
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

/* None.proto */
#include <new>

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(enum  kudu::client::KuduClient::ReplicaSelection value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(enum  kudu::client::KuduScanner::ReadMode value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy(enum  kudu::client::KuduClientBuilder::EncryptionPolicy value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType(enum  kudu::client::KuduColumnSchema::DataType value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(enum  kudu::client::KuduTableCreator::RangePartitionBound value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(enum  kudu::client::KuduSession::FlushMode value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int64_t(int64_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

/* CppExceptionConversion.proto */
#ifndef __Pyx_CppExn2PyErr
#include <new>
#include <typeinfo>
#include <stdexcept>
#include <ios>
static void __Pyx_CppExn2PyErr() {
  try {
    if (PyErr_Occurred())
      ; // let the latest Python exn pass through and ignore the current one
    else
      throw;
  } catch (const std::bad_alloc& exn) {
    PyErr_SetString(PyExc_MemoryError, exn.what());
  } catch (const std::bad_cast& exn) {
    PyErr_SetString(PyExc_TypeError, exn.what());
  } catch (const std::bad_typeid& exn) {
    PyErr_SetString(PyExc_TypeError, exn.what());
  } catch (const std::domain_error& exn) {
    PyErr_SetString(PyExc_ValueError, exn.what());
  } catch (const std::invalid_argument& exn) {
    PyErr_SetString(PyExc_ValueError, exn.what());
  } catch (const std::ios_base::failure& exn) {
    PyErr_SetString(PyExc_IOError, exn.what());
  } catch (const std::out_of_range& exn) {
    PyErr_SetString(PyExc_IndexError, exn.what());
  } catch (const std::overflow_error& exn) {
    PyErr_SetString(PyExc_OverflowError, exn.what());
  } catch (const std::range_error& exn) {
    PyErr_SetString(PyExc_ArithmeticError, exn.what());
  } catch (const std::underflow_error& exn) {
    PyErr_SetString(PyExc_ArithmeticError, exn.what());
  } catch (const std::exception& exn) {
    PyErr_SetString(PyExc_RuntimeError, exn.what());
  }
  catch (...)
  {
    PyErr_SetString(PyExc_RuntimeError, "Unknown exception");
  }
}
#endif

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int8_t(int8_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int16_t(int16_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int32_t(int32_t value);

/* CIntToPy.proto */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_kudu_3a__3a_int128_t(kudu::int128_t value);

/* CIntFromPy.proto */
static CYTHON_INLINE int64_t __Pyx_PyInt_As_int64_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum  kudu::client::KuduClientBuilder::EncryptionPolicy __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum  kudu::client::KuduTableCreator::RangePartitionBound __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int8_t __Pyx_PyInt_As_int8_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int16_t __Pyx_PyInt_As_int16_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE int32_t __Pyx_PyInt_As_int32_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum  kudu::client::KuduSession::FlushMode __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum  kudu::client::KuduClient::ReplicaSelection __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE enum  kudu::client::KuduScanner::ReadMode __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE uint32_t __Pyx_PyInt_As_uint32_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE kudu::int128_t __Pyx_PyInt_As_kudu_3a__3a_int128_t(PyObject *);

/* CIntFromPy.proto */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
#else
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
#endif
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* CoroutineBase.proto */
typedef PyObject *(*__pyx_coroutine_body_t)(PyObject *, PyThreadState *, PyObject *);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_ExcInfoStruct  _PyErr_StackItem
#else
typedef struct {
    PyObject *exc_type;
    PyObject *exc_value;
    PyObject *exc_traceback;
} __Pyx_ExcInfoStruct;
#endif
typedef struct {
    PyObject_HEAD
    __pyx_coroutine_body_t body;
    PyObject *closure;
    __Pyx_ExcInfoStruct gi_exc_state;
    PyObject *gi_weakreflist;
    PyObject *classobj;
    PyObject *yieldfrom;
    PyObject *gi_name;
    PyObject *gi_qualname;
    PyObject *gi_modulename;
    PyObject *gi_code;
    int resume_label;
    char is_running;
} __pyx_CoroutineObject;
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
    PyTypeObject *type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
    PyObject *name, PyObject *qualname, PyObject *module_name);
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name);
static CYTHON_INLINE void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *self);
static int __Pyx_Coroutine_clear(PyObject *self);
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value);
static PyObject *__Pyx_Coroutine_Close(PyObject *self);
static PyObject *__Pyx_Coroutine_Throw(PyObject *gen, PyObject *args);
#if CYTHON_USE_EXC_INFO_STACK
#define __Pyx_Coroutine_SwapException(self)
#define __Pyx_Coroutine_ResetAndClearException(self)  __Pyx_Coroutine_ExceptionClear(&(self)->gi_exc_state)
#else
#define __Pyx_Coroutine_SwapException(self) {\
    __Pyx_ExceptionSwap(&(self)->gi_exc_state.exc_type, &(self)->gi_exc_state.exc_value, &(self)->gi_exc_state.exc_traceback);\
    __Pyx_Coroutine_ResetFrameBackpointer(&(self)->gi_exc_state);\
    }
#define __Pyx_Coroutine_ResetAndClearException(self) {\
    __Pyx_ExceptionReset((self)->gi_exc_state.exc_type, (self)->gi_exc_state.exc_value, (self)->gi_exc_state.exc_traceback);\
    (self)->gi_exc_state.exc_type = (self)->gi_exc_state.exc_value = (self)->gi_exc_state.exc_traceback = NULL;\
    }
#endif
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__pyx_tstate, pvalue)
#else
#define __Pyx_PyGen_FetchStopIterationValue(pvalue)\
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, pvalue)
#endif
static int __Pyx_PyGen__FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue);
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state);

/* PatchModuleWithCoroutine.proto */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code);

/* PatchGeneratorABC.proto */
static int __Pyx_patch_abc(void);

/* Generator.proto */
#define __Pyx_Generator_USED
static PyTypeObject *__pyx_GeneratorType = 0;
#define __Pyx_Generator_CheckExact(obj) (Py_TYPE(obj) == __pyx_GeneratorType)
#define __Pyx_Generator_New(body, code, closure, name, qualname, module_name)\
    __Pyx__Coroutine_New(__pyx_GeneratorType, body, code, closure, name, qualname, module_name)
static PyObject *__Pyx_Generator_Next(PyObject *self);
static int __pyx_Generator_init(void);

/* CheckBinaryVersion.proto */
static int __Pyx_check_binary_version(void);

/* FunctionImport.proto */
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig);

/* InitStrings.proto */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);

static double __pyx_f_4kudu_6client_9TimeDelta_to_seconds(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static int64_t __pyx_f_4kudu_6client_9TimeDelta_to_millis(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static int64_t __pyx_f_4kudu_6client_9TimeDelta_to_micros(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static int64_t __pyx_f_4kudu_6client_9TimeDelta_to_nanos(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_9TimeDelta_init(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, kudu::MonoDelta const &__pyx_v_val); /* proto*/
static PyObject *__pyx_f_4kudu_6client_6Client_close(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_6Client__apply_partitioning(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, kudu::client::KuduTableCreator *__pyx_v_c, PyObject *__pyx_v_part, struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema); /* proto*/
static PyObject *__pyx_f_4kudu_6client_12TabletServer__init(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, kudu::client::KuduTabletServer const *__pyx_v_tserver); /* proto*/
static PyObject *__pyx_f_4kudu_6client_5Table_init(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4kudu_6client_9Predicate_init(struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self, kudu::client::KuduPredicate *__pyx_v_pred); /* proto*/
static PyObject *__pyx_f_4kudu_6client_3Row_as_tuple(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_bool(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int8(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int16(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int32(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int64(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_double(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_float(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_string(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_binary(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_unixtime_micros(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row___get_unscaled_decimal(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_decimal(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_varchar(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_date(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_slot(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE int __pyx_f_4kudu_6client_3Row_is_null(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i); /* proto*/
static struct __pyx_obj_4kudu_6client_Row *__pyx_f_4kudu_6client_8RowBatch_get_row(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self, PyObject *__pyx_v_i); /* proto*/
static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_7Scanner_ensure_open(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto*/
static PyObject *__pyx_f_4kudu_6client_7Scanner_add_predicate(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred, int __pyx_skip_dispatch); /* proto*/
static struct __pyx_obj_4kudu_6client_RowBatch *__pyx_f_4kudu_6client_7Scanner_next_batch(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_9ScanToken__init(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self, kudu::client::KuduScanToken *__pyx_v_token); /* proto*/
static PyObject *__pyx_f_4kudu_6client_16ScanTokenBuilder_add_predicate(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_6Tablet__init(struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self, kudu::client::KuduTablet const *__pyx_v_tablet); /* proto*/
static PyObject *__pyx_f_4kudu_6client_7Replica__init(struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self, kudu::client::KuduReplica const *__pyx_v_replica); /* proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_field(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_loc(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, int __pyx_v_i, PyObject *__pyx_v_value, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_field_null(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_key, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_loc_null(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED int __pyx_v_i, int __pyx_skip_dispatch); /* proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_add_to_session(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_s); /* proto*/
static PyObject *__pyx_f_4kudu_6client_14WriteOperation_add_to_session(struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, struct __pyx_obj_4kudu_6client_Session *__pyx_v_s); /* proto*/
static PyObject *__pyx_f_4kudu_6client_12TableAlterer__init(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, kudu::client::KuduTableAlterer *__pyx_v_alterer); /* proto*/
static CYTHON_INLINE enum  kudu::client::KuduColumnSchema::DataType __pyx_f_4kudu_6schema_6Schema_loc_type(struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_self, int __pyx_v_i); /* proto*/
static CYTHON_INLINE kudu::client::KuduTable *__pyx_f_4kudu_6client_5Table_ptr(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto*/

/* Module declarations from 'libc.stdint' */

/* Module declarations from 'libcpp' */

/* Module declarations from 'libc.string' */

/* Module declarations from 'libcpp.string' */

/* Module declarations from 'libcpp.vector' */

/* Module declarations from 'libcpp.utility' */

/* Module declarations from 'libcpp.map' */

/* Module declarations from 'kudu.libkudu_client' */

/* Module declarations from 'kudu.schema' */
static PyTypeObject *__pyx_ptype_4kudu_6schema_KuduType = 0;
static PyTypeObject *__pyx_ptype_4kudu_6schema_ColumnTypeAttributes = 0;
static PyTypeObject *__pyx_ptype_4kudu_6schema_ColumnSchema = 0;
static PyTypeObject *__pyx_ptype_4kudu_6schema_ColumnSpec = 0;
static PyTypeObject *__pyx_ptype_4kudu_6schema_SchemaBuilder = 0;
static PyTypeObject *__pyx_ptype_4kudu_6schema_Schema = 0;
static PyTypeObject *__pyx_ptype_4kudu_6schema_KuduValue = 0;

/* Module declarations from 'cpython.version' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.type' */
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;

/* Module declarations from 'libc.stdio' */

/* Module declarations from 'cpython.object' */

/* Module declarations from 'cpython.ref' */

/* Module declarations from 'cpython.exc' */

/* Module declarations from 'cpython.module' */

/* Module declarations from 'cpython.mem' */

/* Module declarations from 'cpython.tuple' */

/* Module declarations from 'cpython.list' */

/* Module declarations from 'cpython.sequence' */

/* Module declarations from 'cpython.mapping' */

/* Module declarations from 'cpython.iterator' */

/* Module declarations from 'cpython.number' */

/* Module declarations from 'cpython.int' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.bool' */
static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0;

/* Module declarations from 'cpython.long' */

/* Module declarations from 'cpython.float' */

/* Module declarations from '__builtin__' */

/* Module declarations from 'cpython.complex' */
static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0;

/* Module declarations from 'cpython.string' */

/* Module declarations from 'cpython.unicode' */

/* Module declarations from 'cpython.dict' */

/* Module declarations from 'cpython.instance' */

/* Module declarations from 'cpython.function' */

/* Module declarations from 'cpython.method' */

/* Module declarations from 'cpython.weakref' */

/* Module declarations from 'cpython.getargs' */

/* Module declarations from 'cpython.pythread' */

/* Module declarations from 'cpython.pystate' */

/* Module declarations from 'cpython.cobject' */

/* Module declarations from 'cpython.oldbuffer' */

/* Module declarations from 'cpython.set' */

/* Module declarations from 'cpython.buffer' */

/* Module declarations from 'cpython.bytes' */

/* Module declarations from 'cpython.pycapsule' */

/* Module declarations from 'cpython' */

/* Module declarations from 'kudu.errors' */
static PyObject *(*__pyx_f_4kudu_6errors_check_status)(kudu::Status const &); /*proto*/

/* Module declarations from 'kudu.client' */
static PyTypeObject *__pyx_ptype_4kudu_6client_Client = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Session = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_PartialRow = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Table = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_TableAlterer = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_TimeDelta = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_RawValue = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Int8Val = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Int16Val = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Int32Val = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Int64Val = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_DoubleVal = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_FloatVal = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_BoolVal = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_StringVal = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_UnixtimeMicrosVal = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_DateVal = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_TabletServer = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Column = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Predicate = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Row = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_RowBatch = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Scanner = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_ScanToken = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_ScanTokenBuilder = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Tablet = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Replica = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_KuduError = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_WriteOperation = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Insert = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_InsertIgnore = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Upsert = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Update = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_UpdateIgnore = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_Delete = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client_DeleteIgnore = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client___pyx_scope_struct____iter__ = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client___pyx_scope_struct_1_set_selection = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client___pyx_scope_struct_2_set_read_mode = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client___pyx_scope_struct_3_xbatches = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client___pyx_scope_struct_4_set_read_mode = 0;
static PyTypeObject *__pyx_ptype_4kudu_6client___pyx_scope_struct_5_set_selection = 0;
static PyObject *__pyx_v_4kudu_6client__replica_selection_policies = 0;
static PyObject *__pyx_v_4kudu_6client__read_modes = 0;
static PyObject *__pyx_v_4kudu_6client__encryption_policies = 0;
static PyObject *__pyx_v_4kudu_6client__type_names = 0;
static PyObject *__pyx_v_4kudu_6client__partition_bound_types = 0;
static PyObject *__pyx_v_4kudu_6client__flush_modes = 0;
static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyStr_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_std__in_string(std::string const &); /*proto*/
static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_std__in_string(std::string const &); /*proto*/
static std::string __pyx_convert_string_from_py_std__in_string(PyObject *); /*proto*/
static std::vector<int>  __pyx_convert_vector_from_py_int(PyObject *); /*proto*/
#define __Pyx_MODULE_NAME "kudu.client"
extern int __pyx_module_is_main_kudu__client;
int __pyx_module_is_main_kudu__client = 0;

/* Implementation of 'kudu.client' */
static PyObject *__pyx_builtin_ImportError;
static PyObject *__pyx_builtin_staticmethod;
static PyObject *__pyx_builtin_object;
static PyObject *__pyx_builtin_KeyError;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_NotImplementedError;
static PyObject *__pyx_builtin_StopIteration;
static PyObject *__pyx_builtin_IndexError;
static PyObject *__pyx_builtin_enumerate;
static const char __pyx_k_i[] = "i";
static const char __pyx_k_ms[] = "ms";
static const char __pyx_k_np[] = "np";
static const char __pyx_k_us[] = "us";
static const char __pyx_k_Row[] = "Row";
static const char __pyx_k_any[] = "any";
static const char __pyx_k_doc[] = "__doc__";
static const char __pyx_k_key[] = "key";
static const char __pyx_k_obj[] = "obj";
static const char __pyx_k_six[] = "six";
static const char __pyx_k_ssl[] = "_ssl";
static const char __pyx_k_args[] = "args";
static const char __pyx_k_copy[] = "copy";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_int8[] = "int8";
static const char __pyx_k_iter[] = "__iter__";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_name[] = "name";
static const char __pyx_k_open[] = "open";
static const char __pyx_k_port[] = "port";
static const char __pyx_k_seed[] = "seed";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_send[] = "send";
static const char __pyx_k_spec[] = "spec";
static const char __pyx_k_sync[] = "sync";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_type[] = "type";
static const char __pyx_k_utf8[] = "utf8";
static const char __pyx_k_uuid[] = "uuid";
static const char __pyx_k_Table[] = "Table";
static const char __pyx_k_batch[] = "batch";
static const char __pyx_k_bound[] = "bound";
static const char __pyx_k_close[] = "close";
static const char __pyx_k_dtype[] = "dtype";
static const char __pyx_k_first[] = "first";
static const char __pyx_k_float[] = "float";
static const char __pyx_k_index[] = "index";
static const char __pyx_k_int16[] = "int16";
static const char __pyx_k_int32[] = "int32";
static const char __pyx_k_items[] = "items";
static const char __pyx_k_lower[] = "lower";
static const char __pyx_k_names[] = "names";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_owner[] = "owner";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_table[] = "table";
static const char __pyx_k_throw[] = "throw";
static const char __pyx_k_value[] = "value";
static const char __pyx_k_Client[] = "Client";
static const char __pyx_k_Column[] = "Column";
static const char __pyx_k_Delete[] = "Delete";
static const char __pyx_k_Insert[] = "Insert";
static const char __pyx_k_Tablet[] = "Tablet";
static const char __pyx_k_Update[] = "Update";
static const char __pyx_k_Upsert[] = "Upsert";
static const char __pyx_k_append[] = "append";
static const char __pyx_k_astype[] = "astype";
static const char __pyx_k_client[] = "client";
static const char __pyx_k_concat[] = "concat";
static const char __pyx_k_encode[] = "encode";
static const char __pyx_k_errors[] = "errors";
static const char __pyx_k_format[] = "format";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_isnull[] = "isnull";
static const char __pyx_k_latest[] = "latest";
static const char __pyx_k_leader[] = "leader";
static const char __pyx_k_manual[] = "manual";
static const char __pyx_k_module[] = "__module__";
static const char __pyx_k_name_2[] = "__name__";
static const char __pyx_k_object[] = "object";
static const char __pyx_k_pandas[] = "pandas";
static const char __pyx_k_parent[] = "parent";
static const char __pyx_k_record[] = "record";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_rename[] = "rename";
static const char __pyx_k_result[] = "result";
static const char __pyx_k_schema[] = "schema";
static const char __pyx_k_type_2[] = "type_";
static const char __pyx_k_BoolVal[] = "BoolVal";
static const char __pyx_k_DateVal[] = "DateVal";
static const char __pyx_k_Int8Val[] = "Int8Val";
static const char __pyx_k_Replica[] = "Replica";
static const char __pyx_k_Scanner[] = "Scanner";
static const char __pyx_k_Session[] = "Session";
static const char __pyx_k_closest[] = "closest";
static const char __pyx_k_columns[] = "columns";
static const char __pyx_k_comment[] = "comment";
static const char __pyx_k_default[] = "default";
static const char __pyx_k_float32[] = "float32";
static const char __pyx_k_new_row[] = "new_row";
static const char __pyx_k_prepare[] = "__prepare__";
static const char __pyx_k_seconds[] = "seconds";
static const char __pyx_k_set_loc[] = "set_loc";
static const char __pyx_k_tobytes[] = "tobytes";
static const char __pyx_k_FloatVal[] = "FloatVal";
static const char __pyx_k_Int16Val[] = "Int16Val";
static const char __pyx_k_Int32Val[] = "Int32Val";
static const char __pyx_k_Int64Val[] = "Int64Val";
static const char __pyx_k_KeyError[] = "KeyError";
static const char __pyx_k_RawValue[] = "RawValue";
static const char __pyx_k_RowBatch[] = "RowBatch";
static const char __pyx_k_as_tuple[] = "as_tuple";
static const char __pyx_k_encoding[] = "encoding";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_hostname[] = "hostname";
static const char __pyx_k_nullable[] = "nullable";
static const char __pyx_k_optional[] = "optional";
static const char __pyx_k_qualname[] = "__qualname__";
static const char __pyx_k_required[] = "required";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_snapshot[] = "snapshot";
static const char __pyx_k_to_nanos[] = "to_nanos";
static const char __pyx_k_xbatches[] = "xbatches";
static const char __pyx_k_DataFrame[] = "DataFrame";
static const char __pyx_k_DoubleVal[] = "DoubleVal";
static const char __pyx_k_KUDU_BOOL[] = "KUDU_BOOL";
static const char __pyx_k_KUDU_DATE[] = "KUDU_DATE";
static const char __pyx_k_KUDU_INT8[] = "KUDU_INT8";
static const char __pyx_k_KuduError[] = "KuduError";
static const char __pyx_k_Predicate[] = "Predicate";
static const char __pyx_k_ScanToken[] = "ScanToken";
static const char __pyx_k_StringVal[] = "StringVal";
static const char __pyx_k_TimeDelta[] = "TimeDelta";
static const char __pyx_k_TypeError[] = "TypeError";
static const char __pyx_k_as_tuples[] = "as_tuples";
static const char __pyx_k_dict_iter[] = "dict_iter";
static const char __pyx_k_enumerate[] = "enumerate";
static const char __pyx_k_exclusive[] = "exclusive";
static const char __pyx_k_frombytes[] = "frombytes";
static const char __pyx_k_inclusive[] = "inclusive";
static const char __pyx_k_kudu_util[] = "kudu.util";
static const char __pyx_k_metaclass[] = "__metaclass__";
static const char __pyx_k_new_value[] = "new_value";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_rename_to[] = "rename_to";
static const char __pyx_k_set_field[] = "set_field";
static const char __pyx_k_split_row[] = "split_row";
static const char __pyx_k_timestamp[] = "timestamp";
static const char __pyx_k_to_micros[] = "to_micros";
static const char __pyx_k_to_millis[] = "to_millis";
static const char __pyx_k_IndexError[] = "IndexError";
static const char __pyx_k_KUDU_FLOAT[] = "KUDU_FLOAT";
static const char __pyx_k_KUDU_INT16[] = "KUDU_INT16";
static const char __pyx_k_KUDU_INT32[] = "KUDU_INT32";
static const char __pyx_k_KUDU_INT64[] = "KUDU_INT64";
static const char __pyx_k_PartialRow[] = "PartialRow";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_background[] = "background";
static const char __pyx_k_bound_type[] = "bound_type";
static const char __pyx_k_flush_mode[] = "flush_mode";
static const char __pyx_k_from_nanos[] = "from_nanos";
static const char __pyx_k_n_replicas[] = "n_replicas";
static const char __pyx_k_next_batch[] = "next_batch";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_table_name[] = "table_name";
static const char __pyx_k_timeout_ms[] = "timeout_ms";
static const char __pyx_k_to_seconds[] = "to_seconds";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_KUDU_BINARY[] = "KUDU_BINARY";
static const char __pyx_k_KUDU_DOUBLE[] = "KUDU_DOUBLE";
static const char __pyx_k_KUDU_STRING[] = "KUDU_STRING";
static const char __pyx_k_KuduError_s[] = "KuduError('%s')";
static const char __pyx_k_LEADER_ONLY[] = "LEADER_ONLY";
static const char __pyx_k_READ_LATEST[] = "READ_LATEST";
static const char __pyx_k_compression[] = "compression";
static const char __pyx_k_from_micros[] = "from_micros";
static const char __pyx_k_from_millis[] = "from_millis";
static const char __pyx_k_from_record[] = "from_record";
static const char __pyx_k_kudu_client[] = "kudu.client";
static const char __pyx_k_kudu_compat[] = "kudu.compat";
static const char __pyx_k_lower_bound[] = "lower_bound";
static const char __pyx_k_num_buckets[] = "num_buckets";
static const char __pyx_k_upper_bound[] = "upper_bound";
static const char __pyx_k_DeleteIgnore[] = "DeleteIgnore";
static const char __pyx_k_FLUSH_MANUAL[] = "FLUSH_MANUAL";
static const char __pyx_k_InsertIgnore[] = "InsertIgnore";
static const char __pyx_k_KUDU_DECIMAL[] = "KUDU_DECIMAL";
static const char __pyx_k_KUDU_VARCHAR[] = "KUDU_VARCHAR";
static const char __pyx_k_Partitioning[] = "Partitioning";
static const char __pyx_k_TableAlterer[] = "TableAlterer";
static const char __pyx_k_TabletServer[] = "TabletServer";
static const char __pyx_k_UpdateIgnore[] = "UpdateIgnore";
static const char __pyx_k_coerce_float[] = "coerce_float";
static const char __pyx_k_column_names[] = "column_names";
static const char __pyx_k_from_records[] = "from_records";
static const char __pyx_k_from_seconds[] = "from_seconds";
static const char __pyx_k_ignore_index[] = "ignore_index";
static const char __pyx_k_partitioning[] = "partitioning";
static const char __pyx_k_set_loc_null[] = "set_loc_null";
static const char __pyx_k_staticmethod[] = "staticmethod";
static const char __pyx_k_string_types[] = "string_types";
static const char __pyx_k_FIRST_REPLICA[] = "FIRST_REPLICA";
static const char __pyx_k_KuduException[] = "KuduException";
static const char __pyx_k_StopIteration[] = "StopIteration";
static const char __pyx_k_add_predicate[] = "add_predicate";
static const char __pyx_k_addr_or_addrs[] = "addr_or_addrs";
static const char __pyx_k_has_more_rows[] = "has_more_rows";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_WriteOperation[] = "WriteOperation";
static const char __pyx_k_kudu_TimeDelta[] = "kudu.TimeDelta()";
static const char __pyx_k_rpc_timeout_ms[] = "rpc_timeout_ms";
static const char __pyx_k_set_field_null[] = "set_field_null";
static const char __pyx_k_set_flush_mode[] = "set_flush_mode";
static const char __pyx_k_set_timeout_ms[] = "set_timeout_ms";
static const char __pyx_k_CLOSEST_REPLICA[] = "CLOSEST_REPLICA";
static const char __pyx_k_EXCLUSIVE_BOUND[] = "EXCLUSIVE_BOUND";
static const char __pyx_k_FLUSH_AUTO_SYNC[] = "FLUSH_AUTO_SYNC";
static const char __pyx_k_INCLUSIVE_BOUND[] = "INCLUSIVE_BOUND";
static const char __pyx_k_RowBatch___iter[] = "RowBatch.__iter__";
static const char __pyx_k_from_hybridtime[] = "from_hybridtime";
static const char __pyx_k_hash_partitions[] = "_hash_partitions";
static const char __pyx_k_kudu_client_pyx[] = "kudu/client.pyx";
static const char __pyx_k_match_substring[] = "match_substring";
static const char __pyx_k_required_remote[] = "required_remote";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_READ_AT_SNAPSHOT[] = "READ_AT_SNAPSHOT";
static const char __pyx_k_READ_YOUR_WRITES[] = "READ_YOUR_WRITES";
static const char __pyx_k_ScanTokenBuilder[] = "ScanTokenBuilder";
static const char __pyx_k_Scanner_xbatches[] = "Scanner.xbatches";
static const char __pyx_k_admin_timeout_ms[] = "admin_timeout_ms";
static const char __pyx_k_kudu_TimeDelta_0[] = "kudu.TimeDelta({0})";
static const char __pyx_k_lower_bound_type[] = "lower_bound_type";
static const char __pyx_k_range_partitions[] = "_range_partitions";
static const char __pyx_k_read_your_writes[] = "read_your_writes";
static const char __pyx_k_serialized_token[] = "serialized_token";
static const char __pyx_k_upper_bound_type[] = "upper_bound_type";
static const char __pyx_k_UnixtimeMicrosVal[] = "UnixtimeMicrosVal";
static const char __pyx_k_encryption_policy[] = "encryption_policy";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_invalid_bound_type[] = "invalid_bound_type";
static const char __pyx_k_mutation_buffer_sz[] = "mutation_buffer_sz";
static const char __pyx_k_sasl_protocol_name[] = "sasl_protocol_name";
static const char __pyx_k_set_timeout_millis[] = "set_timeout_millis";
static const char __pyx_k_to_unixtime_micros[] = "to_unixtime_micros";
static const char __pyx_k_ENCRYPTION_OPTIONAL[] = "ENCRYPTION_OPTIONAL";
static const char __pyx_k_ENCRYPTION_REQUIRED[] = "ENCRYPTION_REQUIRED";
static const char __pyx_k_Invalid_read_mode_0[] = "Invalid read mode: {0}";
static const char __pyx_k_NotImplementedError[] = "NotImplementedError";
static const char __pyx_k_Partitioning___init[] = "Partitioning.__init__";
static const char __pyx_k_add_hash_partitions[] = "add_hash_partitions";
static const char __pyx_k_add_range_partition[] = "add_range_partition";
static const char __pyx_k_invalid_operation_0[] = "invalid operation: {0}";
static const char __pyx_k_to_unscaled_decimal[] = "to_unscaled_decimal";
static const char __pyx_k_Invalid_flush_mode_0[] = "Invalid flush mode: {0}";
static const char __pyx_k_KUDU_UNIXTIME_MICROS[] = "KUDU_UNIXTIME_MICROS";
static const char __pyx_k_from_unixtime_micros[] = "from_unixtime_micros";
static const char __pyx_k_range_partition_cols[] = "_range_partition_cols";
static const char __pyx_k_FLUSH_AUTO_BACKGROUND[] = "FLUSH_AUTO_BACKGROUND";
static const char __pyx_k_from_unscaled_decimal[] = "from_unscaled_decimal";
static const char __pyx_k_get_projection_schema[] = "get_projection_schema";
static const char __pyx_k_CLIENT_SUPPORTS_PANDAS[] = "CLIENT_SUPPORTS_PANDAS";
static const char __pyx_k_Cannot_get_kudu_type_0[] = "Cannot get kudu type <{0}>";
static const char __pyx_k_Cannot_set_kudu_type_0[] = "Cannot set kudu type <{0}>.";
static const char __pyx_k_Limit_must_be_positive[] = "Limit must be positive.";
static const char __pyx_k_PartialRow_from_record[] = "PartialRow.from_record.";
static const char __pyx_k_range_partition_splits[] = "_range_partition_splits";
static const char __pyx_k_require_authentication[] = "require_authentication";
static const char __pyx_k_CLIENT_SUPPORTS_DECIMAL[] = "CLIENT_SUPPORTS_DECIMAL";
static const char __pyx_k_Cannot_cast_kudu_type_0[] = "Cannot cast kudu type <{0}>";
static const char __pyx_k_date_to_unix_epoch_days[] = "date_to_unix_epoch_days";
static const char __pyx_k_mutation_buffer_max_num[] = "mutation_buffer_max_num";
static const char __pyx_k_unix_epoch_days_to_date[] = "unix_epoch_days_to_date";
static const char __pyx_k_Column_0_parent_1_type_2[] = "Column({0}, parent={1}, type={2})";
static const char __pyx_k_adding_a_range_partition[] = "adding a range partition.";
static const char __pyx_k_correct_pandas_data_type[] = "_correct_pandas_data_type";
static const char __pyx_k_deserialize_into_scanner[] = "deserialize_into_scanner";
static const char __pyx_k_invalid_selection_policy[] = "invalid_selection_policy";
static const char __pyx_k_Invalid_record_type_0_for[] = "Invalid record type <{0}> for ";
static const char __pyx_k_add_range_partition_split[] = "add_range_partition_split";
static const char __pyx_k_mutation_buffer_watermark[] = "mutation_buffer_watermark";
static const char __pyx_k_set_mutation_buffer_space[] = "set_mutation_buffer_space";
static const char __pyx_k_ENCRYPTION_REQUIRED_REMOTE[] = "ENCRYPTION_REQUIRED_REMOTE";
static const char __pyx_k_set_mutation_buffer_max_num[] = "set_mutation_buffer_max_num";
static const char __pyx_k_set_range_partition_columns[] = "set_range_partition_columns";
static const char __pyx_k_adding_a_range_partition_split[] = "adding a range partition split.";
static const char __pyx_k_check_convert_range_bound_type[] = "_check_convert_range_bound_type.<locals>.invalid_bound_type";
static const char __pyx_k_mutation_buffer_flush_interval[] = "mutation_buffer_flush_interval";
static const char __pyx_k_Argument_to_Client_create_table[] = " Argument to Client.create_table(...) to describe table partitioning. ";
static const char __pyx_k_Column_index_0_is_out_of_bounds[] = "Column index {0} is out of bounds.";
static const char __pyx_k_Range_Partition_Columns_must_be[] = "Range Partition Columns must be set before ";
static const char __pyx_k_Empty_iterator_for_addr_or_addrs[] = "Empty iterator for addr_or_addrs.";
static const char __pyx_k_Invalid_range_partition_bound_ty[] = "Invalid range partition bound type: {0}";
static const char __pyx_k_Invalid_replica_selection_policy[] = "Invalid replica selection policy: {0}";
static const char __pyx_k_Partitioning_add_hash_partitions[] = "Partitioning.add_hash_partitions";
static const char __pyx_k_Partitioning_add_range_partition[] = "Partitioning.add_range_partition";
static const char __pyx_k_Partitioning_set_range_partition[] = "Partitioning.set_range_partition_columns";
static const char __pyx_k_See_the_strftime_3_documentation[] = "See the strftime(3) documentation.";
static const char __pyx_k_Snapshot_Timestamps_be_greater_t[] = "Snapshot Timestamps be greater than the unix epoch.";
static const char __pyx_k_To_use_a_string_timestamp_you_mu[] = "To use a string timestamp you must provide a format. ";
static const char __pyx_k_Unicode_objects_must_be_explicit[] = "Unicode objects must be explicitly encoded ";
static const char __pyx_k_before_storing_in_a_Binary_field[] = "before storing in a Binary field.";
static const char __pyx_k_check_convert_range_bound_type_2[] = "_check_convert_range_bound_type";
static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
static const char __pyx_k_self__replica_cannot_be_converte[] = "self._replica cannot be converted to a Python object for pickling";
static const char __pyx_k_self__replicas_self__tablet_cann[] = "self._replicas,self._tablet cannot be converted to a Python object for pickling";
static const char __pyx_k_self__tserver_cannot_be_converte[] = "self._tserver cannot be converted to a Python object for pickling";
static const char __pyx_k_self_batch_cannot_be_converted_t[] = "self.batch cannot be converted to a Python object for pickling";
static const char __pyx_k_set_mutation_buffer_flush_interv[] = "set_mutation_buffer_flush_interval";
static const char __pyx_k_set_mutation_buffer_flush_waterm[] = "set_mutation_buffer_flush_watermark";
static const char __pyx_k_set_read_mode_locals_invalid_sel[] = "set_read_mode.<locals>.invalid_selection_policy";
static const char __pyx_k_set_selection_locals_invalid_sel[] = "set_selection.<locals>.invalid_selection_policy";
static const char __pyx_k_Partitioning_add_range_partition_2[] = "Partitioning.add_range_partition_split";
static PyObject *__pyx_kp_s_Argument_to_Client_create_table;
static PyObject *__pyx_n_s_BoolVal;
static PyObject *__pyx_n_s_CLIENT_SUPPORTS_DECIMAL;
static PyObject *__pyx_n_s_CLIENT_SUPPORTS_PANDAS;
static PyObject *__pyx_n_s_CLOSEST_REPLICA;
static PyObject *__pyx_kp_s_Cannot_cast_kudu_type_0;
static PyObject *__pyx_kp_s_Cannot_get_kudu_type_0;
static PyObject *__pyx_kp_s_Cannot_set_kudu_type_0;
static PyObject *__pyx_n_s_Client;
static PyObject *__pyx_n_s_Column;
static PyObject *__pyx_kp_s_Column_0_parent_1_type_2;
static PyObject *__pyx_kp_s_Column_index_0_is_out_of_bounds;
static PyObject *__pyx_n_s_DataFrame;
static PyObject *__pyx_n_s_DateVal;
static PyObject *__pyx_n_s_Delete;
static PyObject *__pyx_n_s_DeleteIgnore;
static PyObject *__pyx_n_s_DoubleVal;
static PyObject *__pyx_n_s_ENCRYPTION_OPTIONAL;
static PyObject *__pyx_n_s_ENCRYPTION_REQUIRED;
static PyObject *__pyx_n_s_ENCRYPTION_REQUIRED_REMOTE;
static PyObject *__pyx_n_s_EXCLUSIVE_BOUND;
static PyObject *__pyx_kp_s_Empty_iterator_for_addr_or_addrs;
static PyObject *__pyx_n_s_FIRST_REPLICA;
static PyObject *__pyx_n_s_FLUSH_AUTO_BACKGROUND;
static PyObject *__pyx_n_s_FLUSH_AUTO_SYNC;
static PyObject *__pyx_n_s_FLUSH_MANUAL;
static PyObject *__pyx_n_s_FloatVal;
static PyObject *__pyx_n_s_INCLUSIVE_BOUND;
static PyObject *__pyx_n_s_ImportError;
static PyObject *__pyx_n_s_IndexError;
static PyObject *__pyx_n_s_Insert;
static PyObject *__pyx_n_s_InsertIgnore;
static PyObject *__pyx_n_s_Int16Val;
static PyObject *__pyx_n_s_Int32Val;
static PyObject *__pyx_n_s_Int64Val;
static PyObject *__pyx_n_s_Int8Val;
static PyObject *__pyx_kp_s_Invalid_flush_mode_0;
static PyObject *__pyx_kp_s_Invalid_range_partition_bound_ty;
static PyObject *__pyx_kp_s_Invalid_read_mode_0;
static PyObject *__pyx_kp_s_Invalid_record_type_0_for;
static PyObject *__pyx_kp_s_Invalid_replica_selection_policy;
static PyObject *__pyx_n_s_KUDU_BINARY;
static PyObject *__pyx_n_s_KUDU_BOOL;
static PyObject *__pyx_n_s_KUDU_DATE;
static PyObject *__pyx_n_s_KUDU_DECIMAL;
static PyObject *__pyx_n_s_KUDU_DOUBLE;
static PyObject *__pyx_n_s_KUDU_FLOAT;
static PyObject *__pyx_n_s_KUDU_INT16;
static PyObject *__pyx_n_s_KUDU_INT32;
static PyObject *__pyx_n_s_KUDU_INT64;
static PyObject *__pyx_n_s_KUDU_INT8;
static PyObject *__pyx_n_s_KUDU_STRING;
static PyObject *__pyx_n_s_KUDU_UNIXTIME_MICROS;
static PyObject *__pyx_n_s_KUDU_VARCHAR;
static PyObject *__pyx_n_s_KeyError;
static PyObject *__pyx_n_s_KuduError;
static PyObject *__pyx_kp_s_KuduError_s;
static PyObject *__pyx_n_s_KuduException;
static PyObject *__pyx_n_s_LEADER_ONLY;
static PyObject *__pyx_kp_s_Limit_must_be_positive;
static PyObject *__pyx_n_s_NotImplementedError;
static PyObject *__pyx_n_s_PartialRow;
static PyObject *__pyx_kp_s_PartialRow_from_record;
static PyObject *__pyx_n_s_Partitioning;
static PyObject *__pyx_n_s_Partitioning___init;
static PyObject *__pyx_n_s_Partitioning_add_hash_partitions;
static PyObject *__pyx_n_s_Partitioning_add_range_partition;
static PyObject *__pyx_n_s_Partitioning_add_range_partition_2;
static PyObject *__pyx_n_s_Partitioning_set_range_partition;
static PyObject *__pyx_n_s_Predicate;
static PyObject *__pyx_n_s_READ_AT_SNAPSHOT;
static PyObject *__pyx_n_s_READ_LATEST;
static PyObject *__pyx_n_s_READ_YOUR_WRITES;
static PyObject *__pyx_kp_s_Range_Partition_Columns_must_be;
static PyObject *__pyx_n_s_RawValue;
static PyObject *__pyx_n_s_Replica;
static PyObject *__pyx_n_s_Row;
static PyObject *__pyx_n_s_RowBatch;
static PyObject *__pyx_n_s_RowBatch___iter;
static PyObject *__pyx_n_s_ScanToken;
static PyObject *__pyx_n_s_ScanTokenBuilder;
static PyObject *__pyx_n_s_Scanner;
static PyObject *__pyx_n_s_Scanner_xbatches;
static PyObject *__pyx_kp_s_See_the_strftime_3_documentation;
static PyObject *__pyx_n_s_Session;
static PyObject *__pyx_kp_s_Snapshot_Timestamps_be_greater_t;
static PyObject *__pyx_n_s_StopIteration;
static PyObject *__pyx_n_s_StringVal;
static PyObject *__pyx_n_s_Table;
static PyObject *__pyx_n_s_TableAlterer;
static PyObject *__pyx_n_s_Tablet;
static PyObject *__pyx_n_s_TabletServer;
static PyObject *__pyx_n_s_TimeDelta;
static PyObject *__pyx_kp_s_To_use_a_string_timestamp_you_mu;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_kp_s_Unicode_objects_must_be_explicit;
static PyObject *__pyx_n_s_UnixtimeMicrosVal;
static PyObject *__pyx_n_s_Update;
static PyObject *__pyx_n_s_UpdateIgnore;
static PyObject *__pyx_n_s_Upsert;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_n_s_WriteOperation;
static PyObject *__pyx_n_s_add_hash_partitions;
static PyObject *__pyx_n_s_add_predicate;
static PyObject *__pyx_n_s_add_range_partition;
static PyObject *__pyx_n_s_add_range_partition_split;
static PyObject *__pyx_kp_s_adding_a_range_partition;
static PyObject *__pyx_kp_s_adding_a_range_partition_split;
static PyObject *__pyx_n_s_addr_or_addrs;
static PyObject *__pyx_n_s_admin_timeout_ms;
static PyObject *__pyx_n_s_any;
static PyObject *__pyx_n_s_append;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_n_s_as_tuple;
static PyObject *__pyx_n_s_as_tuples;
static PyObject *__pyx_n_s_astype;
static PyObject *__pyx_n_s_background;
static PyObject *__pyx_n_s_batch;
static PyObject *__pyx_kp_s_before_storing_in_a_Binary_field;
static PyObject *__pyx_n_s_bound;
static PyObject *__pyx_n_s_bound_type;
static PyObject *__pyx_n_s_check_convert_range_bound_type;
static PyObject *__pyx_n_s_check_convert_range_bound_type_2;
static PyObject *__pyx_n_s_client;
static PyObject *__pyx_n_s_cline_in_traceback;
static PyObject *__pyx_n_s_close;
static PyObject *__pyx_n_s_closest;
static PyObject *__pyx_n_s_coerce_float;
static PyObject *__pyx_n_s_column_names;
static PyObject *__pyx_n_s_columns;
static PyObject *__pyx_n_s_comment;
static PyObject *__pyx_n_s_compression;
static PyObject *__pyx_n_s_concat;
static PyObject *__pyx_n_s_copy;
static PyObject *__pyx_n_s_correct_pandas_data_type;
static PyObject *__pyx_n_s_date_to_unix_epoch_days;
static PyObject *__pyx_n_s_default;
static PyObject *__pyx_n_s_deserialize_into_scanner;
static PyObject *__pyx_n_s_dict_iter;
static PyObject *__pyx_n_s_doc;
static PyObject *__pyx_n_s_dtype;
static PyObject *__pyx_n_s_encode;
static PyObject *__pyx_n_s_encoding;
static PyObject *__pyx_n_s_encryption_policy;
static PyObject *__pyx_n_s_enumerate;
static PyObject *__pyx_n_s_errors;
static PyObject *__pyx_n_s_exclusive;
static PyObject *__pyx_n_s_first;
static PyObject *__pyx_n_s_float;
static PyObject *__pyx_n_s_float32;
static PyObject *__pyx_n_s_flush_mode;
static PyObject *__pyx_n_s_format;
static PyObject *__pyx_n_s_from_hybridtime;
static PyObject *__pyx_n_s_from_micros;
static PyObject *__pyx_n_s_from_millis;
static PyObject *__pyx_n_s_from_nanos;
static PyObject *__pyx_n_s_from_record;
static PyObject *__pyx_n_s_from_records;
static PyObject *__pyx_n_s_from_seconds;
static PyObject *__pyx_n_s_from_unixtime_micros;
static PyObject *__pyx_n_s_from_unscaled_decimal;
static PyObject *__pyx_n_s_frombytes;
static PyObject *__pyx_n_s_get_projection_schema;
static PyObject *__pyx_n_s_getstate;
static PyObject *__pyx_n_s_has_more_rows;
static PyObject *__pyx_n_s_hash_partitions;
static PyObject *__pyx_n_s_hostname;
static PyObject *__pyx_n_s_i;
static PyObject *__pyx_n_s_ignore_index;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_inclusive;
static PyObject *__pyx_n_s_index;
static PyObject *__pyx_n_s_init;
static PyObject *__pyx_n_s_int16;
static PyObject *__pyx_n_s_int32;
static PyObject *__pyx_n_s_int8;
static PyObject *__pyx_n_s_invalid_bound_type;
static PyObject *__pyx_kp_s_invalid_operation_0;
static PyObject *__pyx_n_s_invalid_selection_policy;
static PyObject *__pyx_n_s_isnull;
static PyObject *__pyx_n_s_items;
static PyObject *__pyx_n_s_iter;
static PyObject *__pyx_n_s_key;
static PyObject *__pyx_kp_s_kudu_TimeDelta;
static PyObject *__pyx_kp_s_kudu_TimeDelta_0;
static PyObject *__pyx_n_s_kudu_client;
static PyObject *__pyx_kp_s_kudu_client_pyx;
static PyObject *__pyx_n_s_kudu_compat;
static PyObject *__pyx_n_s_kudu_util;
static PyObject *__pyx_n_s_latest;
static PyObject *__pyx_n_s_leader;
static PyObject *__pyx_n_s_lower;
static PyObject *__pyx_n_s_lower_bound;
static PyObject *__pyx_n_s_lower_bound_type;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_manual;
static PyObject *__pyx_n_s_match_substring;
static PyObject *__pyx_n_s_metaclass;
static PyObject *__pyx_n_s_module;
static PyObject *__pyx_n_s_ms;
static PyObject *__pyx_n_s_mutation_buffer_flush_interval;
static PyObject *__pyx_n_s_mutation_buffer_max_num;
static PyObject *__pyx_n_s_mutation_buffer_sz;
static PyObject *__pyx_n_s_mutation_buffer_watermark;
static PyObject *__pyx_n_s_n_replicas;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_s_name_2;
static PyObject *__pyx_n_s_names;
static PyObject *__pyx_n_s_new_row;
static PyObject *__pyx_n_s_new_value;
static PyObject *__pyx_n_s_next_batch;
static PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
static PyObject *__pyx_n_s_np;
static PyObject *__pyx_n_s_nullable;
static PyObject *__pyx_n_s_num_buckets;
static PyObject *__pyx_n_s_numpy;
static PyObject *__pyx_n_s_obj;
static PyObject *__pyx_n_s_object;
static PyObject *__pyx_n_s_open;
static PyObject *__pyx_n_s_optional;
static PyObject *__pyx_n_s_owner;
static PyObject *__pyx_n_s_pandas;
static PyObject *__pyx_n_s_parent;
static PyObject *__pyx_n_s_partitioning;
static PyObject *__pyx_n_s_port;
static PyObject *__pyx_n_s_prepare;
static PyObject *__pyx_n_s_pyx_vtable;
static PyObject *__pyx_n_s_qualname;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_range_partition_cols;
static PyObject *__pyx_n_s_range_partition_splits;
static PyObject *__pyx_n_s_range_partitions;
static PyObject *__pyx_n_s_read_your_writes;
static PyObject *__pyx_n_s_record;
static PyObject *__pyx_n_s_reduce;
static PyObject *__pyx_n_s_reduce_cython;
static PyObject *__pyx_n_s_reduce_ex;
static PyObject *__pyx_n_s_rename;
static PyObject *__pyx_n_s_rename_to;
static PyObject *__pyx_n_s_require_authentication;
static PyObject *__pyx_n_s_required;
static PyObject *__pyx_n_s_required_remote;
static PyObject *__pyx_n_s_result;
static PyObject *__pyx_n_s_rpc_timeout_ms;
static PyObject *__pyx_n_s_sasl_protocol_name;
static PyObject *__pyx_n_s_schema;
static PyObject *__pyx_n_s_seconds;
static PyObject *__pyx_n_s_seed;
static PyObject *__pyx_n_s_self;
static PyObject *__pyx_kp_s_self__replica_cannot_be_converte;
static PyObject *__pyx_kp_s_self__replicas_self__tablet_cann;
static PyObject *__pyx_kp_s_self__tserver_cannot_be_converte;
static PyObject *__pyx_kp_s_self_batch_cannot_be_converted_t;
static PyObject *__pyx_n_s_send;
static PyObject *__pyx_n_s_serialized_token;
static PyObject *__pyx_n_s_set_field;
static PyObject *__pyx_n_s_set_field_null;
static PyObject *__pyx_n_s_set_flush_mode;
static PyObject *__pyx_n_s_set_loc;
static PyObject *__pyx_n_s_set_loc_null;
static PyObject *__pyx_n_s_set_mutation_buffer_flush_interv;
static PyObject *__pyx_n_s_set_mutation_buffer_flush_waterm;
static PyObject *__pyx_n_s_set_mutation_buffer_max_num;
static PyObject *__pyx_n_s_set_mutation_buffer_space;
static PyObject *__pyx_n_s_set_range_partition_columns;
static PyObject *__pyx_n_s_set_read_mode_locals_invalid_sel;
static PyObject *__pyx_n_s_set_selection_locals_invalid_sel;
static PyObject *__pyx_n_s_set_timeout_millis;
static PyObject *__pyx_n_s_set_timeout_ms;
static PyObject *__pyx_n_s_setstate;
static PyObject *__pyx_n_s_setstate_cython;
static PyObject *__pyx_n_s_six;
static PyObject *__pyx_n_s_snapshot;
static PyObject *__pyx_n_s_spec;
static PyObject *__pyx_n_s_split_row;
static PyObject *__pyx_n_s_ssl;
static PyObject *__pyx_n_s_staticmethod;
static PyObject *__pyx_n_s_string_types;
static PyObject *__pyx_n_s_sync;
static PyObject *__pyx_n_s_table;
static PyObject *__pyx_n_s_table_name;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_throw;
static PyObject *__pyx_n_s_timeout_ms;
static PyObject *__pyx_n_s_timestamp;
static PyObject *__pyx_n_s_to_micros;
static PyObject *__pyx_n_s_to_millis;
static PyObject *__pyx_n_s_to_nanos;
static PyObject *__pyx_n_s_to_seconds;
static PyObject *__pyx_n_s_to_unixtime_micros;
static PyObject *__pyx_n_s_to_unscaled_decimal;
static PyObject *__pyx_n_s_tobytes;
static PyObject *__pyx_n_s_type;
static PyObject *__pyx_n_s_type_2;
static PyObject *__pyx_n_s_unix_epoch_days_to_date;
static PyObject *__pyx_n_s_upper_bound;
static PyObject *__pyx_n_s_upper_bound_type;
static PyObject *__pyx_n_s_us;
static PyObject *__pyx_n_s_utf8;
static PyObject *__pyx_n_s_uuid;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_n_s_xbatches;
static PyObject *__pyx_pf_4kudu_6client_31_check_convert_range_bound_type_invalid_bound_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_bound_type); /* proto */
static PyObject *__pyx_pf_4kudu_6client__check_convert_range_bound_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_bound); /* proto */
static PyObject *__pyx_pf_4kudu_6client_2_correct_pandas_data_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dtype); /* proto */
static int __pyx_pf_4kudu_6client_9TimeDelta___cinit__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_2from_seconds(PyObject *__pyx_v_seconds); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_4from_millis(int64_t __pyx_v_ms); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_6from_micros(int64_t __pyx_v_us); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_8from_nanos(PyObject *__pyx_v_seconds); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_10to_seconds(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_12to_millis(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_14to_micros(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_16to_nanos(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_18__repr__(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_20__richcmp__(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_other, int __pyx_v_op); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_6Client___cinit__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_addr_or_addrs, PyObject *__pyx_v_admin_timeout_ms, PyObject *__pyx_v_rpc_timeout_ms, PyObject *__pyx_v_sasl_protocol_name, PyObject *__pyx_v_require_authentication, PyObject *__pyx_v_encryption_policy); /* proto */
static void __pyx_pf_4kudu_6client_6Client_2__dealloc__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_14is_multimaster___get__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_4close(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_6latest_observed_timestamp(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_8create_table(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name, struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema, PyObject *__pyx_v_partitioning, PyObject *__pyx_v_n_replicas, PyObject *__pyx_v_owner, PyObject *__pyx_v_comment); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_10delete_table(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_12table_exists(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_14deserialize_token_into_scanner(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_serialized_token); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_16table(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_18list_tables(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_match_substring); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_20list_tablet_servers(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_22new_session(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_flush_mode, PyObject *__pyx_v_timeout_ms, PyObject *__pyx_v_kwargs); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_24new_table_alterer(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_12master_addrs___get__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_26__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Client_28__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_8RawValue___cinit__(struct __pyx_obj_4kudu_6client_RawValue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RawValue_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RawValue *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RawValue_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RawValue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_7Int8Val___cinit__(struct __pyx_obj_4kudu_6client_Int8Val *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Int8Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int8Val *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Int8Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int8Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_8Int16Val___cinit__(struct __pyx_obj_4kudu_6client_Int16Val *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8Int16Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int16Val *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8Int16Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int16Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_8Int32Val___cinit__(struct __pyx_obj_4kudu_6client_Int32Val *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8Int32Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int32Val *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8Int32Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int32Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_8Int64Val___cinit__(struct __pyx_obj_4kudu_6client_Int64Val *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8Int64Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int64Val *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8Int64Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int64Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_9DoubleVal___cinit__(struct __pyx_obj_4kudu_6client_DoubleVal *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9DoubleVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DoubleVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9DoubleVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DoubleVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_8FloatVal___cinit__(struct __pyx_obj_4kudu_6client_FloatVal *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8FloatVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_FloatVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8FloatVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_FloatVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_7BoolVal___cinit__(struct __pyx_obj_4kudu_6client_BoolVal *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7BoolVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_BoolVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7BoolVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_BoolVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_9StringVal___cinit__(struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static void __pyx_pf_4kudu_6client_9StringVal_2__dealloc__(struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9StringVal_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9StringVal_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_17UnixtimeMicrosVal___cinit__(struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_17UnixtimeMicrosVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_17UnixtimeMicrosVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_7DateVal___cinit__(struct __pyx_obj_4kudu_6client_DateVal *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7DateVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DateVal *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7DateVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DateVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static void __pyx_pf_4kudu_6client_12TabletServer___dealloc__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_2__richcmp__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_other, int __pyx_v_op); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_4uuid(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_6hostname(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_8port(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_4_own___get__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self); /* proto */
static int __pyx_pf_4kudu_6client_12TabletServer_4_own_2__set__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TabletServer_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_5Table___cinit__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_name, struct __pyx_obj_4kudu_6client_Client *__pyx_v_client); /* proto */
static Py_ssize_t __pyx_pf_4kudu_6client_5Table_2__len__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_4__getitem__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_4name___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_2id___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_11num_columns___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_5owner___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_7comment___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_6rename(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_new_name); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_8drop(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_10new_insert(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_12new_insert_ignore(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_14new_upsert(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_16new_update(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_18new_update_ignore(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_20new_delete(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_22new_delete_ignore(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_24scanner(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_26scan_token_builder(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_5_name___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_6schema___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_6parent___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_12num_replicas___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_5Table_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_6Column___cinit__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_parent, struct __pyx_obj_4kudu_6schema_ColumnSchema *__pyx_v_spec); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_2__repr__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_4__richcmp__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, PyObject *__pyx_v_value, int __pyx_v_op); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_6in_list(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, PyObject *__pyx_v_values); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_8is_not_null(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_10is_null(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_6parent___get__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_4spec___get__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_4name___get__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Column *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Column_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12Partitioning___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12Partitioning_2add_hash_partitions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_column_names, PyObject *__pyx_v_num_buckets, PyObject *__pyx_v_seed); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12Partitioning_4set_range_partition_columns(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_column_names); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12Partitioning_6add_range_partition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lower_bound, PyObject *__pyx_v_upper_bound, PyObject *__pyx_v_lower_bound_type, PyObject *__pyx_v_upper_bound_type); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12Partitioning_8add_range_partition_split(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_split_row); /* proto */
static int __pyx_pf_4kudu_6client_9Predicate___cinit__(struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self); /* proto */
static void __pyx_pf_4kudu_6client_9Predicate_2__dealloc__(struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9Predicate_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9Predicate_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_7Session___cinit__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_2set_flush_mode(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, PyObject *__pyx_v_flush_mode); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_4set_timeout_ms(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, int64_t __pyx_v_ms); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_6set_mutation_buffer_space(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, size_t __pyx_v_size_bytes); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_8set_mutation_buffer_flush_watermark(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, double __pyx_v_watermark_pct); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_10set_mutation_buffer_flush_interval(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, unsigned int __pyx_v_millis); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_12set_mutation_buffer_max_num(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, unsigned int __pyx_v_max_num); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_14apply(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_op); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_16flush(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_18get_pending_errors(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Session_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_3Row___cinit__(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, PyObject *__pyx_v_batch); /* proto */
static void __pyx_pf_4kudu_6client_3Row_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Row *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_3Row_4as_tuple(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_3Row_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Row *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_3Row_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static Py_ssize_t __pyx_pf_4kudu_6client_8RowBatch___len__(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RowBatch_2__getitem__(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self, PyObject *__pyx_v_i); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RowBatch_4__iter__(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RowBatch_7as_tuples(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RowBatch_9__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_8RowBatch_11__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_7Scanner___cinit__(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table); /* proto */
static void __pyx_pf_4kudu_6client_7Scanner_2__dealloc__(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_4add_predicates(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_preds); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_6add_predicate(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_8set_projected_column_names(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_names); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_13set_selection_invalid_selection_policy(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_10set_selection(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_replica_selection); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_12set_projected_column_indexes(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_indexes); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_13set_read_mode_invalid_selection_policy(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_14set_read_mode(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_read_mode); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_16set_snapshot(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_timestamp, PyObject *__pyx_v_format); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_18set_limit(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_limit); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_20set_fault_tolerant(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_22new_bound(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_24add_lower_bound(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_bound); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_26add_exclusive_upper_bound(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_bound); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_28get_projection_schema(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_30get_resource_metrics(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_32open(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_34has_more_rows(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_36read_all_tuples(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_38xbatches(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_41read_next_batch_tuples(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_43next_batch(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_45set_cache_blocks(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_cache_blocks); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_47keep_alive(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_49get_current_server(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_51close(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_53to_pandas(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_coerce_float); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_55__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Scanner_57__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_9ScanToken___cinit__(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self); /* proto */
static void __pyx_pf_4kudu_6client_9ScanToken_2__dealloc__(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9ScanToken_4into_kudu_scanner(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9ScanToken_6tablet(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9ScanToken_8serialize(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9ScanToken_10deserialize_into_scanner(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self, struct __pyx_obj_4kudu_6client_Client *__pyx_v_client, PyObject *__pyx_v_serialized_token); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9ScanToken_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9ScanToken_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_16ScanTokenBuilder___cinit__(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table); /* proto */
static void __pyx_pf_4kudu_6client_16ScanTokenBuilder_2__dealloc__(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_4set_projected_column_names(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_names); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_6set_projected_column_indexes(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_indexes); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_8set_batch_size_bytes(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_batch_size); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_read_mode_invalid_selection_policy(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_10set_read_mode(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_read_mode); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_12set_snapshot(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_timestamp, PyObject *__pyx_v_format); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_14set_timeout_millis(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_millis); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_16set_timout_millis(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_millis); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_18set_fault_tolerant(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_selection_invalid_selection_policy(PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_20set_selection(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_replica_selection); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_22add_predicates(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_preds); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_24add_predicate(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_26new_bound(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_28add_lower_bound(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_bound); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_30add_upper_bound(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_bound); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_32set_cache_blocks(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_cache_blocks); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_34build(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_36__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_38__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Tablet_id(struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Tablet_2replicas(struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Tablet_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Tablet_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Replica_is_leader(struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Replica_2ts(struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Replica_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_7Replica_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_9KuduError___cinit__(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self); /* proto */
static void __pyx_pf_4kudu_6client_9KuduError_2__dealloc__(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9KuduError_4failed_op(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9KuduError_6was_possibly_successful(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9KuduError_8__repr__(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9KuduError_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_9KuduError_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_10PartialRow___cinit__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema); /* proto */
static void __pyx_pf_4kudu_6client_10PartialRow_2__dealloc__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self); /* proto */
static int __pyx_pf_4kudu_6client_10PartialRow_4__setitem__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_6from_record(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_record); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_8set_field(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_10set_loc(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, int __pyx_v_i, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_12set_field_null(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_14set_loc_null(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, int __pyx_v_i); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_4_own___get__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self); /* proto */
static int __pyx_pf_4kudu_6client_10PartialRow_4_own_2__set__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_16__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_10PartialRow_18__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_14WriteOperation___cinit__(struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, CYTHON_UNUSED PyObject *__pyx_v_record); /* proto */
static int __pyx_pf_4kudu_6client_14WriteOperation_2__setitem__(struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_4kudu_6client_14WriteOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_14WriteOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_6Insert___cinit__(struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_6Insert_2__dealloc__(struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Insert_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Insert_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_12InsertIgnore___cinit__(struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_12InsertIgnore_2__dealloc__(struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12InsertIgnore_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12InsertIgnore_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_6Upsert___cinit__(struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_6Upsert_2__dealloc__(struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Upsert_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Upsert_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_6Update___cinit__(struct __pyx_obj_4kudu_6client_Update *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_6Update_2__dealloc__(struct __pyx_obj_4kudu_6client_Update *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Update_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Update *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Update_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Update *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_12UpdateIgnore___cinit__(struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_12UpdateIgnore_2__dealloc__(struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12UpdateIgnore_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12UpdateIgnore_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_6Delete___cinit__(struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_6Delete_2__dealloc__(struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Delete_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_6Delete_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_12DeleteIgnore___cinit__(struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record); /* proto */
static void __pyx_pf_4kudu_6client_12DeleteIgnore_2__dealloc__(struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12DeleteIgnore_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12DeleteIgnore_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_4kudu_6client_12TableAlterer___cinit__(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table); /* proto */
static void __pyx_pf_4kudu_6client_12TableAlterer_2__dealloc__(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_4rename(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_table_name); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_6add_column(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_type_, PyObject *__pyx_v_nullable, PyObject *__pyx_v_compression, PyObject *__pyx_v_encoding, PyObject *__pyx_v_default); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_8alter_column(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_rename_to); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_10drop_column(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_12add_range_partition(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_lower_bound, PyObject *__pyx_v_upper_bound, PyObject *__pyx_v_lower_bound_type, PyObject *__pyx_v_upper_bound_type); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_14drop_range_partition(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_lower_bound, PyObject *__pyx_v_upper_bound, PyObject *__pyx_v_lower_bound_type, PyObject *__pyx_v_upper_bound_type); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_16set_owner(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_new_owner); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_18set_comment(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_new_comment); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_20alter(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_4kudu_6client_Client(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Session(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_PartialRow(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Table(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_TableAlterer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_TimeDelta(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_RawValue(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Int8Val(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Int16Val(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Int32Val(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Int64Val(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_DoubleVal(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_FloatVal(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_BoolVal(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_StringVal(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_UnixtimeMicrosVal(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_DateVal(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_TabletServer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Column(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Predicate(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Row(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_RowBatch(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Scanner(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_ScanToken(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_ScanTokenBuilder(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Tablet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Replica(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_KuduError(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_WriteOperation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Insert(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_InsertIgnore(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Upsert(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Update(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_UpdateIgnore(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_Delete(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client_DeleteIgnore(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct____iter__(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_1_set_selection(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_2_set_read_mode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_3_xbatches(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_4_set_read_mode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_5_set_selection(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_items = {0, &__pyx_n_s_items, 0, 0, 0};
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_5000;
static PyObject *__pyx_k__5;
static PyObject *__pyx_tuple_;
static PyObject *__pyx_tuple__3;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__6;
static PyObject *__pyx_tuple__7;
static PyObject *__pyx_tuple__8;
static PyObject *__pyx_tuple__9;
static PyObject *__pyx_tuple__10;
static PyObject *__pyx_tuple__11;
static PyObject *__pyx_tuple__12;
static PyObject *__pyx_tuple__13;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__15;
static PyObject *__pyx_tuple__16;
static PyObject *__pyx_tuple__17;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__20;
static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__23;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__26;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__28;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__30;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__32;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__36;
static PyObject *__pyx_tuple__37;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__40;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__43;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__47;
static PyObject *__pyx_tuple__48;
static PyObject *__pyx_tuple__49;
static PyObject *__pyx_tuple__50;
static PyObject *__pyx_tuple__51;
static PyObject *__pyx_tuple__52;
static PyObject *__pyx_tuple__55;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__57;
static PyObject *__pyx_tuple__58;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__60;
static PyObject *__pyx_tuple__61;
static PyObject *__pyx_tuple__62;
static PyObject *__pyx_tuple__63;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__65;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__67;
static PyObject *__pyx_tuple__68;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__71;
static PyObject *__pyx_tuple__72;
static PyObject *__pyx_tuple__73;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__75;
static PyObject *__pyx_tuple__76;
static PyObject *__pyx_tuple__77;
static PyObject *__pyx_tuple__78;
static PyObject *__pyx_tuple__79;
static PyObject *__pyx_tuple__80;
static PyObject *__pyx_tuple__81;
static PyObject *__pyx_tuple__82;
static PyObject *__pyx_tuple__83;
static PyObject *__pyx_tuple__85;
static PyObject *__pyx_tuple__87;
static PyObject *__pyx_tuple__89;
static PyObject *__pyx_tuple__91;
static PyObject *__pyx_tuple__93;
static PyObject *__pyx_tuple__95;
static PyObject *__pyx_tuple__96;
static PyObject *__pyx_tuple__98;
static PyObject *__pyx_codeobj__2;
static PyObject *__pyx_tuple__100;
static PyObject *__pyx_tuple__101;
static PyObject *__pyx_tuple__103;
static PyObject *__pyx_tuple__105;
static PyObject *__pyx_tuple__106;
static PyObject *__pyx_codeobj__45;
static PyObject *__pyx_codeobj__46;
static PyObject *__pyx_codeobj__53;
static PyObject *__pyx_codeobj__54;
static PyObject *__pyx_codeobj__84;
static PyObject *__pyx_codeobj__86;
static PyObject *__pyx_codeobj__88;
static PyObject *__pyx_codeobj__90;
static PyObject *__pyx_codeobj__92;
static PyObject *__pyx_codeobj__94;
static PyObject *__pyx_codeobj__97;
static PyObject *__pyx_codeobj__99;
static PyObject *__pyx_codeobj__102;
static PyObject *__pyx_codeobj__104;
static PyObject *__pyx_codeobj__107;
/* Late includes */

/* "kudu/client.pyx":113
 * }
 * 
 * def _check_convert_range_bound_type(bound):             # <<<<<<<<<<<<<<
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_1_check_convert_range_bound_type(PyObject *__pyx_self, PyObject *__pyx_v_bound); /*proto*/
static char __pyx_doc_4kudu_6client__check_convert_range_bound_type[] = "_check_convert_range_bound_type(bound)";
static PyMethodDef __pyx_mdef_4kudu_6client_1_check_convert_range_bound_type = {"_check_convert_range_bound_type", (PyCFunction)__pyx_pw_4kudu_6client_1_check_convert_range_bound_type, METH_O, __pyx_doc_4kudu_6client__check_convert_range_bound_type};
static PyObject *__pyx_pw_4kudu_6client_1_check_convert_range_bound_type(PyObject *__pyx_self, PyObject *__pyx_v_bound) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_check_convert_range_bound_type (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client__check_convert_range_bound_type(__pyx_self, ((PyObject *)__pyx_v_bound));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":115
 * def _check_convert_range_bound_type(bound):
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):             # <<<<<<<<<<<<<<
 *         raise ValueError('Invalid range partition bound type: {0}'
 *                          .format(bound_type))
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_31_check_convert_range_bound_type_1invalid_bound_type(PyObject *__pyx_self, PyObject *__pyx_v_bound_type); /*proto*/
static PyMethodDef __pyx_mdef_4kudu_6client_31_check_convert_range_bound_type_1invalid_bound_type = {"invalid_bound_type", (PyCFunction)__pyx_pw_4kudu_6client_31_check_convert_range_bound_type_1invalid_bound_type, METH_O, 0};
static PyObject *__pyx_pw_4kudu_6client_31_check_convert_range_bound_type_1invalid_bound_type(PyObject *__pyx_self, PyObject *__pyx_v_bound_type) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalid_bound_type (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_31_check_convert_range_bound_type_invalid_bound_type(__pyx_self, ((PyObject *)__pyx_v_bound_type));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_31_check_convert_range_bound_type_invalid_bound_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_bound_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("invalid_bound_type", 0);

  /* "kudu/client.pyx":117
 *     def invalid_bound_type(bound_type):
 *         raise ValueError('Invalid range partition bound type: {0}'
 *                          .format(bound_type))             # <<<<<<<<<<<<<<
 * 
 *     if isinstance(bound, int):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Invalid_range_partition_bound_ty, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_bound_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_bound_type);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":116
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):
 *         raise ValueError('Invalid range partition bound type: {0}'             # <<<<<<<<<<<<<<
 *                          .format(bound_type))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 116, __pyx_L1_error)

  /* "kudu/client.pyx":115
 * def _check_convert_range_bound_type(bound):
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):             # <<<<<<<<<<<<<<
 *         raise ValueError('Invalid range partition bound type: {0}'
 *                          .format(bound_type))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client._check_convert_range_bound_type.invalid_bound_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":113
 * }
 * 
 * def _check_convert_range_bound_type(bound):             # <<<<<<<<<<<<<<
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):
 */

static PyObject *__pyx_pf_4kudu_6client__check_convert_range_bound_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_bound) {
  PyObject *__pyx_v_invalid_bound_type = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  __Pyx_RefNannySetupContext("_check_convert_range_bound_type", 0);

  /* "kudu/client.pyx":115
 * def _check_convert_range_bound_type(bound):
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):             # <<<<<<<<<<<<<<
 *         raise ValueError('Invalid range partition bound type: {0}'
 *                          .format(bound_type))
 */
  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_31_check_convert_range_bound_type_1invalid_bound_type, 0, __pyx_n_s_check_convert_range_bound_type, NULL, __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invalid_bound_type = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":119
 *                          .format(bound_type))
 * 
 *     if isinstance(bound, int):             # <<<<<<<<<<<<<<
 *         if bound >= len(_partition_bound_types) \
 *                 or bound < 0:
 */
  __pyx_t_2 = PyInt_Check(__pyx_v_bound); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "kudu/client.pyx":120
 * 
 *     if isinstance(bound, int):
 *         if bound >= len(_partition_bound_types) \             # <<<<<<<<<<<<<<
 *                 or bound < 0:
 *             invalid_bound_type(bound)
 */
    __pyx_t_1 = __pyx_v_4kudu_6client__partition_bound_types;
    __Pyx_INCREF(__pyx_t_1);
    if (unlikely(__pyx_t_1 == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 120, __pyx_L1_error)
    }
    __pyx_t_4 = PyDict_Size(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_RichCompare(__pyx_v_bound, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L5_bool_binop_done;
    }

    /* "kudu/client.pyx":121
 *     if isinstance(bound, int):
 *         if bound >= len(_partition_bound_types) \
 *                 or bound < 0:             # <<<<<<<<<<<<<<
 *             invalid_bound_type(bound)
 *         else:
 */
    __pyx_t_5 = PyObject_RichCompare(__pyx_v_bound, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 121, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_3 = __pyx_t_2;
    __pyx_L5_bool_binop_done:;

    /* "kudu/client.pyx":120
 * 
 *     if isinstance(bound, int):
 *         if bound >= len(_partition_bound_types) \             # <<<<<<<<<<<<<<
 *                 or bound < 0:
 *             invalid_bound_type(bound)
 */
    if (__pyx_t_3) {

      /* "kudu/client.pyx":122
 *         if bound >= len(_partition_bound_types) \
 *                 or bound < 0:
 *             invalid_bound_type(bound)             # <<<<<<<<<<<<<<
 *         else:
 *             return bound
 */
      __pyx_t_5 = __pyx_pf_4kudu_6client_31_check_convert_range_bound_type_invalid_bound_type(__pyx_v_invalid_bound_type, __pyx_v_bound); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "kudu/client.pyx":120
 * 
 *     if isinstance(bound, int):
 *         if bound >= len(_partition_bound_types) \             # <<<<<<<<<<<<<<
 *                 or bound < 0:
 *             invalid_bound_type(bound)
 */
      goto __pyx_L4;
    }

    /* "kudu/client.pyx":124
 *             invalid_bound_type(bound)
 *         else:
 *             return bound             # <<<<<<<<<<<<<<
 *     else:
 *         try:
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_bound);
      __pyx_r = __pyx_v_bound;
      goto __pyx_L0;
    }
    __pyx_L4:;

    /* "kudu/client.pyx":119
 *                          .format(bound_type))
 * 
 *     if isinstance(bound, int):             # <<<<<<<<<<<<<<
 *         if bound >= len(_partition_bound_types) \
 *                 or bound < 0:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":126
 *             return bound
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return _partition_bound_types[bound.lower()]
 *         except KeyError:
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      /*try:*/ {

        /* "kudu/client.pyx":127
 *     else:
 *         try:
 *             return _partition_bound_types[bound.lower()]             # <<<<<<<<<<<<<<
 *         except KeyError:
 *             invalid_bound_type(bound)
 */
        __Pyx_XDECREF(__pyx_r);
        if (unlikely(__pyx_v_4kudu_6client__partition_bound_types == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 127, __pyx_L7_error)
        }
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_bound, __pyx_n_s_lower); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__partition_bound_types, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_r = __pyx_t_1;
        __pyx_t_1 = 0;
        goto __pyx_L11_try_return;

        /* "kudu/client.pyx":126
 *             return bound
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return _partition_bound_types[bound.lower()]
 *         except KeyError:
 */
      }
      __pyx_L7_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "kudu/client.pyx":128
 *         try:
 *             return _partition_bound_types[bound.lower()]
 *         except KeyError:             # <<<<<<<<<<<<<<
 *             invalid_bound_type(bound)
 * 
 */
      __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_10) {
        __Pyx_AddTraceback("kudu.client._check_convert_range_bound_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(0, 128, __pyx_L9_except_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_GOTREF(__pyx_t_9);

        /* "kudu/client.pyx":129
 *             return _partition_bound_types[bound.lower()]
 *         except KeyError:
 *             invalid_bound_type(bound)             # <<<<<<<<<<<<<<
 * 
 * def _correct_pandas_data_type(dtype):
 */
        __pyx_t_11 = __pyx_pf_4kudu_6client_31_check_convert_range_bound_type_invalid_bound_type(__pyx_v_invalid_bound_type, __pyx_v_bound); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 129, __pyx_L9_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        goto __pyx_L8_exception_handled;
      }
      goto __pyx_L9_except_error;
      __pyx_L9_except_error:;

      /* "kudu/client.pyx":126
 *             return bound
 *     else:
 *         try:             # <<<<<<<<<<<<<<
 *             return _partition_bound_types[bound.lower()]
 *         except KeyError:
 */
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L1_error;
      __pyx_L11_try_return:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
      goto __pyx_L0;
      __pyx_L8_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    }
  }
  __pyx_L3:;

  /* "kudu/client.pyx":113
 * }
 * 
 * def _check_convert_range_bound_type(bound):             # <<<<<<<<<<<<<<
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("kudu.client._check_convert_range_bound_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invalid_bound_type);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":131
 *             invalid_bound_type(bound)
 * 
 * def _correct_pandas_data_type(dtype):             # <<<<<<<<<<<<<<
 *     """
 *     This method returns the correct Pandas data type for some data types that
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_3_correct_pandas_data_type(PyObject *__pyx_self, PyObject *__pyx_v_dtype); /*proto*/
static char __pyx_doc_4kudu_6client_2_correct_pandas_data_type[] = "_correct_pandas_data_type(dtype)\n\n    This method returns the correct Pandas data type for some data types that\n    are converted incorrectly by Pandas.\n\n    Returns\n    -------\n    pdtype : type\n    ";
static PyMethodDef __pyx_mdef_4kudu_6client_3_correct_pandas_data_type = {"_correct_pandas_data_type", (PyCFunction)__pyx_pw_4kudu_6client_3_correct_pandas_data_type, METH_O, __pyx_doc_4kudu_6client_2_correct_pandas_data_type};
static PyObject *__pyx_pw_4kudu_6client_3_correct_pandas_data_type(PyObject *__pyx_self, PyObject *__pyx_v_dtype) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_correct_pandas_data_type (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_2_correct_pandas_data_type(__pyx_self, ((PyObject *)__pyx_v_dtype));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_2_correct_pandas_data_type(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_dtype) {
  PyObject *__pyx_v_np = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("_correct_pandas_data_type", 0);

  /* "kudu/client.pyx":140
 *     pdtype : type
 *     """
 *     import numpy as np             # <<<<<<<<<<<<<<
 *     if dtype == "int8":
 *         return np.int8
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_np = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":141
 *     """
 *     import numpy as np
 *     if dtype == "int8":             # <<<<<<<<<<<<<<
 *         return np.int8
 *     if dtype == "int16":
 */
  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_dtype, __pyx_n_s_int8, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 141, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "kudu/client.pyx":142
 *     import numpy as np
 *     if dtype == "int8":
 *         return np.int8             # <<<<<<<<<<<<<<
 *     if dtype == "int16":
 *         return np.int16
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_int8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":141
 *     """
 *     import numpy as np
 *     if dtype == "int8":             # <<<<<<<<<<<<<<
 *         return np.int8
 *     if dtype == "int16":
 */
  }

  /* "kudu/client.pyx":143
 *     if dtype == "int8":
 *         return np.int8
 *     if dtype == "int16":             # <<<<<<<<<<<<<<
 *         return np.int16
 *     if dtype == "int32":
 */
  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_dtype, __pyx_n_s_int16, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 143, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "kudu/client.pyx":144
 *         return np.int8
 *     if dtype == "int16":
 *         return np.int16             # <<<<<<<<<<<<<<
 *     if dtype == "int32":
 *         return np.int32
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_int16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":143
 *     if dtype == "int8":
 *         return np.int8
 *     if dtype == "int16":             # <<<<<<<<<<<<<<
 *         return np.int16
 *     if dtype == "int32":
 */
  }

  /* "kudu/client.pyx":145
 *     if dtype == "int16":
 *         return np.int16
 *     if dtype == "int32":             # <<<<<<<<<<<<<<
 *         return np.int32
 *     if dtype == "float":
 */
  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_dtype, __pyx_n_s_int32, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 145, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "kudu/client.pyx":146
 *         return np.int16
 *     if dtype == "int32":
 *         return np.int32             # <<<<<<<<<<<<<<
 *     if dtype == "float":
 *         return np.float32
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_int32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":145
 *     if dtype == "int16":
 *         return np.int16
 *     if dtype == "int32":             # <<<<<<<<<<<<<<
 *         return np.int32
 *     if dtype == "float":
 */
  }

  /* "kudu/client.pyx":147
 *     if dtype == "int32":
 *         return np.int32
 *     if dtype == "float":             # <<<<<<<<<<<<<<
 *         return np.float32
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_dtype, __pyx_n_s_float, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 147, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "kudu/client.pyx":148
 *         return np.int32
 *     if dtype == "float":
 *         return np.float32             # <<<<<<<<<<<<<<
 *     else:
 *         return None
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_np, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 148, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":147
 *     if dtype == "int32":
 *         return np.int32
 *     if dtype == "float":             # <<<<<<<<<<<<<<
 *         return np.float32
 *     else:
 */
  }

  /* "kudu/client.pyx":150
 *         return np.float32
 *     else:
 *         return None             # <<<<<<<<<<<<<<
 * 
 * cdef class TimeDelta:
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "kudu/client.pyx":131
 *             invalid_bound_type(bound)
 * 
 * def _correct_pandas_data_type(dtype):             # <<<<<<<<<<<<<<
 *     """
 *     This method returns the correct Pandas data type for some data types that
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client._correct_pandas_data_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_np);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":161
 *         MonoDelta delta
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_9TimeDelta_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_9TimeDelta_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta___cinit__(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_9TimeDelta___cinit__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":165
 * 
 *     @staticmethod
 *     def from_seconds(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from fractional seconds.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_3from_seconds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_2from_seconds[] = "TimeDelta.from_seconds(seconds)\n\n        Construct a new TimeDelta from fractional seconds.\n\n        Parameters\n        ----------\n        seconds : double\n\n        Returns\n        -------\n        delta : TimeDelta\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_9TimeDelta_3from_seconds = {"from_seconds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_3from_seconds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_2from_seconds};
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_3from_seconds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_seconds = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_seconds (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_seconds,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seconds)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_seconds") < 0)) __PYX_ERR(0, 165, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_seconds = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_seconds", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 165, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_seconds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_2from_seconds(__pyx_v_seconds);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_2from_seconds(PyObject *__pyx_v_seconds) {
  struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  __Pyx_RefNannySetupContext("from_seconds", 0);

  /* "kudu/client.pyx":177
 *         delta : TimeDelta
 *         """
 *         cdef TimeDelta result = TimeDelta()             # <<<<<<<<<<<<<<
 *         result.init(MonoDelta.FromSeconds(seconds))
 *         return result
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":178
 *         """
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromSeconds(seconds))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_seconds); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 178, __pyx_L1_error)
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TimeDelta *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, kudu::MonoDelta::FromSeconds(__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":179
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromSeconds(seconds))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":165
 * 
 *     @staticmethod
 *     def from_seconds(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from fractional seconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_seconds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":182
 * 
 *     @staticmethod
 *     def from_millis(int64_t ms):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer milliseconds.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_5from_millis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_4from_millis[] = "TimeDelta.from_millis(int64_t ms)\n\n        Construct a new TimeDelta from integer milliseconds.\n\n        Parameters\n        ----------\n        ms : int\n\n        Returns\n        -------\n        delta : TimeDelta\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_9TimeDelta_5from_millis = {"from_millis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_5from_millis, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_4from_millis};
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_5from_millis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int64_t __pyx_v_ms;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_millis (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ms,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ms)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_millis") < 0)) __PYX_ERR(0, 182, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_ms = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_ms == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 182, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_millis", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 182, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_millis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_4from_millis(__pyx_v_ms);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_4from_millis(int64_t __pyx_v_ms) {
  struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("from_millis", 0);

  /* "kudu/client.pyx":194
 *         delta : TimeDelta
 *         """
 *         cdef TimeDelta result = TimeDelta()             # <<<<<<<<<<<<<<
 *         result.init(MonoDelta.FromMilliseconds(ms))
 *         return result
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":195
 *         """
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromMilliseconds(ms))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TimeDelta *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, kudu::MonoDelta::FromMilliseconds(__pyx_v_ms)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":196
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromMilliseconds(ms))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":182
 * 
 *     @staticmethod
 *     def from_millis(int64_t ms):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer milliseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_millis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":199
 * 
 *     @staticmethod
 *     def from_micros(int64_t us):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer microseconds.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_7from_micros(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_6from_micros[] = "TimeDelta.from_micros(int64_t us)\n\n        Construct a new TimeDelta from integer microseconds.\n\n        Parameters\n        ----------\n        us : int\n\n        Returns\n        -------\n        delta : TimeDelta\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_9TimeDelta_7from_micros = {"from_micros", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_7from_micros, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_6from_micros};
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_7from_micros(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int64_t __pyx_v_us;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_micros (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_us,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_micros") < 0)) __PYX_ERR(0, 199, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_us = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_us == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 199, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_micros", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 199, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_micros", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_6from_micros(__pyx_v_us);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_6from_micros(int64_t __pyx_v_us) {
  struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("from_micros", 0);

  /* "kudu/client.pyx":211
 *         delta : TimeDelta
 *         """
 *         cdef TimeDelta result = TimeDelta()             # <<<<<<<<<<<<<<
 *         result.init(MonoDelta.FromMicroseconds(us))
 *         return result
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":212
 *         """
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromMicroseconds(us))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TimeDelta *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, kudu::MonoDelta::FromMicroseconds(__pyx_v_us)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":213
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromMicroseconds(us))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     @staticmethod
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":199
 * 
 *     @staticmethod
 *     def from_micros(int64_t us):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer microseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_micros", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":216
 * 
 *     @staticmethod
 *     def from_nanos(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer nanoseconds.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_9from_nanos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_8from_nanos[] = "TimeDelta.from_nanos(seconds)\n\n        Construct a new TimeDelta from integer nanoseconds.\n\n        Parameters\n        ----------\n        ns : int\n\n        Returns\n        -------\n        delta : TimeDelta\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_9TimeDelta_9from_nanos = {"from_nanos", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_9from_nanos, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_8from_nanos};
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_9from_nanos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_seconds = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_nanos (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_seconds,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seconds)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_nanos") < 0)) __PYX_ERR(0, 216, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_seconds = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("from_nanos", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 216, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_nanos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_8from_nanos(__pyx_v_seconds);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_8from_nanos(PyObject *__pyx_v_seconds) {
  struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int64_t __pyx_t_2;
  __Pyx_RefNannySetupContext("from_nanos", 0);

  /* "kudu/client.pyx":228
 *         delta : TimeDelta
 *         """
 *         cdef TimeDelta result = TimeDelta()             # <<<<<<<<<<<<<<
 *         result.init(MonoDelta.FromNanoseconds(seconds))
 *         return result
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 228, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":229
 *         """
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromNanoseconds(seconds))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_As_int64_t(__pyx_v_seconds); if (unlikely((__pyx_t_2 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L1_error)
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TimeDelta *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, kudu::MonoDelta::FromNanoseconds(__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":230
 *         cdef TimeDelta result = TimeDelta()
 *         result.init(MonoDelta.FromNanoseconds(seconds))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     cpdef double to_seconds(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":216
 * 
 *     @staticmethod
 *     def from_nanos(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer nanoseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.from_nanos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":232
 *         return result
 * 
 *     cpdef double to_seconds(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as fractional seconds.
 */

static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_11to_seconds(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static double __pyx_f_4kudu_6client_9TimeDelta_to_seconds(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  __Pyx_RefNannySetupContext("to_seconds", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_to_seconds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_9TimeDelta_11to_seconds)) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 232, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":236
 *         Return timedelta as fractional seconds.
 *         """
 *         return self.delta.ToSeconds()             # <<<<<<<<<<<<<<
 * 
 *     cpdef int64_t to_millis(self):
 */
  __pyx_r = __pyx_v_self->delta.ToSeconds();
  goto __pyx_L0;

  /* "kudu/client.pyx":232
 *         return result
 * 
 *     cpdef double to_seconds(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as fractional seconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("kudu.client.TimeDelta.to_seconds", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_11to_seconds(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_10to_seconds[] = "TimeDelta.to_seconds(self) -> double\n\n        Return timedelta as fractional seconds.\n        ";
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_11to_seconds(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_seconds (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_10to_seconds(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_10to_seconds(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("to_seconds", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_f_4kudu_6client_9TimeDelta_to_seconds(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.to_seconds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":238
 *         return self.delta.ToSeconds()
 * 
 *     cpdef int64_t to_millis(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as exact milliseconds.
 */

static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_13to_millis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static int64_t __pyx_f_4kudu_6client_9TimeDelta_to_millis(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch) {
  int64_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int64_t __pyx_t_5;
  __Pyx_RefNannySetupContext("to_millis", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_to_millis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_9TimeDelta_13to_millis)) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 238, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __Pyx_PyInt_As_int64_t(__pyx_t_2); if (unlikely((__pyx_t_5 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 238, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":242
 *         Return timedelta as exact milliseconds.
 *         """
 *         return self.delta.ToMilliseconds()             # <<<<<<<<<<<<<<
 * 
 *     cpdef int64_t to_micros(self):
 */
  __pyx_r = __pyx_v_self->delta.ToMilliseconds();
  goto __pyx_L0;

  /* "kudu/client.pyx":238
 *         return self.delta.ToSeconds()
 * 
 *     cpdef int64_t to_millis(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as exact milliseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("kudu.client.TimeDelta.to_millis", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_13to_millis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_12to_millis[] = "TimeDelta.to_millis(self) -> int64_t\n\n        Return timedelta as exact milliseconds.\n        ";
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_13to_millis(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_millis (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_12to_millis(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_12to_millis(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("to_millis", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_f_4kudu_6client_9TimeDelta_to_millis(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.to_millis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":244
 *         return self.delta.ToMilliseconds()
 * 
 *     cpdef int64_t to_micros(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as exact microseconds.
 */

static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_15to_micros(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static int64_t __pyx_f_4kudu_6client_9TimeDelta_to_micros(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch) {
  int64_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int64_t __pyx_t_5;
  __Pyx_RefNannySetupContext("to_micros", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_to_micros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_9TimeDelta_15to_micros)) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __Pyx_PyInt_As_int64_t(__pyx_t_2); if (unlikely((__pyx_t_5 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":248
 *         Return timedelta as exact microseconds.
 *         """
 *         return self.delta.ToMicroseconds()             # <<<<<<<<<<<<<<
 * 
 *     cpdef int64_t to_nanos(self):
 */
  __pyx_r = __pyx_v_self->delta.ToMicroseconds();
  goto __pyx_L0;

  /* "kudu/client.pyx":244
 *         return self.delta.ToMilliseconds()
 * 
 *     cpdef int64_t to_micros(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as exact microseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("kudu.client.TimeDelta.to_micros", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_15to_micros(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_14to_micros[] = "TimeDelta.to_micros(self) -> int64_t\n\n        Return timedelta as exact microseconds.\n        ";
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_15to_micros(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_micros (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_14to_micros(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_14to_micros(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("to_micros", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_f_4kudu_6client_9TimeDelta_to_micros(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.to_micros", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":250
 *         return self.delta.ToMicroseconds()
 * 
 *     cpdef int64_t to_nanos(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as exact nanoseconds.
 */

static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_17to_nanos(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static int64_t __pyx_f_4kudu_6client_9TimeDelta_to_nanos(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, int __pyx_skip_dispatch) {
  int64_t __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int64_t __pyx_t_5;
  __Pyx_RefNannySetupContext("to_nanos", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_to_nanos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_9TimeDelta_17to_nanos)) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __Pyx_PyInt_As_int64_t(__pyx_t_2); if (unlikely((__pyx_t_5 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 250, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_5;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":254
 *         Return timedelta as exact nanoseconds.
 *         """
 *         return self.delta.ToNanoseconds()             # <<<<<<<<<<<<<<
 * 
 *     cdef init(self, const MonoDelta& val):
 */
  __pyx_r = __pyx_v_self->delta.ToNanoseconds();
  goto __pyx_L0;

  /* "kudu/client.pyx":250
 *         return self.delta.ToMicroseconds()
 * 
 *     cpdef int64_t to_nanos(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return timedelta as exact nanoseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_WriteUnraisable("kudu.client.TimeDelta.to_nanos", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_17to_nanos(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_16to_nanos[] = "TimeDelta.to_nanos(self) -> int64_t\n\n        Return timedelta as exact nanoseconds.\n        ";
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_17to_nanos(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_nanos (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_16to_nanos(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_16to_nanos(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("to_nanos", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_f_4kudu_6client_9TimeDelta_to_nanos(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.to_nanos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":256
 *         return self.delta.ToNanoseconds()
 * 
 *     cdef init(self, const MonoDelta& val):             # <<<<<<<<<<<<<<
 *         self.delta = val
 * 
 */

static PyObject *__pyx_f_4kudu_6client_9TimeDelta_init(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, kudu::MonoDelta const &__pyx_v_val) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init", 0);

  /* "kudu/client.pyx":257
 * 
 *     cdef init(self, const MonoDelta& val):
 *         self.delta = val             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __pyx_v_self->delta = __pyx_v_val;

  /* "kudu/client.pyx":256
 *         return self.delta.ToNanoseconds()
 * 
 *     cdef init(self, const MonoDelta& val):             # <<<<<<<<<<<<<<
 *         self.delta = val
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":259
 *         self.delta = val
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         cdef object as_string
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_19__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_19__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_18__repr__(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_18__repr__(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  PyObject *__pyx_v_as_string = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "kudu/client.pyx":262
 *         cdef object as_string
 * 
 *         if self.delta.Initialized():             # <<<<<<<<<<<<<<
 *             as_string = self.delta.ToString()
 *             return 'kudu.TimeDelta({0})'.format(as_string)
 */
  __pyx_t_1 = (__pyx_v_self->delta.Initialized() != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":263
 * 
 *         if self.delta.Initialized():
 *             as_string = self.delta.ToString()             # <<<<<<<<<<<<<<
 *             return 'kudu.TimeDelta({0})'.format(as_string)
 *         else:
 */
    __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_self->delta.ToString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_as_string = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "kudu/client.pyx":264
 *         if self.delta.Initialized():
 *             as_string = self.delta.ToString()
 *             return 'kudu.TimeDelta({0})'.format(as_string)             # <<<<<<<<<<<<<<
 *         else:
 *             return 'kudu.TimeDelta()'
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_kudu_TimeDelta_0, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_as_string) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_as_string);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 264, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":262
 *         cdef object as_string
 * 
 *         if self.delta.Initialized():             # <<<<<<<<<<<<<<
 *             as_string = self.delta.ToString()
 *             return 'kudu.TimeDelta({0})'.format(as_string)
 */
  }

  /* "kudu/client.pyx":266
 *             return 'kudu.TimeDelta({0})'.format(as_string)
 *         else:
 *             return 'kudu.TimeDelta()'             # <<<<<<<<<<<<<<
 * 
 *     def __richcmp__(TimeDelta self, TimeDelta other, int op):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_s_kudu_TimeDelta);
    __pyx_r = __pyx_kp_s_kudu_TimeDelta;
    goto __pyx_L0;
  }

  /* "kudu/client.pyx":259
 *         self.delta = val
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         cdef object as_string
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.TimeDelta.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_as_string);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":268
 *             return 'kudu.TimeDelta()'
 * 
 *     def __richcmp__(TimeDelta self, TimeDelta other, int op):             # <<<<<<<<<<<<<<
 *         if op == cpython.Py_EQ:
 *             return self.delta.Equals(other.delta)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_21__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_21__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_4kudu_6client_TimeDelta, 1, "other", 0))) __PYX_ERR(0, 268, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_20__richcmp__(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self), ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_other), ((int)__pyx_v_op));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_20__richcmp__(struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_other, int __pyx_v_op) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("__richcmp__", 0);

  /* "kudu/client.pyx":269
 * 
 *     def __richcmp__(TimeDelta self, TimeDelta other, int op):
 *         if op == cpython.Py_EQ:             # <<<<<<<<<<<<<<
 *             return self.delta.Equals(other.delta)
 *         elif op == cpython.Py_NE:
 */
  __pyx_t_1 = ((__pyx_v_op == Py_EQ) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":270
 *     def __richcmp__(TimeDelta self, TimeDelta other, int op):
 *         if op == cpython.Py_EQ:
 *             return self.delta.Equals(other.delta)             # <<<<<<<<<<<<<<
 *         elif op == cpython.Py_NE:
 *             return not self.delta.Equals(other.delta)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->delta.Equals(__pyx_v_other->delta)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 270, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":269
 * 
 *     def __richcmp__(TimeDelta self, TimeDelta other, int op):
 *         if op == cpython.Py_EQ:             # <<<<<<<<<<<<<<
 *             return self.delta.Equals(other.delta)
 *         elif op == cpython.Py_NE:
 */
  }

  /* "kudu/client.pyx":271
 *         if op == cpython.Py_EQ:
 *             return self.delta.Equals(other.delta)
 *         elif op == cpython.Py_NE:             # <<<<<<<<<<<<<<
 *             return not self.delta.Equals(other.delta)
 *         elif op == cpython.Py_LT:
 */
  __pyx_t_1 = ((__pyx_v_op == Py_NE) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":272
 *             return self.delta.Equals(other.delta)
 *         elif op == cpython.Py_NE:
 *             return not self.delta.Equals(other.delta)             # <<<<<<<<<<<<<<
 *         elif op == cpython.Py_LT:
 *             return self.delta.LessThan(other.delta)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong((!(__pyx_v_self->delta.Equals(__pyx_v_other->delta) != 0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 272, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":271
 *         if op == cpython.Py_EQ:
 *             return self.delta.Equals(other.delta)
 *         elif op == cpython.Py_NE:             # <<<<<<<<<<<<<<
 *             return not self.delta.Equals(other.delta)
 *         elif op == cpython.Py_LT:
 */
  }

  /* "kudu/client.pyx":273
 *         elif op == cpython.Py_NE:
 *             return not self.delta.Equals(other.delta)
 *         elif op == cpython.Py_LT:             # <<<<<<<<<<<<<<
 *             return self.delta.LessThan(other.delta)
 *         elif op == cpython.Py_LE:
 */
  __pyx_t_1 = ((__pyx_v_op == Py_LT) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":274
 *             return not self.delta.Equals(other.delta)
 *         elif op == cpython.Py_LT:
 *             return self.delta.LessThan(other.delta)             # <<<<<<<<<<<<<<
 *         elif op == cpython.Py_LE:
 *             return not self.delta.MoreThan(other.delta)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->delta.LessThan(__pyx_v_other->delta)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":273
 *         elif op == cpython.Py_NE:
 *             return not self.delta.Equals(other.delta)
 *         elif op == cpython.Py_LT:             # <<<<<<<<<<<<<<
 *             return self.delta.LessThan(other.delta)
 *         elif op == cpython.Py_LE:
 */
  }

  /* "kudu/client.pyx":275
 *         elif op == cpython.Py_LT:
 *             return self.delta.LessThan(other.delta)
 *         elif op == cpython.Py_LE:             # <<<<<<<<<<<<<<
 *             return not self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GT:
 */
  __pyx_t_1 = ((__pyx_v_op == Py_LE) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":276
 *             return self.delta.LessThan(other.delta)
 *         elif op == cpython.Py_LE:
 *             return not self.delta.MoreThan(other.delta)             # <<<<<<<<<<<<<<
 *         elif op == cpython.Py_GT:
 *             return self.delta.MoreThan(other.delta)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong((!(__pyx_v_self->delta.MoreThan(__pyx_v_other->delta) != 0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":275
 *         elif op == cpython.Py_LT:
 *             return self.delta.LessThan(other.delta)
 *         elif op == cpython.Py_LE:             # <<<<<<<<<<<<<<
 *             return not self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GT:
 */
  }

  /* "kudu/client.pyx":277
 *         elif op == cpython.Py_LE:
 *             return not self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GT:             # <<<<<<<<<<<<<<
 *             return self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GE:
 */
  __pyx_t_1 = ((__pyx_v_op == Py_GT) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":278
 *             return not self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GT:
 *             return self.delta.MoreThan(other.delta)             # <<<<<<<<<<<<<<
 *         elif op == cpython.Py_GE:
 *             return not self.delta.LessThan(other.delta)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->delta.MoreThan(__pyx_v_other->delta)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 278, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":277
 *         elif op == cpython.Py_LE:
 *             return not self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GT:             # <<<<<<<<<<<<<<
 *             return self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GE:
 */
  }

  /* "kudu/client.pyx":279
 *         elif op == cpython.Py_GT:
 *             return self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GE:             # <<<<<<<<<<<<<<
 *             return not self.delta.LessThan(other.delta)
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_op == Py_GE) != 0);
  if (likely(__pyx_t_1)) {

    /* "kudu/client.pyx":280
 *             return self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GE:
 *             return not self.delta.LessThan(other.delta)             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError('invalid operation: {0}'.format(op))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyBool_FromLong((!(__pyx_v_self->delta.LessThan(__pyx_v_other->delta) != 0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":279
 *         elif op == cpython.Py_GT:
 *             return self.delta.MoreThan(other.delta)
 *         elif op == cpython.Py_GE:             # <<<<<<<<<<<<<<
 *             return not self.delta.LessThan(other.delta)
 *         else:
 */
  }

  /* "kudu/client.pyx":282
 *             return not self.delta.LessThan(other.delta)
 *         else:
 *             raise ValueError('invalid operation: {0}'.format(op))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_invalid_operation_0, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_op); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __PYX_ERR(0, 282, __pyx_L1_error)
  }

  /* "kudu/client.pyx":268
 *             return 'kudu.TimeDelta()'
 * 
 *     def __richcmp__(TimeDelta self, TimeDelta other, int op):             # <<<<<<<<<<<<<<
 *         if op == cpython.Py_EQ:
 *             return self.delta.Equals(other.delta)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.TimeDelta.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_23__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_22__reduce_cython__[] = "TimeDelta.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_23__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_22__reduce_cython__(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_25__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_9TimeDelta_24__setstate_cython__[] = "TimeDelta.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_9TimeDelta_25__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9TimeDelta_24__setstate_cython__(((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9TimeDelta_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TimeDelta.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":293
 *     """
 * 
 *     def __cinit__(self, addr_or_addrs, admin_timeout_ms=None,             # <<<<<<<<<<<<<<
 *                   rpc_timeout_ms=None, sasl_protocol_name=None,
 *                   require_authentication=False,
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_6Client_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_6Client_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_addr_or_addrs = 0;
  PyObject *__pyx_v_admin_timeout_ms = 0;
  PyObject *__pyx_v_rpc_timeout_ms = 0;
  PyObject *__pyx_v_sasl_protocol_name = 0;
  PyObject *__pyx_v_require_authentication = 0;
  PyObject *__pyx_v_encryption_policy = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_addr_or_addrs,&__pyx_n_s_admin_timeout_ms,&__pyx_n_s_rpc_timeout_ms,&__pyx_n_s_sasl_protocol_name,&__pyx_n_s_require_authentication,&__pyx_n_s_encryption_policy,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    values[1] = ((PyObject *)Py_None);

    /* "kudu/client.pyx":294
 * 
 *     def __cinit__(self, addr_or_addrs, admin_timeout_ms=None,
 *                   rpc_timeout_ms=None, sasl_protocol_name=None,             # <<<<<<<<<<<<<<
 *                   require_authentication=False,
 *                   encryption_policy=ENCRYPTION_OPTIONAL):
 */
    values[2] = ((PyObject *)Py_None);
    values[3] = ((PyObject *)Py_None);

    /* "kudu/client.pyx":295
 *     def __cinit__(self, addr_or_addrs, admin_timeout_ms=None,
 *                   rpc_timeout_ms=None, sasl_protocol_name=None,
 *                   require_authentication=False,             # <<<<<<<<<<<<<<
 *                   encryption_policy=ENCRYPTION_OPTIONAL):
 *         cdef:
 */
    values[4] = ((PyObject *)Py_False);
    values[5] = __pyx_k__5;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addr_or_addrs)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_admin_timeout_ms);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rpc_timeout_ms);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sasl_protocol_name);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_require_authentication);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_encryption_policy);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 293, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_addr_or_addrs = values[0];
    __pyx_v_admin_timeout_ms = values[1];
    __pyx_v_rpc_timeout_ms = values[2];
    __pyx_v_sasl_protocol_name = values[3];
    __pyx_v_require_authentication = values[4];
    __pyx_v_encryption_policy = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 293, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Client.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_6Client___cinit__(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), __pyx_v_addr_or_addrs, __pyx_v_admin_timeout_ms, __pyx_v_rpc_timeout_ms, __pyx_v_sasl_protocol_name, __pyx_v_require_authentication, __pyx_v_encryption_policy);

  /* "kudu/client.pyx":293
 *     """
 * 
 *     def __cinit__(self, addr_or_addrs, admin_timeout_ms=None,             # <<<<<<<<<<<<<<
 *                   rpc_timeout_ms=None, sasl_protocol_name=None,
 *                   require_authentication=False,
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_6Client___cinit__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_addr_or_addrs, PyObject *__pyx_v_admin_timeout_ms, PyObject *__pyx_v_rpc_timeout_ms, PyObject *__pyx_v_sasl_protocol_name, PyObject *__pyx_v_require_authentication, PyObject *__pyx_v_encryption_policy) {
  std::vector<std::string>  __pyx_v_c_addrs;
  kudu::client::KuduClientBuilder __pyx_v_builder;
  struct __pyx_obj_4kudu_6client_TimeDelta *__pyx_v_timeout = 0;
  CYTHON_UNUSED PyObject *__pyx_v__ssl = NULL;
  PyObject *__pyx_v_addr = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  std::string __pyx_t_12;
  bool __pyx_t_13;
  enum  kudu::client::KuduClientBuilder::EncryptionPolicy __pyx_t_14;
  __Pyx_RefNannySetupContext("__cinit__", 0);
  __Pyx_INCREF(__pyx_v_addr_or_addrs);

  /* "kudu/client.pyx":307
 *         # whether _ssl is present, and if we can import it, we disable
 *         # Kudu's initialization to avoid a conflict.
 *         try:             # <<<<<<<<<<<<<<
 *             import _ssl
 *         except:
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "kudu/client.pyx":308
 *         # Kudu's initialization to avoid a conflict.
 *         try:
 *             import _ssl             # <<<<<<<<<<<<<<
 *         except:
 *             pass
 */
      __pyx_t_4 = __Pyx_Import(__pyx_n_s_ssl, 0, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v__ssl = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "kudu/client.pyx":307
 *         # whether _ssl is present, and if we can import it, we disable
 *         # Kudu's initialization to avoid a conflict.
 *         try:             # <<<<<<<<<<<<<<
 *             import _ssl
 *         except:
 */
    }

    /* "kudu/client.pyx":312
 *             pass
 *         else:
 *             check_status(DisableOpenSSLInitialization())             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(addr_or_addrs, six.string_types):
 */
    /*else:*/ {
      __pyx_t_4 = __pyx_f_4kudu_6errors_check_status(kudu::client::DisableOpenSSLInitialization()); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 312, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "kudu/client.pyx":309
 *         try:
 *             import _ssl
 *         except:             # <<<<<<<<<<<<<<
 *             pass
 *         else:
 */
    /*except:*/ {
      __Pyx_ErrRestore(0,0,0);
      goto __pyx_L4_exception_handled;
    }
    __pyx_L5_except_error:;

    /* "kudu/client.pyx":307
 *         # whether _ssl is present, and if we can import it, we disable
 *         # Kudu's initialization to avoid a conflict.
 *         try:             # <<<<<<<<<<<<<<
 *             import _ssl
 *         except:
 */
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L8_try_end:;
  }

  /* "kudu/client.pyx":314
 *             check_status(DisableOpenSSLInitialization())
 * 
 *         if isinstance(addr_or_addrs, six.string_types):             # <<<<<<<<<<<<<<
 *             addr_or_addrs = [addr_or_addrs]
 *         elif not isinstance(addr_or_addrs, list):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_six); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_string_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = PyObject_IsInstance(__pyx_v_addr_or_addrs, __pyx_t_5); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    /* "kudu/client.pyx":315
 * 
 *         if isinstance(addr_or_addrs, six.string_types):
 *             addr_or_addrs = [addr_or_addrs]             # <<<<<<<<<<<<<<
 *         elif not isinstance(addr_or_addrs, list):
 *             addr_or_addrs = list(addr_or_addrs)
 */
    __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_addr_or_addrs);
    __Pyx_GIVEREF(__pyx_v_addr_or_addrs);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_addr_or_addrs);
    __Pyx_DECREF_SET(__pyx_v_addr_or_addrs, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "kudu/client.pyx":314
 *             check_status(DisableOpenSSLInitialization())
 * 
 *         if isinstance(addr_or_addrs, six.string_types):             # <<<<<<<<<<<<<<
 *             addr_or_addrs = [addr_or_addrs]
 *         elif not isinstance(addr_or_addrs, list):
 */
    goto __pyx_L9;
  }

  /* "kudu/client.pyx":316
 *         if isinstance(addr_or_addrs, six.string_types):
 *             addr_or_addrs = [addr_or_addrs]
 *         elif not isinstance(addr_or_addrs, list):             # <<<<<<<<<<<<<<
 *             addr_or_addrs = list(addr_or_addrs)
 * 
 */
  __pyx_t_7 = PyList_Check(__pyx_v_addr_or_addrs); 
  __pyx_t_6 = ((!(__pyx_t_7 != 0)) != 0);
  if (__pyx_t_6) {

    /* "kudu/client.pyx":317
 *             addr_or_addrs = [addr_or_addrs]
 *         elif not isinstance(addr_or_addrs, list):
 *             addr_or_addrs = list(addr_or_addrs)             # <<<<<<<<<<<<<<
 * 
 *         # Raise exception for empty iters, otherwise the connection call
 */
    __pyx_t_5 = PySequence_List(__pyx_v_addr_or_addrs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF_SET(__pyx_v_addr_or_addrs, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "kudu/client.pyx":316
 *         if isinstance(addr_or_addrs, six.string_types):
 *             addr_or_addrs = [addr_or_addrs]
 *         elif not isinstance(addr_or_addrs, list):             # <<<<<<<<<<<<<<
 *             addr_or_addrs = list(addr_or_addrs)
 * 
 */
  }
  __pyx_L9:;

  /* "kudu/client.pyx":321
 *         # Raise exception for empty iters, otherwise the connection call
 *         # will hang
 *         if not addr_or_addrs:             # <<<<<<<<<<<<<<
 *             raise ValueError("Empty iterator for addr_or_addrs.")
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_addr_or_addrs); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 321, __pyx_L1_error)
  __pyx_t_7 = ((!__pyx_t_6) != 0);
  if (unlikely(__pyx_t_7)) {

    /* "kudu/client.pyx":322
 *         # will hang
 *         if not addr_or_addrs:
 *             raise ValueError("Empty iterator for addr_or_addrs.")             # <<<<<<<<<<<<<<
 * 
 *         self.master_addrs = addr_or_addrs
 */
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 322, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(0, 322, __pyx_L1_error)

    /* "kudu/client.pyx":321
 *         # Raise exception for empty iters, otherwise the connection call
 *         # will hang
 *         if not addr_or_addrs:             # <<<<<<<<<<<<<<
 *             raise ValueError("Empty iterator for addr_or_addrs.")
 * 
 */
  }

  /* "kudu/client.pyx":324
 *             raise ValueError("Empty iterator for addr_or_addrs.")
 * 
 *         self.master_addrs = addr_or_addrs             # <<<<<<<<<<<<<<
 *         for addr in addr_or_addrs:
 *             c_addrs.push_back(tobytes(addr))
 */
  if (!(likely(PyList_CheckExact(__pyx_v_addr_or_addrs))||((__pyx_v_addr_or_addrs) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_v_addr_or_addrs)->tp_name), 0))) __PYX_ERR(0, 324, __pyx_L1_error)
  __pyx_t_5 = __pyx_v_addr_or_addrs;
  __Pyx_INCREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_GOTREF(__pyx_v_self->master_addrs);
  __Pyx_DECREF(__pyx_v_self->master_addrs);
  __pyx_v_self->master_addrs = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "kudu/client.pyx":325
 * 
 *         self.master_addrs = addr_or_addrs
 *         for addr in addr_or_addrs:             # <<<<<<<<<<<<<<
 *             c_addrs.push_back(tobytes(addr))
 * 
 */
  if (likely(PyList_CheckExact(__pyx_v_addr_or_addrs)) || PyTuple_CheckExact(__pyx_v_addr_or_addrs)) {
    __pyx_t_5 = __pyx_v_addr_or_addrs; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_addr_or_addrs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 325, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 325, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 325, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_9(__pyx_t_5);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 325, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_addr, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "kudu/client.pyx":326
 *         self.master_addrs = addr_or_addrs
 *         for addr in addr_or_addrs:
 *             c_addrs.push_back(tobytes(addr))             # <<<<<<<<<<<<<<
 * 
 *         builder.master_server_addrs(c_addrs)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
      }
    }
    __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_v_addr) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_addr);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 326, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    try {
      __pyx_v_c_addrs.push_back(__pyx_t_12);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 326, __pyx_L1_error)
    }

    /* "kudu/client.pyx":325
 * 
 *         self.master_addrs = addr_or_addrs
 *         for addr in addr_or_addrs:             # <<<<<<<<<<<<<<
 *             c_addrs.push_back(tobytes(addr))
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "kudu/client.pyx":328
 *             c_addrs.push_back(tobytes(addr))
 * 
 *         builder.master_server_addrs(c_addrs)             # <<<<<<<<<<<<<<
 * 
 *         if admin_timeout_ms is not None:
 */
  (void)(__pyx_v_builder.master_server_addrs(__pyx_v_c_addrs));

  /* "kudu/client.pyx":330
 *         builder.master_server_addrs(c_addrs)
 * 
 *         if admin_timeout_ms is not None:             # <<<<<<<<<<<<<<
 *             timeout = TimeDelta.from_millis(admin_timeout_ms)
 *             builder.default_admin_operation_timeout(timeout.delta)
 */
  __pyx_t_7 = (__pyx_v_admin_timeout_ms != Py_None);
  __pyx_t_6 = (__pyx_t_7 != 0);
  if (__pyx_t_6) {

    /* "kudu/client.pyx":331
 * 
 *         if admin_timeout_ms is not None:
 *             timeout = TimeDelta.from_millis(admin_timeout_ms)             # <<<<<<<<<<<<<<
 *             builder.default_admin_operation_timeout(timeout.delta)
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta), __pyx_n_s_from_millis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_5 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_v_admin_timeout_ms) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_admin_timeout_ms);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 331, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4kudu_6client_TimeDelta))))) __PYX_ERR(0, 331, __pyx_L1_error)
    __pyx_v_timeout = ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_t_5);
    __pyx_t_5 = 0;

    /* "kudu/client.pyx":332
 *         if admin_timeout_ms is not None:
 *             timeout = TimeDelta.from_millis(admin_timeout_ms)
 *             builder.default_admin_operation_timeout(timeout.delta)             # <<<<<<<<<<<<<<
 * 
 *         if rpc_timeout_ms is not None:
 */
    (void)(__pyx_v_builder.default_admin_operation_timeout(__pyx_v_timeout->delta));

    /* "kudu/client.pyx":330
 *         builder.master_server_addrs(c_addrs)
 * 
 *         if admin_timeout_ms is not None:             # <<<<<<<<<<<<<<
 *             timeout = TimeDelta.from_millis(admin_timeout_ms)
 *             builder.default_admin_operation_timeout(timeout.delta)
 */
  }

  /* "kudu/client.pyx":334
 *             builder.default_admin_operation_timeout(timeout.delta)
 * 
 *         if rpc_timeout_ms is not None:             # <<<<<<<<<<<<<<
 *             timeout = TimeDelta.from_millis(rpc_timeout_ms)
 *             builder.default_rpc_timeout(timeout.delta)
 */
  __pyx_t_6 = (__pyx_v_rpc_timeout_ms != Py_None);
  __pyx_t_7 = (__pyx_t_6 != 0);
  if (__pyx_t_7) {

    /* "kudu/client.pyx":335
 * 
 *         if rpc_timeout_ms is not None:
 *             timeout = TimeDelta.from_millis(rpc_timeout_ms)             # <<<<<<<<<<<<<<
 *             builder.default_rpc_timeout(timeout.delta)
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta), __pyx_n_s_from_millis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_5 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_v_rpc_timeout_ms) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_rpc_timeout_ms);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 335, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4kudu_6client_TimeDelta))))) __PYX_ERR(0, 335, __pyx_L1_error)
    __Pyx_XDECREF_SET(__pyx_v_timeout, ((struct __pyx_obj_4kudu_6client_TimeDelta *)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "kudu/client.pyx":336
 *         if rpc_timeout_ms is not None:
 *             timeout = TimeDelta.from_millis(rpc_timeout_ms)
 *             builder.default_rpc_timeout(timeout.delta)             # <<<<<<<<<<<<<<
 * 
 *         if sasl_protocol_name is not None:
 */
    (void)(__pyx_v_builder.default_rpc_timeout(__pyx_v_timeout->delta));

    /* "kudu/client.pyx":334
 *             builder.default_admin_operation_timeout(timeout.delta)
 * 
 *         if rpc_timeout_ms is not None:             # <<<<<<<<<<<<<<
 *             timeout = TimeDelta.from_millis(rpc_timeout_ms)
 *             builder.default_rpc_timeout(timeout.delta)
 */
  }

  /* "kudu/client.pyx":338
 *             builder.default_rpc_timeout(timeout.delta)
 * 
 *         if sasl_protocol_name is not None:             # <<<<<<<<<<<<<<
 *             builder.sasl_protocol_name(sasl_protocol_name)
 * 
 */
  __pyx_t_7 = (__pyx_v_sasl_protocol_name != Py_None);
  __pyx_t_6 = (__pyx_t_7 != 0);
  if (__pyx_t_6) {

    /* "kudu/client.pyx":339
 * 
 *         if sasl_protocol_name is not None:
 *             builder.sasl_protocol_name(sasl_protocol_name)             # <<<<<<<<<<<<<<
 * 
 *         if require_authentication:
 */
    __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_v_sasl_protocol_name); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 339, __pyx_L1_error)
    (void)(__pyx_v_builder.sasl_protocol_name(__pyx_t_12));

    /* "kudu/client.pyx":338
 *             builder.default_rpc_timeout(timeout.delta)
 * 
 *         if sasl_protocol_name is not None:             # <<<<<<<<<<<<<<
 *             builder.sasl_protocol_name(sasl_protocol_name)
 * 
 */
  }

  /* "kudu/client.pyx":341
 *             builder.sasl_protocol_name(sasl_protocol_name)
 * 
 *         if require_authentication:             # <<<<<<<<<<<<<<
 *             builder.require_authentication(require_authentication)
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_require_authentication); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 341, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "kudu/client.pyx":342
 * 
 *         if require_authentication:
 *             builder.require_authentication(require_authentication)             # <<<<<<<<<<<<<<
 * 
 *         builder.encryption_policy(encryption_policy)
 */
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_require_authentication); if (unlikely((__pyx_t_13 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 342, __pyx_L1_error)
    (void)(__pyx_v_builder.require_authentication(__pyx_t_13));

    /* "kudu/client.pyx":341
 *             builder.sasl_protocol_name(sasl_protocol_name)
 * 
 *         if require_authentication:             # <<<<<<<<<<<<<<
 *             builder.require_authentication(require_authentication)
 * 
 */
  }

  /* "kudu/client.pyx":344
 *             builder.require_authentication(require_authentication)
 * 
 *         builder.encryption_policy(encryption_policy)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_14 = ((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy(__pyx_v_encryption_policy)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 344, __pyx_L1_error)
  (void)(__pyx_v_builder.encryption_policy(__pyx_t_14));

  /* "kudu/client.pyx":347
 * 
 * 
 *         check_status(builder.Build(&self.client))             # <<<<<<<<<<<<<<
 * 
 *         # A convenience
 */
  __pyx_t_5 = __pyx_f_4kudu_6errors_check_status(__pyx_v_builder.Build((&__pyx_v_self->client))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "kudu/client.pyx":350
 * 
 *         # A convenience
 *         self.cp = self.client.get()             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->cp = __pyx_v_self->client.get();

  /* "kudu/client.pyx":293
 *     """
 * 
 *     def __cinit__(self, addr_or_addrs, admin_timeout_ms=None,             # <<<<<<<<<<<<<<
 *                   rpc_timeout_ms=None, sasl_protocol_name=None,
 *                   require_authentication=False,
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("kudu.client.Client.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_timeout);
  __Pyx_XDECREF(__pyx_v__ssl);
  __Pyx_XDECREF(__pyx_v_addr);
  __Pyx_XDECREF(__pyx_v_addr_or_addrs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":352
 *         self.cp = self.client.get()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         self.close()
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_6Client_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_6Client_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_6Client_2__dealloc__(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_6Client_2__dealloc__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":353
 * 
 *     def __dealloc__(self):
 *         self.close()             # <<<<<<<<<<<<<<
 * 
 *     property is_multimaster:
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Client *)__pyx_v_self->__pyx_vtab)->close(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":352
 *         self.cp = self.client.get()
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         self.close()
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_WriteUnraisable("kudu.client.Client.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":357
 *     property is_multimaster:
 * 
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.cp.IsMultiMaster()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_14is_multimaster_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Client_14is_multimaster_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_14is_multimaster___get__(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_14is_multimaster___get__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "kudu/client.pyx":358
 * 
 *         def __get__(self):
 *             return self.cp.IsMultiMaster()             # <<<<<<<<<<<<<<
 * 
 *     cpdef close(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->cp->IsMultiMaster()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":357
 *     property is_multimaster:
 * 
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return self.cp.IsMultiMaster()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Client.is_multimaster.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":360
 *             return self.cp.IsMultiMaster()
 * 
 *     cpdef close(self):             # <<<<<<<<<<<<<<
 *         # Nothing yet to clean up here
 *         pass
 */

static PyObject *__pyx_pw_4kudu_6client_6Client_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4kudu_6client_6Client_close(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("close", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_6Client_5close)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 360, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":362
 *     cpdef close(self):
 *         # Nothing yet to clean up here
 *         pass             # <<<<<<<<<<<<<<
 * 
 *     def latest_observed_timestamp(self):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Client.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":360
 *             return self.cp.IsMultiMaster()
 * 
 *     cpdef close(self):             # <<<<<<<<<<<<<<
 *         # Nothing yet to clean up here
 *         pass
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_4close[] = "Client.close(self)";
static PyObject *__pyx_pw_4kudu_6client_6Client_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_4close(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_4close(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("close", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_6Client_close(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Client.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":364
 *         pass
 * 
 *     def latest_observed_timestamp(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the highest timestamp observed by the client in UTC. This
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_7latest_observed_timestamp(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_6latest_observed_timestamp[] = "Client.latest_observed_timestamp(self)\n\n        Get the highest timestamp observed by the client in UTC. This\n        is intended to gain external consistency across clients.\n\n        Note: The latest observed timestamp can also be used to start a\n        snapshot scan on a table which is guaranteed to contain all data\n        written or previously read by this client. This should be treated\n        as experimental as it this method will change or disappear in a\n        future release. Additionally, note that 1 must be added to the\n        value to be used in snapshot reads (this is taken care of in the\n        from_hybridtime method).\n\n        Returns\n        -------\n        latest : datetime.datetime\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_7latest_observed_timestamp(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("latest_observed_timestamp (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_6latest_observed_timestamp(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_6latest_observed_timestamp(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("latest_observed_timestamp", 0);

  /* "kudu/client.pyx":381
 *         latest : datetime.datetime
 *         """
 *         return from_hybridtime(self.cp.GetLatestObservedTimestamp())             # <<<<<<<<<<<<<<
 * 
 *     def create_table(self, table_name, Schema schema, partitioning,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_from_hybridtime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_uint64_t(__pyx_v_self->cp->GetLatestObservedTimestamp()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":364
 *         pass
 * 
 *     def latest_observed_timestamp(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the highest timestamp observed by the client in UTC. This
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Client.latest_observed_timestamp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":383
 *         return from_hybridtime(self.cp.GetLatestObservedTimestamp())
 * 
 *     def create_table(self, table_name, Schema schema, partitioning,             # <<<<<<<<<<<<<<
 *             n_replicas=None, owner=None, comment=None):
 *         """
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_9create_table(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_8create_table[] = "Client.create_table(self, table_name, Schema schema, partitioning, n_replicas=None, owner=None, comment=None)\n\n        Creates a new Kudu table from the passed Schema and options.\n\n        Parameters\n        ----------\n        table_name : string\n        schema : kudu.Schema\n          Create using kudu.schema_builder\n        partitioning : Partitioning object\n        n_replicas : int Number of replicas to set. This should be an odd number.\n          If not provided (or if <= 0), falls back to the server-side default.\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_9create_table(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_table_name = 0;
  struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema = 0;
  PyObject *__pyx_v_partitioning = 0;
  PyObject *__pyx_v_n_replicas = 0;
  PyObject *__pyx_v_owner = 0;
  PyObject *__pyx_v_comment = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("create_table (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table_name,&__pyx_n_s_schema,&__pyx_n_s_partitioning,&__pyx_n_s_n_replicas,&__pyx_n_s_owner,&__pyx_n_s_comment,0};
    PyObject* values[6] = {0,0,0,0,0,0};

    /* "kudu/client.pyx":384
 * 
 *     def create_table(self, table_name, Schema schema, partitioning,
 *             n_replicas=None, owner=None, comment=None):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new Kudu table from the passed Schema and options.
 */
    values[3] = ((PyObject *)Py_None);
    values[4] = ((PyObject *)Py_None);
    values[5] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_schema)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("create_table", 0, 3, 6, 1); __PYX_ERR(0, 383, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_partitioning)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("create_table", 0, 3, 6, 2); __PYX_ERR(0, 383, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n_replicas);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_owner);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comment);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create_table") < 0)) __PYX_ERR(0, 383, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table_name = values[0];
    __pyx_v_schema = ((struct __pyx_obj_4kudu_6schema_Schema *)values[1]);
    __pyx_v_partitioning = values[2];
    __pyx_v_n_replicas = values[3];
    __pyx_v_owner = values[4];
    __pyx_v_comment = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("create_table", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 383, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Client.create_table", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4kudu_6schema_Schema, 1, "schema", 0))) __PYX_ERR(0, 383, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Client_8create_table(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), __pyx_v_table_name, __pyx_v_schema, __pyx_v_partitioning, __pyx_v_n_replicas, __pyx_v_owner, __pyx_v_comment);

  /* "kudu/client.pyx":383
 *         return from_hybridtime(self.cp.GetLatestObservedTimestamp())
 * 
 *     def create_table(self, table_name, Schema schema, partitioning,             # <<<<<<<<<<<<<<
 *             n_replicas=None, owner=None, comment=None):
 *         """
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_8create_table(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name, struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema, PyObject *__pyx_v_partitioning, PyObject *__pyx_v_n_replicas, PyObject *__pyx_v_owner, PyObject *__pyx_v_comment) {
  kudu::client::KuduTableCreator *__pyx_v_c;
  kudu::Status __pyx_v_s;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  char const *__pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  __Pyx_RefNannySetupContext("create_table", 0);

  /* "kudu/client.pyx":400
 *             KuduTableCreator* c
 *             Status s
 *         c = self.cp.NewTableCreator()             # <<<<<<<<<<<<<<
 *         try:
 *             c.table_name(tobytes(table_name))
 */
  __pyx_v_c = __pyx_v_self->cp->NewTableCreator();

  /* "kudu/client.pyx":401
 *             Status s
 *         c = self.cp.NewTableCreator()
 *         try:             # <<<<<<<<<<<<<<
 *             c.table_name(tobytes(table_name))
 *             c.schema(schema.schema)
 */
  /*try:*/ {

    /* "kudu/client.pyx":402
 *         c = self.cp.NewTableCreator()
 *         try:
 *             c.table_name(tobytes(table_name))             # <<<<<<<<<<<<<<
 *             c.schema(schema.schema)
 *             self._apply_partitioning(c, partitioning, schema)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 402, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_table_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_table_name);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 402, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 402, __pyx_L4_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    (void)(__pyx_v_c->table_name(__pyx_t_4));

    /* "kudu/client.pyx":403
 *         try:
 *             c.table_name(tobytes(table_name))
 *             c.schema(schema.schema)             # <<<<<<<<<<<<<<
 *             self._apply_partitioning(c, partitioning, schema)
 *             if n_replicas:
 */
    (void)(__pyx_v_c->schema(__pyx_v_schema->schema));

    /* "kudu/client.pyx":404
 *             c.table_name(tobytes(table_name))
 *             c.schema(schema.schema)
 *             self._apply_partitioning(c, partitioning, schema)             # <<<<<<<<<<<<<<
 *             if n_replicas:
 *                 c.num_replicas(n_replicas)
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Client *)__pyx_v_self->__pyx_vtab)->_apply_partitioning(__pyx_v_self, __pyx_v_c, __pyx_v_partitioning, __pyx_v_schema); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 404, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":405
 *             c.schema(schema.schema)
 *             self._apply_partitioning(c, partitioning, schema)
 *             if n_replicas:             # <<<<<<<<<<<<<<
 *                 c.num_replicas(n_replicas)
 *             if owner:
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_n_replicas); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 405, __pyx_L4_error)
    if (__pyx_t_5) {

      /* "kudu/client.pyx":406
 *             self._apply_partitioning(c, partitioning, schema)
 *             if n_replicas:
 *                 c.num_replicas(n_replicas)             # <<<<<<<<<<<<<<
 *             if owner:
 *                 c.set_owner(tobytes(owner))
 */
      __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_n_replicas); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 406, __pyx_L4_error)
      (void)(__pyx_v_c->num_replicas(__pyx_t_6));

      /* "kudu/client.pyx":405
 *             c.schema(schema.schema)
 *             self._apply_partitioning(c, partitioning, schema)
 *             if n_replicas:             # <<<<<<<<<<<<<<
 *                 c.num_replicas(n_replicas)
 *             if owner:
 */
    }

    /* "kudu/client.pyx":407
 *             if n_replicas:
 *                 c.num_replicas(n_replicas)
 *             if owner:             # <<<<<<<<<<<<<<
 *                 c.set_owner(tobytes(owner))
 *             if comment:
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_owner); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 407, __pyx_L4_error)
    if (__pyx_t_5) {

      /* "kudu/client.pyx":408
 *                 c.num_replicas(n_replicas)
 *             if owner:
 *                 c.set_owner(tobytes(owner))             # <<<<<<<<<<<<<<
 *             if comment:
 *                 c.set_comment(tobytes(comment))
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 408, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_owner) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_owner);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 408, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 408, __pyx_L4_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      (void)(__pyx_v_c->set_owner(__pyx_t_4));

      /* "kudu/client.pyx":407
 *             if n_replicas:
 *                 c.num_replicas(n_replicas)
 *             if owner:             # <<<<<<<<<<<<<<
 *                 c.set_owner(tobytes(owner))
 *             if comment:
 */
    }

    /* "kudu/client.pyx":409
 *             if owner:
 *                 c.set_owner(tobytes(owner))
 *             if comment:             # <<<<<<<<<<<<<<
 *                 c.set_comment(tobytes(comment))
 *             s = c.Create()
 */
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_comment); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 409, __pyx_L4_error)
    if (__pyx_t_5) {

      /* "kudu/client.pyx":410
 *                 c.set_owner(tobytes(owner))
 *             if comment:
 *                 c.set_comment(tobytes(comment))             # <<<<<<<<<<<<<<
 *             s = c.Create()
 *             check_status(s)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_comment) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_comment);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 410, __pyx_L4_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 410, __pyx_L4_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      (void)(__pyx_v_c->set_comment(__pyx_t_4));

      /* "kudu/client.pyx":409
 *             if owner:
 *                 c.set_owner(tobytes(owner))
 *             if comment:             # <<<<<<<<<<<<<<
 *                 c.set_comment(tobytes(comment))
 *             s = c.Create()
 */
    }

    /* "kudu/client.pyx":411
 *             if comment:
 *                 c.set_comment(tobytes(comment))
 *             s = c.Create()             # <<<<<<<<<<<<<<
 *             check_status(s)
 *         finally:
 */
    __pyx_v_s = __pyx_v_c->Create();

    /* "kudu/client.pyx":412
 *                 c.set_comment(tobytes(comment))
 *             s = c.Create()
 *             check_status(s)             # <<<<<<<<<<<<<<
 *         finally:
 *             del c
 */
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 412, __pyx_L4_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "kudu/client.pyx":414
 *             check_status(s)
 *         finally:
 *             del c             # <<<<<<<<<<<<<<
 * 
 *     cdef _apply_partitioning(self, KuduTableCreator* c, part, Schema schema):
 */
  /*finally:*/ {
    /*normal exit:*/{
      delete __pyx_v_c;
      goto __pyx_L5;
    }
    __pyx_L4_error:;
    /*exception exit:*/{
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_10);
      __Pyx_XGOTREF(__pyx_t_11);
      __Pyx_XGOTREF(__pyx_t_12);
      __Pyx_XGOTREF(__pyx_t_13);
      __Pyx_XGOTREF(__pyx_t_14);
      __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename;
      {
        delete __pyx_v_c;
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_12);
        __Pyx_XGIVEREF(__pyx_t_13);
        __Pyx_XGIVEREF(__pyx_t_14);
        __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_XGIVEREF(__pyx_t_11);
      __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0;
      __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8;
      goto __pyx_L1_error;
    }
    __pyx_L5:;
  }

  /* "kudu/client.pyx":383
 *         return from_hybridtime(self.cp.GetLatestObservedTimestamp())
 * 
 *     def create_table(self, table_name, Schema schema, partitioning,             # <<<<<<<<<<<<<<
 *             n_replicas=None, owner=None, comment=None):
 *         """
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Client.create_table", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":416
 *             del c
 * 
 *     cdef _apply_partitioning(self, KuduTableCreator* c, part, Schema schema):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[string] v
 */

static PyObject *__pyx_f_4kudu_6client_6Client__apply_partitioning(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, kudu::client::KuduTableCreator *__pyx_v_c, PyObject *__pyx_v_part, struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema) {
  std::vector<std::string>  __pyx_v_v;
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_lower_bound = 0;
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_upper_bound = 0;
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_split_row = 0;
  PyObject *__pyx_v_col_names = NULL;
  PyObject *__pyx_v_num_buckets = NULL;
  PyObject *__pyx_v_seed = NULL;
  PyObject *__pyx_v_n = NULL;
  PyObject *__pyx_v_partition = NULL;
  PyObject *__pyx_v_split = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  PyObject *(*__pyx_t_4)(PyObject *);
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  Py_ssize_t __pyx_t_10;
  PyObject *(*__pyx_t_11)(PyObject *);
  std::string __pyx_t_12;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  enum  kudu::client::KuduTableCreator::RangePartitionBound __pyx_t_17;
  enum  kudu::client::KuduTableCreator::RangePartitionBound __pyx_t_18;
  __Pyx_RefNannySetupContext("_apply_partitioning", 0);

  /* "kudu/client.pyx":424
 * 
 *         # Apply hash partitioning.
 *         for col_names, num_buckets, seed in part._hash_partitions:             # <<<<<<<<<<<<<<
 *             v.clear()
 *             for n in col_names:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_hash_partitions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 424, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 424, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 424, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 424, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
      PyObject* sequence = __pyx_t_1;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 3)) {
        if (size > 3) __Pyx_RaiseTooManyValuesError(3);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 424, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
      } else {
        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_7 = PyList_GET_ITEM(sequence, 2); 
      }
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      #else
      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 424, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 424, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 424, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
      index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_6);
      index = 2; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(0, 424, __pyx_L1_error)
      __pyx_t_9 = NULL;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L6_unpacking_done;
      __pyx_L5_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 424, __pyx_L1_error)
      __pyx_L6_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_col_names, __pyx_t_5);
    __pyx_t_5 = 0;
    __Pyx_XDECREF_SET(__pyx_v_num_buckets, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_XDECREF_SET(__pyx_v_seed, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "kudu/client.pyx":425
 *         # Apply hash partitioning.
 *         for col_names, num_buckets, seed in part._hash_partitions:
 *             v.clear()             # <<<<<<<<<<<<<<
 *             for n in col_names:
 *                 v.push_back(tobytes(n))
 */
    __pyx_v_v.clear();

    /* "kudu/client.pyx":426
 *         for col_names, num_buckets, seed in part._hash_partitions:
 *             v.clear()
 *             for n in col_names:             # <<<<<<<<<<<<<<
 *                 v.push_back(tobytes(n))
 *             if seed:
 */
    if (likely(PyList_CheckExact(__pyx_v_col_names)) || PyTuple_CheckExact(__pyx_v_col_names)) {
      __pyx_t_1 = __pyx_v_col_names; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_col_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 426, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 426, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 426, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_11(__pyx_t_1);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 426, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_7);
      __pyx_t_7 = 0;

      /* "kudu/client.pyx":427
 *             v.clear()
 *             for n in col_names:
 *                 v.push_back(tobytes(n))             # <<<<<<<<<<<<<<
 *             if seed:
 *                 c.add_hash_partitions(v, num_buckets, seed)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 427, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_n) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_n);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 427, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_7); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      try {
        __pyx_v_v.push_back(__pyx_t_12);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 427, __pyx_L1_error)
      }

      /* "kudu/client.pyx":426
 *         for col_names, num_buckets, seed in part._hash_partitions:
 *             v.clear()
 *             for n in col_names:             # <<<<<<<<<<<<<<
 *                 v.push_back(tobytes(n))
 *             if seed:
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":428
 *             for n in col_names:
 *                 v.push_back(tobytes(n))
 *             if seed:             # <<<<<<<<<<<<<<
 *                 c.add_hash_partitions(v, num_buckets, seed)
 *             else:
 */
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_seed); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 428, __pyx_L1_error)
    if (__pyx_t_13) {

      /* "kudu/client.pyx":429
 *                 v.push_back(tobytes(n))
 *             if seed:
 *                 c.add_hash_partitions(v, num_buckets, seed)             # <<<<<<<<<<<<<<
 *             else:
 *                 c.add_hash_partitions(v, num_buckets)
 */
      __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_v_num_buckets); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error)
      __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_v_seed); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 429, __pyx_L1_error)
      (void)(__pyx_v_c->add_hash_partitions(__pyx_v_v, __pyx_t_14, __pyx_t_15));

      /* "kudu/client.pyx":428
 *             for n in col_names:
 *                 v.push_back(tobytes(n))
 *             if seed:             # <<<<<<<<<<<<<<
 *                 c.add_hash_partitions(v, num_buckets, seed)
 *             else:
 */
      goto __pyx_L9;
    }

    /* "kudu/client.pyx":431
 *                 c.add_hash_partitions(v, num_buckets, seed)
 *             else:
 *                 c.add_hash_partitions(v, num_buckets)             # <<<<<<<<<<<<<<
 *         # Apply range partitioning
 *         if part._range_partition_cols is not None:
 */
    /*else*/ {
      __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_v_num_buckets); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error)
      (void)(__pyx_v_c->add_hash_partitions(__pyx_v_v, __pyx_t_15));
    }
    __pyx_L9:;

    /* "kudu/client.pyx":424
 * 
 *         # Apply hash partitioning.
 *         for col_names, num_buckets, seed in part._hash_partitions:             # <<<<<<<<<<<<<<
 *             v.clear()
 *             for n in col_names:
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":433
 *                 c.add_hash_partitions(v, num_buckets)
 *         # Apply range partitioning
 *         if part._range_partition_cols is not None:             # <<<<<<<<<<<<<<
 *             v.clear()
 *             for n in part._range_partition_cols:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_range_partition_cols); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_13 = (__pyx_t_2 != Py_None);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_16 = (__pyx_t_13 != 0);
  if (__pyx_t_16) {

    /* "kudu/client.pyx":434
 *         # Apply range partitioning
 *         if part._range_partition_cols is not None:
 *             v.clear()             # <<<<<<<<<<<<<<
 *             for n in part._range_partition_cols:
 *                 v.push_back(tobytes(n))
 */
    __pyx_v_v.clear();

    /* "kudu/client.pyx":435
 *         if part._range_partition_cols is not None:
 *             v.clear()
 *             for n in part._range_partition_cols:             # <<<<<<<<<<<<<<
 *                 v.push_back(tobytes(n))
 *             c.set_range_partition_columns(v)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_range_partition_cols); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
      __pyx_t_4 = NULL;
    } else {
      __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_4)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 435, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 435, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 435, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_4(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 435, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "kudu/client.pyx":436
 *             v.clear()
 *             for n in part._range_partition_cols:
 *                 v.push_back(tobytes(n))             # <<<<<<<<<<<<<<
 *             c.set_range_partition_columns(v)
 *             if part._range_partitions:
 */
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 436, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_n) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_n);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_12 = __pyx_convert_string_from_py_std__in_string(__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 436, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      try {
        __pyx_v_v.push_back(__pyx_t_12);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 436, __pyx_L1_error)
      }

      /* "kudu/client.pyx":435
 *         if part._range_partition_cols is not None:
 *             v.clear()
 *             for n in part._range_partition_cols:             # <<<<<<<<<<<<<<
 *                 v.push_back(tobytes(n))
 *             c.set_range_partition_columns(v)
 */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":437
 *             for n in part._range_partition_cols:
 *                 v.push_back(tobytes(n))
 *             c.set_range_partition_columns(v)             # <<<<<<<<<<<<<<
 *             if part._range_partitions:
 *                 for partition in part._range_partitions:
 */
    (void)(__pyx_v_c->set_range_partition_columns(__pyx_v_v));

    /* "kudu/client.pyx":438
 *                 v.push_back(tobytes(n))
 *             c.set_range_partition_columns(v)
 *             if part._range_partitions:             # <<<<<<<<<<<<<<
 *                 for partition in part._range_partitions:
 *                     if not isinstance(partition[0], PartialRow):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_range_partitions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 438, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_16) {

      /* "kudu/client.pyx":439
 *             c.set_range_partition_columns(v)
 *             if part._range_partitions:
 *                 for partition in part._range_partitions:             # <<<<<<<<<<<<<<
 *                     if not isinstance(partition[0], PartialRow):
 *                         lower_bound = schema.new_row(partition[0])
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_range_partitions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 439, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_4(__pyx_t_2);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 439, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_partition, __pyx_t_1);
        __pyx_t_1 = 0;

        /* "kudu/client.pyx":440
 *             if part._range_partitions:
 *                 for partition in part._range_partitions:
 *                     if not isinstance(partition[0], PartialRow):             # <<<<<<<<<<<<<<
 *                         lower_bound = schema.new_row(partition[0])
 *                     else:
 */
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_partition, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_16 = __Pyx_TypeCheck(__pyx_t_1, __pyx_ptype_4kudu_6client_PartialRow); 
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_13 = ((!(__pyx_t_16 != 0)) != 0);
        if (__pyx_t_13) {

          /* "kudu/client.pyx":441
 *                 for partition in part._range_partitions:
 *                     if not isinstance(partition[0], PartialRow):
 *                         lower_bound = schema.new_row(partition[0])             # <<<<<<<<<<<<<<
 *                     else:
 *                         lower_bound = partition[0]
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_partition, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_7, function);
            }
          }
          __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_lower_bound, ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_1));
          __pyx_t_1 = 0;

          /* "kudu/client.pyx":440
 *             if part._range_partitions:
 *                 for partition in part._range_partitions:
 *                     if not isinstance(partition[0], PartialRow):             # <<<<<<<<<<<<<<
 *                         lower_bound = schema.new_row(partition[0])
 *                     else:
 */
          goto __pyx_L16;
        }

        /* "kudu/client.pyx":443
 *                         lower_bound = schema.new_row(partition[0])
 *                     else:
 *                         lower_bound = partition[0]             # <<<<<<<<<<<<<<
 *                     lower_bound._own = 0
 *                     if not isinstance(partition[1], PartialRow):
 */
        /*else*/ {
          __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_partition, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 443, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_lower_bound, ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L16:;

        /* "kudu/client.pyx":444
 *                     else:
 *                         lower_bound = partition[0]
 *                     lower_bound._own = 0             # <<<<<<<<<<<<<<
 *                     if not isinstance(partition[1], PartialRow):
 *                         upper_bound = schema.new_row(partition[1])
 */
        __pyx_v_lower_bound->_own = 0;

        /* "kudu/client.pyx":445
 *                         lower_bound = partition[0]
 *                     lower_bound._own = 0
 *                     if not isinstance(partition[1], PartialRow):             # <<<<<<<<<<<<<<
 *                         upper_bound = schema.new_row(partition[1])
 *                     else:
 */
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_partition, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = __Pyx_TypeCheck(__pyx_t_1, __pyx_ptype_4kudu_6client_PartialRow); 
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_16 = ((!(__pyx_t_13 != 0)) != 0);
        if (__pyx_t_16) {

          /* "kudu/client.pyx":446
 *                     lower_bound._own = 0
 *                     if not isinstance(partition[1], PartialRow):
 *                         upper_bound = schema.new_row(partition[1])             # <<<<<<<<<<<<<<
 *                     else:
 *                         upper_bound = partition[1]
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_partition, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_7, function);
            }
          }
          __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_upper_bound, ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_1));
          __pyx_t_1 = 0;

          /* "kudu/client.pyx":445
 *                         lower_bound = partition[0]
 *                     lower_bound._own = 0
 *                     if not isinstance(partition[1], PartialRow):             # <<<<<<<<<<<<<<
 *                         upper_bound = schema.new_row(partition[1])
 *                     else:
 */
          goto __pyx_L17;
        }

        /* "kudu/client.pyx":448
 *                         upper_bound = schema.new_row(partition[1])
 *                     else:
 *                         upper_bound = partition[1]             # <<<<<<<<<<<<<<
 *                     upper_bound._own = 0
 *                     c.add_range_partition(
 */
        /*else*/ {
          __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_partition, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 448, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 448, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_upper_bound, ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_1));
          __pyx_t_1 = 0;
        }
        __pyx_L17:;

        /* "kudu/client.pyx":449
 *                     else:
 *                         upper_bound = partition[1]
 *                     upper_bound._own = 0             # <<<<<<<<<<<<<<
 *                     c.add_range_partition(
 *                         lower_bound.row,
 */
        __pyx_v_upper_bound->_own = 0;

        /* "kudu/client.pyx":453
 *                         lower_bound.row,
 *                         upper_bound.row,
 *                         _check_convert_range_bound_type(partition[2]),             # <<<<<<<<<<<<<<
 *                         _check_convert_range_bound_type(partition[3])
 *                     )
 */
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_check_convert_range_bound_type_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 453, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_partition, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 453, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 453, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_17 = ((enum  kudu::client::KuduTableCreator::RangePartitionBound)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 453, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "kudu/client.pyx":454
 *                         upper_bound.row,
 *                         _check_convert_range_bound_type(partition[2]),
 *                         _check_convert_range_bound_type(partition[3])             # <<<<<<<<<<<<<<
 *                     )
 *             if part._range_partition_splits:
 */
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_check_convert_range_bound_type_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 454, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_partition, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 454, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_18 = ((enum  kudu::client::KuduTableCreator::RangePartitionBound)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(__pyx_t_1)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 454, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

        /* "kudu/client.pyx":450
 *                         upper_bound = partition[1]
 *                     upper_bound._own = 0
 *                     c.add_range_partition(             # <<<<<<<<<<<<<<
 *                         lower_bound.row,
 *                         upper_bound.row,
 */
        (void)(__pyx_v_c->add_range_partition(__pyx_v_lower_bound->row, __pyx_v_upper_bound->row, __pyx_t_17, __pyx_t_18));

        /* "kudu/client.pyx":439
 *             c.set_range_partition_columns(v)
 *             if part._range_partitions:
 *                 for partition in part._range_partitions:             # <<<<<<<<<<<<<<
 *                     if not isinstance(partition[0], PartialRow):
 *                         lower_bound = schema.new_row(partition[0])
 */
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "kudu/client.pyx":438
 *                 v.push_back(tobytes(n))
 *             c.set_range_partition_columns(v)
 *             if part._range_partitions:             # <<<<<<<<<<<<<<
 *                 for partition in part._range_partitions:
 *                     if not isinstance(partition[0], PartialRow):
 */
    }

    /* "kudu/client.pyx":456
 *                         _check_convert_range_bound_type(partition[3])
 *                     )
 *             if part._range_partition_splits:             # <<<<<<<<<<<<<<
 *                 for split in part._range_partition_splits:
 *                     if not isinstance(split, PartialRow):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_range_partition_splits); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 456, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_16) {

      /* "kudu/client.pyx":457
 *                     )
 *             if part._range_partition_splits:
 *                 for split in part._range_partition_splits:             # <<<<<<<<<<<<<<
 *                     if not isinstance(split, PartialRow):
 *                         split_row = schema.new_row(split)
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_part, __pyx_n_s_range_partition_splits); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 457, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 457, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 457, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 457, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_4(__pyx_t_1);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 457, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_split, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "kudu/client.pyx":458
 *             if part._range_partition_splits:
 *                 for split in part._range_partition_splits:
 *                     if not isinstance(split, PartialRow):             # <<<<<<<<<<<<<<
 *                         split_row = schema.new_row(split)
 *                     else:
 */
        __pyx_t_16 = __Pyx_TypeCheck(__pyx_v_split, __pyx_ptype_4kudu_6client_PartialRow); 
        __pyx_t_13 = ((!(__pyx_t_16 != 0)) != 0);
        if (__pyx_t_13) {

          /* "kudu/client.pyx":459
 *                 for split in part._range_partition_splits:
 *                     if not isinstance(split, PartialRow):
 *                         split_row = schema.new_row(split)             # <<<<<<<<<<<<<<
 *                     else:
 *                         split_row = split
 */
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 459, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
            if (likely(__pyx_t_6)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
              __Pyx_INCREF(__pyx_t_6);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_7, function);
            }
          }
          __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_split) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_split);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 459, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 459, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_split_row, ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_2));
          __pyx_t_2 = 0;

          /* "kudu/client.pyx":458
 *             if part._range_partition_splits:
 *                 for split in part._range_partition_splits:
 *                     if not isinstance(split, PartialRow):             # <<<<<<<<<<<<<<
 *                         split_row = schema.new_row(split)
 *                     else:
 */
          goto __pyx_L21;
        }

        /* "kudu/client.pyx":461
 *                         split_row = schema.new_row(split)
 *                     else:
 *                         split_row = split             # <<<<<<<<<<<<<<
 *                     split_row._own = 0
 *                     c.add_range_partition_split(split_row.row)
 */
        /*else*/ {
          if (!(likely(((__pyx_v_split) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_split, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 461, __pyx_L1_error)
          __pyx_t_2 = __pyx_v_split;
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_XDECREF_SET(__pyx_v_split_row, ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_2));
          __pyx_t_2 = 0;
        }
        __pyx_L21:;

        /* "kudu/client.pyx":462
 *                     else:
 *                         split_row = split
 *                     split_row._own = 0             # <<<<<<<<<<<<<<
 *                     c.add_range_partition_split(split_row.row)
 * 
 */
        __pyx_v_split_row->_own = 0;

        /* "kudu/client.pyx":463
 *                         split_row = split
 *                     split_row._own = 0
 *                     c.add_range_partition_split(split_row.row)             # <<<<<<<<<<<<<<
 * 
 *     def delete_table(self, table_name):
 */
        (void)(__pyx_v_c->add_range_partition_split(__pyx_v_split_row->row));

        /* "kudu/client.pyx":457
 *                     )
 *             if part._range_partition_splits:
 *                 for split in part._range_partition_splits:             # <<<<<<<<<<<<<<
 *                     if not isinstance(split, PartialRow):
 *                         split_row = schema.new_row(split)
 */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "kudu/client.pyx":456
 *                         _check_convert_range_bound_type(partition[3])
 *                     )
 *             if part._range_partition_splits:             # <<<<<<<<<<<<<<
 *                 for split in part._range_partition_splits:
 *                     if not isinstance(split, PartialRow):
 */
    }

    /* "kudu/client.pyx":433
 *                 c.add_hash_partitions(v, num_buckets)
 *         # Apply range partitioning
 *         if part._range_partition_cols is not None:             # <<<<<<<<<<<<<<
 *             v.clear()
 *             for n in part._range_partition_cols:
 */
  }

  /* "kudu/client.pyx":416
 *             del c
 * 
 *     cdef _apply_partitioning(self, KuduTableCreator* c, part, Schema schema):             # <<<<<<<<<<<<<<
 *         cdef:
 *             vector[string] v
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("kudu.client.Client._apply_partitioning", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lower_bound);
  __Pyx_XDECREF((PyObject *)__pyx_v_upper_bound);
  __Pyx_XDECREF((PyObject *)__pyx_v_split_row);
  __Pyx_XDECREF(__pyx_v_col_names);
  __Pyx_XDECREF(__pyx_v_num_buckets);
  __Pyx_XDECREF(__pyx_v_seed);
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_partition);
  __Pyx_XDECREF(__pyx_v_split);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":465
 *                     c.add_range_partition_split(split_row.row)
 * 
 *     def delete_table(self, table_name):             # <<<<<<<<<<<<<<
 *         """
 *         Delete a Kudu table. Raises KuduNotFound if the table does not exist.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_11delete_table(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_10delete_table[] = "Client.delete_table(self, table_name)\n\n        Delete a Kudu table. Raises KuduNotFound if the table does not exist.\n\n        Parameters\n        ----------\n        table_name : string\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_11delete_table(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("delete_table (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_10delete_table(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), ((PyObject *)__pyx_v_table_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_10delete_table(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("delete_table", 0);

  /* "kudu/client.pyx":473
 *         table_name : string
 *         """
 *         check_status(self.cp.DeleteTable(tobytes(table_name)))             # <<<<<<<<<<<<<<
 * 
 *     def table_exists(self, table_name):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_table_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_table_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->cp->DeleteTable(__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":465
 *                     c.add_range_partition_split(split_row.row)
 * 
 *     def delete_table(self, table_name):             # <<<<<<<<<<<<<<
 *         """
 *         Delete a Kudu table. Raises KuduNotFound if the table does not exist.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Client.delete_table", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":475
 *         check_status(self.cp.DeleteTable(tobytes(table_name)))
 * 
 *     def table_exists(self, table_name):             # <<<<<<<<<<<<<<
 *         """Return True if the indicated table exists in the Kudu cluster.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_13table_exists(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_12table_exists[] = "Client.table_exists(self, table_name)\nReturn True if the indicated table exists in the Kudu cluster.\n\n        Parameters\n        ----------\n        table_name : string\n\n        Returns\n        -------\n        exists : bool\n\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_13table_exists(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("table_exists (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_12table_exists(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), ((PyObject *)__pyx_v_table_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_12table_exists(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name) {
  std::string __pyx_v_c_name;
  bool __pyx_v_exists;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("table_exists", 0);

  /* "kudu/client.pyx":488
 *         """
 *         cdef:
 *             string c_name = tobytes(table_name)             # <<<<<<<<<<<<<<
 *             c_bool exists
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_table_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_table_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_c_name = __pyx_t_4;

  /* "kudu/client.pyx":491
 *             c_bool exists
 * 
 *         check_status(self.cp.TableExists(c_name, &exists))             # <<<<<<<<<<<<<<
 *         return exists
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->cp->TableExists(__pyx_v_c_name, (&__pyx_v_exists))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":492
 * 
 *         check_status(self.cp.TableExists(c_name, &exists))
 *         return exists             # <<<<<<<<<<<<<<
 * 
 *     def deserialize_token_into_scanner(self, serialized_token):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_exists); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":475
 *         check_status(self.cp.DeleteTable(tobytes(table_name)))
 * 
 *     def table_exists(self, table_name):             # <<<<<<<<<<<<<<
 *         """Return True if the indicated table exists in the Kudu cluster.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Client.table_exists", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":494
 *         return exists
 * 
 *     def deserialize_token_into_scanner(self, serialized_token):             # <<<<<<<<<<<<<<
 *         """
 *         Deserializes a ScanToken using the client and returns a scanner.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_15deserialize_token_into_scanner(PyObject *__pyx_v_self, PyObject *__pyx_v_serialized_token); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_14deserialize_token_into_scanner[] = "Client.deserialize_token_into_scanner(self, serialized_token)\n\n        Deserializes a ScanToken using the client and returns a scanner.\n\n        Parameters\n        ----------\n        serialized_token : String\n          Serialized form of a ScanToken.\n\n        Returns\n        -------\n        scanner : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_15deserialize_token_into_scanner(PyObject *__pyx_v_self, PyObject *__pyx_v_serialized_token) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("deserialize_token_into_scanner (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_14deserialize_token_into_scanner(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), ((PyObject *)__pyx_v_serialized_token));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_14deserialize_token_into_scanner(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_serialized_token) {
  struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_token = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("deserialize_token_into_scanner", 0);

  /* "kudu/client.pyx":507
 *         scanner : Scanner
 *         """
 *         token = ScanToken()             # <<<<<<<<<<<<<<
 *         return token.deserialize_into_scanner(self, serialized_token)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_ScanToken)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_token = ((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":508
 *         """
 *         token = ScanToken()
 *         return token.deserialize_into_scanner(self, serialized_token)             # <<<<<<<<<<<<<<
 * 
 *     def table(self, table_name):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_token), __pyx_n_s_deserialize_into_scanner); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 508, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), __pyx_v_serialized_token};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), __pyx_v_serialized_token};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, ((PyObject *)__pyx_v_self));
    __Pyx_INCREF(__pyx_v_serialized_token);
    __Pyx_GIVEREF(__pyx_v_serialized_token);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_serialized_token);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":494
 *         return exists
 * 
 *     def deserialize_token_into_scanner(self, serialized_token):             # <<<<<<<<<<<<<<
 *         """
 *         Deserializes a ScanToken using the client and returns a scanner.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.Client.deserialize_token_into_scanner", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_token);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":510
 *         return token.deserialize_into_scanner(self, serialized_token)
 * 
 *     def table(self, table_name):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a kudu.Table and retrieve its schema from the cluster.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_17table(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_16table[] = "Client.table(self, table_name)\n\n        Construct a kudu.Table and retrieve its schema from the cluster.\n\n        Raises KuduNotFound if the table does not exist.\n\n        Parameters\n        ----------\n        table_name : string\n\n        Returns\n        -------\n        table : kudu.Table\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_17table(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("table (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_16table(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), ((PyObject *)__pyx_v_table_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_16table(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_table_name) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("table", 0);
  __Pyx_INCREF(__pyx_v_table_name);

  /* "kudu/client.pyx":524
 *         table : kudu.Table
 *         """
 *         table_name = tobytes(table_name)             # <<<<<<<<<<<<<<
 *         cdef Table table = Table(table_name, self)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_table_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_table_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF_SET(__pyx_v_table_name, __pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":525
 *         """
 *         table_name = tobytes(table_name)
 *         cdef Table table = Table(table_name, self)             # <<<<<<<<<<<<<<
 * 
 *         check_status(self.cp.OpenTable(table_name, &table.table))
 */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_table_name);
  __Pyx_GIVEREF(__pyx_v_table_name);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_table_name);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_Table), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "kudu/client.pyx":527
 *         cdef Table table = Table(table_name, self)
 * 
 *         check_status(self.cp.OpenTable(table_name, &table.table))             # <<<<<<<<<<<<<<
 *         table.init()
 *         return table
 */
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_v_table_name); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 527, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->cp->OpenTable(__pyx_t_4, (&__pyx_v_table->table))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":528
 * 
 *         check_status(self.cp.OpenTable(table_name, &table.table))
 *         table.init()             # <<<<<<<<<<<<<<
 *         return table
 * 
 */
  __pyx_t_2 = ((struct __pyx_vtabstruct_4kudu_6client_Table *)__pyx_v_table->__pyx_vtab)->init(__pyx_v_table); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":529
 *         check_status(self.cp.OpenTable(table_name, &table.table))
 *         table.init()
 *         return table             # <<<<<<<<<<<<<<
 * 
 *     def list_tables(self, match_substring=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_table));
  __pyx_r = ((PyObject *)__pyx_v_table);
  goto __pyx_L0;

  /* "kudu/client.pyx":510
 *         return token.deserialize_into_scanner(self, serialized_token)
 * 
 *     def table(self, table_name):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a kudu.Table and retrieve its schema from the cluster.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Client.table", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_table);
  __Pyx_XDECREF(__pyx_v_table_name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":531
 *         return table
 * 
 *     def list_tables(self, match_substring=None):             # <<<<<<<<<<<<<<
 *         """
 *         Retrieve a list of table names in the Kudu cluster with an optional
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_19list_tables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_18list_tables[] = "Client.list_tables(self, match_substring=None)\n\n        Retrieve a list of table names in the Kudu cluster with an optional\n        substring filter.\n\n        Parameters\n        ----------\n        match_substring : string, optional\n          If passed, the string must be exactly contained in the table names\n\n        Returns\n        -------\n        tables : list[string]\n          Table names returned from Kudu\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_19list_tables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_match_substring = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("list_tables (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_match_substring,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_match_substring);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "list_tables") < 0)) __PYX_ERR(0, 531, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_match_substring = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("list_tables", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 531, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Client.list_tables", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_6Client_18list_tables(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), __pyx_v_match_substring);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_18list_tables(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_match_substring) {
  std::vector<std::string>  __pyx_v_tables;
  std::string __pyx_v_c_match;
  size_t __pyx_v_i;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  std::string __pyx_t_6;
  std::vector<std::string> ::size_type __pyx_t_7;
  std::vector<std::string> ::size_type __pyx_t_8;
  size_t __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  __Pyx_RefNannySetupContext("list_tables", 0);

  /* "kudu/client.pyx":551
 *             size_t i
 * 
 *         if match_substring is not None:             # <<<<<<<<<<<<<<
 *             c_match = tobytes(match_substring)
 *             check_status(self.cp.ListTables(&tables, c_match))
 */
  __pyx_t_1 = (__pyx_v_match_substring != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":552
 * 
 *         if match_substring is not None:
 *             c_match = tobytes(match_substring)             # <<<<<<<<<<<<<<
 *             check_status(self.cp.ListTables(&tables, c_match))
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_match_substring) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_match_substring);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = __pyx_convert_string_from_py_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 552, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_c_match = __pyx_t_6;

    /* "kudu/client.pyx":553
 *         if match_substring is not None:
 *             c_match = tobytes(match_substring)
 *             check_status(self.cp.ListTables(&tables, c_match))             # <<<<<<<<<<<<<<
 *         else:
 *             check_status(self.cp.ListTables(&tables))
 */
    __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->cp->ListTables((&__pyx_v_tables), __pyx_v_c_match)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "kudu/client.pyx":551
 *             size_t i
 * 
 *         if match_substring is not None:             # <<<<<<<<<<<<<<
 *             c_match = tobytes(match_substring)
 *             check_status(self.cp.ListTables(&tables, c_match))
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":555
 *             check_status(self.cp.ListTables(&tables, c_match))
 *         else:
 *             check_status(self.cp.ListTables(&tables))             # <<<<<<<<<<<<<<
 * 
 *         result = []
 */
  /*else*/ {
    __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->cp->ListTables((&__pyx_v_tables))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":557
 *             check_status(self.cp.ListTables(&tables))
 * 
 *         result = []             # <<<<<<<<<<<<<<
 *         for i in range(tables.size()):
 *             result.append(frombytes(tables[i]))
 */
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_result = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "kudu/client.pyx":558
 * 
 *         result = []
 *         for i in range(tables.size()):             # <<<<<<<<<<<<<<
 *             result.append(frombytes(tables[i]))
 *         return result
 */
  __pyx_t_7 = __pyx_v_tables.size();
  __pyx_t_8 = __pyx_t_7;
  for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
    __pyx_v_i = __pyx_t_9;

    /* "kudu/client.pyx":559
 *         result = []
 *         for i in range(tables.size()):
 *             result.append(frombytes(tables[i]))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string((__pyx_v_tables[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 559, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }

  /* "kudu/client.pyx":560
 *         for i in range(tables.size()):
 *             result.append(frombytes(tables[i]))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def list_tablet_servers(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "kudu/client.pyx":531
 *         return table
 * 
 *     def list_tables(self, match_substring=None):             # <<<<<<<<<<<<<<
 *         """
 *         Retrieve a list of table names in the Kudu cluster with an optional
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("kudu.client.Client.list_tables", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":562
 *         return result
 * 
 *     def list_tablet_servers(self):             # <<<<<<<<<<<<<<
 *         """
 *         Retrieve a list of tablet servers currently running in the Kudu cluster
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_21list_tablet_servers(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_20list_tablet_servers[] = "Client.list_tablet_servers(self)\n\n        Retrieve a list of tablet servers currently running in the Kudu cluster\n\n        Returns\n        -------\n        tservers : list[TabletServer]\n          List of TabletServer objects\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_21list_tablet_servers(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("list_tablet_servers (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_20list_tablet_servers(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_20list_tablet_servers(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  std::vector<kudu::client::KuduTabletServer *>  __pyx_v_tservers;
  size_t __pyx_v_i;
  PyObject *__pyx_v_result = NULL;
  struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_ts = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector<kudu::client::KuduTabletServer *> ::size_type __pyx_t_2;
  std::vector<kudu::client::KuduTabletServer *> ::size_type __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("list_tablet_servers", 0);

  /* "kudu/client.pyx":575
 *             size_t i
 * 
 *         check_status(self.cp.ListTabletServers(&tservers))             # <<<<<<<<<<<<<<
 * 
 *         result = []
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->cp->ListTabletServers((&__pyx_v_tservers))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":577
 *         check_status(self.cp.ListTabletServers(&tservers))
 * 
 *         result = []             # <<<<<<<<<<<<<<
 *         for i in range(tservers.size()):
 *             ts = TabletServer()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":578
 * 
 *         result = []
 *         for i in range(tservers.size()):             # <<<<<<<<<<<<<<
 *             ts = TabletServer()
 *             ts._own = 1
 */
  __pyx_t_2 = __pyx_v_tservers.size();
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "kudu/client.pyx":579
 *         result = []
 *         for i in range(tservers.size()):
 *             ts = TabletServer()             # <<<<<<<<<<<<<<
 *             ts._own = 1
 *             result.append(ts._init(tservers[i]))
 */
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TabletServer)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_ts, ((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "kudu/client.pyx":580
 *         for i in range(tservers.size()):
 *             ts = TabletServer()
 *             ts._own = 1             # <<<<<<<<<<<<<<
 *             result.append(ts._init(tservers[i]))
 *         return result
 */
    __pyx_v_ts->_own = 1;

    /* "kudu/client.pyx":581
 *             ts = TabletServer()
 *             ts._own = 1
 *             result.append(ts._init(tservers[i]))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TabletServer *)__pyx_v_ts->__pyx_vtab)->_init(__pyx_v_ts, (__pyx_v_tservers[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 581, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "kudu/client.pyx":582
 *             ts._own = 1
 *             result.append(ts._init(tservers[i]))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def new_session(self, flush_mode='manual', timeout_ms=5000, **kwargs):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "kudu/client.pyx":562
 *         return result
 * 
 *     def list_tablet_servers(self):             # <<<<<<<<<<<<<<
 *         """
 *         Retrieve a list of tablet servers currently running in the Kudu cluster
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Client.list_tablet_servers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF((PyObject *)__pyx_v_ts);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":584
 *         return result
 * 
 *     def new_session(self, flush_mode='manual', timeout_ms=5000, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new KuduSession for applying write operations.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_23new_session(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_22new_session[] = "Client.new_session(self, flush_mode='manual', timeout_ms=5000, **kwargs)\n\n        Create a new KuduSession for applying write operations.\n\n        Parameters\n        ----------\n        flush_mode : {'manual', 'sync', 'background'}, default 'manual'\n          See Session.set_flush_mode\n        timeout_ms : int, default 5000\n          Timeout in milliseconds\n        mutation_buffer_sz : Size in bytes of the buffer space.\n        mutation_buffer_watermark : Watermark level as percentage of the mutation buffer size,\n            this is used to trigger a flush in AUTO_FLUSH_BACKGROUND mode.\n        mutation_buffer_flush_interval : The duration of the interval for the time-based\n            flushing, in milliseconds. In some cases, while running in AUTO_FLUSH_BACKGROUND\n            mode, the size of the mutation buffer for pending operations and the flush\n            watermark for fresh operations may be too high for the rate of incoming data:\n            it would take too long to accumulate enough data in the buffer to trigger\n            flushing. I.e., it makes sense to flush the accumulated operations if the\n            prior flush happened long time ago. This parameter sets the wait interval for\n            the time-based flushing which takes place along with the flushing triggered\n            by the over-the-watermark criterion. By default, the interval is set to\n            1000 ms (i.e. 1 second).\n        mutation_buffer_max_num : The maximum number of mutation buffers per KuduSession\n            object to hold the applied operations. Use 0 to set the maximum number of\n            concurrent mutation buffers to unlimited\n\n        Returns\n        -------\n        session : kudu.Session\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_23new_session(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flush_mode = 0;
  PyObject *__pyx_v_timeout_ms = 0;
  PyObject *__pyx_v_kwargs = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_session (wrapper)", 0);
  __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL;
  __Pyx_GOTREF(__pyx_v_kwargs);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flush_mode,&__pyx_n_s_timeout_ms,0};
    PyObject* values[2] = {0,0};
    values[0] = ((PyObject *)__pyx_n_s_manual);
    values[1] = ((PyObject *)__pyx_int_5000);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flush_mode);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timeout_ms);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "new_session") < 0)) __PYX_ERR(0, 584, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_flush_mode = values[0];
    __pyx_v_timeout_ms = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_session", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 584, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
  __Pyx_AddTraceback("kudu.client.Client.new_session", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_6Client_22new_session(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), __pyx_v_flush_mode, __pyx_v_timeout_ms, __pyx_v_kwargs);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_22new_session(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, PyObject *__pyx_v_flush_mode, PyObject *__pyx_v_timeout_ms, PyObject *__pyx_v_kwargs) {
  struct __pyx_obj_4kudu_6client_Session *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("new_session", 0);

  /* "kudu/client.pyx":616
 *         """
 * 
 *         cdef Session result = Session()             # <<<<<<<<<<<<<<
 *         result.s = self.cp.NewSession()
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Session)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Session *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":617
 * 
 *         cdef Session result = Session()
 *         result.s = self.cp.NewSession()             # <<<<<<<<<<<<<<
 * 
 *         result.set_flush_mode(flush_mode)
 */
  __pyx_v_result->s = __pyx_v_self->cp->NewSession();

  /* "kudu/client.pyx":619
 *         result.s = self.cp.NewSession()
 * 
 *         result.set_flush_mode(flush_mode)             # <<<<<<<<<<<<<<
 *         result.set_timeout_ms(timeout_ms)
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_set_flush_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_flush_mode) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_flush_mode);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":620
 * 
 *         result.set_flush_mode(flush_mode)
 *         result.set_timeout_ms(timeout_ms)             # <<<<<<<<<<<<<<
 * 
 *         if "mutation_buffer_sz" in kwargs:
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_set_timeout_ms); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_timeout_ms) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_timeout_ms);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":622
 *         result.set_timeout_ms(timeout_ms)
 * 
 *         if "mutation_buffer_sz" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_space(kwargs["mutation_buffer_sz"])
 *         if "mutation_buffer_watermark" in kwargs:
 */
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_mutation_buffer_sz, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 622, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "kudu/client.pyx":623
 * 
 *         if "mutation_buffer_sz" in kwargs:
 *             result.set_mutation_buffer_space(kwargs["mutation_buffer_sz"])             # <<<<<<<<<<<<<<
 *         if "mutation_buffer_watermark" in kwargs:
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_set_mutation_buffer_space); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_mutation_buffer_sz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":622
 *         result.set_timeout_ms(timeout_ms)
 * 
 *         if "mutation_buffer_sz" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_space(kwargs["mutation_buffer_sz"])
 *         if "mutation_buffer_watermark" in kwargs:
 */
  }

  /* "kudu/client.pyx":624
 *         if "mutation_buffer_sz" in kwargs:
 *             result.set_mutation_buffer_space(kwargs["mutation_buffer_sz"])
 *         if "mutation_buffer_watermark" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])
 *         if "mutation_buffer_flush_interval" in kwargs:
 */
  __pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_mutation_buffer_watermark, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 624, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_5 != 0);
  if (__pyx_t_4) {

    /* "kudu/client.pyx":625
 *             result.set_mutation_buffer_space(kwargs["mutation_buffer_sz"])
 *         if "mutation_buffer_watermark" in kwargs:
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])             # <<<<<<<<<<<<<<
 *         if "mutation_buffer_flush_interval" in kwargs:
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_set_mutation_buffer_flush_waterm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_mutation_buffer_watermark); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":624
 *         if "mutation_buffer_sz" in kwargs:
 *             result.set_mutation_buffer_space(kwargs["mutation_buffer_sz"])
 *         if "mutation_buffer_watermark" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])
 *         if "mutation_buffer_flush_interval" in kwargs:
 */
  }

  /* "kudu/client.pyx":626
 *         if "mutation_buffer_watermark" in kwargs:
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])
 *         if "mutation_buffer_flush_interval" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])
 *         if "mutation_buffer_max_num" in kwargs:
 */
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_mutation_buffer_flush_interval, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 626, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {

    /* "kudu/client.pyx":627
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])
 *         if "mutation_buffer_flush_interval" in kwargs:
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])             # <<<<<<<<<<<<<<
 *         if "mutation_buffer_max_num" in kwargs:
 *             result.set_mutation_buffer_max_num(kwargs["mutation_buffer_max_num"])
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_set_mutation_buffer_flush_interv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_mutation_buffer_flush_interval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":626
 *         if "mutation_buffer_watermark" in kwargs:
 *             result.set_mutation_buffer_flush_watermark(kwargs["mutation_buffer_watermark"])
 *         if "mutation_buffer_flush_interval" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])
 *         if "mutation_buffer_max_num" in kwargs:
 */
  }

  /* "kudu/client.pyx":628
 *         if "mutation_buffer_flush_interval" in kwargs:
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])
 *         if "mutation_buffer_max_num" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_max_num(kwargs["mutation_buffer_max_num"])
 * 
 */
  __pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_mutation_buffer_max_num, __pyx_v_kwargs, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 628, __pyx_L1_error)
  __pyx_t_4 = (__pyx_t_5 != 0);
  if (__pyx_t_4) {

    /* "kudu/client.pyx":629
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])
 *         if "mutation_buffer_max_num" in kwargs:
 *             result.set_mutation_buffer_max_num(kwargs["mutation_buffer_max_num"])             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_set_mutation_buffer_max_num); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_n_s_mutation_buffer_max_num); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":628
 *         if "mutation_buffer_flush_interval" in kwargs:
 *             result.set_mutation_buffer_flush_interval(kwargs["mutation_buffer_flush_interval"])
 *         if "mutation_buffer_max_num" in kwargs:             # <<<<<<<<<<<<<<
 *             result.set_mutation_buffer_max_num(kwargs["mutation_buffer_max_num"])
 * 
 */
  }

  /* "kudu/client.pyx":631
 *             result.set_mutation_buffer_max_num(kwargs["mutation_buffer_max_num"])
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def new_table_alterer(self, Table table):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":584
 *         return result
 * 
 *     def new_session(self, flush_mode='manual', timeout_ms=5000, **kwargs):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new KuduSession for applying write operations.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("kudu.client.Client.new_session", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":633
 *         return result
 * 
 *     def new_table_alterer(self, Table table):             # <<<<<<<<<<<<<<
 *         """
 *         Create a TableAlterer object that can be used to apply a set of steps
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_25new_table_alterer(PyObject *__pyx_v_self, PyObject *__pyx_v_table); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_24new_table_alterer[] = "Client.new_table_alterer(self, Table table)\n\n        Create a TableAlterer object that can be used to apply a set of steps\n        to alter a table.\n\n        Parameters\n        ----------\n        table : Table\n          Table to alter. NOTE: The TableAlterer.alter() method will return\n          a new Table object with the updated information.\n\n        Examples\n        --------\n        table = client.table('example')\n        alterer = client.new_table_alterer(table)\n        table = alterer.rename('example2').alter()\n\n        Returns\n        -------\n        alterer : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Client_25new_table_alterer(PyObject *__pyx_v_self, PyObject *__pyx_v_table) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_table_alterer (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 633, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Client_24new_table_alterer(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), ((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_table));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_24new_table_alterer(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("new_table_alterer", 0);

  /* "kudu/client.pyx":654
 *         alterer : TableAlterer
 *         """
 *         return TableAlterer(table)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_TableAlterer), ((PyObject *)__pyx_v_table)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":633
 *         return result
 * 
 *     def new_table_alterer(self, Table table):             # <<<<<<<<<<<<<<
 *         """
 *         Create a TableAlterer object that can be used to apply a set of steps
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Client.new_table_alterer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":30
 * 
 *     cdef readonly:
 *         list master_addrs             # <<<<<<<<<<<<<<
 * 
 *     cpdef close(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_12master_addrs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Client_12master_addrs_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_12master_addrs___get__(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_12master_addrs___get__(struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->master_addrs);
  __pyx_r = __pyx_v_self->master_addrs;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_27__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_26__reduce_cython__[] = "Client.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Client_27__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_26__reduce_cython__(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_26__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Client.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Client_29__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Client_28__setstate_cython__[] = "Client.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Client_29__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Client_28__setstate_cython__(((struct __pyx_obj_4kudu_6client_Client *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Client_28__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Client *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Client.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":669
 *         void* data
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.data = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_8RawValue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_8RawValue_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4kudu_6client_8RawValue___cinit__(((struct __pyx_obj_4kudu_6client_RawValue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_8RawValue___cinit__(struct __pyx_obj_4kudu_6client_RawValue *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":670
 * 
 *     def __cinit__(self):
 *         self.data = NULL             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->data = NULL;

  /* "kudu/client.pyx":669
 *         void* data
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.data = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RawValue_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8RawValue_2__reduce_cython__[] = "RawValue.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_8RawValue_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RawValue_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_RawValue *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RawValue_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RawValue *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.RawValue.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RawValue_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_8RawValue_4__setstate_cython__[] = "RawValue.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_8RawValue_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RawValue_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_RawValue *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RawValue_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RawValue *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.RawValue.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":677
 *         int8_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int8_t> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_7Int8Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_7Int8Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Int8Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Int8Val___cinit__(((struct __pyx_obj_4kudu_6client_Int8Val *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_7Int8Val___cinit__(struct __pyx_obj_4kudu_6client_Int8Val *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int8_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":678
 * 
 *     def __cinit__(self, obj):
 *         self.val = <int8_t> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int8_t(__pyx_v_obj); if (unlikely((__pyx_t_1 == ((int8_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 678, __pyx_L1_error)
  __pyx_v_self->val = ((int8_t)__pyx_t_1);

  /* "kudu/client.pyx":679
 *     def __cinit__(self, obj):
 *         self.val = <int8_t> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":677
 *         int8_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int8_t> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Int8Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Int8Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Int8Val_2__reduce_cython__[] = "Int8Val.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_7Int8Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Int8Val_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_Int8Val *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Int8Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int8Val *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int8Val.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Int8Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_7Int8Val_4__setstate_cython__[] = "Int8Val.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_7Int8Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Int8Val_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_Int8Val *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Int8Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int8Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int8Val.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":686
 *         int16_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int16_t> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_8Int16Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_8Int16Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 686, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 686, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Int16Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_8Int16Val___cinit__(((struct __pyx_obj_4kudu_6client_Int16Val *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_8Int16Val___cinit__(struct __pyx_obj_4kudu_6client_Int16Val *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int16_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":687
 * 
 *     def __cinit__(self, obj):
 *         self.val = <int16_t> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int16_t(__pyx_v_obj); if (unlikely((__pyx_t_1 == ((int16_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 687, __pyx_L1_error)
  __pyx_v_self->val = ((int16_t)__pyx_t_1);

  /* "kudu/client.pyx":688
 *     def __cinit__(self, obj):
 *         self.val = <int16_t> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":686
 *         int16_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int16_t> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Int16Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8Int16Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8Int16Val_2__reduce_cython__[] = "Int16Val.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_8Int16Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8Int16Val_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_Int16Val *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8Int16Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int16Val *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int16Val.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8Int16Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_8Int16Val_4__setstate_cython__[] = "Int16Val.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_8Int16Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8Int16Val_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_Int16Val *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8Int16Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int16Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int16Val.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":695
 *         int32_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int32_t> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_8Int32Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_8Int32Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 695, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 695, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Int32Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_8Int32Val___cinit__(((struct __pyx_obj_4kudu_6client_Int32Val *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_8Int32Val___cinit__(struct __pyx_obj_4kudu_6client_Int32Val *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int32_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":696
 * 
 *     def __cinit__(self, obj):
 *         self.val = <int32_t> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int32_t(__pyx_v_obj); if (unlikely((__pyx_t_1 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
  __pyx_v_self->val = ((int32_t)__pyx_t_1);

  /* "kudu/client.pyx":697
 *     def __cinit__(self, obj):
 *         self.val = <int32_t> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":695
 *         int32_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int32_t> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Int32Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8Int32Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8Int32Val_2__reduce_cython__[] = "Int32Val.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_8Int32Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8Int32Val_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_Int32Val *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8Int32Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int32Val *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int32Val.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8Int32Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_8Int32Val_4__setstate_cython__[] = "Int32Val.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_8Int32Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8Int32Val_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_Int32Val *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8Int32Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int32Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int32Val.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":704
 *         int64_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int64_t> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_8Int64Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_8Int64Val_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 704, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 704, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Int64Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_8Int64Val___cinit__(((struct __pyx_obj_4kudu_6client_Int64Val *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_8Int64Val___cinit__(struct __pyx_obj_4kudu_6client_Int64Val *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int64_t __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":705
 * 
 *     def __cinit__(self, obj):
 *         self.val = <int64_t> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int64_t(__pyx_v_obj); if (unlikely((__pyx_t_1 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 705, __pyx_L1_error)
  __pyx_v_self->val = ((int64_t)__pyx_t_1);

  /* "kudu/client.pyx":706
 *     def __cinit__(self, obj):
 *         self.val = <int64_t> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":704
 *         int64_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <int64_t> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Int64Val.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8Int64Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8Int64Val_2__reduce_cython__[] = "Int64Val.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_8Int64Val_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8Int64Val_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_Int64Val *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8Int64Val_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int64Val *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int64Val.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8Int64Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_8Int64Val_4__setstate_cython__[] = "Int64Val.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_8Int64Val_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8Int64Val_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_Int64Val *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8Int64Val_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Int64Val *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Int64Val.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":713
 *         double val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <double> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_9DoubleVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_9DoubleVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 713, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 713, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.DoubleVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_9DoubleVal___cinit__(((struct __pyx_obj_4kudu_6client_DoubleVal *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_9DoubleVal___cinit__(struct __pyx_obj_4kudu_6client_DoubleVal *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":714
 * 
 *     def __cinit__(self, obj):
 *         self.val = <double> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_obj); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 714, __pyx_L1_error)
  __pyx_v_self->val = ((double)__pyx_t_1);

  /* "kudu/client.pyx":715
 *     def __cinit__(self, obj):
 *         self.val = <double> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":713
 *         double val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <double> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.DoubleVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9DoubleVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9DoubleVal_2__reduce_cython__[] = "DoubleVal.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_9DoubleVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9DoubleVal_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_DoubleVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9DoubleVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DoubleVal *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.DoubleVal.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9DoubleVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_9DoubleVal_4__setstate_cython__[] = "DoubleVal.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_9DoubleVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9DoubleVal_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_DoubleVal *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9DoubleVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DoubleVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.DoubleVal.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":722
 *         float val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <float> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_8FloatVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_8FloatVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 722, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 722, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.FloatVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_8FloatVal___cinit__(((struct __pyx_obj_4kudu_6client_FloatVal *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_8FloatVal___cinit__(struct __pyx_obj_4kudu_6client_FloatVal *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  float __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":723
 * 
 *     def __cinit__(self, obj):
 *         self.val = <float> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsFloat(__pyx_v_obj); if (unlikely((__pyx_t_1 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 723, __pyx_L1_error)
  __pyx_v_self->val = ((float)__pyx_t_1);

  /* "kudu/client.pyx":724
 *     def __cinit__(self, obj):
 *         self.val = <float> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":722
 *         float val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <float> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.FloatVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8FloatVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8FloatVal_2__reduce_cython__[] = "FloatVal.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_8FloatVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8FloatVal_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_FloatVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8FloatVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_FloatVal *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.FloatVal.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8FloatVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_8FloatVal_4__setstate_cython__[] = "FloatVal.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_8FloatVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8FloatVal_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_FloatVal *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8FloatVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_FloatVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.FloatVal.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":731
 *         c_bool val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <c_bool> obj
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_7BoolVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_7BoolVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 731, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 731, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.BoolVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7BoolVal___cinit__(((struct __pyx_obj_4kudu_6client_BoolVal *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_7BoolVal___cinit__(struct __pyx_obj_4kudu_6client_BoolVal *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":732
 * 
 *     def __cinit__(self, obj):
 *         self.val = <c_bool> obj             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
  __pyx_v_self->val = ((bool)__pyx_t_1);

  /* "kudu/client.pyx":733
 *     def __cinit__(self, obj):
 *         self.val = <c_bool> obj
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":731
 *         c_bool val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = <c_bool> obj
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.BoolVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7BoolVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7BoolVal_2__reduce_cython__[] = "BoolVal.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_7BoolVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7BoolVal_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_BoolVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7BoolVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_BoolVal *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.BoolVal.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7BoolVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_7BoolVal_4__setstate_cython__[] = "BoolVal.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_7BoolVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7BoolVal_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_BoolVal *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7BoolVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_BoolVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.BoolVal.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":746
 *         cdef Slice* val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.py_str = obj
 *         self.val = new Slice(<char*>self.py_str, len(self.py_str))
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_9StringVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_9StringVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.StringVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_9StringVal___cinit__(((struct __pyx_obj_4kudu_6client_StringVal *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_9StringVal___cinit__(struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  char *__pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  Py_ssize_t __pyx_t_3;
  kudu::Slice *__pyx_t_4;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":747
 * 
 *     def __cinit__(self, obj):
 *         self.py_str = obj             # <<<<<<<<<<<<<<
 *         self.val = new Slice(<char*>self.py_str, len(self.py_str))
 *         # The C++ API expects a Slice* to be passed to the range predicate
 */
  __Pyx_INCREF(__pyx_v_obj);
  __Pyx_GIVEREF(__pyx_v_obj);
  __Pyx_GOTREF(__pyx_v_self->py_str);
  __Pyx_DECREF(__pyx_v_self->py_str);
  __pyx_v_self->py_str = __pyx_v_obj;

  /* "kudu/client.pyx":748
 *     def __cinit__(self, obj):
 *         self.py_str = obj
 *         self.val = new Slice(<char*>self.py_str, len(self.py_str))             # <<<<<<<<<<<<<<
 *         # The C++ API expects a Slice* to be passed to the range predicate
 *         # constructor.
 */
  __pyx_t_1 = __Pyx_PyObject_AsWritableString(__pyx_v_self->py_str); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(0, 748, __pyx_L1_error)
  __pyx_t_2 = __pyx_v_self->py_str;
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 748, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->val = new kudu::Slice(((char *)__pyx_t_1), __pyx_t_3);

  /* "kudu/client.pyx":751
 *         # The C++ API expects a Slice* to be passed to the range predicate
 *         # constructor.
 *         self.data = self.val             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_t_4 = __pyx_v_self->val;
  __pyx_v_self->__pyx_base.data = __pyx_t_4;

  /* "kudu/client.pyx":746
 *         cdef Slice* val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.py_str = obj
 *         self.val = new Slice(<char*>self.py_str, len(self.py_str))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.StringVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":753
 *         self.data = self.val
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.val
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_9StringVal_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_9StringVal_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_9StringVal_2__dealloc__(((struct __pyx_obj_4kudu_6client_StringVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_9StringVal_2__dealloc__(struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":754
 * 
 *     def __dealloc__(self):
 *         del self.val             # <<<<<<<<<<<<<<
 * 
 * cdef class UnixtimeMicrosVal(RawValue):
 */
  delete __pyx_v_self->val;

  /* "kudu/client.pyx":753
 *         self.data = self.val
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.val
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9StringVal_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9StringVal_4__reduce_cython__[] = "StringVal.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_9StringVal_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9StringVal_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_StringVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9StringVal_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.StringVal.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9StringVal_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_9StringVal_6__setstate_cython__[] = "StringVal.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_9StringVal_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9StringVal_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_StringVal *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9StringVal_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_StringVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.StringVal.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":760
 *         int64_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = to_unixtime_micros(obj)
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_17UnixtimeMicrosVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_17UnixtimeMicrosVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 760, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 760, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.UnixtimeMicrosVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_17UnixtimeMicrosVal___cinit__(((struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_17UnixtimeMicrosVal___cinit__(struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int64_t __pyx_t_4;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":761
 * 
 *     def __cinit__(self, obj):
 *         self.val = to_unixtime_micros(obj)             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_to_unixtime_micros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_obj) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_obj);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int64_t(__pyx_t_1); if (unlikely((__pyx_t_4 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 761, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->val = __pyx_t_4;

  /* "kudu/client.pyx":762
 *     def __cinit__(self, obj):
 *         self.val = to_unixtime_micros(obj)
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * cdef class DateVal(RawValue):
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":760
 *         int64_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = to_unixtime_micros(obj)
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.UnixtimeMicrosVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_17UnixtimeMicrosVal_2__reduce_cython__[] = "UnixtimeMicrosVal.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_17UnixtimeMicrosVal_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_17UnixtimeMicrosVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.UnixtimeMicrosVal.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_17UnixtimeMicrosVal_4__setstate_cython__[] = "UnixtimeMicrosVal.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_17UnixtimeMicrosVal_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_17UnixtimeMicrosVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.UnixtimeMicrosVal.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":768
 *         int32_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = date_to_unix_epoch_days(obj)
 *         self.data = &self.val
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_7DateVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_7DateVal_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_obj = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 768, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_obj = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 768, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.DateVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7DateVal___cinit__(((struct __pyx_obj_4kudu_6client_DateVal *)__pyx_v_self), __pyx_v_obj);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_7DateVal___cinit__(struct __pyx_obj_4kudu_6client_DateVal *__pyx_v_self, PyObject *__pyx_v_obj) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int32_t __pyx_t_4;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":769
 * 
 *     def __cinit__(self, obj):
 *         self.val = date_to_unix_epoch_days(obj)             # <<<<<<<<<<<<<<
 *         self.data = &self.val
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_date_to_unix_epoch_days); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_obj) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_obj);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_PyInt_As_int32_t(__pyx_t_1); if (unlikely((__pyx_t_4 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->val = __pyx_t_4;

  /* "kudu/client.pyx":770
 *     def __cinit__(self, obj):
 *         self.val = date_to_unix_epoch_days(obj)
 *         self.data = &self.val             # <<<<<<<<<<<<<<
 * 
 * #----------------------------------------------------------------------
 */
  __pyx_v_self->__pyx_base.data = (&__pyx_v_self->val);

  /* "kudu/client.pyx":768
 *         int32_t val
 * 
 *     def __cinit__(self, obj):             # <<<<<<<<<<<<<<
 *         self.val = date_to_unix_epoch_days(obj)
 *         self.data = &self.val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.DateVal.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7DateVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7DateVal_2__reduce_cython__[] = "DateVal.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_7DateVal_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7DateVal_2__reduce_cython__(((struct __pyx_obj_4kudu_6client_DateVal *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7DateVal_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DateVal *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.DateVal.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7DateVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_7DateVal_4__setstate_cython__[] = "DateVal.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_7DateVal_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7DateVal_4__setstate_cython__(((struct __pyx_obj_4kudu_6client_DateVal *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7DateVal_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DateVal *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.DateVal.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":784
 *         public bint _own
 * 
 *     cdef _init(self, const KuduTabletServer* tserver):             # <<<<<<<<<<<<<<
 *         self._tserver = tserver
 *         self._own = 0
 */

static PyObject *__pyx_f_4kudu_6client_12TabletServer__init(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, kudu::client::KuduTabletServer const *__pyx_v_tserver) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init", 0);

  /* "kudu/client.pyx":785
 * 
 *     cdef _init(self, const KuduTabletServer* tserver):
 *         self._tserver = tserver             # <<<<<<<<<<<<<<
 *         self._own = 0
 *         return self
 */
  __pyx_v_self->_tserver = __pyx_v_tserver;

  /* "kudu/client.pyx":786
 *     cdef _init(self, const KuduTabletServer* tserver):
 *         self._tserver = tserver
 *         self._own = 0             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_v_self->_own = 0;

  /* "kudu/client.pyx":787
 *         self._tserver = tserver
 *         self._own = 0
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":784
 *         public bint _own
 * 
 *     cdef _init(self, const KuduTabletServer* tserver):             # <<<<<<<<<<<<<<
 *         self._tserver = tserver
 *         self._own = 0
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":789
 *         return self
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._tserver != NULL and self._own:
 *             del self._tserver
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_12TabletServer_1__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_12TabletServer_1__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_12TabletServer___dealloc__(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_12TabletServer___dealloc__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":790
 * 
 *     def __dealloc__(self):
 *         if self._tserver != NULL and self._own:             # <<<<<<<<<<<<<<
 *             del self._tserver
 * 
 */
  __pyx_t_2 = ((__pyx_v_self->_tserver != NULL) != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = (__pyx_v_self->_own != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "kudu/client.pyx":791
 *     def __dealloc__(self):
 *         if self._tserver != NULL and self._own:
 *             del self._tserver             # <<<<<<<<<<<<<<
 * 
 *     def __richcmp__(TabletServer self, TabletServer other, int op):
 */
    delete __pyx_v_self->_tserver;

    /* "kudu/client.pyx":790
 * 
 *     def __dealloc__(self):
 *         if self._tserver != NULL and self._own:             # <<<<<<<<<<<<<<
 *             del self._tserver
 * 
 */
  }

  /* "kudu/client.pyx":789
 *         return self
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._tserver != NULL and self._own:
 *             del self._tserver
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":793
 *             del self._tserver
 * 
 *     def __richcmp__(TabletServer self, TabletServer other, int op):             # <<<<<<<<<<<<<<
 *         if op == 2: # ==
 *             return ((self.uuid(), self.hostname(), self.port()) ==
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_3__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_3__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_4kudu_6client_TabletServer, 1, "other", 0))) __PYX_ERR(0, 793, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_2__richcmp__(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self), ((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_other), ((int)__pyx_v_op));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_2__richcmp__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_other, int __pyx_v_op) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("__richcmp__", 0);

  /* "kudu/client.pyx":794
 * 
 *     def __richcmp__(TabletServer self, TabletServer other, int op):
 *         if op == 2: # ==             # <<<<<<<<<<<<<<
 *             return ((self.uuid(), self.hostname(), self.port()) ==
 *                     (other.uuid(), other.hostname(), other.port()))
 */
  switch (__pyx_v_op) {
    case 2:

    /* "kudu/client.pyx":795
 *     def __richcmp__(TabletServer self, TabletServer other, int op):
 *         if op == 2: # ==
 *             return ((self.uuid(), self.hostname(), self.port()) ==             # <<<<<<<<<<<<<<
 *                     (other.uuid(), other.hostname(), other.port()))
 *         elif op == 3: # !=
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_uuid); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hostname); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_port); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":796
 *         if op == 2: # ==
 *             return ((self.uuid(), self.hostname(), self.port()) ==
 *                     (other.uuid(), other.hostname(), other.port()))             # <<<<<<<<<<<<<<
 *         elif op == 3: # !=
 *             return ((self.uuid(), self.hostname(), self.port()) !=
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_other), __pyx_n_s_uuid); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_other), __pyx_n_s_hostname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_other), __pyx_n_s_port); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_1);
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":794
 * 
 *     def __richcmp__(TabletServer self, TabletServer other, int op):
 *         if op == 2: # ==             # <<<<<<<<<<<<<<
 *             return ((self.uuid(), self.hostname(), self.port()) ==
 *                     (other.uuid(), other.hostname(), other.port()))
 */
    break;
    case 3:

    /* "kudu/client.pyx":798
 *                     (other.uuid(), other.hostname(), other.port()))
 *         elif op == 3: # !=
 *             return ((self.uuid(), self.hostname(), self.port()) !=             # <<<<<<<<<<<<<<
 *                     (other.uuid(), other.hostname(), other.port()))
 *         else:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_uuid); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hostname); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_port); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4);
    __pyx_t_1 = 0;
    __pyx_t_5 = 0;
    __pyx_t_4 = 0;

    /* "kudu/client.pyx":799
 *         elif op == 3: # !=
 *             return ((self.uuid(), self.hostname(), self.port()) !=
 *                     (other.uuid(), other.hostname(), other.port()))             # <<<<<<<<<<<<<<
 *         else:
 *             raise NotImplementedError
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_other), __pyx_n_s_uuid); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_other), __pyx_n_s_hostname); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_other), __pyx_n_s_port); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_1);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":797
 *             return ((self.uuid(), self.hostname(), self.port()) ==
 *                     (other.uuid(), other.hostname(), other.port()))
 *         elif op == 3: # !=             # <<<<<<<<<<<<<<
 *             return ((self.uuid(), self.hostname(), self.port()) !=
 *                     (other.uuid(), other.hostname(), other.port()))
 */
    break;
    default:

    /* "kudu/client.pyx":801
 *                     (other.uuid(), other.hostname(), other.port()))
 *         else:
 *             raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def uuid(self):
 */
    __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
    __PYX_ERR(0, 801, __pyx_L1_error)
    break;
  }

  /* "kudu/client.pyx":793
 *             del self._tserver
 * 
 *     def __richcmp__(TabletServer self, TabletServer other, int op):             # <<<<<<<<<<<<<<
 *         if op == 2: # ==
 *             return ((self.uuid(), self.hostname(), self.port()) ==
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("kudu.client.TabletServer.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":803
 *             raise NotImplementedError
 * 
 *     def uuid(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self._tserver.uuid())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_5uuid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12TabletServer_4uuid[] = "TabletServer.uuid(self)";
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_5uuid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("uuid (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_4uuid(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_4uuid(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("uuid", 0);

  /* "kudu/client.pyx":804
 * 
 *     def uuid(self):
 *         return frombytes(self._tserver.uuid())             # <<<<<<<<<<<<<<
 * 
 *     def hostname(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_self->_tserver->uuid()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":803
 *             raise NotImplementedError
 * 
 *     def uuid(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self._tserver.uuid())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.TabletServer.uuid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":806
 *         return frombytes(self._tserver.uuid())
 * 
 *     def hostname(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self._tserver.hostname())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_7hostname(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12TabletServer_6hostname[] = "TabletServer.hostname(self)";
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_7hostname(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("hostname (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_6hostname(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_6hostname(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("hostname", 0);

  /* "kudu/client.pyx":807
 * 
 *     def hostname(self):
 *         return frombytes(self._tserver.hostname())             # <<<<<<<<<<<<<<
 * 
 *     def port(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_self->_tserver->hostname()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":806
 *         return frombytes(self._tserver.uuid())
 * 
 *     def hostname(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self._tserver.hostname())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.TabletServer.hostname", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":809
 *         return frombytes(self._tserver.hostname())
 * 
 *     def port(self):             # <<<<<<<<<<<<<<
 *         return self._tserver.port()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_9port(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12TabletServer_8port[] = "TabletServer.port(self)";
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_9port(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("port (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_8port(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_8port(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("port", 0);

  /* "kudu/client.pyx":810
 * 
 *     def port(self):
 *         return self._tserver.port()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_uint16_t(__pyx_v_self->_tserver->port()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":809
 *         return frombytes(self._tserver.hostname())
 * 
 *     def port(self):             # <<<<<<<<<<<<<<
 *         return self._tserver.port()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TabletServer.port", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":782
 *     cdef:
 *         const KuduTabletServer* _tserver
 *         public bint _own             # <<<<<<<<<<<<<<
 * 
 *     cdef _init(self, const KuduTabletServer* tserver):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_4_own_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_4_own_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_4_own___get__(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_4_own___get__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_own); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TabletServer._own.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_4kudu_6client_12TabletServer_4_own_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4kudu_6client_12TabletServer_4_own_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_4_own_2__set__(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_12TabletServer_4_own_2__set__(struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 782, __pyx_L1_error)
  __pyx_v_self->_own = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.TabletServer._own.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12TabletServer_10__reduce_cython__[] = "TabletServer.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_10__reduce_cython__(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TabletServer.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_12TabletServer_12__setstate_cython__[] = "TabletServer.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_12TabletServer_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TabletServer_12__setstate_cython__(((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TabletServer_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TabletServer.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":820
 *     """
 * 
 *     def __cinit__(self, name, Client client):             # <<<<<<<<<<<<<<
 *         self._name = name
 *         self.parent = client
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_5Table_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_5Table_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  struct __pyx_obj_4kudu_6client_Client *__pyx_v_client = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_client,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(0, 820, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 820, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_name = values[0];
    __pyx_v_client = ((struct __pyx_obj_4kudu_6client_Client *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 820, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_client), __pyx_ptype_4kudu_6client_Client, 1, "client", 0))) __PYX_ERR(0, 820, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_5Table___cinit__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_name, __pyx_v_client);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_5Table___cinit__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_name, struct __pyx_obj_4kudu_6client_Client *__pyx_v_client) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":821
 * 
 *     def __cinit__(self, name, Client client):
 *         self._name = name             # <<<<<<<<<<<<<<
 *         self.parent = client
 * 
 */
  __Pyx_INCREF(__pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __Pyx_GOTREF(__pyx_v_self->_name);
  __Pyx_DECREF(__pyx_v_self->_name);
  __pyx_v_self->_name = __pyx_v_name;

  /* "kudu/client.pyx":822
 *     def __cinit__(self, name, Client client):
 *         self._name = name
 *         self.parent = client             # <<<<<<<<<<<<<<
 * 
 *         # Users should not instantiate directly
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_client));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_client));
  __Pyx_GOTREF(__pyx_v_self->parent);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->parent));
  __pyx_v_self->parent = __pyx_v_client;

  /* "kudu/client.pyx":825
 * 
 *         # Users should not instantiate directly
 *         self.schema = Schema()             # <<<<<<<<<<<<<<
 * 
 *     cdef init(self):
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6schema_Schema)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->schema);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->schema));
  __pyx_v_self->schema = ((struct __pyx_obj_4kudu_6schema_Schema *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":820
 *     """
 * 
 *     def __cinit__(self, name, Client client):             # <<<<<<<<<<<<<<
 *         self._name = name
 *         self.parent = client
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":827
 *         self.schema = Schema()
 * 
 *     cdef init(self):             # <<<<<<<<<<<<<<
 *         # Called after the refptr has been populated
 *         self.schema.schema = &self.ptr().schema()
 */

static PyObject *__pyx_f_4kudu_6client_5Table_init(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init", 0);

  /* "kudu/client.pyx":829
 *     cdef init(self):
 *         # Called after the refptr has been populated
 *         self.schema.schema = &self.ptr().schema()             # <<<<<<<<<<<<<<
 *         self.schema.own_schema = 0
 *         self.schema.parent = self
 */
  __pyx_v_self->schema->schema = (&__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self)->schema());

  /* "kudu/client.pyx":830
 *         # Called after the refptr has been populated
 *         self.schema.schema = &self.ptr().schema()
 *         self.schema.own_schema = 0             # <<<<<<<<<<<<<<
 *         self.schema.parent = self
 *         self.num_replicas = self.ptr().num_replicas()
 */
  __pyx_v_self->schema->own_schema = 0;

  /* "kudu/client.pyx":831
 *         self.schema.schema = &self.ptr().schema()
 *         self.schema.own_schema = 0
 *         self.schema.parent = self             # <<<<<<<<<<<<<<
 *         self.num_replicas = self.ptr().num_replicas()
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  __Pyx_GOTREF(__pyx_v_self->schema->parent);
  __Pyx_DECREF(__pyx_v_self->schema->parent);
  __pyx_v_self->schema->parent = ((PyObject *)__pyx_v_self);

  /* "kudu/client.pyx":832
 *         self.schema.own_schema = 0
 *         self.schema.parent = self
 *         self.num_replicas = self.ptr().num_replicas()             # <<<<<<<<<<<<<<
 * 
 *     def __len__(self):
 */
  __pyx_v_self->num_replicas = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self)->num_replicas();

  /* "kudu/client.pyx":827
 *         self.schema = Schema()
 * 
 *     cdef init(self):             # <<<<<<<<<<<<<<
 *         # Called after the refptr has been populated
 *         self.schema.schema = &self.ptr().schema()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":834
 *         self.num_replicas = self.ptr().num_replicas()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         # TODO: is this cheaply knowable?
 *         raise NotImplementedError
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_4kudu_6client_5Table_3__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_4kudu_6client_5Table_3__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_2__len__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_4kudu_6client_5Table_2__len__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "kudu/client.pyx":836
 *     def __len__(self):
 *         # TODO: is this cheaply knowable?
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, key):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(0, 836, __pyx_L1_error)

  /* "kudu/client.pyx":834
 *         self.num_replicas = self.ptr().num_replicas()
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         # TODO: is this cheaply knowable?
 *         raise NotImplementedError
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Table.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":838
 *         raise NotImplementedError
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         spec = self.schema[key]
 *         return Column(self, spec)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_5__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_4__getitem__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), ((PyObject *)__pyx_v_key));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_4__getitem__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_v_spec = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "kudu/client.pyx":839
 * 
 *     def __getitem__(self, key):
 *         spec = self.schema[key]             # <<<<<<<<<<<<<<
 *         return Column(self, spec)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->schema), __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_spec = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":840
 *     def __getitem__(self, key):
 *         spec = self.schema[key]
 *         return Column(self, spec)             # <<<<<<<<<<<<<<
 * 
 *     property name:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_spec);
  __Pyx_GIVEREF(__pyx_v_spec);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_spec);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_Column), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":838
 *         raise NotImplementedError
 * 
 *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
 *         spec = self.schema[key]
 *         return Column(self, spec)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_spec);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":844
 *     property name:
 *         """Name of the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().name())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_4name___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_4name___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "kudu/client.pyx":845
 *         """Name of the table."""
 *         def __get__(self):
 *             return frombytes(self.ptr().name())             # <<<<<<<<<<<<<<
 * 
 *     property id:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self)->name()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":844
 *     property name:
 *         """Name of the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().name())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Table.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":849
 *     property id:
 *         """Identifier string for the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().id())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_2id_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_2id_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_2id___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_2id___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "kudu/client.pyx":850
 *         """Identifier string for the table."""
 *         def __get__(self):
 *             return frombytes(self.ptr().id())             # <<<<<<<<<<<<<<
 * 
 *     # XXX: don't love this name
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self)->id()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":849
 *     property id:
 *         """Identifier string for the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().id())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Table.id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":855
 *     property num_columns:
 *         """Number of columns in the table's schema."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return len(self.schema)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_11num_columns_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_11num_columns_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_11num_columns___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_11num_columns___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "kudu/client.pyx":856
 *         """Number of columns in the table's schema."""
 *         def __get__(self):
 *             return len(self.schema)             # <<<<<<<<<<<<<<
 * 
 *     property owner:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_v_self->schema);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 856, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":855
 *     property num_columns:
 *         """Number of columns in the table's schema."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return len(self.schema)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.num_columns.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":860
 *     property owner:
 *         """Name of the owner of the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().owner())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_5owner_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_5owner_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_5owner___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_5owner___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "kudu/client.pyx":861
 *         """Name of the owner of the table."""
 *         def __get__(self):
 *             return frombytes(self.ptr().owner())             # <<<<<<<<<<<<<<
 * 
 *     property comment:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self)->owner()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":860
 *     property owner:
 *         """Name of the owner of the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().owner())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Table.owner.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":865
 *     property comment:
 *         """Comment on the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().comment())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_7comment_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_7comment_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_7comment___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_7comment___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);

  /* "kudu/client.pyx":866
 *         """Comment on the table."""
 *         def __get__(self):
 *             return frombytes(self.ptr().comment())             # <<<<<<<<<<<<<<
 * 
 *     def rename(self, new_name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self)->comment()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":865
 *     property comment:
 *         """Comment on the table."""
 *         def __get__(self):             # <<<<<<<<<<<<<<
 *             return frombytes(self.ptr().comment())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Table.comment.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":868
 *             return frombytes(self.ptr().comment())
 * 
 *     def rename(self, new_name):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_7rename(PyObject *__pyx_v_self, PyObject *__pyx_v_new_name); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_6rename[] = "Table.rename(self, new_name)";
static PyObject *__pyx_pw_4kudu_6client_5Table_7rename(PyObject *__pyx_v_self, PyObject *__pyx_v_new_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rename (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_6rename(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), ((PyObject *)__pyx_v_new_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_6rename(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_new_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rename", 0);

  /* "kudu/client.pyx":869
 * 
 *     def rename(self, new_name):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def drop(self):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(0, 869, __pyx_L1_error)

  /* "kudu/client.pyx":868
 *             return frombytes(self.ptr().comment())
 * 
 *     def rename(self, new_name):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Table.rename", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":871
 *         raise NotImplementedError
 * 
 *     def drop(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_9drop(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_8drop[] = "Table.drop(self)";
static PyObject *__pyx_pw_4kudu_6client_5Table_9drop(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("drop (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_8drop(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_8drop(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("drop", 0);

  /* "kudu/client.pyx":872
 * 
 *     def drop(self):
 *         raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *     def new_insert(self, record=None):
 */
  __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
  __PYX_ERR(0, 872, __pyx_L1_error)

  /* "kudu/client.pyx":871
 *         raise NotImplementedError
 * 
 *     def drop(self):             # <<<<<<<<<<<<<<
 *         raise NotImplementedError
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Table.drop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":874
 *         raise NotImplementedError
 * 
 *     def new_insert(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Insert operation. Pass the completed Insert to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_11new_insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_10new_insert[] = "Table.new_insert(self, record=None)\n\n        Create a new Insert operation. Pass the completed Insert to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        insert : Insert\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_11new_insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_insert (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_insert") < 0)) __PYX_ERR(0, 874, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_insert", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 874, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_10new_insert(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_10new_insert(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_insert", 0);

  /* "kudu/client.pyx":890
 *         insert : Insert
 *         """
 *         return Insert(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def new_insert_ignore(self, record=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_Insert), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":874
 *         raise NotImplementedError
 * 
 *     def new_insert(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Insert operation. Pass the completed Insert to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":892
 *         return Insert(self, record)
 * 
 *     def new_insert_ignore(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new InsertIgnore operation. Pass the completed InsertIgnore to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_13new_insert_ignore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_12new_insert_ignore[] = "Table.new_insert_ignore(self, record=None)\n\n        Create a new InsertIgnore operation. Pass the completed InsertIgnore to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        insertIgnore : InsertIgnore\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_13new_insert_ignore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_insert_ignore (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_insert_ignore") < 0)) __PYX_ERR(0, 892, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_insert_ignore", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 892, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_insert_ignore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_12new_insert_ignore(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_12new_insert_ignore(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_insert_ignore", 0);

  /* "kudu/client.pyx":908
 *         insertIgnore : InsertIgnore
 *         """
 *         return InsertIgnore(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def new_upsert(self, record=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_InsertIgnore), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":892
 *         return Insert(self, record)
 * 
 *     def new_insert_ignore(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new InsertIgnore operation. Pass the completed InsertIgnore to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_insert_ignore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":910
 *         return InsertIgnore(self, record)
 * 
 *     def new_upsert(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Upsert operation. Pass the completed Upsert to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_15new_upsert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_14new_upsert[] = "Table.new_upsert(self, record=None)\n\n        Create a new Upsert operation. Pass the completed Upsert to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        upsert : Upsert\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_15new_upsert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_upsert (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_upsert") < 0)) __PYX_ERR(0, 910, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_upsert", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 910, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_upsert", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_14new_upsert(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_14new_upsert(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_upsert", 0);

  /* "kudu/client.pyx":926
 *         upsert : Upsert
 *         """
 *         return Upsert(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def new_update(self, record=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_Upsert), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":910
 *         return InsertIgnore(self, record)
 * 
 *     def new_upsert(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Upsert operation. Pass the completed Upsert to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_upsert", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":928
 *         return Upsert(self, record)
 * 
 *     def new_update(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Update operation. Pass the completed Update to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_17new_update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_16new_update[] = "Table.new_update(self, record=None)\n\n        Create a new Update operation. Pass the completed Update to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        update : Update\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_17new_update(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_update (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_update") < 0)) __PYX_ERR(0, 928, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_update", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 928, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_16new_update(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_16new_update(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_update", 0);

  /* "kudu/client.pyx":944
 *         update : Update
 *         """
 *         return Update(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def new_update_ignore(self, record=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_Update), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":928
 *         return Upsert(self, record)
 * 
 *     def new_update(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Update operation. Pass the completed Update to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_update", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":946
 *         return Update(self, record)
 * 
 *     def new_update_ignore(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new UpdateIgnore operation. Pass the completed UpdateIgnore to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_19new_update_ignore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_18new_update_ignore[] = "Table.new_update_ignore(self, record=None)\n\n        Create a new UpdateIgnore operation. Pass the completed UpdateIgnore to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        updateIgnore : UpdateIgnore\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_19new_update_ignore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_update_ignore (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_update_ignore") < 0)) __PYX_ERR(0, 946, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_update_ignore", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 946, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_update_ignore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_18new_update_ignore(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_18new_update_ignore(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_update_ignore", 0);

  /* "kudu/client.pyx":962
 *         updateIgnore : UpdateIgnore
 *         """
 *         return UpdateIgnore(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def new_delete(self, record=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_UpdateIgnore), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":946
 *         return Update(self, record)
 * 
 *     def new_update_ignore(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new UpdateIgnore operation. Pass the completed UpdateIgnore to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_update_ignore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":964
 *         return UpdateIgnore(self, record)
 * 
 *     def new_delete(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Delete operation. Pass the completed Update to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_21new_delete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_20new_delete[] = "Table.new_delete(self, record=None)\n\n        Create a new Delete operation. Pass the completed Update to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        delete : Delete\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_21new_delete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_delete (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_delete") < 0)) __PYX_ERR(0, 964, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_delete", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 964, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_20new_delete(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_20new_delete(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_delete", 0);

  /* "kudu/client.pyx":980
 *         delete : Delete
 *         """
 *         return Delete(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def new_delete_ignore(self, record=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_Delete), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":964
 *         return UpdateIgnore(self, record)
 * 
 *     def new_delete(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new Delete operation. Pass the completed Update to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_delete", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":982
 *         return Delete(self, record)
 * 
 *     def new_delete_ignore(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new DeleteIgnore operation. Pass the completed DeleteIgnore to a Session.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_23new_delete_ignore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_22new_delete_ignore[] = "Table.new_delete_ignore(self, record=None)\n\n        Create a new DeleteIgnore operation. Pass the completed DeleteIgnore to a Session.\n        If a record is provided, a PartialRow will be initialized with values\n        from the input record. The record can be in the form of a tuple, dict,\n        or list. Dictionary keys can be either column names, indexes, or a\n        mix of both names and indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        deleteIgnore : DeleteIgnore\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_23new_delete_ignore(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_record = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_delete_ignore (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_record,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "new_delete_ignore") < 0)) __PYX_ERR(0, 982, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_record = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("new_delete_ignore", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 982, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Table.new_delete_ignore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_5Table_22new_delete_ignore(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), __pyx_v_record);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_22new_delete_ignore(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("new_delete_ignore", 0);

  /* "kudu/client.pyx":998
 *         deleteIgnore : DeleteIgnore
 *         """
 *         return DeleteIgnore(self, record)             # <<<<<<<<<<<<<<
 * 
 *     def scanner(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
  __Pyx_INCREF(__pyx_v_record);
  __Pyx_GIVEREF(__pyx_v_record);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_record);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4kudu_6client_DeleteIgnore), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":982
 *         return Delete(self, record)
 * 
 *     def new_delete_ignore(self, record=None):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new DeleteIgnore operation. Pass the completed DeleteIgnore to a Session.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Table.new_delete_ignore", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1000
 *         return DeleteIgnore(self, record)
 * 
 *     def scanner(self):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new scanner for this table for retrieving a selection of table
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_25scanner(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_24scanner[] = "Table.scanner(self)\n\n        Create a new scanner for this table for retrieving a selection of table\n        rows.\n\n        Examples\n        --------\n        scanner = table.scanner()\n        scanner.add_predicate(table['key'] > 10)\n        scanner.open()\n        batch = scanner.read_all()\n        tuples = batch.as_tuples()\n\n        Returns\n        -------\n        scanner : kudu.Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_25scanner(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("scanner (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_24scanner(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_24scanner(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("scanner", 0);

  /* "kudu/client.pyx":1017
 *         scanner : kudu.Scanner
 *         """
 *         cdef Scanner result = Scanner(self)             # <<<<<<<<<<<<<<
 *         result.scanner = new KuduScanner(self.ptr())
 *         return result
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_Scanner), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1018
 *         """
 *         cdef Scanner result = Scanner(self)
 *         result.scanner = new KuduScanner(self.ptr())             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_result->scanner = new kudu::client::KuduScanner(__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self));

  /* "kudu/client.pyx":1019
 *         cdef Scanner result = Scanner(self)
 *         result.scanner = new KuduScanner(self.ptr())
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def scan_token_builder(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":1000
 *         return DeleteIgnore(self, record)
 * 
 *     def scanner(self):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new scanner for this table for retrieving a selection of table
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.scanner", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1021
 *         return result
 * 
 *     def scan_token_builder(self):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new ScanTokenBuilder for this table to build a series of
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_27scan_token_builder(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_26scan_token_builder[] = "Table.scan_token_builder(self)\n\n        Create a new ScanTokenBuilder for this table to build a series of\n        scan tokens.\n\n        Examples\n        --------\n        builder = table.scan_token_builder()\n        builder.set_fault_tolerant().add_predicate(table['key'] > 10)\n        tokens = builder.build()\n        for token in tokens:\n            scanner = token.into_kudu_scanner()\n            scanner.open()\n            tuples = scanner.read_all_tuples()\n\n        Returns\n        -------\n        builder : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_5Table_27scan_token_builder(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("scan_token_builder (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_26scan_token_builder(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_26scan_token_builder(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("scan_token_builder", 0);

  /* "kudu/client.pyx":1040
 *         builder : ScanTokenBuilder
 *         """
 *         return ScanTokenBuilder(self)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_ScanTokenBuilder), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1021
 *         return result
 * 
 *     def scan_token_builder(self):             # <<<<<<<<<<<<<<
 *         """
 *         Create a new ScanTokenBuilder for this table to build a series of
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.scan_token_builder", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":65
 * 
 *     cdef readonly:
 *         object _name             # <<<<<<<<<<<<<<
 *         Schema schema
 *         Client parent
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_5_name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_5_name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_5_name___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_5_name___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->_name);
  __pyx_r = __pyx_v_self->_name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":66
 *     cdef readonly:
 *         object _name
 *         Schema schema             # <<<<<<<<<<<<<<
 *         Client parent
 *         int num_replicas
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_6schema_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_6schema_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_6schema___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_6schema___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->schema));
  __pyx_r = ((PyObject *)__pyx_v_self->schema);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":67
 *         object _name
 *         Schema schema
 *         Client parent             # <<<<<<<<<<<<<<
 *         int num_replicas
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_6parent_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_6parent___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_6parent___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->parent));
  __pyx_r = ((PyObject *)__pyx_v_self->parent);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":68
 *         Schema schema
 *         Client parent
 *         int num_replicas             # <<<<<<<<<<<<<<
 * 
 *     cdef init(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_12num_replicas_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_5Table_12num_replicas_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_12num_replicas___get__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_12num_replicas___get__(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->num_replicas); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.num_replicas.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_29__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_28__reduce_cython__[] = "Table.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_5Table_29__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_28__reduce_cython__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_5Table_31__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_5Table_30__setstate_cython__[] = "Table.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_5Table_31__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_5Table_30__setstate_cython__(((struct __pyx_obj_4kudu_6client_Table *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_5Table_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Table *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Table.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1061
 *         str name
 * 
 *     def __cinit__(self, Table parent, ColumnSchema spec):             # <<<<<<<<<<<<<<
 *         self.name = spec.name
 *         self.parent = parent
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_6Column_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_6Column_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_parent = 0;
  struct __pyx_obj_4kudu_6schema_ColumnSchema *__pyx_v_spec = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_parent,&__pyx_n_s_spec,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parent)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_spec)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); __PYX_ERR(0, 1061, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1061, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_parent = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_spec = ((struct __pyx_obj_4kudu_6schema_ColumnSchema *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1061, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Column.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parent), __pyx_ptype_4kudu_6client_Table, 1, "parent", 0))) __PYX_ERR(0, 1061, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_spec), __pyx_ptype_4kudu_6schema_ColumnSchema, 1, "spec", 0))) __PYX_ERR(0, 1061, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Column___cinit__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self), __pyx_v_parent, __pyx_v_spec);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_6Column___cinit__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_parent, struct __pyx_obj_4kudu_6schema_ColumnSchema *__pyx_v_spec) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":1062
 * 
 *     def __cinit__(self, Table parent, ColumnSchema spec):
 *         self.name = spec.name             # <<<<<<<<<<<<<<
 *         self.parent = parent
 *         self.spec = spec
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_spec), __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(PyString_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 1062, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->name);
  __Pyx_DECREF(__pyx_v_self->name);
  __pyx_v_self->name = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1063
 *     def __cinit__(self, Table parent, ColumnSchema spec):
 *         self.name = spec.name
 *         self.parent = parent             # <<<<<<<<<<<<<<
 *         self.spec = spec
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_parent));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_parent));
  __Pyx_GOTREF(__pyx_v_self->parent);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->parent));
  __pyx_v_self->parent = __pyx_v_parent;

  /* "kudu/client.pyx":1064
 *         self.name = spec.name
 *         self.parent = parent
 *         self.spec = spec             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_spec));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_spec));
  __Pyx_GOTREF(__pyx_v_self->spec);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->spec));
  __pyx_v_self->spec = __pyx_v_spec;

  /* "kudu/client.pyx":1061
 *         str name
 * 
 *     def __cinit__(self, Table parent, ColumnSchema spec):             # <<<<<<<<<<<<<<
 *         self.name = spec.name
 *         self.parent = parent
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Column.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1066
 *         self.spec = spec
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         result = ('Column({0}, parent={1}, type={2})'
 *                   .format(self.name,
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_3__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Column_3__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_2__repr__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_2__repr__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "kudu/client.pyx":1068
 *     def __repr__(self):
 *         result = ('Column({0}, parent={1}, type={2})'
 *                   .format(self.name,             # <<<<<<<<<<<<<<
 *                           self.parent.name,
 *                           self.spec.type.name))
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Column_0_parent_1_type_2, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);

  /* "kudu/client.pyx":1069
 *         result = ('Column({0}, parent={1}, type={2})'
 *                   .format(self.name,
 *                           self.parent.name,             # <<<<<<<<<<<<<<
 *                           self.spec.type.name))
 *         return result
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->parent), __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1069, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);

  /* "kudu/client.pyx":1070
 *                   .format(self.name,
 *                           self.parent.name,
 *                           self.spec.type.name))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->spec), __pyx_n_s_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_self->name, __pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_self->name, __pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(__pyx_v_self->name);
    __Pyx_GIVEREF(__pyx_v_self->name);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_self->name);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_5);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1071
 *                           self.parent.name,
 *                           self.spec.type.name))
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def __richcmp__(Column self, value, int op):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "kudu/client.pyx":1066
 *         self.spec = spec
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         result = ('Column({0}, parent={1}, type={2})'
 *                   .format(self.name,
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("kudu.client.Column.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1073
 *         return result
 * 
 *     def __richcmp__(Column self, value, int op):             # <<<<<<<<<<<<<<
 *         cdef:
 *             KuduPredicate* pred
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_value, int __pyx_v_op); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Column_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_value, int __pyx_v_op) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_4__richcmp__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self), ((PyObject *)__pyx_v_value), ((int)__pyx_v_op));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_4__richcmp__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, PyObject *__pyx_v_value, int __pyx_v_op) {
  kudu::client::KuduPredicate *__pyx_v_pred;
  struct __pyx_obj_4kudu_6schema_KuduValue *__pyx_v_val = 0;
  kudu::Slice __pyx_v_col_name_slice;
  enum  kudu::client::KuduPredicate::ComparisonOp __pyx_v_cmp_op;
  struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_result = 0;
  PyObject *__pyx_v__name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  Py_ssize_t __pyx_t_5;
  __Pyx_RefNannySetupContext("__richcmp__", 0);

  /* "kudu/client.pyx":1080
 *             ComparisonOp cmp_op
 *             Predicate result
 *             object _name = tobytes(self.name)             # <<<<<<<<<<<<<<
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1080, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v__name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1082
 *             object _name = tobytes(self.name)
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))             # <<<<<<<<<<<<<<
 *         if op == 0: # <
 *             cmp_op = KUDU_LESS
 */
  __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v__name); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 1082, __pyx_L1_error)
  __pyx_t_5 = PyObject_Length(__pyx_v__name); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1082, __pyx_L1_error)
  __pyx_v_col_name_slice = kudu::Slice(((char *)__pyx_t_4), __pyx_t_5);

  /* "kudu/client.pyx":1083
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))
 *         if op == 0: # <             # <<<<<<<<<<<<<<
 *             cmp_op = KUDU_LESS
 *         elif op == 1: # <=
 */
  switch (__pyx_v_op) {
    case 0:

    /* "kudu/client.pyx":1084
 *         col_name_slice = Slice(<char*> _name, len(_name))
 *         if op == 0: # <
 *             cmp_op = KUDU_LESS             # <<<<<<<<<<<<<<
 *         elif op == 1: # <=
 *             cmp_op = KUDU_LESS_EQUAL
 */
    __pyx_v_cmp_op =  kudu::client::KuduPredicate::LESS;

    /* "kudu/client.pyx":1083
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))
 *         if op == 0: # <             # <<<<<<<<<<<<<<
 *             cmp_op = KUDU_LESS
 *         elif op == 1: # <=
 */
    break;
    case 1:

    /* "kudu/client.pyx":1086
 *             cmp_op = KUDU_LESS
 *         elif op == 1: # <=
 *             cmp_op = KUDU_LESS_EQUAL             # <<<<<<<<<<<<<<
 *         elif op == 2: # ==
 *             cmp_op = KUDU_EQUAL
 */
    __pyx_v_cmp_op =  kudu::client::KuduPredicate::LESS_EQUAL;

    /* "kudu/client.pyx":1085
 *         if op == 0: # <
 *             cmp_op = KUDU_LESS
 *         elif op == 1: # <=             # <<<<<<<<<<<<<<
 *             cmp_op = KUDU_LESS_EQUAL
 *         elif op == 2: # ==
 */
    break;
    case 2:

    /* "kudu/client.pyx":1088
 *             cmp_op = KUDU_LESS_EQUAL
 *         elif op == 2: # ==
 *             cmp_op = KUDU_EQUAL             # <<<<<<<<<<<<<<
 *         elif op == 4: # >
 *             cmp_op = KUDU_GREATER
 */
    __pyx_v_cmp_op =  kudu::client::KuduPredicate::EQUAL;

    /* "kudu/client.pyx":1087
 *         elif op == 1: # <=
 *             cmp_op = KUDU_LESS_EQUAL
 *         elif op == 2: # ==             # <<<<<<<<<<<<<<
 *             cmp_op = KUDU_EQUAL
 *         elif op == 4: # >
 */
    break;
    case 4:

    /* "kudu/client.pyx":1090
 *             cmp_op = KUDU_EQUAL
 *         elif op == 4: # >
 *             cmp_op = KUDU_GREATER             # <<<<<<<<<<<<<<
 *         elif op == 5: # >=
 *             cmp_op = KUDU_GREATER_EQUAL
 */
    __pyx_v_cmp_op =  kudu::client::KuduPredicate::GREATER;

    /* "kudu/client.pyx":1089
 *         elif op == 2: # ==
 *             cmp_op = KUDU_EQUAL
 *         elif op == 4: # >             # <<<<<<<<<<<<<<
 *             cmp_op = KUDU_GREATER
 *         elif op == 5: # >=
 */
    break;
    case 5:

    /* "kudu/client.pyx":1092
 *             cmp_op = KUDU_GREATER
 *         elif op == 5: # >=
 *             cmp_op = KUDU_GREATER_EQUAL             # <<<<<<<<<<<<<<
 *         else:
 *             raise NotImplementedError
 */
    __pyx_v_cmp_op =  kudu::client::KuduPredicate::GREATER_EQUAL;

    /* "kudu/client.pyx":1091
 *         elif op == 4: # >
 *             cmp_op = KUDU_GREATER
 *         elif op == 5: # >=             # <<<<<<<<<<<<<<
 *             cmp_op = KUDU_GREATER_EQUAL
 *         else:
 */
    break;
    default:

    /* "kudu/client.pyx":1094
 *             cmp_op = KUDU_GREATER_EQUAL
 *         else:
 *             raise NotImplementedError             # <<<<<<<<<<<<<<
 * 
 *         val = self.spec.type.new_value(value)
 */
    __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0);
    __PYX_ERR(0, 1094, __pyx_L1_error)
    break;
  }

  /* "kudu/client.pyx":1096
 *             raise NotImplementedError
 * 
 *         val = self.spec.type.new_value(value)             # <<<<<<<<<<<<<<
 *         pred = (self.parent.ptr()
 *                 .NewComparisonPredicate(col_name_slice,
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->spec), __pyx_n_s_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_new_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_value);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4kudu_6schema_KuduValue))))) __PYX_ERR(0, 1096, __pyx_L1_error)
  __pyx_v_val = ((struct __pyx_obj_4kudu_6schema_KuduValue *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1098
 *         val = self.spec.type.new_value(value)
 *         pred = (self.parent.ptr()
 *                 .NewComparisonPredicate(col_name_slice,             # <<<<<<<<<<<<<<
 *                                         cmp_op, val._value))
 * 
 */
  __pyx_v_pred = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self->parent)->NewComparisonPredicate(__pyx_v_col_name_slice, __pyx_v_cmp_op, __pyx_v_val->_value);

  /* "kudu/client.pyx":1101
 *                                         cmp_op, val._value))
 * 
 *         result = Predicate()             # <<<<<<<<<<<<<<
 *         result.init(pred)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Predicate)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1102
 * 
 *         result = Predicate()
 *         result.init(pred)             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Predicate *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, __pyx_v_pred); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1104
 *         result.init(pred)
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def in_list(Column self, values):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":1073
 *         return result
 * 
 *     def __richcmp__(Column self, value, int op):             # <<<<<<<<<<<<<<
 *         cdef:
 *             KuduPredicate* pred
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Column.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_val);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XDECREF(__pyx_v__name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1106
 *         return result
 * 
 *     def in_list(Column self, values):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new InListPredicate for the Column. If a single value is
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_7in_list(PyObject *__pyx_v_self, PyObject *__pyx_v_values); /*proto*/
static char __pyx_doc_4kudu_6client_6Column_6in_list[] = "Column.in_list(self, values)\n\n        Creates a new InListPredicate for the Column. If a single value is\n        provided, then an equality comparison predicate is created.\n\n        Parameters\n        ----------\n        values : list\n\n        Examples\n        --------\n        scanner.add_predicate(table['key'].in_list([1, 2, 3])\n\n        Returns\n        -------\n        pred : Predicate\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Column_7in_list(PyObject *__pyx_v_self, PyObject *__pyx_v_values) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("in_list (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_6in_list(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self), ((PyObject *)__pyx_v_values));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_6in_list(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, PyObject *__pyx_v_values) {
  kudu::client::KuduPredicate *__pyx_v_pred;
  struct __pyx_obj_4kudu_6schema_KuduValue *__pyx_v_kval = 0;
  std::vector<kudu::client::KuduValue *>  __pyx_v_vals;
  kudu::Slice __pyx_v_col_name_slice;
  struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_result = 0;
  PyObject *__pyx_v__name = 0;
  PyObject *__pyx_v_val = NULL;
  kudu::client::KuduValue *__pyx_v__val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  Py_ssize_t __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *(*__pyx_t_9)(PyObject *);
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  __Pyx_RefNannySetupContext("in_list", 0);

  /* "kudu/client.pyx":1129
 *             Slice col_name_slice
 *             Predicate result
 *             object _name = tobytes(self.name)             # <<<<<<<<<<<<<<
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v__name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1131
 *             object _name = tobytes(self.name)
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))             # <<<<<<<<<<<<<<
 * 
 *         try:
 */
  __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v__name); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 1131, __pyx_L1_error)
  __pyx_t_5 = PyObject_Length(__pyx_v__name); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1131, __pyx_L1_error)
  __pyx_v_col_name_slice = kudu::Slice(((char *)__pyx_t_4), __pyx_t_5);

  /* "kudu/client.pyx":1133
 *         col_name_slice = Slice(<char*> _name, len(_name))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             for val in values:
 *                 kval = self.spec.type.new_value(val)
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
    __Pyx_XGOTREF(__pyx_t_6);
    __Pyx_XGOTREF(__pyx_t_7);
    __Pyx_XGOTREF(__pyx_t_8);
    /*try:*/ {

      /* "kudu/client.pyx":1134
 * 
 *         try:
 *             for val in values:             # <<<<<<<<<<<<<<
 *                 kval = self.spec.type.new_value(val)
 *                 vals.push_back(kval._value)
 */
      if (likely(PyList_CheckExact(__pyx_v_values)) || PyTuple_CheckExact(__pyx_v_values)) {
        __pyx_t_1 = __pyx_v_values; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1134, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1134, __pyx_L3_error)
      }
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1134, __pyx_L3_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1134, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1134, __pyx_L3_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1134, __pyx_L3_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_9(__pyx_t_1);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1134, __pyx_L3_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_2);
        __pyx_t_2 = 0;

        /* "kudu/client.pyx":1135
 *         try:
 *             for val in values:
 *                 kval = self.spec.type.new_value(val)             # <<<<<<<<<<<<<<
 *                 vals.push_back(kval._value)
 *         except TypeError:
 */
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->spec), __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1135, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_new_value); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1135, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
          }
        }
        __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_3, __pyx_v_val) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_val);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __pyx_L3_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4kudu_6schema_KuduValue))))) __PYX_ERR(0, 1135, __pyx_L3_error)
        __Pyx_XDECREF_SET(__pyx_v_kval, ((struct __pyx_obj_4kudu_6schema_KuduValue *)__pyx_t_2));
        __pyx_t_2 = 0;

        /* "kudu/client.pyx":1136
 *             for val in values:
 *                 kval = self.spec.type.new_value(val)
 *                 vals.push_back(kval._value)             # <<<<<<<<<<<<<<
 *         except TypeError:
 *             while not vals.empty():
 */
        try {
          __pyx_v_vals.push_back(__pyx_v_kval->_value);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 1136, __pyx_L3_error)
        }

        /* "kudu/client.pyx":1134
 * 
 *         try:
 *             for val in values:             # <<<<<<<<<<<<<<
 *                 kval = self.spec.type.new_value(val)
 *                 vals.push_back(kval._value)
 */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "kudu/client.pyx":1133
 *         col_name_slice = Slice(<char*> _name, len(_name))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             for val in values:
 *                 kval = self.spec.type.new_value(val)
 */
    }
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "kudu/client.pyx":1137
 *                 kval = self.spec.type.new_value(val)
 *                 vals.push_back(kval._value)
 *         except TypeError:             # <<<<<<<<<<<<<<
 *             while not vals.empty():
 *                 _val = vals.back()
 */
    __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
    if (__pyx_t_11) {
      __Pyx_AddTraceback("kudu.client.Column.in_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_2, &__pyx_t_10) < 0) __PYX_ERR(0, 1137, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_10);

      /* "kudu/client.pyx":1138
 *                 vals.push_back(kval._value)
 *         except TypeError:
 *             while not vals.empty():             # <<<<<<<<<<<<<<
 *                 _val = vals.back()
 *                 del _val
 */
      while (1) {
        __pyx_t_12 = ((!(__pyx_v_vals.empty() != 0)) != 0);
        if (!__pyx_t_12) break;

        /* "kudu/client.pyx":1139
 *         except TypeError:
 *             while not vals.empty():
 *                 _val = vals.back()             # <<<<<<<<<<<<<<
 *                 del _val
 *                 vals.pop_back()
 */
        __pyx_v__val = __pyx_v_vals.back();

        /* "kudu/client.pyx":1140
 *             while not vals.empty():
 *                 _val = vals.back()
 *                 del _val             # <<<<<<<<<<<<<<
 *                 vals.pop_back()
 *             raise
 */
        delete __pyx_v__val;

        /* "kudu/client.pyx":1141
 *                 _val = vals.back()
 *                 del _val
 *                 vals.pop_back()             # <<<<<<<<<<<<<<
 *             raise
 * 
 */
        __pyx_v_vals.pop_back();
      }

      /* "kudu/client.pyx":1142
 *                 del _val
 *                 vals.pop_back()
 *             raise             # <<<<<<<<<<<<<<
 * 
 *         pred = (self.parent.ptr()
 */
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_10);
      __Pyx_ErrRestoreWithState(__pyx_t_1, __pyx_t_2, __pyx_t_10);
      __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_10 = 0; 
      __PYX_ERR(0, 1142, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;

    /* "kudu/client.pyx":1133
 *         col_name_slice = Slice(<char*> _name, len(_name))
 * 
 *         try:             # <<<<<<<<<<<<<<
 *             for val in values:
 *                 kval = self.spec.type.new_value(val)
 */
    __Pyx_XGIVEREF(__pyx_t_6);
    __Pyx_XGIVEREF(__pyx_t_7);
    __Pyx_XGIVEREF(__pyx_t_8);
    __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
    goto __pyx_L1_error;
    __pyx_L8_try_end:;
  }

  /* "kudu/client.pyx":1145
 * 
 *         pred = (self.parent.ptr()
 *                 .NewInListPredicate(col_name_slice, &vals))             # <<<<<<<<<<<<<<
 * 
 *         result = Predicate()
 */
  __pyx_v_pred = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self->parent)->NewInListPredicate(__pyx_v_col_name_slice, (&__pyx_v_vals));

  /* "kudu/client.pyx":1147
 *                 .NewInListPredicate(col_name_slice, &vals))
 * 
 *         result = Predicate()             # <<<<<<<<<<<<<<
 *         result.init(pred)
 * 
 */
  __pyx_t_10 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Predicate)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1147, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "kudu/client.pyx":1148
 * 
 *         result = Predicate()
 *         result.init(pred)             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
  __pyx_t_10 = ((struct __pyx_vtabstruct_4kudu_6client_Predicate *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, __pyx_v_pred); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

  /* "kudu/client.pyx":1150
 *         result.init(pred)
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def is_not_null(Column self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":1106
 *         return result
 * 
 *     def in_list(Column self, values):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new InListPredicate for the Column. If a single value is
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("kudu.client.Column.in_list", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_kval);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XDECREF(__pyx_v__name);
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1152
 *         return result
 * 
 *     def is_not_null(Column self):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new IsNotNullPredicate for the Column which can be used for scanners
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_9is_not_null(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Column_8is_not_null[] = "Column.is_not_null(self)\n\n        Creates a new IsNotNullPredicate for the Column which can be used for scanners\n        on this table.\n\n        Examples\n        --------\n        scanner.add_predicate(table[col_name].is_not_null())\n\n        Returns\n        -------\n        pred : Predicate\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Column_9is_not_null(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_not_null (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_8is_not_null(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_8is_not_null(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  kudu::client::KuduPredicate *__pyx_v_pred;
  kudu::Slice __pyx_v_col_name_slice;
  struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_result = 0;
  PyObject *__pyx_v__name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  Py_ssize_t __pyx_t_5;
  __Pyx_RefNannySetupContext("is_not_null", 0);

  /* "kudu/client.pyx":1170
 *             Slice col_name_slice
 *             Predicate result
 *             object _name = tobytes(self.name)             # <<<<<<<<<<<<<<
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v__name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1172
 *             object _name = tobytes(self.name)
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))             # <<<<<<<<<<<<<<
 * 
 *         pred = (self.parent.ptr()
 */
  __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v__name); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 1172, __pyx_L1_error)
  __pyx_t_5 = PyObject_Length(__pyx_v__name); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1172, __pyx_L1_error)
  __pyx_v_col_name_slice = kudu::Slice(((char *)__pyx_t_4), __pyx_t_5);

  /* "kudu/client.pyx":1175
 * 
 *         pred = (self.parent.ptr()
 *                 .NewIsNotNullPredicate(col_name_slice))             # <<<<<<<<<<<<<<
 * 
 *         result = Predicate()
 */
  __pyx_v_pred = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self->parent)->NewIsNotNullPredicate(__pyx_v_col_name_slice);

  /* "kudu/client.pyx":1177
 *                 .NewIsNotNullPredicate(col_name_slice))
 * 
 *         result = Predicate()             # <<<<<<<<<<<<<<
 *         result.init(pred)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Predicate)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1178
 * 
 *         result = Predicate()
 *         result.init(pred)             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Predicate *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, __pyx_v_pred); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1178, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1180
 *         result.init(pred)
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def is_null(Column self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":1152
 *         return result
 * 
 *     def is_not_null(Column self):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new IsNotNullPredicate for the Column which can be used for scanners
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Column.is_not_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XDECREF(__pyx_v__name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1182
 *         return result
 * 
 *     def is_null(Column self):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new IsNullPredicate for the Column which can be used for scanners on this table.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_11is_null(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Column_10is_null[] = "Column.is_null(self)\n\n        Creates a new IsNullPredicate for the Column which can be used for scanners on this table.\n\n        Examples\n        --------\n        scanner.add_predicate(table[col_name].is_null())\n\n        Returns\n        -------\n        pred : Predicate\n        ";
static PyObject *__pyx_pw_4kudu_6client_6Column_11is_null(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_null (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_10is_null(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_10is_null(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  kudu::client::KuduPredicate *__pyx_v_pred;
  kudu::Slice __pyx_v_col_name_slice;
  struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_result = 0;
  PyObject *__pyx_v__name = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  char *__pyx_t_4;
  Py_ssize_t __pyx_t_5;
  __Pyx_RefNannySetupContext("is_null", 0);

  /* "kudu/client.pyx":1199
 *             Slice col_name_slice
 *             Predicate result
 *             object _name = tobytes(self.name)             # <<<<<<<<<<<<<<
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self->name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self->name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v__name = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1201
 *             object _name = tobytes(self.name)
 * 
 *         col_name_slice = Slice(<char*> _name, len(_name))             # <<<<<<<<<<<<<<
 * 
 *         pred = (self.parent.ptr()
 */
  __pyx_t_4 = __Pyx_PyObject_AsWritableString(__pyx_v__name); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) __PYX_ERR(0, 1201, __pyx_L1_error)
  __pyx_t_5 = PyObject_Length(__pyx_v__name); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1201, __pyx_L1_error)
  __pyx_v_col_name_slice = kudu::Slice(((char *)__pyx_t_4), __pyx_t_5);

  /* "kudu/client.pyx":1204
 * 
 *         pred = (self.parent.ptr()
 *                 .NewIsNullPredicate(col_name_slice))             # <<<<<<<<<<<<<<
 * 
 *         result = Predicate()
 */
  __pyx_v_pred = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_self->parent)->NewIsNullPredicate(__pyx_v_col_name_slice);

  /* "kudu/client.pyx":1206
 *                 .NewIsNullPredicate(col_name_slice))
 * 
 *         result = Predicate()             # <<<<<<<<<<<<<<
 *         result.init(pred)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Predicate)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1206, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1207
 * 
 *         result = Predicate()
 *         result.init(pred)             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Predicate *)__pyx_v_result->__pyx_vtab)->init(__pyx_v_result, __pyx_v_pred); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1209
 *         result.init(pred)
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 * class Partitioning(object):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":1182
 *         return result
 * 
 *     def is_null(Column self):             # <<<<<<<<<<<<<<
 *         """
 *         Creates a new IsNullPredicate for the Column which can be used for scanners on this table.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Column.is_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XDECREF(__pyx_v__name);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1057
 *     """
 *     cdef readonly:
 *         Table parent             # <<<<<<<<<<<<<<
 *         ColumnSchema spec
 *         str name
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_6parent_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Column_6parent_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_6parent___get__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_6parent___get__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->parent));
  __pyx_r = ((PyObject *)__pyx_v_self->parent);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1058
 *     cdef readonly:
 *         Table parent
 *         ColumnSchema spec             # <<<<<<<<<<<<<<
 *         str name
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_4spec_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Column_4spec_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_4spec___get__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_4spec___get__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self->spec));
  __pyx_r = ((PyObject *)__pyx_v_self->spec);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1059
 *         Table parent
 *         ColumnSchema spec
 *         str name             # <<<<<<<<<<<<<<
 * 
 *     def __cinit__(self, Table parent, ColumnSchema spec):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_6Column_4name_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_4name___get__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_4name___get__(struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self->name);
  __pyx_r = __pyx_v_self->name;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_13__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Column_12__reduce_cython__[] = "Column.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Column_13__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_12__reduce_cython__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Column *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Column.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Column_15__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Column_14__setstate_cython__[] = "Column.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Column_15__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Column_14__setstate_cython__(((struct __pyx_obj_4kudu_6client_Column *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Column_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Column *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Column.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1214
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._hash_partitions = []
 *         self._range_partition_cols = None
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_1__init__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_4kudu_6client_12Partitioning___init__[] = "Partitioning.__init__(self)";
static PyMethodDef __pyx_mdef_4kudu_6client_12Partitioning_1__init__ = {"__init__", (PyCFunction)__pyx_pw_4kudu_6client_12Partitioning_1__init__, METH_O, __pyx_doc_4kudu_6client_12Partitioning___init__};
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_1__init__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12Partitioning___init__(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12Partitioning___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "kudu/client.pyx":1215
 * 
 *     def __init__(self):
 *         self._hash_partitions = []             # <<<<<<<<<<<<<<
 *         self._range_partition_cols = None
 *         self._range_partitions = []
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_hash_partitions, __pyx_t_1) < 0) __PYX_ERR(0, 1215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1216
 *     def __init__(self):
 *         self._hash_partitions = []
 *         self._range_partition_cols = None             # <<<<<<<<<<<<<<
 *         self._range_partitions = []
 *         self._range_partition_splits = []
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_range_partition_cols, Py_None) < 0) __PYX_ERR(0, 1216, __pyx_L1_error)

  /* "kudu/client.pyx":1217
 *         self._hash_partitions = []
 *         self._range_partition_cols = None
 *         self._range_partitions = []             # <<<<<<<<<<<<<<
 *         self._range_partition_splits = []
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_range_partitions, __pyx_t_1) < 0) __PYX_ERR(0, 1217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1218
 *         self._range_partition_cols = None
 *         self._range_partitions = []
 *         self._range_partition_splits = []             # <<<<<<<<<<<<<<
 * 
 *     def add_hash_partitions(self, column_names, num_buckets, seed=None):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_range_partition_splits, __pyx_t_1) < 0) __PYX_ERR(0, 1218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1214
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._hash_partitions = []
 *         self._range_partition_cols = None
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Partitioning.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1220
 *         self._range_partition_splits = []
 * 
 *     def add_hash_partitions(self, column_names, num_buckets, seed=None):             # <<<<<<<<<<<<<<
 *         """
 *         Adds a set of hash partitions to the table.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_3add_hash_partitions(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12Partitioning_2add_hash_partitions[] = "Partitioning.add_hash_partitions(self, column_names, num_buckets, seed=None)\n\n        Adds a set of hash partitions to the table.\n\n        For each set of hash partitions added to the table, the total number of\n        table partitions is multiplied by the number of buckets. For example, if a\n        table is created with 3 split rows, and two hash partitions with 4 and 5\n        buckets respectively, the total number of table partitions will be 80\n        (4 range partitions * 4 hash buckets * 5 hash buckets). Optionally, a\n        seed can be used to randomize the mapping of rows to hash buckets.\n        Setting the seed may provide some amount of protection against denial\n        of service attacks when the hashed columns contain user provided values.\n\n        Parameters\n        ----------\n        column_names : list of string column names on which to partition\n        num_buckets : the number of buckets to create\n        seed : int - optional\n          Hash: seed for mapping rows to hash buckets.\n\n        Returns\n        -------\n        self: this object\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_12Partitioning_3add_hash_partitions = {"add_hash_partitions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12Partitioning_3add_hash_partitions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12Partitioning_2add_hash_partitions};
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_3add_hash_partitions(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_column_names = 0;
  PyObject *__pyx_v_num_buckets = 0;
  PyObject *__pyx_v_seed = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_hash_partitions (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_column_names,&__pyx_n_s_num_buckets,&__pyx_n_s_seed,0};
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)((PyObject *)Py_None));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_column_names)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("add_hash_partitions", 0, 3, 4, 1); __PYX_ERR(0, 1220, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_buckets)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("add_hash_partitions", 0, 3, 4, 2); __PYX_ERR(0, 1220, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_hash_partitions") < 0)) __PYX_ERR(0, 1220, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_column_names = values[1];
    __pyx_v_num_buckets = values[2];
    __pyx_v_seed = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_hash_partitions", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1220, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Partitioning.add_hash_partitions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12Partitioning_2add_hash_partitions(__pyx_self, __pyx_v_self, __pyx_v_column_names, __pyx_v_num_buckets, __pyx_v_seed);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12Partitioning_2add_hash_partitions(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_column_names, PyObject *__pyx_v_num_buckets, PyObject *__pyx_v_seed) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("add_hash_partitions", 0);
  __Pyx_INCREF(__pyx_v_column_names);

  /* "kudu/client.pyx":1244
 *         self: this object
 *         """
 *         if isinstance(column_names, str):             # <<<<<<<<<<<<<<
 *             column_names = [column_names]
 *         self._hash_partitions.append( (column_names, num_buckets, seed) )
 */
  __pyx_t_1 = PyString_Check(__pyx_v_column_names); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":1245
 *         """
 *         if isinstance(column_names, str):
 *             column_names = [column_names]             # <<<<<<<<<<<<<<
 *         self._hash_partitions.append( (column_names, num_buckets, seed) )
 *         return self
 */
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_column_names);
    __Pyx_GIVEREF(__pyx_v_column_names);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_column_names);
    __Pyx_DECREF_SET(__pyx_v_column_names, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":1244
 *         self: this object
 *         """
 *         if isinstance(column_names, str):             # <<<<<<<<<<<<<<
 *             column_names = [column_names]
 *         self._hash_partitions.append( (column_names, num_buckets, seed) )
 */
  }

  /* "kudu/client.pyx":1246
 *         if isinstance(column_names, str):
 *             column_names = [column_names]
 *         self._hash_partitions.append( (column_names, num_buckets, seed) )             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_hash_partitions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_column_names);
  __Pyx_GIVEREF(__pyx_v_column_names);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_column_names);
  __Pyx_INCREF(__pyx_v_num_buckets);
  __Pyx_GIVEREF(__pyx_v_num_buckets);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_num_buckets);
  __Pyx_INCREF(__pyx_v_seed);
  __Pyx_GIVEREF(__pyx_v_seed);
  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_seed);
  __pyx_t_5 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_4); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "kudu/client.pyx":1247
 *             column_names = [column_names]
 *         self._hash_partitions.append( (column_names, num_buckets, seed) )
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_range_partition_columns(self, column_names):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  /* "kudu/client.pyx":1220
 *         self._range_partition_splits = []
 * 
 *     def add_hash_partitions(self, column_names, num_buckets, seed=None):             # <<<<<<<<<<<<<<
 *         """
 *         Adds a set of hash partitions to the table.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Partitioning.add_hash_partitions", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_column_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1249
 *         return self
 * 
 *     def set_range_partition_columns(self, column_names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns on which the table will be range-partitioned.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_5set_range_partition_columns(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12Partitioning_4set_range_partition_columns[] = "Partitioning.set_range_partition_columns(self, column_names)\n\n        Sets the columns on which the table will be range-partitioned.\n\n        Every column must be a part of the table's primary key. If not set, the\n        table will be created with the primary-key columns as the range-partition\n        columns. If called with an empty vector, the table will be created without\n        range partitioning.\n\n        Parameters\n        ----------\n        column_names : list of string column names on which to partition\n\n        Returns\n        -------\n        self: this object\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_12Partitioning_5set_range_partition_columns = {"set_range_partition_columns", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12Partitioning_5set_range_partition_columns, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12Partitioning_4set_range_partition_columns};
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_5set_range_partition_columns(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_column_names = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_range_partition_columns (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_column_names,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_column_names)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_range_partition_columns", 1, 2, 2, 1); __PYX_ERR(0, 1249, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_range_partition_columns") < 0)) __PYX_ERR(0, 1249, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_column_names = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_range_partition_columns", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1249, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Partitioning.set_range_partition_columns", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12Partitioning_4set_range_partition_columns(__pyx_self, __pyx_v_self, __pyx_v_column_names);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12Partitioning_4set_range_partition_columns(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_column_names) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("set_range_partition_columns", 0);
  __Pyx_INCREF(__pyx_v_column_names);

  /* "kudu/client.pyx":1266
 *         self: this object
 *         """
 *         if isinstance(column_names, str):             # <<<<<<<<<<<<<<
 *             column_names = [column_names]
 *         self._range_partition_cols = column_names
 */
  __pyx_t_1 = PyString_Check(__pyx_v_column_names); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":1267
 *         """
 *         if isinstance(column_names, str):
 *             column_names = [column_names]             # <<<<<<<<<<<<<<
 *         self._range_partition_cols = column_names
 *         return self
 */
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1267, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_column_names);
    __Pyx_GIVEREF(__pyx_v_column_names);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_column_names);
    __Pyx_DECREF_SET(__pyx_v_column_names, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":1266
 *         self: this object
 *         """
 *         if isinstance(column_names, str):             # <<<<<<<<<<<<<<
 *             column_names = [column_names]
 *         self._range_partition_cols = column_names
 */
  }

  /* "kudu/client.pyx":1268
 *         if isinstance(column_names, str):
 *             column_names = [column_names]
 *         self._range_partition_cols = column_names             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_range_partition_cols, __pyx_v_column_names) < 0) __PYX_ERR(0, 1268, __pyx_L1_error)

  /* "kudu/client.pyx":1269
 *             column_names = [column_names]
 *         self._range_partition_cols = column_names
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_range_partition(self, lower_bound=None,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  /* "kudu/client.pyx":1249
 *         return self
 * 
 *     def set_range_partition_columns(self, column_names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns on which the table will be range-partitioned.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Partitioning.set_range_partition_columns", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_column_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1271
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                                   upper_bound=None,
 *                                   lower_bound_type='inclusive',
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_7add_range_partition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12Partitioning_6add_range_partition[] = "Partitioning.add_range_partition(self, lower_bound=None, upper_bound=None, lower_bound_type='inclusive', upper_bound_type='exclusive')\n\n        Add a range partition to the table.\n\n        Multiple range partitions may be added, but they must not overlap.\n        All range splits specified by add_range_partition_split must fall\n        in a range partition. The lower bound must be less than or equal\n        to the upper bound.\n\n        If this method is not called, the table's range will be unbounded.\n\n        Parameters\n        ----------\n        lower_bound : PartialRow/list/tuple/dict\n        upper_bound : PartialRow/list/tuple/dict\n        lower_bound_type : {'inclusive', 'exclusive'} or constants\n          kudu.EXCLUSIVE_BOUND and kudu.INCLUSIVE_BOUND\n        upper_bound_type : {'inclusive', 'exclusive'} or constants\n          kudu.EXCLUSIVE_BOUND and kudu.INCLUSIVE_BOUND\n\n        Returns\n        -------\n        self : Partitioning\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_12Partitioning_7add_range_partition = {"add_range_partition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12Partitioning_7add_range_partition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12Partitioning_6add_range_partition};
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_7add_range_partition(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_lower_bound = 0;
  PyObject *__pyx_v_upper_bound = 0;
  PyObject *__pyx_v_lower_bound_type = 0;
  PyObject *__pyx_v_upper_bound_type = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_range_partition (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_lower_bound,&__pyx_n_s_upper_bound,&__pyx_n_s_lower_bound_type,&__pyx_n_s_upper_bound_type,0};
    PyObject* values[5] = {0,0,0,0,0};
    values[1] = ((PyObject *)((PyObject *)Py_None));

    /* "kudu/client.pyx":1272
 * 
 *     def add_range_partition(self, lower_bound=None,
 *                                   upper_bound=None,             # <<<<<<<<<<<<<<
 *                                   lower_bound_type='inclusive',
 *                                   upper_bound_type='exclusive'):
 */
    values[2] = ((PyObject *)((PyObject *)Py_None));
    values[3] = ((PyObject *)((PyObject*)__pyx_n_s_inclusive));
    values[4] = ((PyObject *)((PyObject*)__pyx_n_s_exclusive));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower_bound);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper_bound);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower_bound_type);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper_bound_type);
          if (value) { values[4] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_range_partition") < 0)) __PYX_ERR(0, 1271, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_lower_bound = values[1];
    __pyx_v_upper_bound = values[2];
    __pyx_v_lower_bound_type = values[3];
    __pyx_v_upper_bound_type = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_range_partition", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1271, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Partitioning.add_range_partition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12Partitioning_6add_range_partition(__pyx_self, __pyx_v_self, __pyx_v_lower_bound, __pyx_v_upper_bound, __pyx_v_lower_bound_type, __pyx_v_upper_bound_type);

  /* "kudu/client.pyx":1271
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                                   upper_bound=None,
 *                                   lower_bound_type='inclusive',
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12Partitioning_6add_range_partition(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_lower_bound, PyObject *__pyx_v_upper_bound, PyObject *__pyx_v_lower_bound_type, PyObject *__pyx_v_upper_bound_type) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __Pyx_RefNannySetupContext("add_range_partition", 0);

  /* "kudu/client.pyx":1298
 *         self : Partitioning
 *         """
 *         if self._range_partition_cols:             # <<<<<<<<<<<<<<
 *             self._range_partitions.append(
 *                 (lower_bound, upper_bound, lower_bound_type, upper_bound_type)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_range_partition_cols); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2)) {

    /* "kudu/client.pyx":1299
 *         """
 *         if self._range_partition_cols:
 *             self._range_partitions.append(             # <<<<<<<<<<<<<<
 *                 (lower_bound, upper_bound, lower_bound_type, upper_bound_type)
 *             )
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_range_partitions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);

    /* "kudu/client.pyx":1300
 *         if self._range_partition_cols:
 *             self._range_partitions.append(
 *                 (lower_bound, upper_bound, lower_bound_type, upper_bound_type)             # <<<<<<<<<<<<<<
 *             )
 *         else:
 */
    __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_lower_bound);
    __Pyx_GIVEREF(__pyx_v_lower_bound);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_lower_bound);
    __Pyx_INCREF(__pyx_v_upper_bound);
    __Pyx_GIVEREF(__pyx_v_upper_bound);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_upper_bound);
    __Pyx_INCREF(__pyx_v_lower_bound_type);
    __Pyx_GIVEREF(__pyx_v_lower_bound_type);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_lower_bound_type);
    __Pyx_INCREF(__pyx_v_upper_bound_type);
    __Pyx_GIVEREF(__pyx_v_upper_bound_type);
    PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_upper_bound_type);

    /* "kudu/client.pyx":1299
 *         """
 *         if self._range_partition_cols:
 *             self._range_partitions.append(             # <<<<<<<<<<<<<<
 *                 (lower_bound, upper_bound, lower_bound_type, upper_bound_type)
 *             )
 */
    __pyx_t_4 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_t_3); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1299, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "kudu/client.pyx":1298
 *         self : Partitioning
 *         """
 *         if self._range_partition_cols:             # <<<<<<<<<<<<<<
 *             self._range_partitions.append(
 *                 (lower_bound, upper_bound, lower_bound_type, upper_bound_type)
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":1303
 *             )
 *         else:
 *             raise ValueError("Range Partition Columns must be set before " +             # <<<<<<<<<<<<<<
 *                              "adding a range partition.")
 * 
 */
  /*else*/ {
    __pyx_t_3 = PyNumber_Add(__pyx_kp_s_Range_Partition_Columns_must_be, __pyx_kp_s_adding_a_range_partition); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 1303, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "kudu/client.pyx":1306
 *                              "adding a range partition.")
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_range_partition_split(self, split_row):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  /* "kudu/client.pyx":1271
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                                   upper_bound=None,
 *                                   lower_bound_type='inclusive',
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Partitioning.add_range_partition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1308
 *         return self
 * 
 *     def add_range_partition_split(self, split_row):             # <<<<<<<<<<<<<<
 *         """
 *         Add a range partition split at the provided row.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_9add_range_partition_split(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12Partitioning_8add_range_partition_split[] = "Partitioning.add_range_partition_split(self, split_row)\n\n        Add a range partition split at the provided row.\n\n        Parameters\n        ----------\n        split_row : PartialRow/list/tuple/dict\n\n        Returns\n        -------\n        self : Partitioning\n        ";
static PyMethodDef __pyx_mdef_4kudu_6client_12Partitioning_9add_range_partition_split = {"add_range_partition_split", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12Partitioning_9add_range_partition_split, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12Partitioning_8add_range_partition_split};
static PyObject *__pyx_pw_4kudu_6client_12Partitioning_9add_range_partition_split(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_split_row = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_range_partition_split (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_split_row,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_split_row)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("add_range_partition_split", 1, 2, 2, 1); __PYX_ERR(0, 1308, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_range_partition_split") < 0)) __PYX_ERR(0, 1308, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_split_row = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_range_partition_split", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1308, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Partitioning.add_range_partition_split", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12Partitioning_8add_range_partition_split(__pyx_self, __pyx_v_self, __pyx_v_split_row);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12Partitioning_8add_range_partition_split(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_split_row) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("add_range_partition_split", 0);

  /* "kudu/client.pyx":1320
 *         self : Partitioning
 *         """
 *         if self._range_partition_cols:             # <<<<<<<<<<<<<<
 *             self._range_partition_splits.append(split_row)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_range_partition_cols); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(__pyx_t_2)) {

    /* "kudu/client.pyx":1321
 *         """
 *         if self._range_partition_cols:
 *             self._range_partition_splits.append(split_row)             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError("Range Partition Columns must be set before " +
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_range_partition_splits); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_Append(__pyx_t_1, __pyx_v_split_row); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 1321, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":1320
 *         self : Partitioning
 *         """
 *         if self._range_partition_cols:             # <<<<<<<<<<<<<<
 *             self._range_partition_splits.append(split_row)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":1323
 *             self._range_partition_splits.append(split_row)
 *         else:
 *             raise ValueError("Range Partition Columns must be set before " +             # <<<<<<<<<<<<<<
 *                              "adding a range partition split.")
 * 
 */
  /*else*/ {
    __pyx_t_1 = PyNumber_Add(__pyx_kp_s_Range_Partition_Columns_must_be, __pyx_kp_s_adding_a_range_partition_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 1323, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "kudu/client.pyx":1326
 *                              "adding a range partition split.")
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_self);
  __pyx_r = __pyx_v_self;
  goto __pyx_L0;

  /* "kudu/client.pyx":1308
 *         return self
 * 
 *     def add_range_partition_split(self, split_row):             # <<<<<<<<<<<<<<
 *         """
 *         Add a range partition split at the provided row.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Partitioning.add_range_partition_split", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1338
 *         KuduPredicate* pred
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.pred = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_9Predicate_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_9Predicate_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4kudu_6client_9Predicate___cinit__(((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_9Predicate___cinit__(struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":1339
 * 
 *     def __cinit__(self):
 *         self.pred = NULL             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->pred = NULL;

  /* "kudu/client.pyx":1338
 *         KuduPredicate* pred
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.pred = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1341
 *         self.pred = NULL
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.pred != NULL:
 *             del self.pred
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_9Predicate_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_9Predicate_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_9Predicate_2__dealloc__(((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_9Predicate_2__dealloc__(struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":1342
 * 
 *     def __dealloc__(self):
 *         if self.pred != NULL:             # <<<<<<<<<<<<<<
 *             del self.pred
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->pred != NULL) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":1343
 *     def __dealloc__(self):
 *         if self.pred != NULL:
 *             del self.pred             # <<<<<<<<<<<<<<
 * 
 *     cdef init(self, KuduPredicate* pred):
 */
    delete __pyx_v_self->pred;

    /* "kudu/client.pyx":1342
 * 
 *     def __dealloc__(self):
 *         if self.pred != NULL:             # <<<<<<<<<<<<<<
 *             del self.pred
 * 
 */
  }

  /* "kudu/client.pyx":1341
 *         self.pred = NULL
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self.pred != NULL:
 *             del self.pred
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":1345
 *             del self.pred
 * 
 *     cdef init(self, KuduPredicate* pred):             # <<<<<<<<<<<<<<
 *         self.pred = pred
 * 
 */

static PyObject *__pyx_f_4kudu_6client_9Predicate_init(struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self, kudu::client::KuduPredicate *__pyx_v_pred) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init", 0);

  /* "kudu/client.pyx":1346
 * 
 *     cdef init(self, KuduPredicate* pred):
 *         self.pred = pred             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->pred = __pyx_v_pred;

  /* "kudu/client.pyx":1345
 *             del self.pred
 * 
 *     cdef init(self, KuduPredicate* pred):             # <<<<<<<<<<<<<<
 *         self.pred = pred
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9Predicate_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9Predicate_4__reduce_cython__[] = "Predicate.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_9Predicate_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9Predicate_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9Predicate_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Predicate.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9Predicate_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_9Predicate_6__setstate_cython__[] = "Predicate.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_9Predicate_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9Predicate_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9Predicate_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Predicate.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1366
 *     """
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_7Session_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_7Session_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4kudu_6client_7Session___cinit__(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_7Session___cinit__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1369
 *         pass
 * 
 *     def set_flush_mode(self, flush_mode='manual'):             # <<<<<<<<<<<<<<
 *         """
 *         Set the session operation flush mode
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_3set_flush_mode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_2set_flush_mode[] = "Session.set_flush_mode(self, flush_mode='manual')\n\n        Set the session operation flush mode\n\n        Parameters\n        ----------\n        flush_mode : {'manual', 'sync', 'background'}, default 'manual'\n          You can also use the constants FLUSH_MANUAL, FLUSH_AUTO_SYNC,\n          and FLUSH_AUTO_BACKGROUND\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_3set_flush_mode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_flush_mode = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_flush_mode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flush_mode,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)__pyx_n_s_manual);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flush_mode);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_flush_mode") < 0)) __PYX_ERR(0, 1369, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_flush_mode = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_flush_mode", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1369, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Session.set_flush_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Session_2set_flush_mode(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), __pyx_v_flush_mode);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_2set_flush_mode(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, PyObject *__pyx_v_flush_mode) {
  kudu::Status __pyx_v_status;
  enum  kudu::client::KuduSession::FlushMode __pyx_v_fmode;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  enum  kudu::client::KuduSession::FlushMode __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  __Pyx_RefNannySetupContext("set_flush_mode", 0);

  /* "kudu/client.pyx":1382
 *         cdef FlushMode fmode
 * 
 *         if isinstance(flush_mode, int):             # <<<<<<<<<<<<<<
 *             # todo: validation
 *             fmode = <FlushMode> flush_mode
 */
  __pyx_t_1 = PyInt_Check(__pyx_v_flush_mode); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":1384
 *         if isinstance(flush_mode, int):
 *             # todo: validation
 *             fmode = <FlushMode> flush_mode             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    __pyx_t_3 = ((enum  kudu::client::KuduSession::FlushMode)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(__pyx_v_flush_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L1_error)
    __pyx_v_fmode = ((enum  kudu::client::KuduSession::FlushMode)__pyx_t_3);

    /* "kudu/client.pyx":1382
 *         cdef FlushMode fmode
 * 
 *         if isinstance(flush_mode, int):             # <<<<<<<<<<<<<<
 *             # todo: validation
 *             fmode = <FlushMode> flush_mode
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":1386
 *             fmode = <FlushMode> flush_mode
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 fmode = _flush_modes[flush_mode.lower()]
 *             except KeyError:
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      /*try:*/ {

        /* "kudu/client.pyx":1387
 *         else:
 *             try:
 *                 fmode = _flush_modes[flush_mode.lower()]             # <<<<<<<<<<<<<<
 *             except KeyError:
 *                 raise ValueError('Invalid flush mode: {0}'
 */
        if (unlikely(__pyx_v_4kudu_6client__flush_modes == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 1387, __pyx_L4_error)
        }
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_flush_mode, __pyx_n_s_lower); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1387, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
          }
        }
        __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1387, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__flush_modes, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1387, __pyx_L4_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_3 = ((enum  kudu::client::KuduSession::FlushMode)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(__pyx_t_8)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1387, __pyx_L4_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_fmode = __pyx_t_3;

        /* "kudu/client.pyx":1386
 *             fmode = <FlushMode> flush_mode
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 fmode = _flush_modes[flush_mode.lower()]
 *             except KeyError:
 */
      }
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L9_try_end;
      __pyx_L4_error:;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "kudu/client.pyx":1388
 *             try:
 *                 fmode = _flush_modes[flush_mode.lower()]
 *             except KeyError:             # <<<<<<<<<<<<<<
 *                 raise ValueError('Invalid flush mode: {0}'
 *                                  .format(flush_mode))
 */
      __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_10) {
        __Pyx_AddTraceback("kudu.client.Session.set_flush_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_9) < 0) __PYX_ERR(0, 1388, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GOTREF(__pyx_t_9);

        /* "kudu/client.pyx":1390
 *             except KeyError:
 *                 raise ValueError('Invalid flush mode: {0}'
 *                                  .format(flush_mode))             # <<<<<<<<<<<<<<
 * 
 *         status = self.s.get().SetFlushMode(fmode)
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Invalid_flush_mode_0, __pyx_n_s_format); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1390, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_13 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
          }
        }
        __pyx_t_11 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_13, __pyx_v_flush_mode) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_flush_mode);
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1390, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

        /* "kudu/client.pyx":1389
 *                 fmode = _flush_modes[flush_mode.lower()]
 *             except KeyError:
 *                 raise ValueError('Invalid flush mode: {0}'             # <<<<<<<<<<<<<<
 *                                  .format(flush_mode))
 * 
 */
        __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1389, __pyx_L6_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_Raise(__pyx_t_12, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __PYX_ERR(0, 1389, __pyx_L6_except_error)
      }
      goto __pyx_L6_except_error;
      __pyx_L6_except_error:;

      /* "kudu/client.pyx":1386
 *             fmode = <FlushMode> flush_mode
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 fmode = _flush_modes[flush_mode.lower()]
 *             except KeyError:
 */
      __Pyx_XGIVEREF(__pyx_t_4);
      __Pyx_XGIVEREF(__pyx_t_5);
      __Pyx_XGIVEREF(__pyx_t_6);
      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
      goto __pyx_L1_error;
      __pyx_L9_try_end:;
    }
  }
  __pyx_L3:;

  /* "kudu/client.pyx":1392
 *                                  .format(flush_mode))
 * 
 *         status = self.s.get().SetFlushMode(fmode)             # <<<<<<<<<<<<<<
 * 
 *         check_status(status)
 */
  __pyx_v_status = __pyx_v_self->s.get()->SetFlushMode(__pyx_v_fmode);

  /* "kudu/client.pyx":1394
 *         status = self.s.get().SetFlushMode(fmode)
 * 
 *         check_status(status)             # <<<<<<<<<<<<<<
 * 
 *     def set_timeout_ms(self, int64_t ms):
 */
  __pyx_t_9 = __pyx_f_4kudu_6errors_check_status(__pyx_v_status); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "kudu/client.pyx":1369
 *         pass
 * 
 *     def set_flush_mode(self, flush_mode='manual'):             # <<<<<<<<<<<<<<
 *         """
 *         Set the session operation flush mode
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("kudu.client.Session.set_flush_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1396
 *         check_status(status)
 * 
 *     def set_timeout_ms(self, int64_t ms):             # <<<<<<<<<<<<<<
 *         """
 *         Set the session timeout in milliseconds
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_5set_timeout_ms(PyObject *__pyx_v_self, PyObject *__pyx_arg_ms); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_4set_timeout_ms[] = "Session.set_timeout_ms(self, int64_t ms)\n\n        Set the session timeout in milliseconds\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_5set_timeout_ms(PyObject *__pyx_v_self, PyObject *__pyx_arg_ms) {
  int64_t __pyx_v_ms;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_timeout_ms (wrapper)", 0);
  assert(__pyx_arg_ms); {
    __pyx_v_ms = __Pyx_PyInt_As_int64_t(__pyx_arg_ms); if (unlikely((__pyx_v_ms == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1396, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Session.set_timeout_ms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Session_4set_timeout_ms(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((int64_t)__pyx_v_ms));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_4set_timeout_ms(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, int64_t __pyx_v_ms) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_timeout_ms", 0);

  /* "kudu/client.pyx":1400
 *         Set the session timeout in milliseconds
 *         """
 *         self.s.get().SetTimeoutMillis(ms)             # <<<<<<<<<<<<<<
 * 
 *     def set_mutation_buffer_space(self, size_t size_bytes):
 */
  __pyx_v_self->s.get()->SetTimeoutMillis(__pyx_v_ms);

  /* "kudu/client.pyx":1396
 *         check_status(status)
 * 
 *     def set_timeout_ms(self, int64_t ms):             # <<<<<<<<<<<<<<
 *         """
 *         Set the session timeout in milliseconds
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1402
 *         self.s.get().SetTimeoutMillis(ms)
 * 
 *     def set_mutation_buffer_space(self, size_t size_bytes):             # <<<<<<<<<<<<<<
 *         """
 *         Set the amount of buffer space used by this session for outbound writes.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_7set_mutation_buffer_space(PyObject *__pyx_v_self, PyObject *__pyx_arg_size_bytes); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_6set_mutation_buffer_space[] = "Session.set_mutation_buffer_space(self, size_t size_bytes)\n\n        Set the amount of buffer space used by this session for outbound writes.\n\n        The effect of the buffer size varies based on the flush mode of the session:\n\n            AUTO_FLUSH_SYNC: since no buffering is done, this has no effect.\n            AUTO_FLUSH_BACKGROUND: if the buffer space is exhausted, then write calls\n                will block until there is space available in the buffer.\n            MANUAL_FLUSH: if the buffer space is exhausted, then write calls will return\n                an error\n\n        By default, the buffer space is set to 7 MiB (i.e. 7 * 1024 * 1024 bytes).\n\n        Parameters\n        ----------\n        size_bytes : Size of the buffer space to set (number of bytes)\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_7set_mutation_buffer_space(PyObject *__pyx_v_self, PyObject *__pyx_arg_size_bytes) {
  size_t __pyx_v_size_bytes;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mutation_buffer_space (wrapper)", 0);
  assert(__pyx_arg_size_bytes); {
    __pyx_v_size_bytes = __Pyx_PyInt_As_size_t(__pyx_arg_size_bytes); if (unlikely((__pyx_v_size_bytes == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 1402, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_space", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Session_6set_mutation_buffer_space(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((size_t)__pyx_v_size_bytes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_6set_mutation_buffer_space(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, size_t __pyx_v_size_bytes) {
  kudu::Status __pyx_v_status;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mutation_buffer_space", 0);

  /* "kudu/client.pyx":1420
 *         size_bytes : Size of the buffer space to set (number of bytes)
 *         """
 *         status = self.s.get().SetMutationBufferSpace(size_bytes)             # <<<<<<<<<<<<<<
 * 
 *         check_status(status)
 */
  __pyx_v_status = __pyx_v_self->s.get()->SetMutationBufferSpace(__pyx_v_size_bytes);

  /* "kudu/client.pyx":1422
 *         status = self.s.get().SetMutationBufferSpace(size_bytes)
 * 
 *         check_status(status)             # <<<<<<<<<<<<<<
 * 
 *     def set_mutation_buffer_flush_watermark(self, double watermark_pct):
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1402
 *         self.s.get().SetTimeoutMillis(ms)
 * 
 *     def set_mutation_buffer_space(self, size_t size_bytes):             # <<<<<<<<<<<<<<
 *         """
 *         Set the amount of buffer space used by this session for outbound writes.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_space", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1424
 *         check_status(status)
 * 
 *     def set_mutation_buffer_flush_watermark(self, double watermark_pct):             # <<<<<<<<<<<<<<
 *         """
 *         Set the buffer watermark to trigger flush in AUTO_FLUSH_BACKGROUND mode.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_9set_mutation_buffer_flush_watermark(PyObject *__pyx_v_self, PyObject *__pyx_arg_watermark_pct); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_8set_mutation_buffer_flush_watermark[] = "Session.set_mutation_buffer_flush_watermark(self, double watermark_pct)\n\n        Set the buffer watermark to trigger flush in AUTO_FLUSH_BACKGROUND mode.\n\n        This method sets the watermark for fresh operations in the buffer when running\n        in AUTO_FLUSH_BACKGROUND mode: once the specified threshold is reached, the\n        session starts sending the accumulated write operations to the appropriate\n        tablet servers. The flush watermark determines how much of the buffer space is\n        taken by newly submitted operations. Setting this level to 100% results in\n        flushing the buffer only when the newly applied operation would overflow the\n        buffer. By default, the buffer flush watermark is set to 50%.\n\n        Parameters\n        ----------\n        watermark_pct : Watermark level as percentage of the mutation buffer size\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_9set_mutation_buffer_flush_watermark(PyObject *__pyx_v_self, PyObject *__pyx_arg_watermark_pct) {
  double __pyx_v_watermark_pct;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mutation_buffer_flush_watermark (wrapper)", 0);
  assert(__pyx_arg_watermark_pct); {
    __pyx_v_watermark_pct = __pyx_PyFloat_AsDouble(__pyx_arg_watermark_pct); if (unlikely((__pyx_v_watermark_pct == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1424, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_flush_watermark", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Session_8set_mutation_buffer_flush_watermark(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((double)__pyx_v_watermark_pct));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_8set_mutation_buffer_flush_watermark(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, double __pyx_v_watermark_pct) {
  kudu::Status __pyx_v_status;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mutation_buffer_flush_watermark", 0);

  /* "kudu/client.pyx":1440
 *         watermark_pct : Watermark level as percentage of the mutation buffer size
 *         """
 *         status = self.s.get().SetMutationBufferFlushWatermark(watermark_pct)             # <<<<<<<<<<<<<<
 * 
 *         check_status(status)
 */
  __pyx_v_status = __pyx_v_self->s.get()->SetMutationBufferFlushWatermark(__pyx_v_watermark_pct);

  /* "kudu/client.pyx":1442
 *         status = self.s.get().SetMutationBufferFlushWatermark(watermark_pct)
 * 
 *         check_status(status)             # <<<<<<<<<<<<<<
 * 
 *     def set_mutation_buffer_flush_interval(self, unsigned int millis):
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1424
 *         check_status(status)
 * 
 *     def set_mutation_buffer_flush_watermark(self, double watermark_pct):             # <<<<<<<<<<<<<<
 *         """
 *         Set the buffer watermark to trigger flush in AUTO_FLUSH_BACKGROUND mode.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_flush_watermark", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1444
 *         check_status(status)
 * 
 *     def set_mutation_buffer_flush_interval(self, unsigned int millis):             # <<<<<<<<<<<<<<
 *         """
 *         Set the interval for time-based flushing of the mutation buffer.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_11set_mutation_buffer_flush_interval(PyObject *__pyx_v_self, PyObject *__pyx_arg_millis); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_10set_mutation_buffer_flush_interval[] = "Session.set_mutation_buffer_flush_interval(self, unsigned int millis)\n\n        Set the interval for time-based flushing of the mutation buffer.\n\n        In some cases, while running in AUTO_FLUSH_BACKGROUND mode, the size of the\n        mutation buffer for pending operations and the flush watermark for fresh\n        operations may be too high for the rate of incoming data: it would take too\n        long to accumulate enough data in the buffer to trigger flushing. I.e., it\n        makes sense to flush the accumulated operations if the prior flush happened\n        long time ago. This method sets the wait interval for the time-based flushing\n        which takes place along with the flushing triggered by the over-the-watermark\n        criterion. By default, the interval is set to 1000 ms (i.e. 1 second).\n\n        Parameters\n        ----------\n        millis : The duration of the interval for the time-based flushing, in milliseconds.\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_11set_mutation_buffer_flush_interval(PyObject *__pyx_v_self, PyObject *__pyx_arg_millis) {
  unsigned int __pyx_v_millis;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mutation_buffer_flush_interval (wrapper)", 0);
  assert(__pyx_arg_millis); {
    __pyx_v_millis = __Pyx_PyInt_As_unsigned_int(__pyx_arg_millis); if (unlikely((__pyx_v_millis == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1444, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_flush_interval", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Session_10set_mutation_buffer_flush_interval(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((unsigned int)__pyx_v_millis));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_10set_mutation_buffer_flush_interval(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, unsigned int __pyx_v_millis) {
  kudu::Status __pyx_v_status;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mutation_buffer_flush_interval", 0);

  /* "kudu/client.pyx":1462
 *         """
 * 
 *         status = self.s.get().SetMutationBufferFlushInterval(millis)             # <<<<<<<<<<<<<<
 * 
 *         check_status(status)
 */
  __pyx_v_status = __pyx_v_self->s.get()->SetMutationBufferFlushInterval(__pyx_v_millis);

  /* "kudu/client.pyx":1464
 *         status = self.s.get().SetMutationBufferFlushInterval(millis)
 * 
 *         check_status(status)             # <<<<<<<<<<<<<<
 * 
 *     def set_mutation_buffer_max_num(self, unsigned int max_num):
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1444
 *         check_status(status)
 * 
 *     def set_mutation_buffer_flush_interval(self, unsigned int millis):             # <<<<<<<<<<<<<<
 *         """
 *         Set the interval for time-based flushing of the mutation buffer.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_flush_interval", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1466
 *         check_status(status)
 * 
 *     def set_mutation_buffer_max_num(self, unsigned int max_num):             # <<<<<<<<<<<<<<
 *         """
 *         Set the maximum number of mutation buffers per Session object.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_13set_mutation_buffer_max_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_max_num); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_12set_mutation_buffer_max_num[] = "Session.set_mutation_buffer_max_num(self, unsigned int max_num)\n\n        Set the maximum number of mutation buffers per Session object.\n\n        A Session accumulates write operations submitted via the Apply() method in\n        mutation buffers. A Session always has at least one mutation buffer. The\n        mutation buffer which accumulates new incoming operations is called the current\n        mutation buffer. The current mutation buffer is flushed using the\n        Session.flush() method or it's done by the Session automatically if\n        running in AUTO_FLUSH_BACKGROUND mode. After flushing the current mutation buffer,\n        a new buffer is created upon calling Session.apply(), provided the limit is\n        not exceeded. A call to Session.apply() blocks if it's at the maximum number\n        of buffers allowed; the call unblocks as soon as one of the pending batchers\n        finished flushing and a new batcher can be created.\n\n        The minimum setting for this parameter is 1 (one). The default setting for this\n        parameter is 2 (two).\n\n        Parameters\n        ----------\n        max_num : The maximum number of mutation buffers per Session object to hold\n            the applied operations. Use 0 to set the maximum number of concurrent mutation\n            buffers to unlimited.\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_13set_mutation_buffer_max_num(PyObject *__pyx_v_self, PyObject *__pyx_arg_max_num) {
  unsigned int __pyx_v_max_num;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_mutation_buffer_max_num (wrapper)", 0);
  assert(__pyx_arg_max_num); {
    __pyx_v_max_num = __Pyx_PyInt_As_unsigned_int(__pyx_arg_max_num); if (unlikely((__pyx_v_max_num == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1466, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_max_num", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Session_12set_mutation_buffer_max_num(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((unsigned int)__pyx_v_max_num));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_12set_mutation_buffer_max_num(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, unsigned int __pyx_v_max_num) {
  kudu::Status __pyx_v_status;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_mutation_buffer_max_num", 0);

  /* "kudu/client.pyx":1491
 *         """
 * 
 *         status = self.s.get().SetMutationBufferMaxNum(max_num)             # <<<<<<<<<<<<<<
 * 
 *         check_status(status)
 */
  __pyx_v_status = __pyx_v_self->s.get()->SetMutationBufferMaxNum(__pyx_v_max_num);

  /* "kudu/client.pyx":1493
 *         status = self.s.get().SetMutationBufferMaxNum(max_num)
 * 
 *         check_status(status)             # <<<<<<<<<<<<<<
 * 
 *     def apply(self, WriteOperation op):
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_status); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1466
 *         check_status(status)
 * 
 *     def set_mutation_buffer_max_num(self, unsigned int max_num):             # <<<<<<<<<<<<<<
 *         """
 *         Set the maximum number of mutation buffers per Session object.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.set_mutation_buffer_max_num", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1495
 *         check_status(status)
 * 
 *     def apply(self, WriteOperation op):             # <<<<<<<<<<<<<<
 *         """
 *         Apply the indicated write operation
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_15apply(PyObject *__pyx_v_self, PyObject *__pyx_v_op); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_14apply[] = "Session.apply(self, WriteOperation op)\n\n        Apply the indicated write operation\n\n        Examples\n        --------\n        # Executes a single Insert operation\n        session = client.new_session()\n        op = table.new_insert()\n        op['key'] = 0\n        op['value1'] = 5\n        op['value2'] = 3.5\n        session.apply(op)\n        session.flush()\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_15apply(PyObject *__pyx_v_self, PyObject *__pyx_v_op) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("apply (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_op), __pyx_ptype_4kudu_6client_WriteOperation, 1, "op", 0))) __PYX_ERR(0, 1495, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_7Session_14apply(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((struct __pyx_obj_4kudu_6client_WriteOperation *)__pyx_v_op));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_14apply(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_op) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("apply", 0);

  /* "kudu/client.pyx":1510
 *         session.flush()
 *         """
 *         return op.add_to_session(self)             # <<<<<<<<<<<<<<
 * 
 *     def flush(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_WriteOperation *)__pyx_v_op->__pyx_vtab)->add_to_session(__pyx_v_op, __pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1495
 *         check_status(status)
 * 
 *     def apply(self, WriteOperation op):             # <<<<<<<<<<<<<<
 *         """
 *         Apply the indicated write operation
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.apply", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1512
 *         return op.add_to_session(self)
 * 
 *     def flush(self):             # <<<<<<<<<<<<<<
 *         """
 *         Flush pending operations
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_17flush(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_16flush[] = "Session.flush(self)\n\n        Flush pending operations\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_17flush(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("flush (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Session_16flush(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_16flush(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("flush", 0);

  /* "kudu/client.pyx":1516
 *         Flush pending operations
 *         """
 *         check_status(self.s.get().Flush())             # <<<<<<<<<<<<<<
 * 
 *     def get_pending_errors(self):
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->s.get()->Flush()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1512
 *         return op.add_to_session(self)
 * 
 *     def flush(self):             # <<<<<<<<<<<<<<
 *         """
 *         Flush pending operations
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1518
 *         check_status(self.s.get().Flush())
 * 
 *     def get_pending_errors(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a list of buffered Kudu errors. A second value is returned
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_19get_pending_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_18get_pending_errors[] = "Session.get_pending_errors(self)\n\n        Returns a list of buffered Kudu errors. A second value is returned\n        indicating if there were more errors than could be stored in the\n        session's error buffer (i.e. False means there was no error overflow)\n\n        Returns\n        -------\n        errors, overflowed : list, bool\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Session_19get_pending_errors(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_pending_errors (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Session_18get_pending_errors(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_18get_pending_errors(struct __pyx_obj_4kudu_6client_Session *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_error = 0;
  std::vector< kudu::client::KuduError *>  __pyx_v_v_errors;
  bool __pyx_v_overflowed;
  size_t __pyx_v_i;
  PyObject *__pyx_v_result = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector< kudu::client::KuduError *> ::size_type __pyx_t_2;
  std::vector< kudu::client::KuduError *> ::size_type __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("get_pending_errors", 0);

  /* "kudu/client.pyx":1534
 *             size_t i
 * 
 *         self.s.get().GetPendingErrors(&v_errors, &overflowed)             # <<<<<<<<<<<<<<
 * 
 *         result = []
 */
  __pyx_v_self->s.get()->GetPendingErrors((&__pyx_v_v_errors), (&__pyx_v_overflowed));

  /* "kudu/client.pyx":1536
 *         self.s.get().GetPendingErrors(&v_errors, &overflowed)
 * 
 *         result = []             # <<<<<<<<<<<<<<
 *         for i in range(v_errors.size()):
 *             error = KuduError()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1536, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1537
 * 
 *         result = []
 *         for i in range(v_errors.size()):             # <<<<<<<<<<<<<<
 *             error = KuduError()
 *             error.error = v_errors[i]
 */
  __pyx_t_2 = __pyx_v_v_errors.size();
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "kudu/client.pyx":1538
 *         result = []
 *         for i in range(v_errors.size()):
 *             error = KuduError()             # <<<<<<<<<<<<<<
 *             error.error = v_errors[i]
 *             result.append(error)
 */
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_KuduError)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1538, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_error, ((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "kudu/client.pyx":1539
 *         for i in range(v_errors.size()):
 *             error = KuduError()
 *             error.error = v_errors[i]             # <<<<<<<<<<<<<<
 *             result.append(error)
 * 
 */
    __pyx_v_error->error = (__pyx_v_v_errors[__pyx_v_i]);

    /* "kudu/client.pyx":1540
 *             error = KuduError()
 *             error.error = v_errors[i]
 *             result.append(error)             # <<<<<<<<<<<<<<
 * 
 *         return result, overflowed
 */
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, ((PyObject *)__pyx_v_error)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1540, __pyx_L1_error)
  }

  /* "kudu/client.pyx":1542
 *             result.append(error)
 * 
 *         return result, overflowed             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_overflowed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_v_result);
  __Pyx_GIVEREF(__pyx_v_result);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_result);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_6;
  __pyx_t_6 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1518
 *         check_status(self.s.get().Flush())
 * 
 *     def get_pending_errors(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a list of buffered Kudu errors. A second value is returned
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("kudu.client.Session.get_pending_errors", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_error);
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_20__reduce_cython__[] = "Session.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_7Session_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Session_20__reduce_cython__(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Session_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_7Session_22__setstate_cython__[] = "Session.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_7Session_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Session_22__setstate_cython__(((struct __pyx_obj_4kudu_6client_Session *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Session_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Session.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1557
 *         KuduRowPtr row
 * 
 *     def __cinit__(self, batch):             # <<<<<<<<<<<<<<
 *         self.parent = batch
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_3Row_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_3Row_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_batch = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_batch,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_batch)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1557, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_batch = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1557, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Row.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_3Row___cinit__(((struct __pyx_obj_4kudu_6client_Row *)__pyx_v_self), __pyx_v_batch);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_3Row___cinit__(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, PyObject *__pyx_v_batch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":1558
 * 
 *     def __cinit__(self, batch):
 *         self.parent = batch             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  if (!(likely(((__pyx_v_batch) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_batch, __pyx_ptype_4kudu_6client_RowBatch))))) __PYX_ERR(0, 1558, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_batch;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->parent);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->parent));
  __pyx_v_self->parent = ((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1557
 *         KuduRowPtr row
 * 
 *     def __cinit__(self, batch):             # <<<<<<<<<<<<<<
 *         self.parent = batch
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1560
 *         self.parent = batch
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_3Row_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_3Row_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_3Row_2__dealloc__(((struct __pyx_obj_4kudu_6client_Row *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_3Row_2__dealloc__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Row *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":1563
 *         pass
 * 
 *     cpdef tuple as_tuple(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the row as a Python tuple
 */

static PyObject *__pyx_pw_4kudu_6client_3Row_5as_tuple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_f_4kudu_6client_3Row_as_tuple(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_skip_dispatch) {
  int __pyx_v_i;
  int __pyx_v_k;
  PyObject *__pyx_v_tup = 0;
  PyObject *__pyx_v_val = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_t_8;
  __Pyx_RefNannySetupContext("as_tuple", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_as_tuple); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1563, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_3Row_5as_tuple)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1563, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(PyTuple_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(0, 1563, __pyx_L1_error)
        __pyx_r = ((PyObject*)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":1571
 *             tuple tup
 * 
 *         k = self.parent.batch.projection_schema().num_columns()             # <<<<<<<<<<<<<<
 *         tup = cpython.PyTuple_New(k)
 *         for i in range(k):
 */
  __pyx_v_k = __pyx_v_self->parent->batch.projection_schema()->num_columns();

  /* "kudu/client.pyx":1572
 * 
 *         k = self.parent.batch.projection_schema().num_columns()
 *         tup = cpython.PyTuple_New(k)             # <<<<<<<<<<<<<<
 *         for i in range(k):
 *             val = None
 */
  __pyx_t_1 = PyTuple_New(__pyx_v_k); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_tup = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1573
 *         k = self.parent.batch.projection_schema().num_columns()
 *         tup = cpython.PyTuple_New(k)
 *         for i in range(k):             # <<<<<<<<<<<<<<
 *             val = None
 * 
 */
  __pyx_t_5 = __pyx_v_k;
  __pyx_t_6 = __pyx_t_5;
  for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
    __pyx_v_i = __pyx_t_7;

    /* "kudu/client.pyx":1574
 *         tup = cpython.PyTuple_New(k)
 *         for i in range(k):
 *             val = None             # <<<<<<<<<<<<<<
 * 
 *             if not self.is_null(i):
 */
    __Pyx_INCREF(Py_None);
    __Pyx_XDECREF_SET(__pyx_v_val, Py_None);

    /* "kudu/client.pyx":1576
 *             val = None
 * 
 *             if not self.is_null(i):             # <<<<<<<<<<<<<<
 *                 val = self.get_slot(i)
 * 
 */
    __pyx_t_8 = ((!(__pyx_f_4kudu_6client_3Row_is_null(__pyx_v_self, __pyx_v_i) != 0)) != 0);
    if (__pyx_t_8) {

      /* "kudu/client.pyx":1577
 * 
 *             if not self.is_null(i):
 *                 val = self.get_slot(i)             # <<<<<<<<<<<<<<
 * 
 *             cpython.Py_INCREF(val)
 */
      __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_slot(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "kudu/client.pyx":1576
 *             val = None
 * 
 *             if not self.is_null(i):             # <<<<<<<<<<<<<<
 *                 val = self.get_slot(i)
 * 
 */
    }

    /* "kudu/client.pyx":1579
 *                 val = self.get_slot(i)
 * 
 *             cpython.Py_INCREF(val)             # <<<<<<<<<<<<<<
 *             cpython.PyTuple_SET_ITEM(tup, i, val)
 * 
 */
    Py_INCREF(__pyx_v_val);

    /* "kudu/client.pyx":1580
 * 
 *             cpython.Py_INCREF(val)
 *             cpython.PyTuple_SET_ITEM(tup, i, val)             # <<<<<<<<<<<<<<
 * 
 *         return tup
 */
    PyTuple_SET_ITEM(__pyx_v_tup, __pyx_v_i, __pyx_v_val);
  }

  /* "kudu/client.pyx":1582
 *             cpython.PyTuple_SET_ITEM(tup, i, val)
 * 
 *         return tup             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_bool(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_tup);
  __pyx_r = __pyx_v_tup;
  goto __pyx_L0;

  /* "kudu/client.pyx":1563
 *         pass
 * 
 *     cpdef tuple as_tuple(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the row as a Python tuple
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Row.as_tuple", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tup);
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_3Row_5as_tuple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_3Row_4as_tuple[] = "Row.as_tuple(self) -> tuple\n\n        Return the row as a Python tuple\n        ";
static PyObject *__pyx_pw_4kudu_6client_3Row_5as_tuple(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("as_tuple (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_3Row_4as_tuple(((struct __pyx_obj_4kudu_6client_Row *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_3Row_4as_tuple(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("as_tuple", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_3Row_as_tuple(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.as_tuple", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1584
 *         return tup
 * 
 *     cdef inline get_bool(self, int i):             # <<<<<<<<<<<<<<
 *         cdef c_bool val
 *         check_status(self.row.GetBool(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_bool(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  bool __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("get_bool", 0);

  /* "kudu/client.pyx":1586
 *     cdef inline get_bool(self, int i):
 *         cdef c_bool val
 *         check_status(self.row.GetBool(i, &val))             # <<<<<<<<<<<<<<
 *         # The built-in bool is masked by the libcpp typedef
 *         return bool(val)
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetBool(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1588
 *         check_status(self.row.GetBool(i, &val))
 *         # The built-in bool is masked by the libcpp typedef
 *         return bool(val)             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_int8(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1588, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1584
 *         return tup
 * 
 *     cdef inline get_bool(self, int i):             # <<<<<<<<<<<<<<
 *         cdef c_bool val
 *         check_status(self.row.GetBool(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_bool", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1590
 *         return bool(val)
 * 
 *     cdef inline get_int8(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int8_t val
 *         check_status(self.row.GetInt8(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int8(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int8_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_int8", 0);

  /* "kudu/client.pyx":1592
 *     cdef inline get_int8(self, int i):
 *         cdef int8_t val
 *         check_status(self.row.GetInt8(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetInt8(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1593
 *         cdef int8_t val
 *         check_status(self.row.GetInt8(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_int16(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int8_t(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1590
 *         return bool(val)
 * 
 *     cdef inline get_int8(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int8_t val
 *         check_status(self.row.GetInt8(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_int8", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1595
 *         return val
 * 
 *     cdef inline get_int16(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int16_t val
 *         check_status(self.row.GetInt16(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int16(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int16_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_int16", 0);

  /* "kudu/client.pyx":1597
 *     cdef inline get_int16(self, int i):
 *         cdef int16_t val
 *         check_status(self.row.GetInt16(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetInt16(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1597, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1598
 *         cdef int16_t val
 *         check_status(self.row.GetInt16(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_int32(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int16_t(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1595
 *         return val
 * 
 *     cdef inline get_int16(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int16_t val
 *         check_status(self.row.GetInt16(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_int16", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1600
 *         return val
 * 
 *     cdef inline get_int32(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int32_t val
 *         check_status(self.row.GetInt32(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int32(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int32_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_int32", 0);

  /* "kudu/client.pyx":1602
 *     cdef inline get_int32(self, int i):
 *         cdef int32_t val
 *         check_status(self.row.GetInt32(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetInt32(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1603
 *         cdef int32_t val
 *         check_status(self.row.GetInt32(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_int64(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int32_t(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1600
 *         return val
 * 
 *     cdef inline get_int32(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int32_t val
 *         check_status(self.row.GetInt32(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_int32", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1605
 *         return val
 * 
 *     cdef inline get_int64(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int64_t val
 *         check_status(self.row.GetInt64(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_int64(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int64_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_int64", 0);

  /* "kudu/client.pyx":1607
 *     cdef inline get_int64(self, int i):
 *         cdef int64_t val
 *         check_status(self.row.GetInt64(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetInt64(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1608
 *         cdef int64_t val
 *         check_status(self.row.GetInt64(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_double(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1605
 *         return val
 * 
 *     cdef inline get_int64(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int64_t val
 *         check_status(self.row.GetInt64(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_int64", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1610
 *         return val
 * 
 *     cdef inline get_double(self, int i):             # <<<<<<<<<<<<<<
 *         cdef double val
 *         check_status(self.row.GetDouble(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_double(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  double __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_double", 0);

  /* "kudu/client.pyx":1612
 *     cdef inline get_double(self, int i):
 *         cdef double val
 *         check_status(self.row.GetDouble(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetDouble(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1613
 *         cdef double val
 *         check_status(self.row.GetDouble(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_float(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1610
 *         return val
 * 
 *     cdef inline get_double(self, int i):             # <<<<<<<<<<<<<<
 *         cdef double val
 *         check_status(self.row.GetDouble(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_double", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1615
 *         return val
 * 
 *     cdef inline get_float(self, int i):             # <<<<<<<<<<<<<<
 *         cdef float val
 *         check_status(self.row.GetFloat(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_float(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  float __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_float", 0);

  /* "kudu/client.pyx":1617
 *     cdef inline get_float(self, int i):
 *         cdef float val
 *         check_status(self.row.GetFloat(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetFloat(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1618
 *         cdef float val
 *         check_status(self.row.GetFloat(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_string(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1618, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1615
 *         return val
 * 
 *     cdef inline get_float(self, int i):             # <<<<<<<<<<<<<<
 *         cdef float val
 *         check_status(self.row.GetFloat(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1620
 *         return val
 * 
 *     cdef inline get_string(self, int i):             # <<<<<<<<<<<<<<
 *         cdef Slice val
 *         check_status(self.row.GetString(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_string(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  kudu::Slice __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_string", 0);

  /* "kudu/client.pyx":1622
 *     cdef inline get_string(self, int i):
 *         cdef Slice val
 *         check_status(self.row.GetString(i, &val))             # <<<<<<<<<<<<<<
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),
 *                                                  val.size())
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetString(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1623
 *         cdef Slice val
 *         check_status(self.row.GetString(i, &val))
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),             # <<<<<<<<<<<<<<
 *                                                  val.size())
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "kudu/client.pyx":1624
 *         check_status(self.row.GetString(i, &val))
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),
 *                                                  val.size())             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_binary(self, int i):
 */
  __pyx_t_1 = PyBytes_FromStringAndSize(((char *)__pyx_v_val.mutable_data()), __pyx_v_val.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1620
 *         return val
 * 
 *     cdef inline get_string(self, int i):             # <<<<<<<<<<<<<<
 *         cdef Slice val
 *         check_status(self.row.GetString(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1626
 *                                                  val.size())
 * 
 *     cdef inline get_binary(self, int i):             # <<<<<<<<<<<<<<
 *         cdef Slice val
 *         check_status(self.row.GetBinary(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_binary(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  kudu::Slice __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_binary", 0);

  /* "kudu/client.pyx":1628
 *     cdef inline get_binary(self, int i):
 *         cdef Slice val
 *         check_status(self.row.GetBinary(i, &val))             # <<<<<<<<<<<<<<
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),
 *                                                  val.size())
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetBinary(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1629
 *         cdef Slice val
 *         check_status(self.row.GetBinary(i, &val))
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),             # <<<<<<<<<<<<<<
 *                                                  val.size())
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "kudu/client.pyx":1630
 *         check_status(self.row.GetBinary(i, &val))
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),
 *                                                  val.size())             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_unixtime_micros(self, int i):
 */
  __pyx_t_1 = PyBytes_FromStringAndSize(((char *)__pyx_v_val.mutable_data()), __pyx_v_val.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1626
 *                                                  val.size())
 * 
 *     cdef inline get_binary(self, int i):             # <<<<<<<<<<<<<<
 *         cdef Slice val
 *         check_status(self.row.GetBinary(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_binary", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1632
 *                                                  val.size())
 * 
 *     cdef inline get_unixtime_micros(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int64_t val
 *         check_status(self.row.GetUnixTimeMicros(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_unixtime_micros(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int64_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_unixtime_micros", 0);

  /* "kudu/client.pyx":1634
 *     cdef inline get_unixtime_micros(self, int i):
 *         cdef int64_t val
 *         check_status(self.row.GetUnixTimeMicros(i, &val))             # <<<<<<<<<<<<<<
 *         return val
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetUnixTimeMicros(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1635
 *         cdef int64_t val
 *         check_status(self.row.GetUnixTimeMicros(i, &val))
 *         return val             # <<<<<<<<<<<<<<
 * 
 *     cdef inline __get_unscaled_decimal(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1632
 *                                                  val.size())
 * 
 *     cdef inline get_unixtime_micros(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int64_t val
 *         check_status(self.row.GetUnixTimeMicros(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_unixtime_micros", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1637
 *         return val
 * 
 *     cdef inline __get_unscaled_decimal(self, int i):             # <<<<<<<<<<<<<<
 *         IF PYKUDU_INT128_SUPPORTED == 1:
 *             cdef int128_t val
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row___get_unscaled_decimal(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  kudu::int128_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get_unscaled_decimal", 0);

  /* "kudu/client.pyx":1640
 *         IF PYKUDU_INT128_SUPPORTED == 1:
 *             cdef int128_t val
 *             check_status(self.row.GetUnscaledDecimal(i, &val))             # <<<<<<<<<<<<<<
 *             return val
 *         ELSE:
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetUnscaledDecimal(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1641
 *             cdef int128_t val
 *             check_status(self.row.GetUnscaledDecimal(i, &val))
 *             return val             # <<<<<<<<<<<<<<
 *         ELSE:
 *             raise KuduException("The decimal type is not supported when GCC version is < 4.6.0" % self)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_kudu_3a__3a_int128_t(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1637
 *         return val
 * 
 *     cdef inline __get_unscaled_decimal(self, int i):             # <<<<<<<<<<<<<<
 *         IF PYKUDU_INT128_SUPPORTED == 1:
 *             cdef int128_t val
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.__get_unscaled_decimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1645
 *             raise KuduException("The decimal type is not supported when GCC version is < 4.6.0" % self)
 * 
 *     cdef inline get_decimal(self, int i):             # <<<<<<<<<<<<<<
 *         scale = self.parent.batch.projection_schema().Column(i).type_attributes().scale()
 *         return from_unscaled_decimal(self.__get_unscaled_decimal(i), scale)
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_decimal(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int8_t __pyx_v_scale;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("get_decimal", 0);

  /* "kudu/client.pyx":1646
 * 
 *     cdef inline get_decimal(self, int i):
 *         scale = self.parent.batch.projection_schema().Column(i).type_attributes().scale()             # <<<<<<<<<<<<<<
 *         return from_unscaled_decimal(self.__get_unscaled_decimal(i), scale)
 * 
 */
  __pyx_v_scale = __pyx_v_self->parent->batch.projection_schema()->Column(__pyx_v_i).type_attributes().scale();

  /* "kudu/client.pyx":1647
 *     cdef inline get_decimal(self, int i):
 *         scale = self.parent.batch.projection_schema().Column(i).type_attributes().scale()
 *         return from_unscaled_decimal(self.__get_unscaled_decimal(i), scale)             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_varchar(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_from_unscaled_decimal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_f_4kudu_6client_3Row___get_unscaled_decimal(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int8_t(__pyx_v_scale); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1647, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1647, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1647, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1645
 *             raise KuduException("The decimal type is not supported when GCC version is < 4.6.0" % self)
 * 
 *     cdef inline get_decimal(self, int i):             # <<<<<<<<<<<<<<
 *         scale = self.parent.batch.projection_schema().Column(i).type_attributes().scale()
 *         return from_unscaled_decimal(self.__get_unscaled_decimal(i), scale)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("kudu.client.Row.get_decimal", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1649
 *         return from_unscaled_decimal(self.__get_unscaled_decimal(i), scale)
 * 
 *     cdef inline get_varchar(self, int i):             # <<<<<<<<<<<<<<
 *         cdef Slice val
 *         check_status(self.row.GetVarchar(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_varchar(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  kudu::Slice __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_varchar", 0);

  /* "kudu/client.pyx":1651
 *     cdef inline get_varchar(self, int i):
 *         cdef Slice val
 *         check_status(self.row.GetVarchar(i, &val))             # <<<<<<<<<<<<<<
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),
 *                                                  val.size())
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetVarchar(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1652
 *         cdef Slice val
 *         check_status(self.row.GetVarchar(i, &val))
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),             # <<<<<<<<<<<<<<
 *                                                  val.size())
 * 
 */
  __Pyx_XDECREF(__pyx_r);

  /* "kudu/client.pyx":1653
 *         check_status(self.row.GetVarchar(i, &val))
 *         return cpython.PyBytes_FromStringAndSize(<char*> val.mutable_data(),
 *                                                  val.size())             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_date(self, int i):
 */
  __pyx_t_1 = PyBytes_FromStringAndSize(((char *)__pyx_v_val.mutable_data()), __pyx_v_val.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1649
 *         return from_unscaled_decimal(self.__get_unscaled_decimal(i), scale)
 * 
 *     cdef inline get_varchar(self, int i):             # <<<<<<<<<<<<<<
 *         cdef Slice val
 *         check_status(self.row.GetVarchar(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.get_varchar", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1655
 *                                                  val.size())
 * 
 *     cdef inline get_date(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int32_t val
 *         check_status(self.row.GetDate(i, &val))
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_date(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int32_t __pyx_v_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("get_date", 0);

  /* "kudu/client.pyx":1657
 *     cdef inline get_date(self, int i):
 *         cdef int32_t val
 *         check_status(self.row.GetDate(i, &val))             # <<<<<<<<<<<<<<
 *         return unix_epoch_days_to_date(val)
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row.GetDate(__pyx_v_i, (&__pyx_v_val))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1658
 *         cdef int32_t val
 *         check_status(self.row.GetDate(i, &val))
 *         return unix_epoch_days_to_date(val)             # <<<<<<<<<<<<<<
 * 
 *     cdef inline get_slot(self, int i):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_unix_epoch_days_to_date); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int32_t(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1655
 *                                                  val.size())
 * 
 *     cdef inline get_date(self, int i):             # <<<<<<<<<<<<<<
 *         cdef int32_t val
 *         check_status(self.row.GetDate(i, &val))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Row.get_date", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1660
 *         return unix_epoch_days_to_date(val)
 * 
 *     cdef inline get_slot(self, int i):             # <<<<<<<<<<<<<<
 *         cdef:
 *             Status s
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_3Row_get_slot(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  enum  kudu::client::KuduColumnSchema::DataType __pyx_v_t;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("get_slot", 0);

  /* "kudu/client.pyx":1663
 *         cdef:
 *             Status s
 *             DataType t = self.parent.batch.projection_schema().Column(i).type()             # <<<<<<<<<<<<<<
 * 
 *         if t == KUDU_BOOL:
 */
  __pyx_v_t = __pyx_v_self->parent->batch.projection_schema()->Column(__pyx_v_i).type();

  /* "kudu/client.pyx":1665
 *             DataType t = self.parent.batch.projection_schema().Column(i).type()
 * 
 *         if t == KUDU_BOOL:             # <<<<<<<<<<<<<<
 *             return self.get_bool(i)
 *         elif t == KUDU_INT8:
 */
  switch (__pyx_v_t) {
    case  kudu::client::KuduColumnSchema::BOOL:

    /* "kudu/client.pyx":1666
 * 
 *         if t == KUDU_BOOL:
 *             return self.get_bool(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT8:
 *             return self.get_int8(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_bool(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1665
 *             DataType t = self.parent.batch.projection_schema().Column(i).type()
 * 
 *         if t == KUDU_BOOL:             # <<<<<<<<<<<<<<
 *             return self.get_bool(i)
 *         elif t == KUDU_INT8:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT8:

    /* "kudu/client.pyx":1668
 *             return self.get_bool(i)
 *         elif t == KUDU_INT8:
 *             return self.get_int8(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT16:
 *             return self.get_int16(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_int8(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1668, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1667
 *         if t == KUDU_BOOL:
 *             return self.get_bool(i)
 *         elif t == KUDU_INT8:             # <<<<<<<<<<<<<<
 *             return self.get_int8(i)
 *         elif t == KUDU_INT16:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT16:

    /* "kudu/client.pyx":1670
 *             return self.get_int8(i)
 *         elif t == KUDU_INT16:
 *             return self.get_int16(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT32:
 *             return self.get_int32(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_int16(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1670, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1669
 *         elif t == KUDU_INT8:
 *             return self.get_int8(i)
 *         elif t == KUDU_INT16:             # <<<<<<<<<<<<<<
 *             return self.get_int16(i)
 *         elif t == KUDU_INT32:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT32:

    /* "kudu/client.pyx":1672
 *             return self.get_int16(i)
 *         elif t == KUDU_INT32:
 *             return self.get_int32(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT64:
 *             return self.get_int64(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_int32(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1671
 *         elif t == KUDU_INT16:
 *             return self.get_int16(i)
 *         elif t == KUDU_INT32:             # <<<<<<<<<<<<<<
 *             return self.get_int32(i)
 *         elif t == KUDU_INT64:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT64:

    /* "kudu/client.pyx":1674
 *             return self.get_int32(i)
 *         elif t == KUDU_INT64:
 *             return self.get_int64(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_DOUBLE:
 *             return self.get_double(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_int64(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1673
 *         elif t == KUDU_INT32:
 *             return self.get_int32(i)
 *         elif t == KUDU_INT64:             # <<<<<<<<<<<<<<
 *             return self.get_int64(i)
 *         elif t == KUDU_DOUBLE:
 */
    break;
    case  kudu::client::KuduColumnSchema::DOUBLE:

    /* "kudu/client.pyx":1676
 *             return self.get_int64(i)
 *         elif t == KUDU_DOUBLE:
 *             return self.get_double(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_FLOAT:
 *             return self.get_float(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_double(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1675
 *         elif t == KUDU_INT64:
 *             return self.get_int64(i)
 *         elif t == KUDU_DOUBLE:             # <<<<<<<<<<<<<<
 *             return self.get_double(i)
 *         elif t == KUDU_FLOAT:
 */
    break;
    case  kudu::client::KuduColumnSchema::FLOAT:

    /* "kudu/client.pyx":1678
 *             return self.get_double(i)
 *         elif t == KUDU_FLOAT:
 *             return self.get_float(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_STRING:
 *             return frombytes(self.get_string(i))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_float(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1677
 *         elif t == KUDU_DOUBLE:
 *             return self.get_double(i)
 *         elif t == KUDU_FLOAT:             # <<<<<<<<<<<<<<
 *             return self.get_float(i)
 *         elif t == KUDU_STRING:
 */
    break;
    case  kudu::client::KuduColumnSchema::STRING:

    /* "kudu/client.pyx":1680
 *             return self.get_float(i)
 *         elif t == KUDU_STRING:
 *             return frombytes(self.get_string(i))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_BINARY:
 *             return self.get_binary(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1680, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_4kudu_6client_3Row_get_string(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1680, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1680, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1679
 *         elif t == KUDU_FLOAT:
 *             return self.get_float(i)
 *         elif t == KUDU_STRING:             # <<<<<<<<<<<<<<
 *             return frombytes(self.get_string(i))
 *         elif t == KUDU_BINARY:
 */
    break;
    case  kudu::client::KuduColumnSchema::BINARY:

    /* "kudu/client.pyx":1682
 *             return frombytes(self.get_string(i))
 *         elif t == KUDU_BINARY:
 *             return self.get_binary(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_UNIXTIME_MICROS:
 *             return from_unixtime_micros(self.get_unixtime_micros(i))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_binary(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1682, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1681
 *         elif t == KUDU_STRING:
 *             return frombytes(self.get_string(i))
 *         elif t == KUDU_BINARY:             # <<<<<<<<<<<<<<
 *             return self.get_binary(i)
 *         elif t == KUDU_UNIXTIME_MICROS:
 */
    break;
    case  kudu::client::KuduColumnSchema::UNIXTIME_MICROS:

    /* "kudu/client.pyx":1684
 *             return self.get_binary(i)
 *         elif t == KUDU_UNIXTIME_MICROS:
 *             return from_unixtime_micros(self.get_unixtime_micros(i))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_DECIMAL:
 *             return self.get_decimal(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_from_unixtime_micros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_4kudu_6client_3Row_get_unixtime_micros(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1683
 *         elif t == KUDU_BINARY:
 *             return self.get_binary(i)
 *         elif t == KUDU_UNIXTIME_MICROS:             # <<<<<<<<<<<<<<
 *             return from_unixtime_micros(self.get_unixtime_micros(i))
 *         elif t == KUDU_DECIMAL:
 */
    break;
    case  kudu::client::KuduColumnSchema::DECIMAL:

    /* "kudu/client.pyx":1686
 *             return from_unixtime_micros(self.get_unixtime_micros(i))
 *         elif t == KUDU_DECIMAL:
 *             return self.get_decimal(i)             # <<<<<<<<<<<<<<
 *         elif t == KUDU_VARCHAR:
 *             return frombytes(self.get_varchar(i))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_decimal(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1685
 *         elif t == KUDU_UNIXTIME_MICROS:
 *             return from_unixtime_micros(self.get_unixtime_micros(i))
 *         elif t == KUDU_DECIMAL:             # <<<<<<<<<<<<<<
 *             return self.get_decimal(i)
 *         elif t == KUDU_VARCHAR:
 */
    break;
    case  kudu::client::KuduColumnSchema::VARCHAR:

    /* "kudu/client.pyx":1688
 *             return self.get_decimal(i)
 *         elif t == KUDU_VARCHAR:
 *             return frombytes(self.get_varchar(i))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_DATE:
 *             return self.get_date(i)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_f_4kudu_6client_3Row_get_varchar(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1687
 *         elif t == KUDU_DECIMAL:
 *             return self.get_decimal(i)
 *         elif t == KUDU_VARCHAR:             # <<<<<<<<<<<<<<
 *             return frombytes(self.get_varchar(i))
 *         elif t == KUDU_DATE:
 */
    break;
    case  kudu::client::KuduColumnSchema::DATE:

    /* "kudu/client.pyx":1690
 *             return frombytes(self.get_varchar(i))
 *         elif t == KUDU_DATE:
 *             return self.get_date(i)             # <<<<<<<<<<<<<<
 *         else:
 *             raise TypeError("Cannot get kudu type <{0}>"
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __pyx_f_4kudu_6client_3Row_get_date(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1690, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":1689
 *         elif t == KUDU_VARCHAR:
 *             return frombytes(self.get_varchar(i))
 *         elif t == KUDU_DATE:             # <<<<<<<<<<<<<<
 *             return self.get_date(i)
 *         else:
 */
    break;
    default:

    /* "kudu/client.pyx":1693
 *         else:
 *             raise TypeError("Cannot get kudu type <{0}>"
 *                                 .format(_type_names[t]))             # <<<<<<<<<<<<<<
 * 
 *     cdef inline bint is_null(self, int i):
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Cannot_get_kudu_type_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(__pyx_v_4kudu_6client__type_names == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 1693, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__type_names, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":1692
 *             return self.get_date(i)
 *         else:
 *             raise TypeError("Cannot get kudu type <{0}>"             # <<<<<<<<<<<<<<
 *                                 .format(_type_names[t]))
 * 
 */
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1692, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 1692, __pyx_L1_error)
    break;
  }

  /* "kudu/client.pyx":1660
 *         return unix_epoch_days_to_date(val)
 * 
 *     cdef inline get_slot(self, int i):             # <<<<<<<<<<<<<<
 *         cdef:
 *             Status s
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Row.get_slot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1695
 *                                 .format(_type_names[t]))
 * 
 *     cdef inline bint is_null(self, int i):             # <<<<<<<<<<<<<<
 *         return self.row.IsNull(i)
 * 
 */

static CYTHON_INLINE int __pyx_f_4kudu_6client_3Row_is_null(struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, int __pyx_v_i) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_null", 0);

  /* "kudu/client.pyx":1696
 * 
 *     cdef inline bint is_null(self, int i):
 *         return self.row.IsNull(i)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_self->row.IsNull(__pyx_v_i);
  goto __pyx_L0;

  /* "kudu/client.pyx":1695
 *                                 .format(_type_names[t]))
 * 
 *     cdef inline bint is_null(self, int i):             # <<<<<<<<<<<<<<
 *         return self.row.IsNull(i)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_3Row_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_3Row_6__reduce_cython__[] = "Row.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_3Row_7__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_3Row_6__reduce_cython__(((struct __pyx_obj_4kudu_6client_Row *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_3Row_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Row *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_3Row_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_3Row_8__setstate_cython__[] = "Row.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_3Row_9__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_3Row_8__setstate_cython__(((struct __pyx_obj_4kudu_6client_Row *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_3Row_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Row *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Row.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1707
 *         KuduScanBatch batch
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.batch.NumRows()
 * 
 */

/* Python wrapper */
static Py_ssize_t __pyx_pw_4kudu_6client_8RowBatch_1__len__(PyObject *__pyx_v_self); /*proto*/
static Py_ssize_t __pyx_pw_4kudu_6client_8RowBatch_1__len__(PyObject *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RowBatch___len__(((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static Py_ssize_t __pyx_pf_4kudu_6client_8RowBatch___len__(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self) {
  Py_ssize_t __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__len__", 0);

  /* "kudu/client.pyx":1708
 * 
 *     def __len__(self):
 *         return self.batch.NumRows()             # <<<<<<<<<<<<<<
 * 
 *     def __getitem__(self, i):
 */
  __pyx_r = __pyx_v_self->batch.NumRows();
  goto __pyx_L0;

  /* "kudu/client.pyx":1707
 *         KuduScanBatch batch
 * 
 *     def __len__(self):             # <<<<<<<<<<<<<<
 *         return self.batch.NumRows()
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1710
 *         return self.batch.NumRows()
 * 
 *     def __getitem__(self, i):             # <<<<<<<<<<<<<<
 *         return self.get_row(i).as_tuple()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RowBatch_2__getitem__(((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_v_self), ((PyObject *)__pyx_v_i));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RowBatch_2__getitem__(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self, PyObject *__pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__getitem__", 0);

  /* "kudu/client.pyx":1711
 * 
 *     def __getitem__(self, i):
 *         return self.get_row(i).as_tuple()             # <<<<<<<<<<<<<<
 * 
 *     def __iter__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4kudu_6client_RowBatch *)__pyx_v_self->__pyx_vtab)->get_row(__pyx_v_self, __pyx_v_i)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = ((struct __pyx_vtabstruct_4kudu_6client_Row *)((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_1)->__pyx_vtab)->as_tuple(((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_1), 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1710
 *         return self.batch.NumRows()
 * 
 *     def __getitem__(self, i):             # <<<<<<<<<<<<<<
 *         return self.get_row(i).as_tuple()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.RowBatch.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4kudu_6client_8RowBatch_6generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "kudu/client.pyx":1713
 *         return self.get_row(i).as_tuple()
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         cdef int i = 0
 *         for i in range(len(self)):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_5__iter__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_5__iter__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RowBatch_4__iter__(((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RowBatch_4__iter__(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__", 0);
  __pyx_cur_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *)__pyx_tp_new_4kudu_6client___pyx_scope_struct____iter__(__pyx_ptype_4kudu_6client___pyx_scope_struct____iter__, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 1713, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4kudu_6client_8RowBatch_6generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_iter, __pyx_n_s_RowBatch___iter, __pyx_n_s_kudu_client); if (unlikely(!gen)) __PYX_ERR(0, 1713, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.RowBatch.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4kudu_6client_8RowBatch_6generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *__pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  Py_ssize_t __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__iter__", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1713, __pyx_L1_error)

  /* "kudu/client.pyx":1714
 * 
 *     def __iter__(self):
 *         cdef int i = 0             # <<<<<<<<<<<<<<
 *         for i in range(len(self)):
 *             yield self.get_row(i).as_tuple()
 */
  __pyx_cur_scope->__pyx_v_i = 0;

  /* "kudu/client.pyx":1715
 *     def __iter__(self):
 *         cdef int i = 0
 *         for i in range(len(self)):             # <<<<<<<<<<<<<<
 *             yield self.get_row(i).as_tuple()
 * 
 */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_cur_scope->__pyx_v_self)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1715, __pyx_L1_error)
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
    __pyx_cur_scope->__pyx_v_i = __pyx_t_3;

    /* "kudu/client.pyx":1716
 *         cdef int i = 0
 *         for i in range(len(self)):
 *             yield self.get_row(i).as_tuple()             # <<<<<<<<<<<<<<
 * 
 *     def as_tuples(self):
 */
    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_cur_scope->__pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = ((PyObject *)((struct __pyx_vtabstruct_4kudu_6client_RowBatch *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->get_row(__pyx_cur_scope->__pyx_v_self, __pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = ((struct __pyx_vtabstruct_4kudu_6client_Row *)((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_5)->__pyx_vtab)->as_tuple(((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_5), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 1716, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "kudu/client.pyx":1713
 *         return self.get_row(i).as_tuple()
 * 
 *     def __iter__(self):             # <<<<<<<<<<<<<<
 *         cdef int i = 0
 *         for i in range(len(self)):
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1718
 *             yield self.get_row(i).as_tuple()
 * 
 *     def as_tuples(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return RowBatch as a list of Python tuples
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_8as_tuples(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8RowBatch_7as_tuples[] = "RowBatch.as_tuples(self)\n\n        Return RowBatch as a list of Python tuples\n\n        To simplify testing for the moment.\n        ";
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_8as_tuples(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("as_tuples (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RowBatch_7as_tuples(((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RowBatch_7as_tuples(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self) {
  PyObject *__pyx_v_tuples = 0;
  int __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  __Pyx_RefNannySetupContext("as_tuples", 0);

  /* "kudu/client.pyx":1724
 *         To simplify testing for the moment.
 *         """
 *         cdef list tuples = []             # <<<<<<<<<<<<<<
 *         for i in range(self.batch.NumRows()):
 *             tuples.append(self.get_row(i).as_tuple())
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_tuples = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1725
 *         """
 *         cdef list tuples = []
 *         for i in range(self.batch.NumRows()):             # <<<<<<<<<<<<<<
 *             tuples.append(self.get_row(i).as_tuple())
 *         return tuples
 */
  __pyx_t_2 = __pyx_v_self->batch.NumRows();
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "kudu/client.pyx":1726
 *         cdef list tuples = []
 *         for i in range(self.batch.NumRows()):
 *             tuples.append(self.get_row(i).as_tuple())             # <<<<<<<<<<<<<<
 *         return tuples
 * 
 */
    __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = ((PyObject *)((struct __pyx_vtabstruct_4kudu_6client_RowBatch *)__pyx_v_self->__pyx_vtab)->get_row(__pyx_v_self, __pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Row *)((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_5)->__pyx_vtab)->as_tuple(((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_5), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_tuples, __pyx_t_1); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 1726, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "kudu/client.pyx":1727
 *         for i in range(self.batch.NumRows()):
 *             tuples.append(self.get_row(i).as_tuple())
 *         return tuples             # <<<<<<<<<<<<<<
 * 
 *     cdef Row get_row(self, i):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_tuples);
  __pyx_r = __pyx_v_tuples;
  goto __pyx_L0;

  /* "kudu/client.pyx":1718
 *             yield self.get_row(i).as_tuple()
 * 
 *     def as_tuples(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return RowBatch as a list of Python tuples
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.RowBatch.as_tuples", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tuples);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1729
 *         return tuples
 * 
 *     cdef Row get_row(self, i):             # <<<<<<<<<<<<<<
 *         # TODO: boundscheck
 * 
 */

static struct __pyx_obj_4kudu_6client_Row *__pyx_f_4kudu_6client_8RowBatch_get_row(struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self, PyObject *__pyx_v_i) {
  struct __pyx_obj_4kudu_6client_Row *__pyx_v_row = 0;
  struct __pyx_obj_4kudu_6client_Row *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("get_row", 0);

  /* "kudu/client.pyx":1736
 *         # scope we won't end up with orphaned Row objects. This isn't the best,
 *         # but an intermediate solution until we can do something better..
 *         cdef Row row = Row(self)             # <<<<<<<<<<<<<<
 *         row.row = self.batch.Row(i)
 *         return row
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_Row), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_row = ((struct __pyx_obj_4kudu_6client_Row *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1737
 *         # but an intermediate solution until we can do something better..
 *         cdef Row row = Row(self)
 *         row.row = self.batch.Row(i)             # <<<<<<<<<<<<<<
 *         return row
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1737, __pyx_L1_error)
  __pyx_v_row->row = __pyx_v_self->batch.Row(__pyx_t_2);

  /* "kudu/client.pyx":1738
 *         cdef Row row = Row(self)
 *         row.row = self.batch.Row(i)
 *         return row             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_row));
  __pyx_r = __pyx_v_row;
  goto __pyx_L0;

  /* "kudu/client.pyx":1729
 *         return tuples
 * 
 *     cdef Row get_row(self, i):             # <<<<<<<<<<<<<<
 *         # TODO: boundscheck
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.RowBatch.get_row", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_row);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_8RowBatch_9__reduce_cython__[] = "RowBatch.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_10__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RowBatch_9__reduce_cython__(((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RowBatch_9__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.RowBatch.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_8RowBatch_11__setstate_cython__[] = "RowBatch.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_8RowBatch_12__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_8RowBatch_11__setstate_cython__(((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_8RowBatch_11__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.RowBatch.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1752
 *         bint is_open
 * 
 *     def __cinit__(self, Table table = None):             # <<<<<<<<<<<<<<
 *         self.table = table
 *         self.scanner = NULL
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_7Scanner_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_7Scanner_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,0};
    PyObject* values[1] = {0};
    values[0] = (PyObject *)((struct __pyx_obj_4kudu_6client_Table *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 1752, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1752, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Scanner.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 1752, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner___cinit__(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), __pyx_v_table);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_7Scanner___cinit__(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":1753
 * 
 *     def __cinit__(self, Table table = None):
 *         self.table = table             # <<<<<<<<<<<<<<
 *         self.scanner = NULL
 *         self.is_open = 0
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_table));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_table));
  __Pyx_GOTREF(__pyx_v_self->table);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->table));
  __pyx_v_self->table = __pyx_v_table;

  /* "kudu/client.pyx":1754
 *     def __cinit__(self, Table table = None):
 *         self.table = table
 *         self.scanner = NULL             # <<<<<<<<<<<<<<
 *         self.is_open = 0
 * 
 */
  __pyx_v_self->scanner = NULL;

  /* "kudu/client.pyx":1755
 *         self.table = table
 *         self.scanner = NULL
 *         self.is_open = 0             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->is_open = 0;

  /* "kudu/client.pyx":1752
 *         bint is_open
 * 
 *     def __cinit__(self, Table table = None):             # <<<<<<<<<<<<<<
 *         self.table = table
 *         self.scanner = NULL
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1757
 *         self.is_open = 0
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         # We own this one
 *         if self.scanner != NULL:
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_7Scanner_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_7Scanner_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_7Scanner_2__dealloc__(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_7Scanner_2__dealloc__(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":1759
 *     def __dealloc__(self):
 *         # We own this one
 *         if self.scanner != NULL:             # <<<<<<<<<<<<<<
 *             del self.scanner
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->scanner != NULL) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":1760
 *         # We own this one
 *         if self.scanner != NULL:
 *             del self.scanner             # <<<<<<<<<<<<<<
 * 
 *     cdef inline ensure_open(self):
 */
    delete __pyx_v_self->scanner;

    /* "kudu/client.pyx":1759
 *     def __dealloc__(self):
 *         # We own this one
 *         if self.scanner != NULL:             # <<<<<<<<<<<<<<
 *             del self.scanner
 * 
 */
  }

  /* "kudu/client.pyx":1757
 *         self.is_open = 0
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         # We own this one
 *         if self.scanner != NULL:
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":1762
 *             del self.scanner
 * 
 *     cdef inline ensure_open(self):             # <<<<<<<<<<<<<<
 *         if not self.is_open:
 *             self.open()
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_7Scanner_ensure_open(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("ensure_open", 0);

  /* "kudu/client.pyx":1763
 * 
 *     cdef inline ensure_open(self):
 *         if not self.is_open:             # <<<<<<<<<<<<<<
 *             self.open()
 * 
 */
  __pyx_t_1 = ((!(__pyx_v_self->is_open != 0)) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":1764
 *     cdef inline ensure_open(self):
 *         if not self.is_open:
 *             self.open()             # <<<<<<<<<<<<<<
 * 
 *     def add_predicates(self, preds):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_open); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":1763
 * 
 *     cdef inline ensure_open(self):
 *         if not self.is_open:             # <<<<<<<<<<<<<<
 *             self.open()
 * 
 */
  }

  /* "kudu/client.pyx":1762
 *             del self.scanner
 * 
 *     cdef inline ensure_open(self):             # <<<<<<<<<<<<<<
 *         if not self.is_open:
 *             self.open()
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Scanner.ensure_open", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1766
 *             self.open()
 * 
 *     def add_predicates(self, preds):             # <<<<<<<<<<<<<<
 *         """
 *         Add a list of scan predicates to the scanner. Select columns from the
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_5add_predicates(PyObject *__pyx_v_self, PyObject *__pyx_v_preds); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_4add_predicates[] = "Scanner.add_predicates(self, preds)\n\n        Add a list of scan predicates to the scanner. Select columns from the\n        parent table and make comparisons to create predicates. Returns a\n        reference to itself to facilitate chaining.\n\n        Examples\n        --------\n        c = table[col_name]\n        preds = [c >= 0, c <= 10]\n        scanner.add_predicates(preds)\n\n        Parameters\n        ----------\n        preds : list of Predicate\n\n        Returns\n        -------\n        self : scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_5add_predicates(PyObject *__pyx_v_self, PyObject *__pyx_v_preds) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_predicates (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_4add_predicates(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_preds));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_4add_predicates(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_preds) {
  PyObject *__pyx_v_pred = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("add_predicates", 0);

  /* "kudu/client.pyx":1786
 *         self : scanner
 *         """
 *         for pred in preds:             # <<<<<<<<<<<<<<
 *             self.add_predicate(pred)
 * 
 */
  if (likely(PyList_CheckExact(__pyx_v_preds)) || PyTuple_CheckExact(__pyx_v_preds)) {
    __pyx_t_1 = __pyx_v_preds; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_preds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1786, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1786, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1786, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1786, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_pred, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "kudu/client.pyx":1787
 *         """
 *         for pred in preds:
 *             self.add_predicate(pred)             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
    if (!(likely(((__pyx_v_pred) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_pred, __pyx_ptype_4kudu_6client_Predicate))))) __PYX_ERR(0, 1787, __pyx_L1_error)
    __pyx_t_4 = ((struct __pyx_vtabstruct_4kudu_6client_Scanner *)__pyx_v_self->__pyx_vtab)->add_predicate(__pyx_v_self, ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_pred), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "kudu/client.pyx":1786
 *         self : scanner
 *         """
 *         for pred in preds:             # <<<<<<<<<<<<<<
 *             self.add_predicate(pred)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1789
 *             self.add_predicate(pred)
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     cpdef add_predicate(self, Predicate pred):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1766
 *             self.open()
 * 
 *     def add_predicates(self, preds):             # <<<<<<<<<<<<<<
 *         """
 *         Add a list of scan predicates to the scanner. Select columns from the
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Scanner.add_predicates", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pred);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1791
 *         return self
 * 
 *     cpdef add_predicate(self, Predicate pred):             # <<<<<<<<<<<<<<
 *         """
 *         Add a scan predicates to the scanner. Select columns from the
 */

static PyObject *__pyx_pw_4kudu_6client_7Scanner_7add_predicate(PyObject *__pyx_v_self, PyObject *__pyx_v_pred); /*proto*/
static PyObject *__pyx_f_4kudu_6client_7Scanner_add_predicate(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred, int __pyx_skip_dispatch) {
  kudu::client::KuduPredicate *__pyx_v_clone;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("add_predicate", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_predicate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1791, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_7Scanner_7add_predicate)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_pred)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_pred));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1791, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":1814
 *         # We clone the KuduPredicate so that the Predicate wrapper class can be
 *         # reused
 *         clone = pred.pred.Clone()             # <<<<<<<<<<<<<<
 *         check_status(self.scanner.AddConjunctPredicate(clone))
 * 
 */
  __pyx_v_clone = __pyx_v_pred->pred->Clone();

  /* "kudu/client.pyx":1815
 *         # reused
 *         clone = pred.pred.Clone()
 *         check_status(self.scanner.AddConjunctPredicate(clone))             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->AddConjunctPredicate(__pyx_v_clone)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1817
 *         check_status(self.scanner.AddConjunctPredicate(clone))
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_projected_column_names(self, names):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1791
 *         return self
 * 
 *     cpdef add_predicate(self, Predicate pred):             # <<<<<<<<<<<<<<
 *         """
 *         Add a scan predicates to the scanner. Select columns from the
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Scanner.add_predicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_7add_predicate(PyObject *__pyx_v_self, PyObject *__pyx_v_pred); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_6add_predicate[] = "Scanner.add_predicate(self, Predicate pred)\n\n        Add a scan predicates to the scanner. Select columns from the\n        parent table and make comparisons to create predicates. Returns\n        a reference to itself to facilitate chaining.\n\n        Examples\n        --------\n        pred = table[col_name] <= 10\n        scanner.add_predicate(pred)\n\n        Parameters\n        ----------\n        pred : kudu.Predicate\n\n        Returns\n        -------\n        self : scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_7add_predicate(PyObject *__pyx_v_self, PyObject *__pyx_v_pred) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_predicate (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pred), __pyx_ptype_4kudu_6client_Predicate, 1, "pred", 0))) __PYX_ERR(0, 1791, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_6add_predicate(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_pred));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_6add_predicate(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("add_predicate", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_7Scanner_add_predicate(__pyx_v_self, __pyx_v_pred, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.add_predicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1819
 *         return self
 * 
 *     def set_projected_column_names(self, names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_9set_projected_column_names(PyObject *__pyx_v_self, PyObject *__pyx_v_names); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_8set_projected_column_names[] = "Scanner.set_projected_column_names(self, names)\n\n        Sets the columns to be scanned.\n\n        Parameters\n        ----------\n        names : list of string\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_9set_projected_column_names(PyObject *__pyx_v_self, PyObject *__pyx_v_names) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_projected_column_names (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_8set_projected_column_names(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_names));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_8set_projected_column_names(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_names) {
  std::vector<std::string>  __pyx_v_v_names;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  std::string __pyx_t_9;
  __Pyx_RefNannySetupContext("set_projected_column_names", 0);
  __Pyx_INCREF(__pyx_v_names);

  /* "kudu/client.pyx":1831
 *         self : Scanner
 *         """
 *         if isinstance(names, str):             # <<<<<<<<<<<<<<
 *             names = [names]
 *         cdef vector[string] v_names
 */
  __pyx_t_1 = PyString_Check(__pyx_v_names); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":1832
 *         """
 *         if isinstance(names, str):
 *             names = [names]             # <<<<<<<<<<<<<<
 *         cdef vector[string] v_names
 *         for name in names:
 */
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1832, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_names);
    __Pyx_GIVEREF(__pyx_v_names);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_names);
    __Pyx_DECREF_SET(__pyx_v_names, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":1831
 *         self : Scanner
 *         """
 *         if isinstance(names, str):             # <<<<<<<<<<<<<<
 *             names = [names]
 *         cdef vector[string] v_names
 */
  }

  /* "kudu/client.pyx":1834
 *             names = [names]
 *         cdef vector[string] v_names
 *         for name in names:             # <<<<<<<<<<<<<<
 *             v_names.push_back(tobytes(name))
 *         check_status(self.scanner.SetProjectedColumnNames(v_names))
 */
  if (likely(PyList_CheckExact(__pyx_v_names)) || PyTuple_CheckExact(__pyx_v_names)) {
    __pyx_t_3 = __pyx_v_names; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1834, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1834, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1834, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1834, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "kudu/client.pyx":1835
 *         cdef vector[string] v_names
 *         for name in names:
 *             v_names.push_back(tobytes(name))             # <<<<<<<<<<<<<<
 *         check_status(self.scanner.SetProjectedColumnNames(v_names))
 *         return self
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1835, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1835, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1835, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    try {
      __pyx_v_v_names.push_back(__pyx_t_9);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 1835, __pyx_L1_error)
    }

    /* "kudu/client.pyx":1834
 *             names = [names]
 *         cdef vector[string] v_names
 *         for name in names:             # <<<<<<<<<<<<<<
 *             v_names.push_back(tobytes(name))
 *         check_status(self.scanner.SetProjectedColumnNames(v_names))
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":1836
 *         for name in names:
 *             v_names.push_back(tobytes(name))
 *         check_status(self.scanner.SetProjectedColumnNames(v_names))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetProjectedColumnNames(__pyx_v_v_names)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":1837
 *             v_names.push_back(tobytes(name))
 *         check_status(self.scanner.SetProjectedColumnNames(v_names))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_selection(self, replica_selection):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1819
 *         return self
 * 
 *     def set_projected_column_names(self, names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("kudu.client.Scanner.set_projected_column_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1839
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_11set_selection(PyObject *__pyx_v_self, PyObject *__pyx_v_replica_selection); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_10set_selection[] = "Scanner.set_selection(self, replica_selection)\n\n        Set the replica selection policy while scanning.\n\n        Parameters\n        ----------\n        replica_selection : {'leader', 'closest', 'first'}\n          You can also use the constants LEADER_ONLY, CLOSEST_REPLICA,\n          and FIRST_REPLICA\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_11set_selection(PyObject *__pyx_v_self, PyObject *__pyx_v_replica_selection) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_selection (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_10set_selection(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_replica_selection));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1855
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_13set_selection_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4kudu_6client_7Scanner_13set_selection_1invalid_selection_policy = {"invalid_selection_policy", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_13set_selection_1invalid_selection_policy, METH_NOARGS, 0};
static PyObject *__pyx_pw_4kudu_6client_7Scanner_13set_selection_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalid_selection_policy (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_13set_selection_invalid_selection_policy(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_13set_selection_invalid_selection_policy(PyObject *__pyx_self) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *__pyx_cur_scope;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("invalid_selection_policy", 0);
  __pyx_outer_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "kudu/client.pyx":1857
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(replica_selection, int):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Invalid_replica_selection_policy, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(!__pyx_cur_scope->__pyx_v_replica_selection)) { __Pyx_RaiseClosureNameError("replica_selection"); __PYX_ERR(0, 1857, __pyx_L1_error) }
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_replica_selection) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_replica_selection);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1856
 * 
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid replica selection policy: {0}'             # <<<<<<<<<<<<<<
 *                              .format(replica_selection))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 1856, __pyx_L1_error)

  /* "kudu/client.pyx":1855
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Scanner.set_selection.invalid_selection_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1839
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */

static PyObject *__pyx_pf_4kudu_6client_7Scanner_10set_selection(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_replica_selection) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *__pyx_cur_scope;
  PyObject *__pyx_v_invalid_selection_policy = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  enum  kudu::client::KuduClient::ReplicaSelection __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  __Pyx_RefNannySetupContext("set_selection", 0);
  __pyx_cur_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *)__pyx_tp_new_4kudu_6client___pyx_scope_struct_1_set_selection(__pyx_ptype_4kudu_6client___pyx_scope_struct_1_set_selection, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 1839, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_replica_selection = __pyx_v_replica_selection;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_replica_selection);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_replica_selection);

  /* "kudu/client.pyx":1855
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */
  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_7Scanner_13set_selection_1invalid_selection_policy, 0, __pyx_n_s_set_selection_locals_invalid_sel, ((PyObject*)__pyx_cur_scope), __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invalid_selection_policy = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1859
 *                              .format(replica_selection))
 * 
 *         if isinstance(replica_selection, int):             # <<<<<<<<<<<<<<
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self.scanner.SetSelection(
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_replica_selection;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyInt_Check(__pyx_t_1); 
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "kudu/client.pyx":1860
 * 
 *         if isinstance(replica_selection, int):
 *             if 0 <= replica_selection < len(_replica_selection_policies):             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetSelection(
 *                              <ReplicaSelection> replica_selection))
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_cur_scope->__pyx_v_replica_selection, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1860, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_4 = __pyx_v_4kudu_6client__replica_selection_policies;
      __Pyx_INCREF(__pyx_t_4);
      if (unlikely(__pyx_t_4 == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 1860, __pyx_L1_error)
      }
      __pyx_t_5 = PyDict_Size(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1860, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_replica_selection, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1860, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1860, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {

      /* "kudu/client.pyx":1862
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self.scanner.SetSelection(
 *                              <ReplicaSelection> replica_selection))             # <<<<<<<<<<<<<<
 *             else:
 *                 invalid_selection_policy()
 */
      __pyx_t_6 = ((enum  kudu::client::KuduClient::ReplicaSelection)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(__pyx_cur_scope->__pyx_v_replica_selection)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1862, __pyx_L1_error)

      /* "kudu/client.pyx":1861
 *         if isinstance(replica_selection, int):
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self.scanner.SetSelection(             # <<<<<<<<<<<<<<
 *                              <ReplicaSelection> replica_selection))
 *             else:
 */
      __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetSelection(((enum  kudu::client::KuduClient::ReplicaSelection)__pyx_t_6))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1861, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "kudu/client.pyx":1860
 * 
 *         if isinstance(replica_selection, int):
 *             if 0 <= replica_selection < len(_replica_selection_policies):             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetSelection(
 *                              <ReplicaSelection> replica_selection))
 */
      goto __pyx_L4;
    }

    /* "kudu/client.pyx":1864
 *                              <ReplicaSelection> replica_selection))
 *             else:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    /*else*/ {
      __pyx_t_1 = __pyx_pf_4kudu_6client_7Scanner_13set_selection_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1864, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "kudu/client.pyx":1859
 *                              .format(replica_selection))
 * 
 *         if isinstance(replica_selection, int):             # <<<<<<<<<<<<<<
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self.scanner.SetSelection(
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":1866
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      /*try:*/ {

        /* "kudu/client.pyx":1868
 *             try:
 *                 check_status(self.scanner.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))             # <<<<<<<<<<<<<<
 *             except KeyError:
 *                 invalid_selection_policy()
 */
        if (unlikely(__pyx_v_4kudu_6client__replica_selection_policies == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 1868, __pyx_L5_error)
        }
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_replica_selection, __pyx_n_s_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1868, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1868, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__replica_selection_policies, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1868, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = ((enum  kudu::client::KuduClient::ReplicaSelection)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1868, __pyx_L5_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":1867
 *         else:
 *             try:
 *                 check_status(self.scanner.SetSelection(             # <<<<<<<<<<<<<<
 *                     _replica_selection_policies[replica_selection.lower()]))
 *             except KeyError:
 */
        __pyx_t_4 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetSelection(__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1867, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":1866
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 */
      }
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "kudu/client.pyx":1869
 *                 check_status(self.scanner.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 *             except KeyError:             # <<<<<<<<<<<<<<
 *                 invalid_selection_policy()
 * 
 */
      __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_11) {
        __Pyx_AddTraceback("kudu.client.Scanner.set_selection", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 1869, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_10);

        /* "kudu/client.pyx":1870
 *                     _replica_selection_policies[replica_selection.lower()]))
 *             except KeyError:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
        __pyx_t_12 = __pyx_pf_4kudu_6client_7Scanner_13set_selection_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1870, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L6_exception_handled;
      }
      goto __pyx_L7_except_error;
      __pyx_L7_except_error:;

      /* "kudu/client.pyx":1866
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 */
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L1_error;
      __pyx_L6_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_L10_try_end:;
    }
  }
  __pyx_L3:;

  /* "kudu/client.pyx":1872
 *                 invalid_selection_policy()
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_projected_column_indexes(self, indexes):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1839
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("kudu.client.Scanner.set_selection", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invalid_selection_policy);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1874
 *         return self
 * 
 *     def set_projected_column_indexes(self, indexes):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_13set_projected_column_indexes(PyObject *__pyx_v_self, PyObject *__pyx_v_indexes); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_12set_projected_column_indexes[] = "Scanner.set_projected_column_indexes(self, indexes)\n\n        Sets the columns to be scanned.\n\n        Parameters\n        ----------\n        indexes : list of integers representing column indexes\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_13set_projected_column_indexes(PyObject *__pyx_v_self, PyObject *__pyx_v_indexes) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_projected_column_indexes (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_12set_projected_column_indexes(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_indexes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_12set_projected_column_indexes(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_indexes) {
  std::vector<int>  __pyx_v_v_indexes;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::vector<int>  __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("set_projected_column_indexes", 0);

  /* "kudu/client.pyx":1886
 *         self : Scanner
 *         """
 *         cdef vector[int] v_indexes = indexes             # <<<<<<<<<<<<<<
 *         check_status(self.scanner.SetProjectedColumnIndexes(v_indexes))
 *         return self
 */
  __pyx_t_1 = __pyx_convert_vector_from_py_int(__pyx_v_indexes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1886, __pyx_L1_error)
  __pyx_v_v_indexes = __pyx_t_1;

  /* "kudu/client.pyx":1887
 *         """
 *         cdef vector[int] v_indexes = indexes
 *         check_status(self.scanner.SetProjectedColumnIndexes(v_indexes))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetProjectedColumnIndexes(__pyx_v_v_indexes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1888
 *         cdef vector[int] v_indexes = indexes
 *         check_status(self.scanner.SetProjectedColumnIndexes(v_indexes))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_read_mode(self, read_mode):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1874
 *         return self
 * 
 *     def set_projected_column_indexes(self, indexes):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Scanner.set_projected_column_indexes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1890
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_15set_read_mode(PyObject *__pyx_v_self, PyObject *__pyx_v_read_mode); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_14set_read_mode[] = "Scanner.set_read_mode(self, read_mode)\n\n        Set the read mode for scanning.\n\n        Parameters\n        ----------\n        read_mode : {'latest', 'snapshot', 'read_your_writes'}\n          You can also use the constants READ_LATEST, READ_AT_SNAPSHOT,\n          READ_YOUR_WRITES\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_15set_read_mode(PyObject *__pyx_v_self, PyObject *__pyx_v_read_mode) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_read_mode (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_14set_read_mode(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_read_mode));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1906
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_13set_read_mode_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4kudu_6client_7Scanner_13set_read_mode_1invalid_selection_policy = {"invalid_selection_policy", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_13set_read_mode_1invalid_selection_policy, METH_NOARGS, 0};
static PyObject *__pyx_pw_4kudu_6client_7Scanner_13set_read_mode_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalid_selection_policy (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_13set_read_mode_invalid_selection_policy(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_13set_read_mode_invalid_selection_policy(PyObject *__pyx_self) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *__pyx_cur_scope;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("invalid_selection_policy", 0);
  __pyx_outer_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "kudu/client.pyx":1908
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(read_mode, int):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Invalid_read_mode_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(!__pyx_cur_scope->__pyx_v_read_mode)) { __Pyx_RaiseClosureNameError("read_mode"); __PYX_ERR(0, 1908, __pyx_L1_error) }
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_read_mode) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_read_mode);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1907
 * 
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid read mode: {0}'             # <<<<<<<<<<<<<<
 *                              .format(read_mode))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 1907, __pyx_L1_error)

  /* "kudu/client.pyx":1906
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Scanner.set_read_mode.invalid_selection_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1890
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */

static PyObject *__pyx_pf_4kudu_6client_7Scanner_14set_read_mode(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_read_mode) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *__pyx_cur_scope;
  PyObject *__pyx_v_invalid_selection_policy = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  enum  kudu::client::KuduScanner::ReadMode __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  __Pyx_RefNannySetupContext("set_read_mode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *)__pyx_tp_new_4kudu_6client___pyx_scope_struct_2_set_read_mode(__pyx_ptype_4kudu_6client___pyx_scope_struct_2_set_read_mode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 1890, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_read_mode = __pyx_v_read_mode;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_read_mode);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_read_mode);

  /* "kudu/client.pyx":1906
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */
  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_7Scanner_13set_read_mode_1invalid_selection_policy, 0, __pyx_n_s_set_read_mode_locals_invalid_sel, ((PyObject*)__pyx_cur_scope), __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invalid_selection_policy = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":1910
 *                              .format(read_mode))
 * 
 *         if isinstance(read_mode, int):             # <<<<<<<<<<<<<<
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self.scanner.SetReadMode(
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_read_mode;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyInt_Check(__pyx_t_1); 
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "kudu/client.pyx":1911
 * 
 *         if isinstance(read_mode, int):
 *             if 0 <= read_mode < len(_read_modes):             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetReadMode(
 *                              <ReadMode> read_mode))
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_cur_scope->__pyx_v_read_mode, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1911, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_4 = __pyx_v_4kudu_6client__read_modes;
      __Pyx_INCREF(__pyx_t_4);
      if (unlikely(__pyx_t_4 == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 1911, __pyx_L1_error)
      }
      __pyx_t_5 = PyDict_Size(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1911, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_read_mode, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1911, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1911, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {

      /* "kudu/client.pyx":1913
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self.scanner.SetReadMode(
 *                              <ReadMode> read_mode))             # <<<<<<<<<<<<<<
 *             else:
 *                 invalid_selection_policy()
 */
      __pyx_t_6 = ((enum  kudu::client::KuduScanner::ReadMode)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(__pyx_cur_scope->__pyx_v_read_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1913, __pyx_L1_error)

      /* "kudu/client.pyx":1912
 *         if isinstance(read_mode, int):
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self.scanner.SetReadMode(             # <<<<<<<<<<<<<<
 *                              <ReadMode> read_mode))
 *             else:
 */
      __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetReadMode(((enum  kudu::client::KuduScanner::ReadMode)__pyx_t_6))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1912, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "kudu/client.pyx":1911
 * 
 *         if isinstance(read_mode, int):
 *             if 0 <= read_mode < len(_read_modes):             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetReadMode(
 *                              <ReadMode> read_mode))
 */
      goto __pyx_L4;
    }

    /* "kudu/client.pyx":1915
 *                              <ReadMode> read_mode))
 *             else:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    /*else*/ {
      __pyx_t_1 = __pyx_pf_4kudu_6client_7Scanner_13set_read_mode_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1915, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "kudu/client.pyx":1910
 *                              .format(read_mode))
 * 
 *         if isinstance(read_mode, int):             # <<<<<<<<<<<<<<
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self.scanner.SetReadMode(
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":1917
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      /*try:*/ {

        /* "kudu/client.pyx":1919
 *             try:
 *                 check_status(self.scanner.SetReadMode(
 *                     _read_modes[read_mode.lower()]))             # <<<<<<<<<<<<<<
 *             except KeyError:
 *                 invalid_selection_policy()
 */
        if (unlikely(__pyx_v_4kudu_6client__read_modes == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 1919, __pyx_L5_error)
        }
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_read_mode, __pyx_n_s_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1919, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1919, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__read_modes, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1919, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = ((enum  kudu::client::KuduScanner::ReadMode)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1919, __pyx_L5_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":1918
 *         else:
 *             try:
 *                 check_status(self.scanner.SetReadMode(             # <<<<<<<<<<<<<<
 *                     _read_modes[read_mode.lower()]))
 *             except KeyError:
 */
        __pyx_t_4 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetReadMode(__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1918, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":1917
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 */
      }
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "kudu/client.pyx":1920
 *                 check_status(self.scanner.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 *             except KeyError:             # <<<<<<<<<<<<<<
 *                 invalid_selection_policy()
 * 
 */
      __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_11) {
        __Pyx_AddTraceback("kudu.client.Scanner.set_read_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 1920, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_10);

        /* "kudu/client.pyx":1921
 *                     _read_modes[read_mode.lower()]))
 *             except KeyError:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
        __pyx_t_12 = __pyx_pf_4kudu_6client_7Scanner_13set_read_mode_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1921, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L6_exception_handled;
      }
      goto __pyx_L7_except_error;
      __pyx_L7_except_error:;

      /* "kudu/client.pyx":1917
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self.scanner.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 */
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L1_error;
      __pyx_L6_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_L10_try_end:;
    }
  }
  __pyx_L3:;

  /* "kudu/client.pyx":1923
 *                 invalid_selection_policy()
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_snapshot(self, timestamp, format=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1890
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("kudu.client.Scanner.set_read_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invalid_selection_policy);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1925
 *         return self
 * 
 *     def set_snapshot(self, timestamp, format=None):             # <<<<<<<<<<<<<<
 *         """
 *         Set the snapshot timestamp for this scanner.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_17set_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_16set_snapshot[] = "Scanner.set_snapshot(self, timestamp, format=None)\n\n        Set the snapshot timestamp for this scanner.\n\n        Parameters\n        ---------\n        timestamp : datetime.datetime or string\n          If a string is provided, a format must be provided as well.\n          NOTE: This should be in UTC. If a timezone aware datetime\n          object is provided, it will be converted to UTC, otherwise,\n          all other input is assumed to be UTC.\n        format : Required if a string timestamp is provided\n          Uses the C strftime() function, see strftime(3) documentation.\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_17set_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_timestamp = 0;
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_snapshot (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_timestamp,&__pyx_n_s_format,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timestamp)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_snapshot") < 0)) __PYX_ERR(0, 1925, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_timestamp = values[0];
    __pyx_v_format = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_snapshot", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1925, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Scanner.set_snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_16set_snapshot(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), __pyx_v_timestamp, __pyx_v_format);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_16set_snapshot(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_timestamp, PyObject *__pyx_v_format) {
  PyObject *__pyx_v_snapshot_micros = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  uint64_t __pyx_t_9;
  __Pyx_RefNannySetupContext("set_snapshot", 0);

  /* "kudu/client.pyx":1944
 *         """
 *         # Confirm that a format is provided if timestamp is a string
 *         if isinstance(timestamp, six.string_types) and not format:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 "To use a string timestamp you must provide a format. " +
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_string_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_IsInstance(__pyx_v_timestamp, __pyx_t_3); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_format); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1944, __pyx_L1_error)
  __pyx_t_4 = ((!__pyx_t_5) != 0);
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "kudu/client.pyx":1946
 *         if isinstance(timestamp, six.string_types) and not format:
 *             raise ValueError(
 *                 "To use a string timestamp you must provide a format. " +             # <<<<<<<<<<<<<<
 *                 "See the strftime(3) documentation.")
 * 
 */
    __pyx_t_3 = PyNumber_Add(__pyx_kp_s_To_use_a_string_timestamp_you_mu, __pyx_kp_s_See_the_strftime_3_documentation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "kudu/client.pyx":1945
 *         # Confirm that a format is provided if timestamp is a string
 *         if isinstance(timestamp, six.string_types) and not format:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 "To use a string timestamp you must provide a format. " +
 *                 "See the strftime(3) documentation.")
 */
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 1945, __pyx_L1_error)

    /* "kudu/client.pyx":1944
 *         """
 *         # Confirm that a format is provided if timestamp is a string
 *         if isinstance(timestamp, six.string_types) and not format:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 "To use a string timestamp you must provide a format. " +
 */
  }

  /* "kudu/client.pyx":1949
 *                 "See the strftime(3) documentation.")
 * 
 *         snapshot_micros = to_unixtime_micros(timestamp, format)             # <<<<<<<<<<<<<<
 * 
 *         if snapshot_micros >= 0:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_to_unixtime_micros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_timestamp, __pyx_v_format};
    __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_2);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_timestamp, __pyx_v_format};
    __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_2);
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_INCREF(__pyx_v_timestamp);
    __Pyx_GIVEREF(__pyx_v_timestamp);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_timestamp);
    __Pyx_INCREF(__pyx_v_format);
    __Pyx_GIVEREF(__pyx_v_format);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_format);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_snapshot_micros = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "kudu/client.pyx":1951
 *         snapshot_micros = to_unixtime_micros(timestamp, format)
 * 
 *         if snapshot_micros >= 0:             # <<<<<<<<<<<<<<
 *             check_status(self.scanner.SetSnapshotMicros(
 *                          <uint64_t> snapshot_micros))
 */
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_snapshot_micros, __pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1951, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(__pyx_t_1)) {

    /* "kudu/client.pyx":1953
 *         if snapshot_micros >= 0:
 *             check_status(self.scanner.SetSnapshotMicros(
 *                          <uint64_t> snapshot_micros))             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError(
 */
    __pyx_t_9 = __Pyx_PyInt_As_uint64_t(__pyx_v_snapshot_micros); if (unlikely((__pyx_t_9 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1953, __pyx_L1_error)

    /* "kudu/client.pyx":1952
 * 
 *         if snapshot_micros >= 0:
 *             check_status(self.scanner.SetSnapshotMicros(             # <<<<<<<<<<<<<<
 *                          <uint64_t> snapshot_micros))
 *         else:
 */
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetSnapshotMicros(((uint64_t)__pyx_t_9))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1952, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":1951
 *         snapshot_micros = to_unixtime_micros(timestamp, format)
 * 
 *         if snapshot_micros >= 0:             # <<<<<<<<<<<<<<
 *             check_status(self.scanner.SetSnapshotMicros(
 *                          <uint64_t> snapshot_micros))
 */
    goto __pyx_L6;
  }

  /* "kudu/client.pyx":1955
 *                          <uint64_t> snapshot_micros))
 *         else:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 "Snapshot Timestamps be greater than the unix epoch.")
 * 
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 1955, __pyx_L1_error)
  }
  __pyx_L6:;

  /* "kudu/client.pyx":1958
 *                 "Snapshot Timestamps be greater than the unix epoch.")
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_limit(self, limit):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1925
 *         return self
 * 
 *     def set_snapshot(self, timestamp, format=None):             # <<<<<<<<<<<<<<
 *         """
 *         Set the snapshot timestamp for this scanner.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("kudu.client.Scanner.set_snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_snapshot_micros);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1960
 *         return self
 * 
 *     def set_limit(self, limit):             # <<<<<<<<<<<<<<
 *         """
 *         Set a limit on the number of rows returned by this scanner.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_19set_limit(PyObject *__pyx_v_self, PyObject *__pyx_v_limit); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_18set_limit[] = "Scanner.set_limit(self, limit)\n\n        Set a limit on the number of rows returned by this scanner.\n        Must be a positive value.\n\n        Parameters\n        ----------\n        limit : the maximum number of rows to return\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_19set_limit(PyObject *__pyx_v_self, PyObject *__pyx_v_limit) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_limit (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_18set_limit(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_limit));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_18set_limit(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_limit) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int64_t __pyx_t_3;
  __Pyx_RefNannySetupContext("set_limit", 0);

  /* "kudu/client.pyx":1973
 *         self : Scanner
 *         """
 *         if limit <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("Limit must be positive.")
 *         check_status(self.scanner.SetLimit(<int64_t> limit))
 */
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_limit, __pyx_int_0, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1973, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1973, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_2)) {

    /* "kudu/client.pyx":1974
 *         """
 *         if limit <= 0:
 *             raise ValueError("Limit must be positive.")             # <<<<<<<<<<<<<<
 *         check_status(self.scanner.SetLimit(<int64_t> limit))
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1974, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 1974, __pyx_L1_error)

    /* "kudu/client.pyx":1973
 *         self : Scanner
 *         """
 *         if limit <= 0:             # <<<<<<<<<<<<<<
 *             raise ValueError("Limit must be positive.")
 *         check_status(self.scanner.SetLimit(<int64_t> limit))
 */
  }

  /* "kudu/client.pyx":1975
 *         if limit <= 0:
 *             raise ValueError("Limit must be positive.")
 *         check_status(self.scanner.SetLimit(<int64_t> limit))             # <<<<<<<<<<<<<<
 * 
 *     def set_fault_tolerant(self):
 */
  __pyx_t_3 = __Pyx_PyInt_As_int64_t(__pyx_v_limit); if (unlikely((__pyx_t_3 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 1975, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetLimit(((int64_t)__pyx_t_3))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1960
 *         return self
 * 
 *     def set_limit(self, limit):             # <<<<<<<<<<<<<<
 *         """
 *         Set a limit on the number of rows returned by this scanner.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.set_limit", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1977
 *         check_status(self.scanner.SetLimit(<int64_t> limit))
 * 
 *     def set_fault_tolerant(self):             # <<<<<<<<<<<<<<
 *         """
 *         Makes the underlying KuduScanner fault tolerant.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_21set_fault_tolerant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_20set_fault_tolerant[] = "Scanner.set_fault_tolerant(self)\n\n        Makes the underlying KuduScanner fault tolerant.\n        Returns a reference to itself to facilitate chaining.\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_21set_fault_tolerant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_fault_tolerant (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_20set_fault_tolerant(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_20set_fault_tolerant(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_fault_tolerant", 0);

  /* "kudu/client.pyx":1986
 *         self : Scanner
 *         """
 *         check_status(self.scanner.SetFaultTolerant())             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetFaultTolerant()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1987
 *         """
 *         check_status(self.scanner.SetFaultTolerant())
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def new_bound(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":1977
 *         check_status(self.scanner.SetLimit(<int64_t> limit))
 * 
 *     def set_fault_tolerant(self):             # <<<<<<<<<<<<<<
 *         """
 *         Makes the underlying KuduScanner fault tolerant.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.set_fault_tolerant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":1989
 *         return self
 * 
 *     def new_bound(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a new instance of a PartialRow to be later set with
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_23new_bound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_22new_bound[] = "Scanner.new_bound(self)\n\n        Returns a new instance of a PartialRow to be later set with\n        add_lower_bound()/add_exclusive_upper_bound().\n\n        Returns\n        -------\n        bound : PartialRow\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_23new_bound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_bound (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_22new_bound(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_22new_bound(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("new_bound", 0);

  /* "kudu/client.pyx":1998
 *         bound : PartialRow
 *         """
 *         return self.table.schema.new_row()             # <<<<<<<<<<<<<<
 * 
 *     def add_lower_bound(self, bound):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":1989
 *         return self
 * 
 *     def new_bound(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a new instance of a PartialRow to be later set with
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Scanner.new_bound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2000
 *         return self.table.schema.new_row()
 * 
 *     def add_lower_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the (inclusive) lower bound of the scan.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_25add_lower_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_24add_lower_bound[] = "Scanner.add_lower_bound(self, bound)\n\n        Sets the (inclusive) lower bound of the scan.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        bound : PartialRow/tuple/list/dictionary\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_25add_lower_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_lower_bound (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_24add_lower_bound(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_bound));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_24add_lower_bound(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_bound) {
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_row = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("add_lower_bound", 0);

  /* "kudu/client.pyx":2016
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self.table.schema.new_row(bound)
 *         else:
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2017
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):
 *             row = self.table.schema.new_row(bound)             # <<<<<<<<<<<<<<
 *         else:
 *             row = bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2017, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2017, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2017, __pyx_L1_error)
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":2016
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self.table.schema.new_row(bound)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2019
 *             row = self.table.schema.new_row(bound)
 *         else:
 *             row = bound             # <<<<<<<<<<<<<<
 * 
 *         check_status(self.scanner.AddLowerBound(deref(row.row)))
 */
  /*else*/ {
    if (!(likely(((__pyx_v_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2019, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2021
 *             row = bound
 * 
 *         check_status(self.scanner.AddLowerBound(deref(row.row)))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->AddLowerBound((*__pyx_v_row->row))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":2022
 * 
 *         check_status(self.scanner.AddLowerBound(deref(row.row)))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_exclusive_upper_bound(self, bound):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2000
 *         return self.table.schema.new_row()
 * 
 *     def add_lower_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the (inclusive) lower bound of the scan.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.Scanner.add_lower_bound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_row);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2024
 *         return self
 * 
 *     def add_exclusive_upper_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the (exclusive) upper bound of the scan.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_27add_exclusive_upper_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_26add_exclusive_upper_bound[] = "Scanner.add_exclusive_upper_bound(self, bound)\n\n        Sets the (exclusive) upper bound of the scan.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        bound : PartialRow/tuple/list/dictionary\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_27add_exclusive_upper_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_exclusive_upper_bound (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_26add_exclusive_upper_bound(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_bound));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_26add_exclusive_upper_bound(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_bound) {
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_row = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("add_exclusive_upper_bound", 0);

  /* "kudu/client.pyx":2040
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self.table.schema.new_row(bound)
 *         else:
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2041
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):
 *             row = self.table.schema.new_row(bound)             # <<<<<<<<<<<<<<
 *         else:
 *             row = bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2041, __pyx_L1_error)
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":2040
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self.table.schema.new_row(bound)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2043
 *             row = self.table.schema.new_row(bound)
 *         else:
 *             row = bound             # <<<<<<<<<<<<<<
 * 
 *         check_status(self.scanner.AddExclusiveUpperBound(deref(row.row)))
 */
  /*else*/ {
    if (!(likely(((__pyx_v_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2043, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2045
 *             row = bound
 * 
 *         check_status(self.scanner.AddExclusiveUpperBound(deref(row.row)))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->AddExclusiveUpperBound((*__pyx_v_row->row))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2045, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":2046
 * 
 *         check_status(self.scanner.AddExclusiveUpperBound(deref(row.row)))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def get_projection_schema(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2024
 *         return self
 * 
 *     def add_exclusive_upper_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the (exclusive) upper bound of the scan.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.Scanner.add_exclusive_upper_bound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_row);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2048
 *         return self
 * 
 *     def get_projection_schema(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns the schema of the projection being scanned
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_29get_projection_schema(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_28get_projection_schema[] = "Scanner.get_projection_schema(self)\n\n        Returns the schema of the projection being scanned\n\n        Returns\n        -------\n        schema : kudu.Schema\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_29get_projection_schema(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_projection_schema (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_28get_projection_schema(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_28get_projection_schema(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_result = NULL;
  kudu::client::KuduSchema *__pyx_v_schema;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_projection_schema", 0);

  /* "kudu/client.pyx":2056
 *         schema : kudu.Schema
 *         """
 *         result = Schema()             # <<<<<<<<<<<<<<
 *         # Had to instantiate a new schema to return a pointer since the
 *         # GetProjectionSchema method does not
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6schema_Schema)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6schema_Schema *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2059
 *         # Had to instantiate a new schema to return a pointer since the
 *         # GetProjectionSchema method does not
 *         cdef KuduSchema* schema = new KuduSchema(self.scanner.             # <<<<<<<<<<<<<<
 *                                                  GetProjectionSchema())
 *         result.schema = schema
 */
  __pyx_v_schema = new kudu::client::KuduSchema(__pyx_v_self->scanner->GetProjectionSchema());

  /* "kudu/client.pyx":2061
 *         cdef KuduSchema* schema = new KuduSchema(self.scanner.
 *                                                  GetProjectionSchema())
 *         result.schema = schema             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_result->schema = __pyx_v_schema;

  /* "kudu/client.pyx":2062
 *                                                  GetProjectionSchema())
 *         result.schema = schema
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def get_resource_metrics(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":2048
 *         return self
 * 
 *     def get_projection_schema(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns the schema of the projection being scanned
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.get_projection_schema", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2064
 *         return result
 * 
 *     def get_resource_metrics(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the cumulative resource metrics since the scan was started.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_31get_resource_metrics(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_30get_resource_metrics[] = "Scanner.get_resource_metrics(self)\n\n        Return the cumulative resource metrics since the scan was started.\n\n        Returns\n        -------\n        metrics : Dictionary\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_31get_resource_metrics(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_resource_metrics (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_30get_resource_metrics(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_30get_resource_metrics(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  std::map<std::string,int64_t>  __pyx_v__map;
  PyObject *__pyx_v_result = NULL;
  std::pair<std::string,int64_t>  __pyx_v_it;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::map<std::string,int64_t> ::iterator __pyx_t_2;
  std::pair<std::string,int64_t>  __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("get_resource_metrics", 0);

  /* "kudu/client.pyx":2072
 *         metrics : Dictionary
 *         """
 *         _map = self.scanner.GetResourceMetrics().Get()             # <<<<<<<<<<<<<<
 * 
 *         # Convert map to python dictionary
 */
  __pyx_v__map = __pyx_v_self->scanner->GetResourceMetrics().Get();

  /* "kudu/client.pyx":2075
 * 
 *         # Convert map to python dictionary
 *         result = {}             # <<<<<<<<<<<<<<
 *         for it in _map:
 *             result[frombytes(it.first)] = it.second
 */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2076
 *         # Convert map to python dictionary
 *         result = {}
 *         for it in _map:             # <<<<<<<<<<<<<<
 *             result[frombytes(it.first)] = it.second
 *         return result
 */
  __pyx_t_2 = __pyx_v__map.begin();
  for (;;) {
    if (!(__pyx_t_2 != __pyx_v__map.end())) break;
    __pyx_t_3 = *__pyx_t_2;
    ++__pyx_t_2;
    __pyx_v_it = __pyx_t_3;

    /* "kudu/client.pyx":2077
 *         result = {}
 *         for it in _map:
 *             result[frombytes(it.first)] = it.second             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
    __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_v_it.second); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_it.first); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_result, __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2076
 *         # Convert map to python dictionary
 *         result = {}
 *         for it in _map:             # <<<<<<<<<<<<<<
 *             result[frombytes(it.first)] = it.second
 *         return result
 */
  }

  /* "kudu/client.pyx":2078
 *         for it in _map:
 *             result[frombytes(it.first)] = it.second
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def open(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "kudu/client.pyx":2064
 *         return result
 * 
 *     def get_resource_metrics(self):             # <<<<<<<<<<<<<<
 *         """
 *         Return the cumulative resource metrics since the scan was started.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("kudu.client.Scanner.get_resource_metrics", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2080
 *         return result
 * 
 *     def open(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a reference to itself to facilitate chaining
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_33open(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_32open[] = "Scanner.open(self)\n\n        Returns a reference to itself to facilitate chaining\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_33open(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("open (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_32open(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_32open(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("open", 0);

  /* "kudu/client.pyx":2088
 *         self : Scanner
 *         """
 *         if not self.is_open:             # <<<<<<<<<<<<<<
 *             check_status(self.scanner.Open())
 *             self.is_open = 1
 */
  __pyx_t_1 = ((!(__pyx_v_self->is_open != 0)) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2089
 *         """
 *         if not self.is_open:
 *             check_status(self.scanner.Open())             # <<<<<<<<<<<<<<
 *             self.is_open = 1
 *         return self
 */
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->Open()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2089, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2090
 *         if not self.is_open:
 *             check_status(self.scanner.Open())
 *             self.is_open = 1             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
    __pyx_v_self->is_open = 1;

    /* "kudu/client.pyx":2088
 *         self : Scanner
 *         """
 *         if not self.is_open:             # <<<<<<<<<<<<<<
 *             check_status(self.scanner.Open())
 *             self.is_open = 1
 */
  }

  /* "kudu/client.pyx":2091
 *             check_status(self.scanner.Open())
 *             self.is_open = 1
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def has_more_rows(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2080
 *         return result
 * 
 *     def open(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a reference to itself to facilitate chaining
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Scanner.open", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2093
 *         return self
 * 
 *     def has_more_rows(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns True if there are more rows to be read.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_35has_more_rows(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_34has_more_rows[] = "Scanner.has_more_rows(self)\n\n        Returns True if there are more rows to be read.\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_35has_more_rows(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("has_more_rows (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_34has_more_rows(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_34has_more_rows(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("has_more_rows", 0);

  /* "kudu/client.pyx":2097
 *         Returns True if there are more rows to be read.
 *         """
 *         return self.scanner.HasMoreRows()             # <<<<<<<<<<<<<<
 * 
 *     def read_all_tuples(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->scanner->HasMoreRows()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2093
 *         return self
 * 
 *     def has_more_rows(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns True if there are more rows to be read.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.has_more_rows", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2099
 *         return self.scanner.HasMoreRows()
 * 
 *     def read_all_tuples(self):             # <<<<<<<<<<<<<<
 *         """
 *         Compute a RowBatch containing all rows from the scan operation (which
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_37read_all_tuples(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_36read_all_tuples[] = "Scanner.read_all_tuples(self)\n\n        Compute a RowBatch containing all rows from the scan operation (which\n        hopefully fit into memory, probably not handled gracefully at the\n        moment).\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_37read_all_tuples(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read_all_tuples (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_36read_all_tuples(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_36read_all_tuples(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_v_tuples = 0;
  struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_batch = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("read_all_tuples", 0);

  /* "kudu/client.pyx":2105
 *         moment).
 *         """
 *         cdef list tuples = []             # <<<<<<<<<<<<<<
 *         cdef RowBatch batch
 * 
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_tuples = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2108
 *         cdef RowBatch batch
 * 
 *         self.ensure_open()             # <<<<<<<<<<<<<<
 * 
 *         while self.has_more_rows():
 */
  __pyx_t_1 = __pyx_f_4kudu_6client_7Scanner_ensure_open(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2110
 *         self.ensure_open()
 * 
 *         while self.has_more_rows():             # <<<<<<<<<<<<<<
 *             batch = self.next_batch()
 *             tuples.extend(batch.as_tuples())
 */
  while (1) {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_has_more_rows); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2110, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2110, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_4) break;

    /* "kudu/client.pyx":2111
 * 
 *         while self.has_more_rows():
 *             batch = self.next_batch()             # <<<<<<<<<<<<<<
 *             tuples.extend(batch.as_tuples())
 * 
 */
    __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4kudu_6client_Scanner *)__pyx_v_self->__pyx_vtab)->next_batch(__pyx_v_self, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2111, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_batch, ((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "kudu/client.pyx":2112
 *         while self.has_more_rows():
 *             batch = self.next_batch()
 *             tuples.extend(batch.as_tuples())             # <<<<<<<<<<<<<<
 * 
 *         return tuples
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_batch), __pyx_n_s_as_tuples); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2112, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyList_Extend(__pyx_v_tuples, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2112, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "kudu/client.pyx":2114
 *             tuples.extend(batch.as_tuples())
 * 
 *         return tuples             # <<<<<<<<<<<<<<
 * 
 *     def xbatches(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_tuples);
  __pyx_r = __pyx_v_tuples;
  goto __pyx_L0;

  /* "kudu/client.pyx":2099
 *         return self.scanner.HasMoreRows()
 * 
 *     def read_all_tuples(self):             # <<<<<<<<<<<<<<
 *         """
 *         Compute a RowBatch containing all rows from the scan operation (which
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Scanner.read_all_tuples", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tuples);
  __Pyx_XDECREF((PyObject *)__pyx_v_batch);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_4kudu_6client_7Scanner_40generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */

/* "kudu/client.pyx":2116
 *         return tuples
 * 
 *     def xbatches(self):             # <<<<<<<<<<<<<<
 *         """
 *         This method acts as a generator to enable more effective memory management
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_39xbatches(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_38xbatches[] = "Scanner.xbatches(self)\n\n        This method acts as a generator to enable more effective memory management\n        by yielding batches of tuples.\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_39xbatches(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("xbatches (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_38xbatches(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_38xbatches(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("xbatches", 0);
  __pyx_cur_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *)__pyx_tp_new_4kudu_6client___pyx_scope_struct_3_xbatches(__pyx_ptype_4kudu_6client___pyx_scope_struct_3_xbatches, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 2116, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_self = __pyx_v_self;
  __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_4kudu_6client_7Scanner_40generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_xbatches, __pyx_n_s_Scanner_xbatches, __pyx_n_s_kudu_client); if (unlikely(!gen)) __PYX_ERR(0, 2116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.Scanner.xbatches", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_4kudu_6client_7Scanner_40generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *__pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("xbatches", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L6_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 2116, __pyx_L1_error)

  /* "kudu/client.pyx":2122
 *         """
 * 
 *         self.ensure_open()             # <<<<<<<<<<<<<<
 * 
 *         while self.has_more_rows():
 */
  __pyx_t_1 = __pyx_f_4kudu_6client_7Scanner_ensure_open(__pyx_cur_scope->__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2124
 *         self.ensure_open()
 * 
 *         while self.has_more_rows():             # <<<<<<<<<<<<<<
 *             yield self.next_batch().as_tuples()
 * 
 */
  while (1) {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_v_self), __pyx_n_s_has_more_rows); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_4) break;

    /* "kudu/client.pyx":2125
 * 
 *         while self.has_more_rows():
 *             yield self.next_batch().as_tuples()             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4kudu_6client_Scanner *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->next_batch(__pyx_cur_scope->__pyx_v_self, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_as_tuples); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 2125, __pyx_L1_error)
  }
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* "kudu/client.pyx":2116
 *         return tuples
 * 
 *     def xbatches(self):             # <<<<<<<<<<<<<<
 *         """
 *         This method acts as a generator to enable more effective memory management
 */

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("xbatches", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2128
 * 
 * 
 *     def read_next_batch_tuples(self):             # <<<<<<<<<<<<<<
 *         return self.next_batch().as_tuples()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_42read_next_batch_tuples(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_41read_next_batch_tuples[] = "Scanner.read_next_batch_tuples(self)";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_42read_next_batch_tuples(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("read_next_batch_tuples (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_41read_next_batch_tuples(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_41read_next_batch_tuples(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("read_next_batch_tuples", 0);

  /* "kudu/client.pyx":2129
 * 
 *     def read_next_batch_tuples(self):
 *         return self.next_batch().as_tuples()             # <<<<<<<<<<<<<<
 * 
 *     cpdef RowBatch next_batch(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4kudu_6client_Scanner *)__pyx_v_self->__pyx_vtab)->next_batch(__pyx_v_self, 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_as_tuples); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2128
 * 
 * 
 *     def read_next_batch_tuples(self):             # <<<<<<<<<<<<<<
 *         return self.next_batch().as_tuples()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.Scanner.read_next_batch_tuples", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2131
 *         return self.next_batch().as_tuples()
 * 
 *     cpdef RowBatch next_batch(self):             # <<<<<<<<<<<<<<
 *         """
 *         Retrieve the next batch of rows from the scanner.
 */

static PyObject *__pyx_pw_4kudu_6client_7Scanner_44next_batch(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static struct __pyx_obj_4kudu_6client_RowBatch *__pyx_f_4kudu_6client_7Scanner_next_batch(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, int __pyx_skip_dispatch) {
  struct __pyx_obj_4kudu_6client_RowBatch *__pyx_v_batch = 0;
  struct __pyx_obj_4kudu_6client_RowBatch *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  __Pyx_RefNannySetupContext("next_batch", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next_batch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_7Scanner_44next_batch)) {
        __Pyx_XDECREF(((PyObject *)__pyx_r));
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2131, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4kudu_6client_RowBatch))))) __PYX_ERR(0, 2131, __pyx_L1_error)
        __pyx_r = ((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":2139
 *         batch : RowBatch
 *         """
 *         if not self.has_more_rows():             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_has_more_rows); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2139, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = ((!__pyx_t_5) != 0);
  if (unlikely(__pyx_t_6)) {

    /* "kudu/client.pyx":2140
 *         """
 *         if not self.has_more_rows():
 *             raise StopIteration             # <<<<<<<<<<<<<<
 * 
 *         cdef RowBatch batch = RowBatch()
 */
    __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
    __PYX_ERR(0, 2140, __pyx_L1_error)

    /* "kudu/client.pyx":2139
 *         batch : RowBatch
 *         """
 *         if not self.has_more_rows():             # <<<<<<<<<<<<<<
 *             raise StopIteration
 * 
 */
  }

  /* "kudu/client.pyx":2142
 *             raise StopIteration
 * 
 *         cdef RowBatch batch = RowBatch()             # <<<<<<<<<<<<<<
 *         check_status(self.scanner.NextBatch(&batch.batch))
 *         return batch
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_RowBatch)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_batch = ((struct __pyx_obj_4kudu_6client_RowBatch *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2143
 * 
 *         cdef RowBatch batch = RowBatch()
 *         check_status(self.scanner.NextBatch(&batch.batch))             # <<<<<<<<<<<<<<
 *         return batch
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->NextBatch((&__pyx_v_batch->batch))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2144
 *         cdef RowBatch batch = RowBatch()
 *         check_status(self.scanner.NextBatch(&batch.batch))
 *         return batch             # <<<<<<<<<<<<<<
 * 
 *     def set_cache_blocks(self, cache_blocks):
 */
  __Pyx_XDECREF(((PyObject *)__pyx_r));
  __Pyx_INCREF(((PyObject *)__pyx_v_batch));
  __pyx_r = __pyx_v_batch;
  goto __pyx_L0;

  /* "kudu/client.pyx":2131
 *         return self.next_batch().as_tuples()
 * 
 *     cpdef RowBatch next_batch(self):             # <<<<<<<<<<<<<<
 *         """
 *         Retrieve the next batch of rows from the scanner.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Scanner.next_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_batch);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_44next_batch(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_43next_batch[] = "Scanner.next_batch(self) -> RowBatch\n\n        Retrieve the next batch of rows from the scanner.\n\n        Returns\n        -------\n        batch : RowBatch\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_44next_batch(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_batch (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_43next_batch(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_43next_batch(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("next_batch", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_4kudu_6client_7Scanner_next_batch(__pyx_v_self, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.next_batch", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2146
 *         return batch
 * 
 *     def set_cache_blocks(self, cache_blocks):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the block caching policy.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_46set_cache_blocks(PyObject *__pyx_v_self, PyObject *__pyx_v_cache_blocks); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_45set_cache_blocks[] = "Scanner.set_cache_blocks(self, cache_blocks)\n\n        Sets the block caching policy.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        cache_blocks : bool\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_46set_cache_blocks(PyObject *__pyx_v_self, PyObject *__pyx_v_cache_blocks) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_cache_blocks (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_45set_cache_blocks(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v_cache_blocks));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_45set_cache_blocks(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_cache_blocks) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("set_cache_blocks", 0);

  /* "kudu/client.pyx":2159
 *         self : Scanner
 *         """
 *         check_status(self.scanner.SetCacheBlocks(cache_blocks))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_cache_blocks); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2159, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->SetCacheBlocks(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2160
 *         """
 *         check_status(self.scanner.SetCacheBlocks(cache_blocks))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def keep_alive(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2146
 *         return batch
 * 
 *     def set_cache_blocks(self, cache_blocks):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the block caching policy.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.Scanner.set_cache_blocks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2162
 *         return self
 * 
 *     def keep_alive(self):             # <<<<<<<<<<<<<<
 *         """
 *         Keep the current remote scanner alive.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_48keep_alive(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_47keep_alive[] = "Scanner.keep_alive(self)\n\n        Keep the current remote scanner alive.\n\n        Keep the current remote scanner alive on the Tablet server for an\n        additional time-to-live (set by a configuration flag on the tablet\n        server). This is useful if the interval in between NextBatch() calls is\n        big enough that the remote scanner might be garbage collected (default\n        ttl is set to 60 secs.). This does not invalidate any previously\n        fetched results.\n\n        Returns\n        -------\n        self : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_48keep_alive(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("keep_alive (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_47keep_alive(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_47keep_alive(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("keep_alive", 0);

  /* "kudu/client.pyx":2177
 *         self : Scanner
 *         """
 *         check_status(self.scanner.KeepAlive())             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->KeepAlive()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2178
 *         """
 *         check_status(self.scanner.KeepAlive())
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def get_current_server(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2162
 *         return self
 * 
 *     def keep_alive(self):             # <<<<<<<<<<<<<<
 *         """
 *         Keep the current remote scanner alive.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.keep_alive", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2180
 *         return self
 * 
 *     def get_current_server(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the TabletServer that is currently handling the scan.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_50get_current_server(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_49get_current_server[] = "Scanner.get_current_server(self)\n\n        Get the TabletServer that is currently handling the scan.\n\n        More concretely, this is the server that handled the most recent open()\n        or next_batch() RPC made by the server.\n\n        Returns\n        -------\n        tserver : TabletServer\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_50get_current_server(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_current_server (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_49get_current_server(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_49get_current_server(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_tserver = 0;
  kudu::client::KuduTabletServer *__pyx_v_tserver_p;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("get_current_server", 0);

  /* "kudu/client.pyx":2192
 *         """
 *         cdef:
 *             TabletServer tserver = TabletServer()             # <<<<<<<<<<<<<<
 *             KuduTabletServer* tserver_p = NULL
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TabletServer)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_tserver = ((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2193
 *         cdef:
 *             TabletServer tserver = TabletServer()
 *             KuduTabletServer* tserver_p = NULL             # <<<<<<<<<<<<<<
 * 
 *         check_status(self.scanner.GetCurrentServer(&tserver_p))
 */
  __pyx_v_tserver_p = NULL;

  /* "kudu/client.pyx":2195
 *             KuduTabletServer* tserver_p = NULL
 * 
 *         check_status(self.scanner.GetCurrentServer(&tserver_p))             # <<<<<<<<<<<<<<
 *         tserver._own = 1
 *         tserver._init(tserver_p)
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->scanner->GetCurrentServer((&__pyx_v_tserver_p))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2195, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2196
 * 
 *         check_status(self.scanner.GetCurrentServer(&tserver_p))
 *         tserver._own = 1             # <<<<<<<<<<<<<<
 *         tserver._init(tserver_p)
 *         return tserver
 */
  __pyx_v_tserver->_own = 1;

  /* "kudu/client.pyx":2197
 *         check_status(self.scanner.GetCurrentServer(&tserver_p))
 *         tserver._own = 1
 *         tserver._init(tserver_p)             # <<<<<<<<<<<<<<
 *         return tserver
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TabletServer *)__pyx_v_tserver->__pyx_vtab)->_init(__pyx_v_tserver, __pyx_v_tserver_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2198
 *         tserver._own = 1
 *         tserver._init(tserver_p)
 *         return tserver             # <<<<<<<<<<<<<<
 * 
 *     def close(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_tserver));
  __pyx_r = ((PyObject *)__pyx_v_tserver);
  goto __pyx_L0;

  /* "kudu/client.pyx":2180
 *         return self
 * 
 *     def get_current_server(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get the TabletServer that is currently handling the scan.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.get_current_server", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tserver);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2200
 *         return tserver
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         """
 *         Close the scanner.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_52close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_51close[] = "Scanner.close(self)\n\n        Close the scanner.\n\n        Closing the scanner releases resources on the server. This call does\n        not block, and will not ever fail, even if the server cannot be\n        contacted.\n\n        Note: The scanner is reset to its initial state by this function.\n        You'll have to re-add any projection, predicates, etc if you want to\n        reuse this object.\n        Note: When the Scanner object is garbage collected, this method is run.\n        This method call is only needed if you want to explicitly release the\n        resources on the server.\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_52close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_51close(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_51close(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close", 0);

  /* "kudu/client.pyx":2215
 *         resources on the server.
 *         """
 *         self.scanner.Close()             # <<<<<<<<<<<<<<
 * 
 *     def to_pandas(self, index=None, coerce_float=False):
 */
  __pyx_v_self->scanner->Close();

  /* "kudu/client.pyx":2200
 *         return tserver
 * 
 *     def close(self):             # <<<<<<<<<<<<<<
 *         """
 *         Close the scanner.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2217
 *         self.scanner.Close()
 * 
 *     def to_pandas(self, index=None, coerce_float=False):             # <<<<<<<<<<<<<<
 *         """
 *         Returns the contents of this Scanner to a Pandas DataFrame.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_54to_pandas(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_53to_pandas[] = "Scanner.to_pandas(self, index=None, coerce_float=False)\n\n        Returns the contents of this Scanner to a Pandas DataFrame.\n\n        This is only available if Pandas is installed.\n\n        Note: This should only be used if the results from the scanner are expected\n        to be small, as Pandas will load the entire contents into memory.\n\n        Parameters\n        ----------\n        index : string, list of fields\n            Field or list of fields to use as the index\n        coerce_float : boolean\n            Attempt to convert decimal values to floating point (double precision).\n\n        Returns\n        -------\n        dataframe : DataFrame\n        ";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_54to_pandas(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_index = 0;
  PyObject *__pyx_v_coerce_float = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("to_pandas (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_coerce_float,0};
    PyObject* values[2] = {0,0};
    values[0] = ((PyObject *)Py_None);
    values[1] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coerce_float);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "to_pandas") < 0)) __PYX_ERR(0, 2217, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_index = values[0];
    __pyx_v_coerce_float = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("to_pandas", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2217, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Scanner.to_pandas", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_53to_pandas(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), __pyx_v_index, __pyx_v_coerce_float);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_53to_pandas(struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_coerce_float) {
  PyObject *__pyx_v_pd = NULL;
  PyObject *__pyx_v_dfs = NULL;
  PyObject *__pyx_v_df = NULL;
  PyObject *__pyx_v_types = NULL;
  PyObject *__pyx_v_column = NULL;
  PyObject *__pyx_v_pandas_type = NULL;
  PyObject *__pyx_v_col = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_batch = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  PyObject *(*__pyx_t_6)(PyObject *);
  Py_ssize_t __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_t_14;
  PyObject *(*__pyx_t_15)(PyObject *);
  __Pyx_RefNannySetupContext("to_pandas", 0);

  /* "kudu/client.pyx":2237
 *         dataframe : DataFrame
 *         """
 *         import pandas as pd             # <<<<<<<<<<<<<<
 * 
 *         self.ensure_open()
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_pandas, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pd = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2239
 *         import pandas as pd
 * 
 *         self.ensure_open()             # <<<<<<<<<<<<<<
 * 
 *         # Here we are using list comprehension with the batch generator to avoid
 */
  __pyx_t_1 = __pyx_f_4kudu_6client_7Scanner_ensure_open(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2243
 *         # Here we are using list comprehension with the batch generator to avoid
 *         # doubling our memory footprint.
 *         dfs = [ pd.DataFrame.from_records(batch,             # <<<<<<<<<<<<<<
 *                                           index=index,
 *                                           coerce_float=coerce_float,
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2243, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "kudu/client.pyx":2247
 *                                           coerce_float=coerce_float,
 *                                           columns=self.get_projection_schema().names)
 *                 for batch in self.xbatches()             # <<<<<<<<<<<<<<
 *                 if len(batch) != 0
 *                 ]
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_xbatches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2247, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2247, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2247, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2247, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2247, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2247, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_batch, __pyx_t_2);
    __pyx_t_2 = 0;

    /* "kudu/client.pyx":2248
 *                                           columns=self.get_projection_schema().names)
 *                 for batch in self.xbatches()
 *                 if len(batch) != 0             # <<<<<<<<<<<<<<
 *                 ]
 * 
 */
    __pyx_t_7 = PyObject_Length(__pyx_v_batch); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2248, __pyx_L1_error)
    __pyx_t_8 = ((__pyx_t_7 != 0) != 0);
    if (__pyx_t_8) {

      /* "kudu/client.pyx":2243
 *         # Here we are using list comprehension with the batch generator to avoid
 *         # doubling our memory footprint.
 *         dfs = [ pd.DataFrame.from_records(batch,             # <<<<<<<<<<<<<<
 *                                           index=index,
 *                                           coerce_float=coerce_float,
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_pd, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_from_records); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_batch);
      __Pyx_GIVEREF(__pyx_v_batch);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_batch);

      /* "kudu/client.pyx":2244
 *         # doubling our memory footprint.
 *         dfs = [ pd.DataFrame.from_records(batch,
 *                                           index=index,             # <<<<<<<<<<<<<<
 *                                           coerce_float=coerce_float,
 *                                           columns=self.get_projection_schema().names)
 */
      __pyx_t_9 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_index, __pyx_v_index) < 0) __PYX_ERR(0, 2244, __pyx_L1_error)

      /* "kudu/client.pyx":2245
 *         dfs = [ pd.DataFrame.from_records(batch,
 *                                           index=index,
 *                                           coerce_float=coerce_float,             # <<<<<<<<<<<<<<
 *                                           columns=self.get_projection_schema().names)
 *                 for batch in self.xbatches()
 */
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_coerce_float, __pyx_v_coerce_float) < 0) __PYX_ERR(0, 2244, __pyx_L1_error)

      /* "kudu/client.pyx":2246
 *                                           index=index,
 *                                           coerce_float=coerce_float,
 *                                           columns=self.get_projection_schema().names)             # <<<<<<<<<<<<<<
 *                 for batch in self.xbatches()
 *                 if len(batch) != 0
 */
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_projection_schema); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_11, function);
        }
      }
      __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_11);
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_names); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_columns, __pyx_t_11) < 0) __PYX_ERR(0, 2244, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "kudu/client.pyx":2243
 *         # Here we are using list comprehension with the batch generator to avoid
 *         # doubling our memory footprint.
 *         dfs = [ pd.DataFrame.from_records(batch,             # <<<<<<<<<<<<<<
 *                                           index=index,
 *                                           coerce_float=coerce_float,
 */
      __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 2243, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

      /* "kudu/client.pyx":2248
 *                                           columns=self.get_projection_schema().names)
 *                 for batch in self.xbatches()
 *                 if len(batch) != 0             # <<<<<<<<<<<<<<
 *                 ]
 * 
 */
    }

    /* "kudu/client.pyx":2247
 *                                           coerce_float=coerce_float,
 *                                           columns=self.get_projection_schema().names)
 *                 for batch in self.xbatches()             # <<<<<<<<<<<<<<
 *                 if len(batch) != 0
 *                 ]
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_dfs = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2251
 *                 ]
 * 
 *         df = pd.concat(dfs, ignore_index=not(bool(index)))             # <<<<<<<<<<<<<<
 * 
 *         types = {}
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pd, __pyx_n_s_concat); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_dfs);
  __Pyx_GIVEREF(__pyx_v_dfs);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_dfs);
  __pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_index); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 2251, __pyx_L1_error)
  __pyx_t_9 = __Pyx_PyBool_FromLong((!((!(!__pyx_t_8)) != 0))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_ignore_index, __pyx_t_9) < 0) __PYX_ERR(0, 2251, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_v_df = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "kudu/client.pyx":2253
 *         df = pd.concat(dfs, ignore_index=not(bool(index)))
 * 
 *         types = {}             # <<<<<<<<<<<<<<
 *         for column in self.get_projection_schema():
 *             pandas_type = _correct_pandas_data_type(column.type.name)
 */
  __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2253, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_v_types = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;

  /* "kudu/client.pyx":2254
 * 
 *         types = {}
 *         for column in self.get_projection_schema():             # <<<<<<<<<<<<<<
 *             pandas_type = _correct_pandas_data_type(column.type.name)
 * 
 */
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_get_projection_schema); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
    }
  }
  __pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_6 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2254, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_11))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_11)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2254, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_11, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2254, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_11, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_6(__pyx_t_11);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2254, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_column, __pyx_t_9);
    __pyx_t_9 = 0;

    /* "kudu/client.pyx":2255
 *         types = {}
 *         for column in self.get_projection_schema():
 *             pandas_type = _correct_pandas_data_type(column.type.name)             # <<<<<<<<<<<<<<
 * 
 *             if pandas_type is not None and \
 */
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_correct_pandas_data_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_column, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_pandas_type, __pyx_t_9);
    __pyx_t_9 = 0;

    /* "kudu/client.pyx":2257
 *             pandas_type = _correct_pandas_data_type(column.type.name)
 * 
 *             if pandas_type is not None and \             # <<<<<<<<<<<<<<
 *                 not(column.nullable and df[column.name].isnull().any()):
 *                 types[column.name] = pandas_type
 */
    __pyx_t_13 = (__pyx_v_pandas_type != Py_None);
    __pyx_t_14 = (__pyx_t_13 != 0);
    if (__pyx_t_14) {
    } else {
      __pyx_t_8 = __pyx_t_14;
      goto __pyx_L9_bool_binop_done;
    }

    /* "kudu/client.pyx":2258
 * 
 *             if pandas_type is not None and \
 *                 not(column.nullable and df[column.name].isnull().any()):             # <<<<<<<<<<<<<<
 *                 types[column.name] = pandas_type
 * 
 */
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_column, __pyx_n_s_nullable); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (__pyx_t_13) {
    } else {
      __pyx_t_14 = __pyx_t_13;
      goto __pyx_L11_bool_binop_done;
    }
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_column, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_isnull); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_14 = __pyx_t_13;
    __pyx_L11_bool_binop_done:;
    __pyx_t_13 = ((!__pyx_t_14) != 0);
    __pyx_t_8 = __pyx_t_13;
    __pyx_L9_bool_binop_done:;

    /* "kudu/client.pyx":2257
 *             pandas_type = _correct_pandas_data_type(column.type.name)
 * 
 *             if pandas_type is not None and \             # <<<<<<<<<<<<<<
 *                 not(column.nullable and df[column.name].isnull().any()):
 *                 types[column.name] = pandas_type
 */
    if (__pyx_t_8) {

      /* "kudu/client.pyx":2259
 *             if pandas_type is not None and \
 *                 not(column.nullable and df[column.name].isnull().any()):
 *                 types[column.name] = pandas_type             # <<<<<<<<<<<<<<
 * 
 *         for col, dtype in types.items():
 */
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_column, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2259, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyDict_SetItem(__pyx_v_types, __pyx_t_9, __pyx_v_pandas_type) < 0)) __PYX_ERR(0, 2259, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

      /* "kudu/client.pyx":2257
 *             pandas_type = _correct_pandas_data_type(column.type.name)
 * 
 *             if pandas_type is not None and \             # <<<<<<<<<<<<<<
 *                 not(column.nullable and df[column.name].isnull().any()):
 *                 types[column.name] = pandas_type
 */
    }

    /* "kudu/client.pyx":2254
 * 
 *         types = {}
 *         for column in self.get_projection_schema():             # <<<<<<<<<<<<<<
 *             pandas_type = _correct_pandas_data_type(column.type.name)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;

  /* "kudu/client.pyx":2261
 *                 types[column.name] = pandas_type
 * 
 *         for col, dtype in types.items():             # <<<<<<<<<<<<<<
 *             df[col] = df[col].astype(dtype, copy=False)
 * 
 */
  __pyx_t_11 = __Pyx_PyDict_Items(__pyx_v_types); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
    __pyx_t_9 = __pyx_t_11; __Pyx_INCREF(__pyx_t_9); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2261, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_6 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2261, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_11); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2261, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2261, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_5); __Pyx_INCREF(__pyx_t_11); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 2261, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2261, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      }
    } else {
      __pyx_t_11 = __pyx_t_6(__pyx_t_9);
      if (unlikely(!__pyx_t_11)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2261, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_11);
    }
    if ((likely(PyTuple_CheckExact(__pyx_t_11))) || (PyList_CheckExact(__pyx_t_11))) {
      PyObject* sequence = __pyx_t_11;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 2261, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      #else
      __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_15 = Py_TYPE(__pyx_t_1)->tp_iternext;
      index = 0; __pyx_t_2 = __pyx_t_15(__pyx_t_1); if (unlikely(!__pyx_t_2)) goto __pyx_L15_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      index = 1; __pyx_t_3 = __pyx_t_15(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L15_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_15(__pyx_t_1), 2) < 0) __PYX_ERR(0, 2261, __pyx_L1_error)
      __pyx_t_15 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L16_unpacking_done;
      __pyx_L15_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_15 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 2261, __pyx_L1_error)
      __pyx_L16_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_col, __pyx_t_2);
    __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":2262
 * 
 *         for col, dtype in types.items():
 *             df[col] = df[col].astype(dtype, copy=False)             # <<<<<<<<<<<<<<
 * 
 *         return df
 */
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_df, __pyx_v_col); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_astype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_v_dtype);
    __Pyx_GIVEREF(__pyx_v_dtype);
    PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v_dtype);
    __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 2262, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_v_df, __pyx_v_col, __pyx_t_1) < 0)) __PYX_ERR(0, 2262, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2261
 *                 types[column.name] = pandas_type
 * 
 *         for col, dtype in types.items():             # <<<<<<<<<<<<<<
 *             df[col] = df[col].astype(dtype, copy=False)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;

  /* "kudu/client.pyx":2264
 *             df[col] = df[col].astype(dtype, copy=False)
 * 
 *         return df             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_df);
  __pyx_r = __pyx_v_df;
  goto __pyx_L0;

  /* "kudu/client.pyx":2217
 *         self.scanner.Close()
 * 
 *     def to_pandas(self, index=None, coerce_float=False):             # <<<<<<<<<<<<<<
 *         """
 *         Returns the contents of this Scanner to a Pandas DataFrame.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("kudu.client.Scanner.to_pandas", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pd);
  __Pyx_XDECREF(__pyx_v_dfs);
  __Pyx_XDECREF(__pyx_v_df);
  __Pyx_XDECREF(__pyx_v_types);
  __Pyx_XDECREF(__pyx_v_column);
  __Pyx_XDECREF(__pyx_v_pandas_type);
  __Pyx_XDECREF(__pyx_v_col);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_batch);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_56__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_55__reduce_cython__[] = "Scanner.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_56__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_55__reduce_cython__(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_55__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Scanner_58__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_7Scanner_57__setstate_cython__[] = "Scanner.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_7Scanner_58__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Scanner_57__setstate_cython__(((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Scanner_57__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Scanner.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2279
 *         KuduScanToken* _token
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self._token = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_9ScanToken_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_9ScanToken_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken___cinit__(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_9ScanToken___cinit__(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2280
 * 
 *     def __cinit__(self):
 *         self._token = NULL             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->_token = NULL;

  /* "kudu/client.pyx":2279
 *         KuduScanToken* _token
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self._token = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2282
 *         self._token = NULL
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._token != NULL:
 *             del self._token
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_9ScanToken_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_9ScanToken_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_9ScanToken_2__dealloc__(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_9ScanToken_2__dealloc__(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2283
 * 
 *     def __dealloc__(self):
 *         if self._token != NULL:             # <<<<<<<<<<<<<<
 *             del self._token
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->_token != NULL) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2284
 *     def __dealloc__(self):
 *         if self._token != NULL:
 *             del self._token             # <<<<<<<<<<<<<<
 * 
 *     cdef _init(self, KuduScanToken* token):
 */
    delete __pyx_v_self->_token;

    /* "kudu/client.pyx":2283
 * 
 *     def __dealloc__(self):
 *         if self._token != NULL:             # <<<<<<<<<<<<<<
 *             del self._token
 * 
 */
  }

  /* "kudu/client.pyx":2282
 *         self._token = NULL
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._token != NULL:
 *             del self._token
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":2286
 *             del self._token
 * 
 *     cdef _init(self, KuduScanToken* token):             # <<<<<<<<<<<<<<
 *         self._token = token
 *         return self
 */

static PyObject *__pyx_f_4kudu_6client_9ScanToken__init(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self, kudu::client::KuduScanToken *__pyx_v_token) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init", 0);

  /* "kudu/client.pyx":2287
 * 
 *     cdef _init(self, KuduScanToken* token):
 *         self._token = token             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_v_self->_token = __pyx_v_token;

  /* "kudu/client.pyx":2288
 *     cdef _init(self, KuduScanToken* token):
 *         self._token = token
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def into_kudu_scanner(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2286
 *             del self._token
 * 
 *     cdef _init(self, KuduScanToken* token):             # <<<<<<<<<<<<<<
 *         self._token = token
 *         return self
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2290
 *         return self
 * 
 *     def into_kudu_scanner(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a scanner under the current client.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_5into_kudu_scanner(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9ScanToken_4into_kudu_scanner[] = "ScanToken.into_kudu_scanner(self)\n\n        Returns a scanner under the current client.\n\n        Returns\n        -------\n        scanner : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_5into_kudu_scanner(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("into_kudu_scanner (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken_4into_kudu_scanner(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9ScanToken_4into_kudu_scanner(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_result = 0;
  kudu::client::KuduScanner *__pyx_v__scanner;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("into_kudu_scanner", 0);

  /* "kudu/client.pyx":2299
 *         """
 *         cdef:
 *             Scanner result = Scanner()             # <<<<<<<<<<<<<<
 *             KuduScanner* _scanner = NULL
 *         check_status(self._token.IntoKuduScanner(&_scanner))
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Scanner)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2299, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2300
 *         cdef:
 *             Scanner result = Scanner()
 *             KuduScanner* _scanner = NULL             # <<<<<<<<<<<<<<
 *         check_status(self._token.IntoKuduScanner(&_scanner))
 *         result.scanner = _scanner
 */
  __pyx_v__scanner = NULL;

  /* "kudu/client.pyx":2301
 *             Scanner result = Scanner()
 *             KuduScanner* _scanner = NULL
 *         check_status(self._token.IntoKuduScanner(&_scanner))             # <<<<<<<<<<<<<<
 *         result.scanner = _scanner
 *         return result
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_token->IntoKuduScanner((&__pyx_v__scanner))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2302
 *             KuduScanner* _scanner = NULL
 *         check_status(self._token.IntoKuduScanner(&_scanner))
 *         result.scanner = _scanner             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_result->scanner = __pyx_v__scanner;

  /* "kudu/client.pyx":2303
 *         check_status(self._token.IntoKuduScanner(&_scanner))
 *         result.scanner = _scanner
 *         return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":2290
 *         return self
 * 
 *     def into_kudu_scanner(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a scanner under the current client.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanToken.into_kudu_scanner", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2306
 * 
 * 
 *     def tablet(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns the Tablet associated with this ScanToken
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_7tablet(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9ScanToken_6tablet[] = "ScanToken.tablet(self)\n\n        Returns the Tablet associated with this ScanToken\n\n        Returns\n        -------\n        tablet : Tablet\n        ";
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_7tablet(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tablet (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken_6tablet(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9ScanToken_6tablet(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_tablet = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("tablet", 0);

  /* "kudu/client.pyx":2314
 *         tablet : Tablet
 *         """
 *         tablet = Tablet()             # <<<<<<<<<<<<<<
 *         return tablet._init(&self._token.tablet())
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Tablet)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_tablet = ((struct __pyx_obj_4kudu_6client_Tablet *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2315
 *         """
 *         tablet = Tablet()
 *         return tablet._init(&self._token.tablet())             # <<<<<<<<<<<<<<
 * 
 *     def serialize(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Tablet *)__pyx_v_tablet->__pyx_vtab)->_init(__pyx_v_tablet, (&__pyx_v_self->_token->tablet())); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2306
 * 
 * 
 *     def tablet(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns the Tablet associated with this ScanToken
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanToken.tablet", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_tablet);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2317
 *         return tablet._init(&self._token.tablet())
 * 
 *     def serialize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Serialize token into a string.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_9serialize(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9ScanToken_8serialize[] = "ScanToken.serialize(self)\n\n        Serialize token into a string.\n\n        Returns\n        -------\n        serialized_token : string\n        ";
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_9serialize(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("serialize (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken_8serialize(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9ScanToken_8serialize(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self) {
  std::string __pyx_v_buf;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("serialize", 0);

  /* "kudu/client.pyx":2326
 *         """
 *         cdef string buf
 *         check_status(self._token.Serialize(&buf))             # <<<<<<<<<<<<<<
 *         return buf
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_token->Serialize((&__pyx_v_buf))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2327
 *         cdef string buf
 *         check_status(self._token.Serialize(&buf))
 *         return buf             # <<<<<<<<<<<<<<
 * 
 *     def deserialize_into_scanner(self, Client client, serialized_token):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_buf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2317
 *         return tablet._init(&self._token.tablet())
 * 
 *     def serialize(self):             # <<<<<<<<<<<<<<
 *         """
 *         Serialize token into a string.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanToken.serialize", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2329
 *         return buf
 * 
 *     def deserialize_into_scanner(self, Client client, serialized_token):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a new scanner from the serialized token created under
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_11deserialize_into_scanner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_9ScanToken_10deserialize_into_scanner[] = "ScanToken.deserialize_into_scanner(self, Client client, serialized_token)\n\n        Returns a new scanner from the serialized token created under\n        the provided Client.\n\n        Parameters\n        ----------\n        client : Client\n        serialized_token : string\n\n        Returns\n        -------\n        scanner : Scanner\n        ";
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_11deserialize_into_scanner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Client *__pyx_v_client = 0;
  PyObject *__pyx_v_serialized_token = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("deserialize_into_scanner (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_client,&__pyx_n_s_serialized_token,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_client)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_serialized_token)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("deserialize_into_scanner", 1, 2, 2, 1); __PYX_ERR(0, 2329, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deserialize_into_scanner") < 0)) __PYX_ERR(0, 2329, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_client = ((struct __pyx_obj_4kudu_6client_Client *)values[0]);
    __pyx_v_serialized_token = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("deserialize_into_scanner", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2329, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.ScanToken.deserialize_into_scanner", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_client), __pyx_ptype_4kudu_6client_Client, 1, "client", 0))) __PYX_ERR(0, 2329, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken_10deserialize_into_scanner(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self), __pyx_v_client, __pyx_v_serialized_token);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9ScanToken_10deserialize_into_scanner(struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self, struct __pyx_obj_4kudu_6client_Client *__pyx_v_client, PyObject *__pyx_v_serialized_token) {
  struct __pyx_obj_4kudu_6client_Scanner *__pyx_v_result = 0;
  kudu::client::KuduScanner *__pyx_v__scanner;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::string __pyx_t_2;
  __Pyx_RefNannySetupContext("deserialize_into_scanner", 0);

  /* "kudu/client.pyx":2344
 *         """
 *         cdef:
 *             Scanner result = Scanner()             # <<<<<<<<<<<<<<
 *             KuduScanner* _scanner
 *         check_status(self._token.DeserializeIntoScanner(client.cp, serialized_token, &_scanner))
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Scanner)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6client_Scanner *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2346
 *             Scanner result = Scanner()
 *             KuduScanner* _scanner
 *         check_status(self._token.DeserializeIntoScanner(client.cp, serialized_token, &_scanner))             # <<<<<<<<<<<<<<
 *         result.scanner = _scanner
 *         return result
 */
  __pyx_t_2 = __pyx_convert_string_from_py_std__in_string(__pyx_v_serialized_token); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2346, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_token->DeserializeIntoScanner(__pyx_v_client->cp, __pyx_t_2, (&__pyx_v__scanner))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2347
 *             KuduScanner* _scanner
 *         check_status(self._token.DeserializeIntoScanner(client.cp, serialized_token, &_scanner))
 *         result.scanner = _scanner             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_result->scanner = __pyx_v__scanner;

  /* "kudu/client.pyx":2348
 *         check_status(self._token.DeserializeIntoScanner(client.cp, serialized_token, &_scanner))
 *         result.scanner = _scanner
 *         return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":2329
 *         return buf
 * 
 *     def deserialize_into_scanner(self, Client client, serialized_token):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a new scanner from the serialized token created under
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanToken.deserialize_into_scanner", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_13__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9ScanToken_12__reduce_cython__[] = "ScanToken.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_13__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken_12__reduce_cython__(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9ScanToken_12__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanToken.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_15__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_9ScanToken_14__setstate_cython__[] = "ScanToken.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_9ScanToken_15__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9ScanToken_14__setstate_cython__(((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9ScanToken_14__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanToken.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2359
 *         Table _table
 * 
 *     def __cinit__(self, Table table):             # <<<<<<<<<<<<<<
 *         self._table = table
 *         self._builder = new KuduScanTokenBuilder(table.ptr())
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_16ScanTokenBuilder_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_16ScanTokenBuilder_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2359, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2359, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2359, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder___cinit__(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), __pyx_v_table);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_16ScanTokenBuilder___cinit__(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2360
 * 
 *     def __cinit__(self, Table table):
 *         self._table = table             # <<<<<<<<<<<<<<
 *         self._builder = new KuduScanTokenBuilder(table.ptr())
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_table));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_table));
  __Pyx_GOTREF(__pyx_v_self->_table);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_table));
  __pyx_v_self->_table = __pyx_v_table;

  /* "kudu/client.pyx":2361
 *     def __cinit__(self, Table table):
 *         self._table = table
 *         self._builder = new KuduScanTokenBuilder(table.ptr())             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->_builder = new kudu::client::KuduScanTokenBuilder(__pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table));

  /* "kudu/client.pyx":2359
 *         Table _table
 * 
 *     def __cinit__(self, Table table):             # <<<<<<<<<<<<<<
 *         self._table = table
 *         self._builder = new KuduScanTokenBuilder(table.ptr())
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2363
 *         self._builder = new KuduScanTokenBuilder(table.ptr())
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._builder != NULL:
 *             del self._builder
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_16ScanTokenBuilder_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_16ScanTokenBuilder_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_16ScanTokenBuilder_2__dealloc__(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_16ScanTokenBuilder_2__dealloc__(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2364
 * 
 *     def __dealloc__(self):
 *         if self._builder != NULL:             # <<<<<<<<<<<<<<
 *             del self._builder
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->_builder != NULL) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2365
 *     def __dealloc__(self):
 *         if self._builder != NULL:
 *             del self._builder             # <<<<<<<<<<<<<<
 * 
 *     def set_projected_column_names(self, names):
 */
    delete __pyx_v_self->_builder;

    /* "kudu/client.pyx":2364
 * 
 *     def __dealloc__(self):
 *         if self._builder != NULL:             # <<<<<<<<<<<<<<
 *             del self._builder
 * 
 */
  }

  /* "kudu/client.pyx":2363
 *         self._builder = new KuduScanTokenBuilder(table.ptr())
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._builder != NULL:
 *             del self._builder
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":2367
 *             del self._builder
 * 
 *     def set_projected_column_names(self, names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_5set_projected_column_names(PyObject *__pyx_v_self, PyObject *__pyx_v_names); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_4set_projected_column_names[] = "ScanTokenBuilder.set_projected_column_names(self, names)\n\n        Sets the columns to be scanned.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        names : list of strings\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_5set_projected_column_names(PyObject *__pyx_v_self, PyObject *__pyx_v_names) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_projected_column_names (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_4set_projected_column_names(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_names));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_4set_projected_column_names(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_names) {
  std::vector<std::string>  __pyx_v_v_names;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  std::string __pyx_t_9;
  __Pyx_RefNannySetupContext("set_projected_column_names", 0);
  __Pyx_INCREF(__pyx_v_names);

  /* "kudu/client.pyx":2380
 *         self : ScanTokenBuilder
 *         """
 *         if isinstance(names, str):             # <<<<<<<<<<<<<<
 *             names = [names]
 *         cdef vector[string] v_names
 */
  __pyx_t_1 = PyString_Check(__pyx_v_names); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2381
 *         """
 *         if isinstance(names, str):
 *             names = [names]             # <<<<<<<<<<<<<<
 *         cdef vector[string] v_names
 *         for name in names:
 */
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_names);
    __Pyx_GIVEREF(__pyx_v_names);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_names);
    __Pyx_DECREF_SET(__pyx_v_names, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":2380
 *         self : ScanTokenBuilder
 *         """
 *         if isinstance(names, str):             # <<<<<<<<<<<<<<
 *             names = [names]
 *         cdef vector[string] v_names
 */
  }

  /* "kudu/client.pyx":2383
 *             names = [names]
 *         cdef vector[string] v_names
 *         for name in names:             # <<<<<<<<<<<<<<
 *             v_names.push_back(tobytes(name))
 *         check_status(self._builder.SetProjectedColumnNames(v_names))
 */
  if (likely(PyList_CheckExact(__pyx_v_names)) || PyTuple_CheckExact(__pyx_v_names)) {
    __pyx_t_3 = __pyx_v_names; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_names); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2383, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2383, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2383, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 2383, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2383, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2383, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "kudu/client.pyx":2384
 *         cdef vector[string] v_names
 *         for name in names:
 *             v_names.push_back(tobytes(name))             # <<<<<<<<<<<<<<
 *         check_status(self._builder.SetProjectedColumnNames(v_names))
 *         return self
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_name);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9 = __pyx_convert_string_from_py_std__in_string(__pyx_t_6); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    try {
      __pyx_v_v_names.push_back(__pyx_t_9);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 2384, __pyx_L1_error)
    }

    /* "kudu/client.pyx":2383
 *             names = [names]
 *         cdef vector[string] v_names
 *         for name in names:             # <<<<<<<<<<<<<<
 *             v_names.push_back(tobytes(name))
 *         check_status(self._builder.SetProjectedColumnNames(v_names))
 */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":2385
 *         for name in names:
 *             v_names.push_back(tobytes(name))
 *         check_status(self._builder.SetProjectedColumnNames(v_names))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetProjectedColumnNames(__pyx_v_v_names)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":2386
 *             v_names.push_back(tobytes(name))
 *         check_status(self._builder.SetProjectedColumnNames(v_names))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_projected_column_indexes(self, indexes):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2367
 *             del self._builder
 * 
 *     def set_projected_column_names(self, names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_projected_column_names", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2388
 *         return self
 * 
 *     def set_projected_column_indexes(self, indexes):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_7set_projected_column_indexes(PyObject *__pyx_v_self, PyObject *__pyx_v_indexes); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_6set_projected_column_indexes[] = "ScanTokenBuilder.set_projected_column_indexes(self, indexes)\n\n        Sets the columns to be scanned.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        indexes : list of integers representing column indexes\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_7set_projected_column_indexes(PyObject *__pyx_v_self, PyObject *__pyx_v_indexes) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_projected_column_indexes (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_6set_projected_column_indexes(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_indexes));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_6set_projected_column_indexes(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_indexes) {
  std::vector<int>  __pyx_v_v_indexes;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  std::vector<int>  __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("set_projected_column_indexes", 0);

  /* "kudu/client.pyx":2401
 *         self : ScanTokenBuilder
 *         """
 *         cdef vector[int] v_indexes = indexes             # <<<<<<<<<<<<<<
 *         check_status(self._builder.SetProjectedColumnIndexes(v_indexes))
 *         return self
 */
  __pyx_t_1 = __pyx_convert_vector_from_py_int(__pyx_v_indexes); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2401, __pyx_L1_error)
  __pyx_v_v_indexes = __pyx_t_1;

  /* "kudu/client.pyx":2402
 *         """
 *         cdef vector[int] v_indexes = indexes
 *         check_status(self._builder.SetProjectedColumnIndexes(v_indexes))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetProjectedColumnIndexes(__pyx_v_v_indexes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2403
 *         cdef vector[int] v_indexes = indexes
 *         check_status(self._builder.SetProjectedColumnIndexes(v_indexes))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_batch_size_bytes(self, batch_size):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2388
 *         return self
 * 
 *     def set_projected_column_indexes(self, indexes):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns to be scanned.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_projected_column_indexes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2405
 *         return self
 * 
 *     def set_batch_size_bytes(self, batch_size):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the batch size in bytes.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_9set_batch_size_bytes(PyObject *__pyx_v_self, PyObject *__pyx_v_batch_size); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_8set_batch_size_bytes[] = "ScanTokenBuilder.set_batch_size_bytes(self, batch_size)\n\n        Sets the batch size in bytes.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        batch_size : Size of batch in bytes\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_9set_batch_size_bytes(PyObject *__pyx_v_self, PyObject *__pyx_v_batch_size) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_batch_size_bytes (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_8set_batch_size_bytes(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_batch_size));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_8set_batch_size_bytes(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_batch_size) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  uint32_t __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("set_batch_size_bytes", 0);

  /* "kudu/client.pyx":2418
 *         self : ScanTokenBuilder
 *         """
 *         check_status(self._builder.SetBatchSizeBytes(batch_size))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_uint32_t(__pyx_v_batch_size); if (unlikely((__pyx_t_1 == ((uint32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2418, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetBatchSizeBytes(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2419
 *         """
 *         check_status(self._builder.SetBatchSizeBytes(batch_size))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_read_mode(self, read_mode):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2405
 *         return self
 * 
 *     def set_batch_size_bytes(self, batch_size):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the batch size in bytes.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_batch_size_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2421
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_11set_read_mode(PyObject *__pyx_v_self, PyObject *__pyx_v_read_mode); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_10set_read_mode[] = "ScanTokenBuilder.set_read_mode(self, read_mode)\n\n        Set the read mode for scanning.\n\n        Parameters\n        ----------\n        read_mode : {'latest', 'snapshot'}\n          You can also use the constants READ_LATEST, READ_AT_SNAPSHOT\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_11set_read_mode(PyObject *__pyx_v_self, PyObject *__pyx_v_read_mode) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_read_mode (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_10set_read_mode(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_read_mode));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2436
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_read_mode_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4kudu_6client_16ScanTokenBuilder_13set_read_mode_1invalid_selection_policy = {"invalid_selection_policy", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_read_mode_1invalid_selection_policy, METH_NOARGS, 0};
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_read_mode_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalid_selection_policy (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_read_mode_invalid_selection_policy(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_read_mode_invalid_selection_policy(PyObject *__pyx_self) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *__pyx_cur_scope;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("invalid_selection_policy", 0);
  __pyx_outer_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "kudu/client.pyx":2438
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(read_mode, int):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Invalid_read_mode_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(!__pyx_cur_scope->__pyx_v_read_mode)) { __Pyx_RaiseClosureNameError("read_mode"); __PYX_ERR(0, 2438, __pyx_L1_error) }
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_read_mode) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_read_mode);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2437
 * 
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid read mode: {0}'             # <<<<<<<<<<<<<<
 *                              .format(read_mode))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2437, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 2437, __pyx_L1_error)

  /* "kudu/client.pyx":2436
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_read_mode.invalid_selection_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2421
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_10set_read_mode(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_read_mode) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *__pyx_cur_scope;
  PyObject *__pyx_v_invalid_selection_policy = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  enum  kudu::client::KuduScanner::ReadMode __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  __Pyx_RefNannySetupContext("set_read_mode", 0);
  __pyx_cur_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *)__pyx_tp_new_4kudu_6client___pyx_scope_struct_4_set_read_mode(__pyx_ptype_4kudu_6client___pyx_scope_struct_4_set_read_mode, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 2421, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_read_mode = __pyx_v_read_mode;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_read_mode);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_read_mode);

  /* "kudu/client.pyx":2436
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */
  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_16ScanTokenBuilder_13set_read_mode_1invalid_selection_policy, 0, __pyx_n_s_set_read_mode_locals_invalid_sel, ((PyObject*)__pyx_cur_scope), __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invalid_selection_policy = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2440
 *                              .format(read_mode))
 * 
 *         if isinstance(read_mode, int):             # <<<<<<<<<<<<<<
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self._builder.SetReadMode(
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_read_mode;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyInt_Check(__pyx_t_1); 
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "kudu/client.pyx":2441
 * 
 *         if isinstance(read_mode, int):
 *             if 0 <= read_mode < len(_read_modes):             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetReadMode(
 *                              <ReadMode> read_mode))
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_cur_scope->__pyx_v_read_mode, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2441, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_4 = __pyx_v_4kudu_6client__read_modes;
      __Pyx_INCREF(__pyx_t_4);
      if (unlikely(__pyx_t_4 == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 2441, __pyx_L1_error)
      }
      __pyx_t_5 = PyDict_Size(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2441, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2441, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_read_mode, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2441, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2441, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {

      /* "kudu/client.pyx":2443
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self._builder.SetReadMode(
 *                              <ReadMode> read_mode))             # <<<<<<<<<<<<<<
 *             else:
 *                 invalid_selection_policy()
 */
      __pyx_t_6 = ((enum  kudu::client::KuduScanner::ReadMode)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(__pyx_cur_scope->__pyx_v_read_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2443, __pyx_L1_error)

      /* "kudu/client.pyx":2442
 *         if isinstance(read_mode, int):
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self._builder.SetReadMode(             # <<<<<<<<<<<<<<
 *                              <ReadMode> read_mode))
 *             else:
 */
      __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetReadMode(((enum  kudu::client::KuduScanner::ReadMode)__pyx_t_6))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2442, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "kudu/client.pyx":2441
 * 
 *         if isinstance(read_mode, int):
 *             if 0 <= read_mode < len(_read_modes):             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetReadMode(
 *                              <ReadMode> read_mode))
 */
      goto __pyx_L4;
    }

    /* "kudu/client.pyx":2445
 *                              <ReadMode> read_mode))
 *             else:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    /*else*/ {
      __pyx_t_1 = __pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_read_mode_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2445, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "kudu/client.pyx":2440
 *                              .format(read_mode))
 * 
 *         if isinstance(read_mode, int):             # <<<<<<<<<<<<<<
 *             if 0 <= read_mode < len(_read_modes):
 *                 check_status(self._builder.SetReadMode(
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2447
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      /*try:*/ {

        /* "kudu/client.pyx":2449
 *             try:
 *                 check_status(self._builder.SetReadMode(
 *                     _read_modes[read_mode.lower()]))             # <<<<<<<<<<<<<<
 *             except KeyError:
 *                 invalid_selection_policy()
 */
        if (unlikely(__pyx_v_4kudu_6client__read_modes == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 2449, __pyx_L5_error)
        }
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_read_mode, __pyx_n_s_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2449, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2449, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__read_modes, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2449, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = ((enum  kudu::client::KuduScanner::ReadMode)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2449, __pyx_L5_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":2448
 *         else:
 *             try:
 *                 check_status(self._builder.SetReadMode(             # <<<<<<<<<<<<<<
 *                     _read_modes[read_mode.lower()]))
 *             except KeyError:
 */
        __pyx_t_4 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetReadMode(__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2448, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":2447
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 */
      }
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "kudu/client.pyx":2450
 *                 check_status(self._builder.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 *             except KeyError:             # <<<<<<<<<<<<<<
 *                 invalid_selection_policy()
 * 
 */
      __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_11) {
        __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_read_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 2450, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_10);

        /* "kudu/client.pyx":2451
 *                     _read_modes[read_mode.lower()]))
 *             except KeyError:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
        __pyx_t_12 = __pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_read_mode_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2451, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L6_exception_handled;
      }
      goto __pyx_L7_except_error;
      __pyx_L7_except_error:;

      /* "kudu/client.pyx":2447
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetReadMode(
 *                     _read_modes[read_mode.lower()]))
 */
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L1_error;
      __pyx_L6_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_L10_try_end:;
    }
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2453
 *                 invalid_selection_policy()
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_snapshot(self, timestamp, format=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2421
 *         return self
 * 
 *     def set_read_mode(self, read_mode):             # <<<<<<<<<<<<<<
 *         """
 *         Set the read mode for scanning.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_read_mode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invalid_selection_policy);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2455
 *         return self
 * 
 *     def set_snapshot(self, timestamp, format=None):             # <<<<<<<<<<<<<<
 *         """
 *         Set the snapshot timestamp for this ScanTokenBuilder.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_12set_snapshot[] = "ScanTokenBuilder.set_snapshot(self, timestamp, format=None)\n\n        Set the snapshot timestamp for this ScanTokenBuilder.\n\n        Parameters\n        ---------\n        timestamp : datetime.datetime or string\n          If a string is provided, a format must be provided as well.\n          NOTE: This should be in UTC. If a timezone aware datetime\n          object is provided, it will be converted to UTC, otherwise,\n          all other input is assumed to be UTC.\n        format : Required if a string timestamp is provided\n          Uses the C strftime() function, see strftime(3) documentation.\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_snapshot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_timestamp = 0;
  PyObject *__pyx_v_format = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_snapshot (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_timestamp,&__pyx_n_s_format,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timestamp)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_snapshot") < 0)) __PYX_ERR(0, 2455, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_timestamp = values[0];
    __pyx_v_format = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_snapshot", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2455, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_12set_snapshot(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), __pyx_v_timestamp, __pyx_v_format);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_12set_snapshot(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_timestamp, PyObject *__pyx_v_format) {
  PyObject *__pyx_v_snapshot_micros = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  uint64_t __pyx_t_9;
  __Pyx_RefNannySetupContext("set_snapshot", 0);

  /* "kudu/client.pyx":2474
 *         """
 *         # Confirm that a format is provided if timestamp is a string
 *         if isinstance(timestamp, six.string_types) and not format:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 "To use a string timestamp you must provide a format. " +
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_six); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_string_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = PyObject_IsInstance(__pyx_v_timestamp, __pyx_t_3); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = (__pyx_t_4 != 0);
  if (__pyx_t_5) {
  } else {
    __pyx_t_1 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_format); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __pyx_t_4 = ((!__pyx_t_5) != 0);
  __pyx_t_1 = __pyx_t_4;
  __pyx_L4_bool_binop_done:;
  if (unlikely(__pyx_t_1)) {

    /* "kudu/client.pyx":2476
 *         if isinstance(timestamp, six.string_types) and not format:
 *             raise ValueError(
 *                 "To use a string timestamp you must provide a format. " +             # <<<<<<<<<<<<<<
 *                 "See the strftime(3) documentation.")
 * 
 */
    __pyx_t_3 = PyNumber_Add(__pyx_kp_s_To_use_a_string_timestamp_you_mu, __pyx_kp_s_See_the_strftime_3_documentation); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);

    /* "kudu/client.pyx":2475
 *         # Confirm that a format is provided if timestamp is a string
 *         if isinstance(timestamp, six.string_types) and not format:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 "To use a string timestamp you must provide a format. " +
 *                 "See the strftime(3) documentation.")
 */
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 2475, __pyx_L1_error)

    /* "kudu/client.pyx":2474
 *         """
 *         # Confirm that a format is provided if timestamp is a string
 *         if isinstance(timestamp, six.string_types) and not format:             # <<<<<<<<<<<<<<
 *             raise ValueError(
 *                 "To use a string timestamp you must provide a format. " +
 */
  }

  /* "kudu/client.pyx":2479
 *                 "See the strftime(3) documentation.")
 * 
 *         snapshot_micros = to_unixtime_micros(timestamp, format)             # <<<<<<<<<<<<<<
 * 
 *         if snapshot_micros >= 0:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_to_unixtime_micros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_timestamp, __pyx_v_format};
    __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_2);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_timestamp, __pyx_v_format};
    __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_2);
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_INCREF(__pyx_v_timestamp);
    __Pyx_GIVEREF(__pyx_v_timestamp);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_timestamp);
    __Pyx_INCREF(__pyx_v_format);
    __Pyx_GIVEREF(__pyx_v_format);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_format);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_snapshot_micros = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "kudu/client.pyx":2481
 *         snapshot_micros = to_unixtime_micros(timestamp, format)
 * 
 *         if snapshot_micros >= 0:             # <<<<<<<<<<<<<<
 *             check_status(self._builder.SetSnapshotMicros(
 *                          <uint64_t> snapshot_micros))
 */
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_snapshot_micros, __pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2481, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2481, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(__pyx_t_1)) {

    /* "kudu/client.pyx":2483
 *         if snapshot_micros >= 0:
 *             check_status(self._builder.SetSnapshotMicros(
 *                          <uint64_t> snapshot_micros))             # <<<<<<<<<<<<<<
 *         else:
 *             raise ValueError(
 */
    __pyx_t_9 = __Pyx_PyInt_As_uint64_t(__pyx_v_snapshot_micros); if (unlikely((__pyx_t_9 == ((uint64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2483, __pyx_L1_error)

    /* "kudu/client.pyx":2482
 * 
 *         if snapshot_micros >= 0:
 *             check_status(self._builder.SetSnapshotMicros(             # <<<<<<<<<<<<<<
 *                          <uint64_t> snapshot_micros))
 *         else:
 */
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetSnapshotMicros(((uint64_t)__pyx_t_9))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2482, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2481
 *         snapshot_micros = to_unixtime_micros(timestamp, format)
 * 
 *         if snapshot_micros >= 0:             # <<<<<<<<<<<<<<
 *             check_status(self._builder.SetSnapshotMicros(
 *                          <uint64_t> snapshot_micros))
 */
    goto __pyx_L6;
  }

  /* "kudu/client.pyx":2485
 *                          <uint64_t> snapshot_micros))
 *         else:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 "Snapshot Timestamps be greater than the unix epoch.")
 * 
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2485, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 2485, __pyx_L1_error)
  }
  __pyx_L6:;

  /* "kudu/client.pyx":2488
 *                 "Snapshot Timestamps be greater than the unix epoch.")
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_timeout_millis(self, millis):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2455
 *         return self
 * 
 *     def set_snapshot(self, timestamp, format=None):             # <<<<<<<<<<<<<<
 *         """
 *         Set the snapshot timestamp for this ScanTokenBuilder.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_snapshot", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_snapshot_micros);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2490
 *         return self
 * 
 *     def set_timeout_millis(self, millis):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the scan request timeout in milliseconds.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_15set_timeout_millis(PyObject *__pyx_v_self, PyObject *__pyx_v_millis); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_14set_timeout_millis[] = "ScanTokenBuilder.set_timeout_millis(self, millis)\n\n        Sets the scan request timeout in milliseconds.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        millis : int64_t\n          timeout in milliseconds\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_15set_timeout_millis(PyObject *__pyx_v_self, PyObject *__pyx_v_millis) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_timeout_millis (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_14set_timeout_millis(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_millis));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_14set_timeout_millis(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_millis) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("set_timeout_millis", 0);

  /* "kudu/client.pyx":2504
 *         self : ScanTokenBuilder
 *         """
 *         check_status(self._builder.SetTimeoutMillis(millis))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_millis); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2504, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetTimeoutMillis(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2505
 *         """
 *         check_status(self._builder.SetTimeoutMillis(millis))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_timout_millis(self, millis):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2490
 *         return self
 * 
 *     def set_timeout_millis(self, millis):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the scan request timeout in milliseconds.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_timeout_millis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2507
 *         return self
 * 
 *     def set_timout_millis(self, millis):             # <<<<<<<<<<<<<<
 *         """
 *         See set_timeout_millis().
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_17set_timout_millis(PyObject *__pyx_v_self, PyObject *__pyx_v_millis); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_16set_timout_millis[] = "ScanTokenBuilder.set_timout_millis(self, millis)\n\n        See set_timeout_millis().\n\n        This method is deprecated due to having a typo in the method name and\n        will be removed in a future release.\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_17set_timout_millis(PyObject *__pyx_v_self, PyObject *__pyx_v_millis) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_timout_millis (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_16set_timout_millis(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_millis));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_16set_timout_millis(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_millis) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("set_timout_millis", 0);

  /* "kudu/client.pyx":2514
 *         will be removed in a future release.
 *         """
 *         return self.set_timeout_millis(millis)             # <<<<<<<<<<<<<<
 * 
 *     def set_fault_tolerant(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_timeout_millis); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_millis) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_millis);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2507
 *         return self
 * 
 *     def set_timout_millis(self, millis):             # <<<<<<<<<<<<<<
 *         """
 *         See set_timeout_millis().
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_timout_millis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2516
 *         return self.set_timeout_millis(millis)
 * 
 *     def set_fault_tolerant(self):             # <<<<<<<<<<<<<<
 *         """
 *         Makes the underlying KuduScanner fault tolerant.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_19set_fault_tolerant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_18set_fault_tolerant[] = "ScanTokenBuilder.set_fault_tolerant(self)\n\n        Makes the underlying KuduScanner fault tolerant.\n        Returns a reference to itself to facilitate chaining.\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_19set_fault_tolerant(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_fault_tolerant (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_18set_fault_tolerant(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_18set_fault_tolerant(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_fault_tolerant", 0);

  /* "kudu/client.pyx":2525
 *         self : ScanTokenBuilder
 *         """
 *         check_status(self._builder.SetFaultTolerant())             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetFaultTolerant()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2526
 *         """
 *         check_status(self._builder.SetFaultTolerant())
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_selection(self, replica_selection):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2516
 *         return self.set_timeout_millis(millis)
 * 
 *     def set_fault_tolerant(self):             # <<<<<<<<<<<<<<
 *         """
 *         Makes the underlying KuduScanner fault tolerant.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_fault_tolerant", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2528
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_21set_selection(PyObject *__pyx_v_self, PyObject *__pyx_v_replica_selection); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_20set_selection[] = "ScanTokenBuilder.set_selection(self, replica_selection)\n\n        Set the replica selection policy while scanning.\n\n        Parameters\n        ----------\n        replica_selection : {'leader', 'closest', 'first'}\n          You can also use the constants LEADER_ONLY, CLOSEST_REPLICA,\n          and FIRST_REPLICA\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_21set_selection(PyObject *__pyx_v_self, PyObject *__pyx_v_replica_selection) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_selection (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_20set_selection(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_replica_selection));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2544
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_selection_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyMethodDef __pyx_mdef_4kudu_6client_16ScanTokenBuilder_13set_selection_1invalid_selection_policy = {"invalid_selection_policy", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_selection_1invalid_selection_policy, METH_NOARGS, 0};
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_selection_1invalid_selection_policy(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalid_selection_policy (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_selection_invalid_selection_policy(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_selection_invalid_selection_policy(PyObject *__pyx_self) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *__pyx_cur_scope;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("invalid_selection_policy", 0);
  __pyx_outer_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "kudu/client.pyx":2546
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(replica_selection, int):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Invalid_replica_selection_policy, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(!__pyx_cur_scope->__pyx_v_replica_selection)) { __Pyx_RaiseClosureNameError("replica_selection"); __PYX_ERR(0, 2546, __pyx_L1_error) }
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_cur_scope->__pyx_v_replica_selection) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_cur_scope->__pyx_v_replica_selection);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2545
 * 
 *         def invalid_selection_policy():
 *             raise ValueError('Invalid replica selection policy: {0}'             # <<<<<<<<<<<<<<
 *                              .format(replica_selection))
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_Raise(__pyx_t_2, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __PYX_ERR(0, 2545, __pyx_L1_error)

  /* "kudu/client.pyx":2544
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_selection.invalid_selection_policy", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2528
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_20set_selection(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_replica_selection) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *__pyx_cur_scope;
  PyObject *__pyx_v_invalid_selection_policy = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  enum  kudu::client::KuduClient::ReplicaSelection __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  PyObject *__pyx_t_12 = NULL;
  __Pyx_RefNannySetupContext("set_selection", 0);
  __pyx_cur_scope = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *)__pyx_tp_new_4kudu_6client___pyx_scope_struct_5_set_selection(__pyx_ptype_4kudu_6client___pyx_scope_struct_5_set_selection, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 2528, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_replica_selection = __pyx_v_replica_selection;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_replica_selection);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_replica_selection);

  /* "kudu/client.pyx":2544
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */
  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_16ScanTokenBuilder_13set_selection_1invalid_selection_policy, 0, __pyx_n_s_set_selection_locals_invalid_sel, ((PyObject*)__pyx_cur_scope), __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_invalid_selection_policy = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2548
 *                              .format(replica_selection))
 * 
 *         if isinstance(replica_selection, int):             # <<<<<<<<<<<<<<
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self._builder.SetSelection(
 */
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_replica_selection;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = PyInt_Check(__pyx_t_1); 
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "kudu/client.pyx":2549
 * 
 *         if isinstance(replica_selection, int):
 *             if 0 <= replica_selection < len(_replica_selection_policies):             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetSelection(
 *                              <ReplicaSelection> replica_selection))
 */
    __pyx_t_1 = PyObject_RichCompare(__pyx_int_0, __pyx_cur_scope->__pyx_v_replica_selection, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2549, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_1)) {
      __Pyx_DECREF(__pyx_t_1);
      __pyx_t_4 = __pyx_v_4kudu_6client__replica_selection_policies;
      __Pyx_INCREF(__pyx_t_4);
      if (unlikely(__pyx_t_4 == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
        __PYX_ERR(0, 2549, __pyx_L1_error)
      }
      __pyx_t_5 = PyDict_Size(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2549, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2549, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = PyObject_RichCompare(__pyx_cur_scope->__pyx_v_replica_selection, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2549, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2549, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {

      /* "kudu/client.pyx":2551
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self._builder.SetSelection(
 *                              <ReplicaSelection> replica_selection))             # <<<<<<<<<<<<<<
 *             else:
 *                 invalid_selection_policy()
 */
      __pyx_t_6 = ((enum  kudu::client::KuduClient::ReplicaSelection)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(__pyx_cur_scope->__pyx_v_replica_selection)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2551, __pyx_L1_error)

      /* "kudu/client.pyx":2550
 *         if isinstance(replica_selection, int):
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self._builder.SetSelection(             # <<<<<<<<<<<<<<
 *                              <ReplicaSelection> replica_selection))
 *             else:
 */
      __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetSelection(((enum  kudu::client::KuduClient::ReplicaSelection)__pyx_t_6))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2550, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "kudu/client.pyx":2549
 * 
 *         if isinstance(replica_selection, int):
 *             if 0 <= replica_selection < len(_replica_selection_policies):             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetSelection(
 *                              <ReplicaSelection> replica_selection))
 */
      goto __pyx_L4;
    }

    /* "kudu/client.pyx":2553
 *                              <ReplicaSelection> replica_selection))
 *             else:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 *         else:
 *             try:
 */
    /*else*/ {
      __pyx_t_1 = __pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_selection_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L4:;

    /* "kudu/client.pyx":2548
 *                              .format(replica_selection))
 * 
 *         if isinstance(replica_selection, int):             # <<<<<<<<<<<<<<
 *             if 0 <= replica_selection < len(_replica_selection_policies):
 *                 check_status(self._builder.SetSelection(
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2555
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 */
  /*else*/ {
    {
      __Pyx_PyThreadState_declare
      __Pyx_PyThreadState_assign
      __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
      __Pyx_XGOTREF(__pyx_t_7);
      __Pyx_XGOTREF(__pyx_t_8);
      __Pyx_XGOTREF(__pyx_t_9);
      /*try:*/ {

        /* "kudu/client.pyx":2557
 *             try:
 *                 check_status(self._builder.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))             # <<<<<<<<<<<<<<
 *             except KeyError:
 *                 invalid_selection_policy()
 */
        if (unlikely(__pyx_v_4kudu_6client__replica_selection_policies == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
          __PYX_ERR(0, 2557, __pyx_L5_error)
        }
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_replica_selection, __pyx_n_s_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2557, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2557, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__replica_selection_policies, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2557, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = ((enum  kudu::client::KuduClient::ReplicaSelection)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2557, __pyx_L5_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":2556
 *         else:
 *             try:
 *                 check_status(self._builder.SetSelection(             # <<<<<<<<<<<<<<
 *                     _replica_selection_policies[replica_selection.lower()]))
 *             except KeyError:
 */
        __pyx_t_4 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetSelection(__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2556, __pyx_L5_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "kudu/client.pyx":2555
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 */
      }
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      goto __pyx_L10_try_end;
      __pyx_L5_error:;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "kudu/client.pyx":2558
 *                 check_status(self._builder.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 *             except KeyError:             # <<<<<<<<<<<<<<
 *                 invalid_selection_policy()
 * 
 */
      __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError);
      if (__pyx_t_11) {
        __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_selection", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_1, &__pyx_t_10) < 0) __PYX_ERR(0, 2558, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GOTREF(__pyx_t_10);

        /* "kudu/client.pyx":2559
 *                     _replica_selection_policies[replica_selection.lower()]))
 *             except KeyError:
 *                 invalid_selection_policy()             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
        __pyx_t_12 = __pyx_pf_4kudu_6client_16ScanTokenBuilder_13set_selection_invalid_selection_policy(__pyx_v_invalid_selection_policy); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2559, __pyx_L7_except_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L6_exception_handled;
      }
      goto __pyx_L7_except_error;
      __pyx_L7_except_error:;

      /* "kudu/client.pyx":2555
 *                 invalid_selection_policy()
 *         else:
 *             try:             # <<<<<<<<<<<<<<
 *                 check_status(self._builder.SetSelection(
 *                     _replica_selection_policies[replica_selection.lower()]))
 */
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      goto __pyx_L1_error;
      __pyx_L6_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_8);
      __Pyx_XGIVEREF(__pyx_t_9);
      __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
      __pyx_L10_try_end:;
    }
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2561
 *                 invalid_selection_policy()
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_predicates(self, preds):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2528
 *         return self
 * 
 *     def set_selection(self, replica_selection):             # <<<<<<<<<<<<<<
 *         """
 *         Set the replica selection policy while scanning.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_selection", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_invalid_selection_policy);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2563
 *         return self
 * 
 *     def add_predicates(self, preds):             # <<<<<<<<<<<<<<
 *         """
 *         Add a list of scan predicates to the ScanTokenBuilder. Select columns
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_23add_predicates(PyObject *__pyx_v_self, PyObject *__pyx_v_preds); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_22add_predicates[] = "ScanTokenBuilder.add_predicates(self, preds)\n\n        Add a list of scan predicates to the ScanTokenBuilder. Select columns\n        from the parent table and make comparisons to create predicates.\n\n        Examples\n        --------\n        c = table[col_name]\n        preds = [c >= 0, c <= 10]\n        builder.add_predicates(preds)\n\n        Parameters\n        ----------\n        preds : list of Predicate\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_23add_predicates(PyObject *__pyx_v_self, PyObject *__pyx_v_preds) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_predicates (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_22add_predicates(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_preds));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_22add_predicates(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_preds) {
  PyObject *__pyx_v_pred = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("add_predicates", 0);

  /* "kudu/client.pyx":2578
 *         preds : list of Predicate
 *         """
 *         for pred in preds:             # <<<<<<<<<<<<<<
 *             self.add_predicate(pred)
 * 
 */
  if (likely(PyList_CheckExact(__pyx_v_preds)) || PyTuple_CheckExact(__pyx_v_preds)) {
    __pyx_t_1 = __pyx_v_preds; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_preds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2578, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2578, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 2578, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 2578, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2578, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_pred, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "kudu/client.pyx":2579
 *         """
 *         for pred in preds:
 *             self.add_predicate(pred)             # <<<<<<<<<<<<<<
 * 
 *     cpdef add_predicate(self, Predicate pred):
 */
    if (!(likely(((__pyx_v_pred) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_pred, __pyx_ptype_4kudu_6client_Predicate))))) __PYX_ERR(0, 2579, __pyx_L1_error)
    __pyx_t_4 = ((struct __pyx_vtabstruct_4kudu_6client_ScanTokenBuilder *)__pyx_v_self->__pyx_vtab)->add_predicate(__pyx_v_self, ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_pred), 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "kudu/client.pyx":2578
 *         preds : list of Predicate
 *         """
 *         for pred in preds:             # <<<<<<<<<<<<<<
 *             self.add_predicate(pred)
 * 
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2563
 *         return self
 * 
 *     def add_predicates(self, preds):             # <<<<<<<<<<<<<<
 *         """
 *         Add a list of scan predicates to the ScanTokenBuilder. Select columns
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.add_predicates", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pred);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2581
 *             self.add_predicate(pred)
 * 
 *     cpdef add_predicate(self, Predicate pred):             # <<<<<<<<<<<<<<
 *         """
 *         Add a scan predicates to the scan token. Select columns from the
 */

static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_25add_predicate(PyObject *__pyx_v_self, PyObject *__pyx_v_pred); /*proto*/
static PyObject *__pyx_f_4kudu_6client_16ScanTokenBuilder_add_predicate(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred, int __pyx_skip_dispatch) {
  kudu::client::KuduPredicate *__pyx_v_clone;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("add_predicate", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_add_predicate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2581, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_16ScanTokenBuilder_25add_predicate)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_pred)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_pred));
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2581, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":2603
 *         # We clone the KuduPredicate so that the Predicate wrapper class can be
 *         # reused
 *         clone = pred.pred.Clone()             # <<<<<<<<<<<<<<
 *         check_status(self._builder.AddConjunctPredicate(clone))
 * 
 */
  __pyx_v_clone = __pyx_v_pred->pred->Clone();

  /* "kudu/client.pyx":2604
 *         # reused
 *         clone = pred.pred.Clone()
 *         check_status(self._builder.AddConjunctPredicate(clone))             # <<<<<<<<<<<<<<
 * 
 *     def new_bound(self):
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->AddConjunctPredicate(__pyx_v_clone)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2581
 *             self.add_predicate(pred)
 * 
 *     cpdef add_predicate(self, Predicate pred):             # <<<<<<<<<<<<<<
 *         """
 *         Add a scan predicates to the scan token. Select columns from the
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.add_predicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_25add_predicate(PyObject *__pyx_v_self, PyObject *__pyx_v_pred); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_24add_predicate[] = "ScanTokenBuilder.add_predicate(self, Predicate pred)\n\n        Add a scan predicates to the scan token. Select columns from the\n        parent table and make comparisons to create predicates.\n\n        Examples\n        --------\n        pred = table[col_name] <= 10\n        builder.add_predicate(pred)\n\n        Parameters\n        ----------\n        pred : kudu.Predicate\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_25add_predicate(PyObject *__pyx_v_self, PyObject *__pyx_v_pred) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_predicate (wrapper)", 0);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pred), __pyx_ptype_4kudu_6client_Predicate, 1, "pred", 0))) __PYX_ERR(0, 2581, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_24add_predicate(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((struct __pyx_obj_4kudu_6client_Predicate *)__pyx_v_pred));

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_24add_predicate(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, struct __pyx_obj_4kudu_6client_Predicate *__pyx_v_pred) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("add_predicate", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_16ScanTokenBuilder_add_predicate(__pyx_v_self, __pyx_v_pred, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.add_predicate", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2606
 *         check_status(self._builder.AddConjunctPredicate(clone))
 * 
 *     def new_bound(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a new instance of a PartialRow to be later set with
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_27new_bound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_26new_bound[] = "ScanTokenBuilder.new_bound(self)\n\n        Returns a new instance of a PartialRow to be later set with\n        add_lower_bound()/add_upper_bound().\n\n        Returns\n        -------\n        bound : PartialRow\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_27new_bound(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("new_bound (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_26new_bound(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_26new_bound(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  __Pyx_RefNannySetupContext("new_bound", 0);

  /* "kudu/client.pyx":2615
 *         bound : PartialRow
 *         """
 *         return self._table.schema.new_row()             # <<<<<<<<<<<<<<
 * 
 *     def add_lower_bound(self, bound):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2606
 *         check_status(self._builder.AddConjunctPredicate(clone))
 * 
 *     def new_bound(self):             # <<<<<<<<<<<<<<
 *         """
 *         Returns a new instance of a PartialRow to be later set with
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.new_bound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2617
 *         return self._table.schema.new_row()
 * 
 *     def add_lower_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the lower bound of the scan.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_29add_lower_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_28add_lower_bound[] = "ScanTokenBuilder.add_lower_bound(self, bound)\n\n        Sets the lower bound of the scan.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        bound : PartialRow/list/tuple/dict\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_29add_lower_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_lower_bound (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_28add_lower_bound(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_bound));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_28add_lower_bound(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_bound) {
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_row = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("add_lower_bound", 0);

  /* "kudu/client.pyx":2633
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self._table.schema.new_row(bound)
 *         else:
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2634
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):
 *             row = self._table.schema.new_row(bound)             # <<<<<<<<<<<<<<
 *         else:
 *             row = bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2634, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2634, __pyx_L1_error)
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":2633
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self._table.schema.new_row(bound)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2636
 *             row = self._table.schema.new_row(bound)
 *         else:
 *             row = bound             # <<<<<<<<<<<<<<
 * 
 *         check_status(self._builder.AddLowerBound(deref(row.row)))
 */
  /*else*/ {
    if (!(likely(((__pyx_v_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2636, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2638
 *             row = bound
 * 
 *         check_status(self._builder.AddLowerBound(deref(row.row)))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->AddLowerBound((*__pyx_v_row->row))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":2639
 * 
 *         check_status(self._builder.AddLowerBound(deref(row.row)))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_upper_bound(self, bound):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2617
 *         return self._table.schema.new_row()
 * 
 *     def add_lower_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the lower bound of the scan.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.add_lower_bound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_row);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2641
 *         return self
 * 
 *     def add_upper_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the upper bound of the scan.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_31add_upper_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_30add_upper_bound[] = "ScanTokenBuilder.add_upper_bound(self, bound)\n\n        Sets the upper bound of the scan.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        bound : PartialRow/list/tuple/dict\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_31add_upper_bound(PyObject *__pyx_v_self, PyObject *__pyx_v_bound) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_upper_bound (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_30add_upper_bound(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_bound));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_30add_upper_bound(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_bound) {
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_row = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("add_upper_bound", 0);

  /* "kudu/client.pyx":2657
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self._table.schema.new_row(bound)
 *         else:
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2658
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):
 *             row = self._table.schema.new_row(bound)             # <<<<<<<<<<<<<<
 *         else:
 *             row = bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2658, __pyx_L1_error)
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":2657
 *             PartialRow row
 *         # Convert record to bound
 *         if not isinstance(bound, PartialRow):             # <<<<<<<<<<<<<<
 *             row = self._table.schema.new_row(bound)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2660
 *             row = self._table.schema.new_row(bound)
 *         else:
 *             row = bound             # <<<<<<<<<<<<<<
 * 
 *         check_status(self._builder.AddUpperBound(deref(row.row)))
 */
  /*else*/ {
    if (!(likely(((__pyx_v_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 2660, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2662
 *             row = bound
 * 
 *         check_status(self._builder.AddUpperBound(deref(row.row)))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_3 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->AddUpperBound((*__pyx_v_row->row))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":2663
 * 
 *         check_status(self._builder.AddUpperBound(deref(row.row)))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_cache_blocks(self, cache_blocks):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2641
 *         return self
 * 
 *     def add_upper_bound(self, bound):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the upper bound of the scan.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.add_upper_bound", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_row);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2665
 *         return self
 * 
 *     def set_cache_blocks(self, cache_blocks):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the block caching policy.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_33set_cache_blocks(PyObject *__pyx_v_self, PyObject *__pyx_v_cache_blocks); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_32set_cache_blocks[] = "ScanTokenBuilder.set_cache_blocks(self, cache_blocks)\n\n        Sets the block caching policy.\n        Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        cache_blocks : bool\n\n        Returns\n        -------\n        self : ScanTokenBuilder\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_33set_cache_blocks(PyObject *__pyx_v_self, PyObject *__pyx_v_cache_blocks) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_cache_blocks (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_32set_cache_blocks(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v_cache_blocks));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_32set_cache_blocks(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, PyObject *__pyx_v_cache_blocks) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  bool __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("set_cache_blocks", 0);

  /* "kudu/client.pyx":2678
 *         self : ScanTokenBuilder
 *         """
 *         check_status(self._builder.SetCacheBlocks(cache_blocks))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_cache_blocks); if (unlikely((__pyx_t_1 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2678, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->SetCacheBlocks(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2679
 *         """
 *         check_status(self._builder.SetCacheBlocks(cache_blocks))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def build(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2665
 *         return self
 * 
 *     def set_cache_blocks(self, cache_blocks):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the block caching policy.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.set_cache_blocks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2681
 *         return self
 * 
 *     def build(self):             # <<<<<<<<<<<<<<
 *         """
 *         Build the set of scan tokens. The builder may be reused after
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_35build(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_34build[] = "ScanTokenBuilder.build(self)\n\n        Build the set of scan tokens. The builder may be reused after\n        this call. Returns a list of ScanTokens to be serialized and\n        executed in parallel with seperate client instances.\n\n        Returns\n        -------\n        tokens : List[ScanToken]\n        ";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_35build(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("build (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_34build(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_34build(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self) {
  std::vector<kudu::client::KuduScanToken *>  __pyx_v_tokens;
  size_t __pyx_v_i;
  PyObject *__pyx_v_result = NULL;
  struct __pyx_obj_4kudu_6client_ScanToken *__pyx_v_token = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector<kudu::client::KuduScanToken *> ::size_type __pyx_t_2;
  std::vector<kudu::client::KuduScanToken *> ::size_type __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("build", 0);

  /* "kudu/client.pyx":2696
 *             size_t i
 * 
 *         check_status(self._builder.Build(&tokens))             # <<<<<<<<<<<<<<
 * 
 *         result = []
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_builder->Build((&__pyx_v_tokens))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2698
 *         check_status(self._builder.Build(&tokens))
 * 
 *         result = []             # <<<<<<<<<<<<<<
 *         for i in range(tokens.size()):
 *             token = ScanToken()
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2699
 * 
 *         result = []
 *         for i in range(tokens.size()):             # <<<<<<<<<<<<<<
 *             token = ScanToken()
 *             result.append(token._init(tokens[i]))
 */
  __pyx_t_2 = __pyx_v_tokens.size();
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "kudu/client.pyx":2700
 *         result = []
 *         for i in range(tokens.size()):
 *             token = ScanToken()             # <<<<<<<<<<<<<<
 *             result.append(token._init(tokens[i]))
 *         return result
 */
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_ScanToken)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_token, ((struct __pyx_obj_4kudu_6client_ScanToken *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "kudu/client.pyx":2701
 *         for i in range(tokens.size()):
 *             token = ScanToken()
 *             result.append(token._init(tokens[i]))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_ScanToken *)__pyx_v_token->__pyx_vtab)->_init(__pyx_v_token, (__pyx_v_tokens[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2701, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "kudu/client.pyx":2702
 *             token = ScanToken()
 *             result.append(token._init(tokens[i]))
 *         return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "kudu/client.pyx":2681
 *         return self
 * 
 *     def build(self):             # <<<<<<<<<<<<<<
 *         """
 *         Build the set of scan tokens. The builder may be reused after
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.build", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF((PyObject *)__pyx_v_token);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_37__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_36__reduce_cython__[] = "ScanTokenBuilder.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_37__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_36__reduce_cython__(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_36__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_39__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_16ScanTokenBuilder_38__setstate_cython__[] = "ScanTokenBuilder.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_16ScanTokenBuilder_39__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_16ScanTokenBuilder_38__setstate_cython__(((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_16ScanTokenBuilder_38__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_ScanTokenBuilder *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.ScanTokenBuilder.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2714
 *         vector[KuduReplica*] _replicas
 * 
 *     cdef _init(self, const KuduTablet* tablet):             # <<<<<<<<<<<<<<
 *         self._tablet = tablet
 *         return self
 */

static PyObject *__pyx_f_4kudu_6client_6Tablet__init(struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self, kudu::client::KuduTablet const *__pyx_v_tablet) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init", 0);

  /* "kudu/client.pyx":2715
 * 
 *     cdef _init(self, const KuduTablet* tablet):
 *         self._tablet = tablet             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_v_self->_tablet = __pyx_v_tablet;

  /* "kudu/client.pyx":2716
 *     cdef _init(self, const KuduTablet* tablet):
 *         self._tablet = tablet
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def id(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2714
 *         vector[KuduReplica*] _replicas
 * 
 *     cdef _init(self, const KuduTablet* tablet):             # <<<<<<<<<<<<<<
 *         self._tablet = tablet
 *         return self
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2718
 *         return self
 * 
 *     def id(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self._tablet.id())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Tablet_1id(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Tablet_id[] = "Tablet.id(self)";
static PyObject *__pyx_pw_4kudu_6client_6Tablet_1id(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("id (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Tablet_id(((struct __pyx_obj_4kudu_6client_Tablet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Tablet_id(struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("id", 0);

  /* "kudu/client.pyx":2719
 * 
 *     def id(self):
 *         return frombytes(self._tablet.id())             # <<<<<<<<<<<<<<
 * 
 *     def replicas(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_self->_tablet->id()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2719, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2718
 *         return self
 * 
 *     def id(self):             # <<<<<<<<<<<<<<
 *         return frombytes(self._tablet.id())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Tablet.id", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2721
 *         return frombytes(self._tablet.id())
 * 
 *     def replicas(self):             # <<<<<<<<<<<<<<
 *         cdef size_t i
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Tablet_3replicas(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Tablet_2replicas[] = "Tablet.replicas(self)";
static PyObject *__pyx_pw_4kudu_6client_6Tablet_3replicas(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("replicas (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Tablet_2replicas(((struct __pyx_obj_4kudu_6client_Tablet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Tablet_2replicas(struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self) {
  size_t __pyx_v_i;
  PyObject *__pyx_v_result = NULL;
  std::vector<kudu::client::KuduReplica const *>  __pyx_v__replicas;
  struct __pyx_obj_4kudu_6client_Replica *__pyx_v_replica = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  std::vector<kudu::client::KuduReplica const *> ::size_type __pyx_t_2;
  std::vector<kudu::client::KuduReplica const *> ::size_type __pyx_t_3;
  size_t __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("replicas", 0);

  /* "kudu/client.pyx":2724
 *         cdef size_t i
 * 
 *         result = []             # <<<<<<<<<<<<<<
 *         _replicas = self._tablet.replicas()
 *         for i in range(_replicas.size()):
 */
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2725
 * 
 *         result = []
 *         _replicas = self._tablet.replicas()             # <<<<<<<<<<<<<<
 *         for i in range(_replicas.size()):
 *             replica = Replica()
 */
  __pyx_v__replicas = __pyx_v_self->_tablet->replicas();

  /* "kudu/client.pyx":2726
 *         result = []
 *         _replicas = self._tablet.replicas()
 *         for i in range(_replicas.size()):             # <<<<<<<<<<<<<<
 *             replica = Replica()
 *             result.append(replica._init(_replicas[i]))
 */
  __pyx_t_2 = __pyx_v__replicas.size();
  __pyx_t_3 = __pyx_t_2;
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
    __pyx_v_i = __pyx_t_4;

    /* "kudu/client.pyx":2727
 *         _replicas = self._tablet.replicas()
 *         for i in range(_replicas.size()):
 *             replica = Replica()             # <<<<<<<<<<<<<<
 *             result.append(replica._init(_replicas[i]))
 *         return result
 */
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_Replica)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2727, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_replica, ((struct __pyx_obj_4kudu_6client_Replica *)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "kudu/client.pyx":2728
 *         for i in range(_replicas.size()):
 *             replica = Replica()
 *             result.append(replica._init(_replicas[i]))             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
    __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_Replica *)__pyx_v_replica->__pyx_vtab)->_init(__pyx_v_replica, (__pyx_v__replicas[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2728, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2728, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }

  /* "kudu/client.pyx":2729
 *             replica = Replica()
 *             result.append(replica._init(_replicas[i]))
 *         return result             # <<<<<<<<<<<<<<
 * 
 * cdef class Replica:
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_result);
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "kudu/client.pyx":2721
 *         return frombytes(self._tablet.id())
 * 
 *     def replicas(self):             # <<<<<<<<<<<<<<
 *         cdef size_t i
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Tablet.replicas", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_result);
  __Pyx_XDECREF((PyObject *)__pyx_v_replica);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Tablet_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Tablet_4__reduce_cython__[] = "Tablet.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Tablet_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Tablet_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Tablet *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Tablet_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Tablet.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Tablet_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Tablet_6__setstate_cython__[] = "Tablet.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Tablet_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Tablet_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Tablet *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Tablet_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Tablet *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Tablet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2739
 *     cdef const KuduReplica* _replica
 * 
 *     cdef _init(self, const KuduReplica* replica):             # <<<<<<<<<<<<<<
 *         self._replica = replica
 *         return self
 */

static PyObject *__pyx_f_4kudu_6client_7Replica__init(struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self, kudu::client::KuduReplica const *__pyx_v_replica) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init", 0);

  /* "kudu/client.pyx":2740
 * 
 *     cdef _init(self, const KuduReplica* replica):
 *         self._replica = replica             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __pyx_v_self->_replica = __pyx_v_replica;

  /* "kudu/client.pyx":2741
 *     cdef _init(self, const KuduReplica* replica):
 *         self._replica = replica
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def is_leader(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2739
 *     cdef const KuduReplica* _replica
 * 
 *     cdef _init(self, const KuduReplica* replica):             # <<<<<<<<<<<<<<
 *         self._replica = replica
 *         return self
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2743
 *         return self
 * 
 *     def is_leader(self):             # <<<<<<<<<<<<<<
 *         return self._replica.is_leader()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Replica_1is_leader(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Replica_is_leader[] = "Replica.is_leader(self)";
static PyObject *__pyx_pw_4kudu_6client_7Replica_1is_leader(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_leader (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Replica_is_leader(((struct __pyx_obj_4kudu_6client_Replica *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Replica_is_leader(struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("is_leader", 0);

  /* "kudu/client.pyx":2744
 * 
 *     def is_leader(self):
 *         return self._replica.is_leader()             # <<<<<<<<<<<<<<
 * 
 *     def ts(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_replica->is_leader()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2744, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2743
 *         return self
 * 
 *     def is_leader(self):             # <<<<<<<<<<<<<<
 *         return self._replica.is_leader()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Replica.is_leader", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2746
 *         return self._replica.is_leader()
 * 
 *     def ts(self):             # <<<<<<<<<<<<<<
 *         ts = TabletServer()
 *         return ts._init(&self._replica.ts())
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Replica_3ts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Replica_2ts[] = "Replica.ts(self)";
static PyObject *__pyx_pw_4kudu_6client_7Replica_3ts(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ts (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Replica_2ts(((struct __pyx_obj_4kudu_6client_Replica *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Replica_2ts(struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self) {
  struct __pyx_obj_4kudu_6client_TabletServer *__pyx_v_ts = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("ts", 0);

  /* "kudu/client.pyx":2747
 * 
 *     def ts(self):
 *         ts = TabletServer()             # <<<<<<<<<<<<<<
 *         return ts._init(&self._replica.ts())
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6client_TabletServer)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ts = ((struct __pyx_obj_4kudu_6client_TabletServer *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2748
 *     def ts(self):
 *         ts = TabletServer()
 *         return ts._init(&self._replica.ts())             # <<<<<<<<<<<<<<
 * 
 * cdef class KuduError:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TabletServer *)__pyx_v_ts->__pyx_vtab)->_init(__pyx_v_ts, (&__pyx_v_self->_replica->ts())); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2746
 *         return self._replica.is_leader()
 * 
 *     def ts(self):             # <<<<<<<<<<<<<<
 *         ts = TabletServer()
 *         return ts._init(&self._replica.ts())
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Replica.ts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_ts);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Replica_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_7Replica_4__reduce_cython__[] = "Replica.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_7Replica_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Replica_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Replica *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Replica_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Replica.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_7Replica_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_7Replica_6__setstate_cython__[] = "Replica.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_7Replica_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_7Replica_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Replica *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_7Replica_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Replica *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Replica.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2760
 *         C_KuduError* error
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.error = NULL
 * 
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_9KuduError_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_9KuduError_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1;
  __pyx_r = __pyx_pf_4kudu_6client_9KuduError___cinit__(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_9KuduError___cinit__(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2761
 * 
 *     def __cinit__(self):
 *         self.error = NULL             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->error = NULL;

  /* "kudu/client.pyx":2760
 *         C_KuduError* error
 * 
 *     def __cinit__(self):             # <<<<<<<<<<<<<<
 *         self.error = NULL
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2763
 *         self.error = NULL
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         # We own this object
 *         if self.error != NULL:
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_9KuduError_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_9KuduError_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_9KuduError_2__dealloc__(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_9KuduError_2__dealloc__(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2765
 *     def __dealloc__(self):
 *         # We own this object
 *         if self.error != NULL:             # <<<<<<<<<<<<<<
 *             del self.error
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->error != NULL) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2766
 *         # We own this object
 *         if self.error != NULL:
 *             del self.error             # <<<<<<<<<<<<<<
 * 
 *     def failed_op(self):
 */
    delete __pyx_v_self->error;

    /* "kudu/client.pyx":2765
 *     def __dealloc__(self):
 *         # We own this object
 *         if self.error != NULL:             # <<<<<<<<<<<<<<
 *             del self.error
 * 
 */
  }

  /* "kudu/client.pyx":2763
 *         self.error = NULL
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         # We own this object
 *         if self.error != NULL:
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":2768
 *             del self.error
 * 
 *     def failed_op(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get debug string representation of the failed operation.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9KuduError_5failed_op(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9KuduError_4failed_op[] = "KuduError.failed_op(self)\n\n        Get debug string representation of the failed operation.\n\n        Returns\n        -------\n        op : str\n        ";
static PyObject *__pyx_pw_4kudu_6client_9KuduError_5failed_op(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("failed_op (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9KuduError_4failed_op(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9KuduError_4failed_op(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("failed_op", 0);

  /* "kudu/client.pyx":2776
 *         op : str
 *         """
 *         return frombytes(self.error.failed_op().ToString())             # <<<<<<<<<<<<<<
 * 
 *     def was_possibly_successful(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_self->error->failed_op().ToString()); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2768
 *             del self.error
 * 
 *     def failed_op(self):             # <<<<<<<<<<<<<<
 *         """
 *         Get debug string representation of the failed operation.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.KuduError.failed_op", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2778
 *         return frombytes(self.error.failed_op().ToString())
 * 
 *     def was_possibly_successful(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check if there is a chance that the requested operation was successful.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9KuduError_7was_possibly_successful(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9KuduError_6was_possibly_successful[] = "KuduError.was_possibly_successful(self)\n\n        Check if there is a chance that the requested operation was successful.\n\n        In some cases, it is possible that the server did receive and\n        successfully perform the requested operation, but the client can't\n        tell whether or not it was successful. For example, if the call times\n        out, the server may still succeed in processing at a later time.\n\n        Returns\n        -------\n        result : bool\n        ";
static PyObject *__pyx_pw_4kudu_6client_9KuduError_7was_possibly_successful(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("was_possibly_successful (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9KuduError_6was_possibly_successful(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9KuduError_6was_possibly_successful(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("was_possibly_successful", 0);

  /* "kudu/client.pyx":2791
 *         result : bool
 *         """
 *         return self.error.was_possibly_successful()             # <<<<<<<<<<<<<<
 * 
 *     def __repr__(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->error->was_possibly_successful()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2778
 *         return frombytes(self.error.failed_op().ToString())
 * 
 *     def was_possibly_successful(self):             # <<<<<<<<<<<<<<
 *         """
 *         Check if there is a chance that the requested operation was successful.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.KuduError.was_possibly_successful", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2793
 *         return self.error.was_possibly_successful()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "KuduError('%s')" % (self.error.status().ToString())
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9KuduError_9__repr__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_9KuduError_9__repr__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9KuduError_8__repr__(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9KuduError_8__repr__(struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("__repr__", 0);

  /* "kudu/client.pyx":2794
 * 
 *     def __repr__(self):
 *         return "KuduError('%s')" % (self.error.status().ToString())             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_self->error->status().ToString()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_KuduError_s, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":2793
 *         return self.error.was_possibly_successful()
 * 
 *     def __repr__(self):             # <<<<<<<<<<<<<<
 *         return "KuduError('%s')" % (self.error.status().ToString())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.KuduError.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9KuduError_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_9KuduError_10__reduce_cython__[] = "KuduError.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_9KuduError_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9KuduError_10__reduce_cython__(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9KuduError_10__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.KuduError.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_9KuduError_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_9KuduError_12__setstate_cython__[] = "KuduError.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_9KuduError_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_9KuduError_12__setstate_cython__(((struct __pyx_obj_4kudu_6client_KuduError *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_9KuduError_12__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_KuduError *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.KuduError.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2799
 * cdef class PartialRow:
 * 
 *     def __cinit__(self, Schema schema):             # <<<<<<<<<<<<<<
 *         # This gets called before any subclass cinit methods
 *         self.schema = schema
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_10PartialRow_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_10PartialRow_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_schema,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_schema)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2799, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_schema = ((struct __pyx_obj_4kudu_6schema_Schema *)values[0]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2799, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.PartialRow.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_schema), __pyx_ptype_4kudu_6schema_Schema, 1, "schema", 0))) __PYX_ERR(0, 2799, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow___cinit__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), __pyx_v_schema);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_10PartialRow___cinit__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_schema) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2801
 *     def __cinit__(self, Schema schema):
 *         # This gets called before any subclass cinit methods
 *         self.schema = schema             # <<<<<<<<<<<<<<
 *         self._own = 1
 * 
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_schema));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_schema));
  __Pyx_GOTREF(__pyx_v_self->schema);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->schema));
  __pyx_v_self->schema = __pyx_v_schema;

  /* "kudu/client.pyx":2802
 *         # This gets called before any subclass cinit methods
 *         self.schema = schema
 *         self._own = 1             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __pyx_v_self->_own = 1;

  /* "kudu/client.pyx":2799
 * cdef class PartialRow:
 * 
 *     def __cinit__(self, Schema schema):             # <<<<<<<<<<<<<<
 *         # This gets called before any subclass cinit methods
 *         self.schema = schema
 */

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2804
 *         self._own = 1
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._own and self.row != NULL:
 *             del self.row
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_10PartialRow_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_10PartialRow_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_10PartialRow_2__dealloc__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_10PartialRow_2__dealloc__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2805
 * 
 *     def __dealloc__(self):
 *         if self._own and self.row != NULL:             # <<<<<<<<<<<<<<
 *             del self.row
 * 
 */
  __pyx_t_2 = (__pyx_v_self->_own != 0);
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_self->row != NULL) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2806
 *     def __dealloc__(self):
 *         if self._own and self.row != NULL:
 *             del self.row             # <<<<<<<<<<<<<<
 * 
 *     def __setitem__(self, key, value):
 */
    delete __pyx_v_self->row;

    /* "kudu/client.pyx":2805
 * 
 *     def __dealloc__(self):
 *         if self._own and self.row != NULL:             # <<<<<<<<<<<<<<
 *             del self.row
 * 
 */
  }

  /* "kudu/client.pyx":2804
 *         self._own = 1
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._own and self.row != NULL:
 *             del self.row
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":2808
 *             del self.row
 * 
 *     def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 *         if isinstance(key, basestring):
 *             self.set_field(key, value)
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_10PartialRow_5__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4kudu_6client_10PartialRow_5__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_4__setitem__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), ((PyObject *)__pyx_v_key), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_10PartialRow_4__setitem__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannySetupContext("__setitem__", 0);

  /* "kudu/client.pyx":2809
 * 
 *     def __setitem__(self, key, value):
 *         if isinstance(key, basestring):             # <<<<<<<<<<<<<<
 *             self.set_field(key, value)
 *         else:
 */
  __pyx_t_1 = __Pyx_PyBaseString_Check(__pyx_v_key); 
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2810
 *     def __setitem__(self, key, value):
 *         if isinstance(key, basestring):
 *             self.set_field(key, value)             # <<<<<<<<<<<<<<
 *         else:
 *             if 0 <= key < len(self.schema):
 */
    __pyx_t_3 = ((struct __pyx_vtabstruct_4kudu_6client_PartialRow *)__pyx_v_self->__pyx_vtab)->set_field(__pyx_v_self, __pyx_v_key, __pyx_v_value, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2810, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "kudu/client.pyx":2809
 * 
 *     def __setitem__(self, key, value):
 *         if isinstance(key, basestring):             # <<<<<<<<<<<<<<
 *             self.set_field(key, value)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2812
 *             self.set_field(key, value)
 *         else:
 *             if 0 <= key < len(self.schema):             # <<<<<<<<<<<<<<
 *                 self.set_loc(key, value)
 *             else:
 */
  /*else*/ {
    __pyx_t_3 = PyObject_RichCompare(__pyx_int_0, __pyx_v_key, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2812, __pyx_L1_error)
    if (__Pyx_PyObject_IsTrue(__pyx_t_3)) {
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_4 = ((PyObject *)__pyx_v_self->schema);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_5 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2812, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_key, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2812, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2812, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (likely(__pyx_t_2)) {

      /* "kudu/client.pyx":2813
 *         else:
 *             if 0 <= key < len(self.schema):
 *                 self.set_loc(key, value)             # <<<<<<<<<<<<<<
 *             else:
 *                 raise IndexError("Column index {0} is out of bounds."
 */
      __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_key); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2813, __pyx_L1_error)
      __pyx_t_3 = ((struct __pyx_vtabstruct_4kudu_6client_PartialRow *)__pyx_v_self->__pyx_vtab)->set_loc(__pyx_v_self, __pyx_t_6, __pyx_v_value, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

      /* "kudu/client.pyx":2812
 *             self.set_field(key, value)
 *         else:
 *             if 0 <= key < len(self.schema):             # <<<<<<<<<<<<<<
 *                 self.set_loc(key, value)
 *             else:
 */
      goto __pyx_L4;
    }

    /* "kudu/client.pyx":2815
 *                 self.set_loc(key, value)
 *             else:
 *                 raise IndexError("Column index {0} is out of bounds."             # <<<<<<<<<<<<<<
 *                                  .format(key))
 * 
 */
    /*else*/ {

      /* "kudu/client.pyx":2816
 *             else:
 *                 raise IndexError("Column index {0} is out of bounds."
 *                                  .format(key))             # <<<<<<<<<<<<<<
 * 
 *     def from_record(self, record):
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Column_index_0_is_out_of_bounds, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2816, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_key);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2816, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "kudu/client.pyx":2815
 *                 self.set_loc(key, value)
 *             else:
 *                 raise IndexError("Column index {0} is out of bounds."             # <<<<<<<<<<<<<<
 *                                  .format(key))
 * 
 */
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __PYX_ERR(0, 2815, __pyx_L1_error)
    }
    __pyx_L4:;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2808
 *             del self.row
 * 
 *     def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 *         if isinstance(key, basestring):
 *             self.set_field(key, value)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("kudu.client.PartialRow.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2818
 *                                  .format(key))
 * 
 *     def from_record(self, record):             # <<<<<<<<<<<<<<
 *         """
 *         Initializes PartialRow with values from an input record. The record
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_7from_record(PyObject *__pyx_v_self, PyObject *__pyx_v_record); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_6from_record[] = "PartialRow.from_record(self, record)\n\n        Initializes PartialRow with values from an input record. The record\n        can be in the form of a tuple, dict, or list. Dictionary keys can\n        be either column names or indexes.\n\n        Parameters\n        ----------\n        record : tuple/list/dict\n\n        Returns\n        -------\n        self : PartialRow\n        ";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_7from_record(PyObject *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("from_record (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_6from_record(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), ((PyObject *)__pyx_v_record));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_6from_record(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_record) {
  PyObject *__pyx_v_indx = NULL;
  PyObject *__pyx_v_val = NULL;
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  __Pyx_RefNannySetupContext("from_record", 0);

  /* "kudu/client.pyx":2832
 *         self : PartialRow
 *         """
 *         if isinstance(record, (tuple, list)):             # <<<<<<<<<<<<<<
 *             for indx, val in enumerate(record):
 *                 self[indx] = val
 */
  __pyx_t_2 = PyTuple_Check(__pyx_v_record); 
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = PyList_Check(__pyx_v_record); 
  __pyx_t_2 = (__pyx_t_3 != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":2833
 *         """
 *         if isinstance(record, (tuple, list)):
 *             for indx, val in enumerate(record):             # <<<<<<<<<<<<<<
 *                 self[indx] = val
 *         elif isinstance(record, dict):
 */
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_4 = __pyx_int_0;
    if (likely(PyList_CheckExact(__pyx_v_record)) || PyTuple_CheckExact(__pyx_v_record)) {
      __pyx_t_5 = __pyx_v_record; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_record); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2833, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2833, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2833, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2833, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2833, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2833, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        }
      } else {
        __pyx_t_8 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_8)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2833, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_indx, __pyx_t_4);
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2833, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_4);
      __pyx_t_4 = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "kudu/client.pyx":2834
 *         if isinstance(record, (tuple, list)):
 *             for indx, val in enumerate(record):
 *                 self[indx] = val             # <<<<<<<<<<<<<<
 *         elif isinstance(record, dict):
 *             for key, val in dict_iter(record):
 */
      if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self), __pyx_v_indx, __pyx_v_val) < 0)) __PYX_ERR(0, 2834, __pyx_L1_error)

      /* "kudu/client.pyx":2833
 *         """
 *         if isinstance(record, (tuple, list)):
 *             for indx, val in enumerate(record):             # <<<<<<<<<<<<<<
 *                 self[indx] = val
 *         elif isinstance(record, dict):
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "kudu/client.pyx":2832
 *         self : PartialRow
 *         """
 *         if isinstance(record, (tuple, list)):             # <<<<<<<<<<<<<<
 *             for indx, val in enumerate(record):
 *                 self[indx] = val
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2835
 *             for indx, val in enumerate(record):
 *                 self[indx] = val
 *         elif isinstance(record, dict):             # <<<<<<<<<<<<<<
 *             for key, val in dict_iter(record):
 *                 self[key] = val
 */
  __pyx_t_2 = PyDict_Check(__pyx_v_record); 
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (likely(__pyx_t_1)) {

    /* "kudu/client.pyx":2836
 *                 self[indx] = val
 *         elif isinstance(record, dict):
 *             for key, val in dict_iter(record):             # <<<<<<<<<<<<<<
 *                 self[key] = val
 *         else:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_dict_iter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_8, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2836, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2836, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2836, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2836, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2836, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2836, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2836, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2836, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        #else
        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2836, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2836, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2836, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
        index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L10_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_8);
        index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_9);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) __PYX_ERR(0, 2836, __pyx_L1_error)
        __pyx_t_11 = NULL;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L11_unpacking_done;
        __pyx_L10_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2836, __pyx_L1_error)
        __pyx_L11_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_8);
      __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_val, __pyx_t_9);
      __pyx_t_9 = 0;

      /* "kudu/client.pyx":2837
 *         elif isinstance(record, dict):
 *             for key, val in dict_iter(record):
 *                 self[key] = val             # <<<<<<<<<<<<<<
 *         else:
 *             raise TypeError("Invalid record type <{0}> for " +
 */
      if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self), __pyx_v_key, __pyx_v_val) < 0)) __PYX_ERR(0, 2837, __pyx_L1_error)

      /* "kudu/client.pyx":2836
 *                 self[indx] = val
 *         elif isinstance(record, dict):
 *             for key, val in dict_iter(record):             # <<<<<<<<<<<<<<
 *                 self[key] = val
 *         else:
 */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "kudu/client.pyx":2835
 *             for indx, val in enumerate(record):
 *                 self[indx] = val
 *         elif isinstance(record, dict):             # <<<<<<<<<<<<<<
 *             for key, val in dict_iter(record):
 *                 self[key] = val
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":2839
 *                 self[key] = val
 *         else:
 *             raise TypeError("Invalid record type <{0}> for " +             # <<<<<<<<<<<<<<
 *                             "PartialRow.from_record."
 *                             .format(type(record).__name__))
 */
  /*else*/ {

    /* "kudu/client.pyx":2841
 *             raise TypeError("Invalid record type <{0}> for " +
 *                             "PartialRow.from_record."
 *                             .format(type(record).__name__))             # <<<<<<<<<<<<<<
 * 
 *         return self
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_PartialRow_from_record, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_record)), __pyx_n_s_name_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "kudu/client.pyx":2839
 *                 self[key] = val
 *         else:
 *             raise TypeError("Invalid record type <{0}> for " +             # <<<<<<<<<<<<<<
 *                             "PartialRow.from_record."
 *                             .format(type(record).__name__))
 */
    __pyx_t_4 = PyNumber_Add(__pyx_kp_s_Invalid_record_type_0_for, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __PYX_ERR(0, 2839, __pyx_L1_error)
  }
  __pyx_L3:;

  /* "kudu/client.pyx":2843
 *                             .format(type(record).__name__))
 * 
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_field(self, key, value):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":2818
 *                                  .format(key))
 * 
 *     def from_record(self, record):             # <<<<<<<<<<<<<<
 *         """
 *         Initializes PartialRow with values from an input record. The record
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("kudu.client.PartialRow.from_record", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_indx);
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2845
 *         return self
 * 
 *     cpdef set_field(self, key, value):             # <<<<<<<<<<<<<<
 *         cdef:
 *             int i = self.schema.get_loc(key)
 */

static PyObject *__pyx_pw_4kudu_6client_10PartialRow_9set_field(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_field(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value, int __pyx_skip_dispatch) {
  int __pyx_v_i;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  __Pyx_RefNannySetupContext("set_field", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_field); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_10PartialRow_9set_field)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_key, __pyx_v_value};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2845, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
          PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_key, __pyx_v_value};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2845, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2845, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_INCREF(__pyx_v_key);
          __Pyx_GIVEREF(__pyx_v_key);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_key);
          __Pyx_INCREF(__pyx_v_value);
          __Pyx_GIVEREF(__pyx_v_value);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_value);
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2845, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":2847
 *     cpdef set_field(self, key, value):
 *         cdef:
 *             int i = self.schema.get_loc(key)             # <<<<<<<<<<<<<<
 * 
 *         self.set_loc(i, value)
 */
  __pyx_t_5 = ((struct __pyx_vtabstruct_4kudu_6schema_Schema *)__pyx_v_self->schema->__pyx_vtab)->get_loc(__pyx_v_self->schema, __pyx_v_key); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 2847, __pyx_L1_error)
  __pyx_v_i = __pyx_t_5;

  /* "kudu/client.pyx":2849
 *             int i = self.schema.get_loc(key)
 * 
 *         self.set_loc(i, value)             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_loc(self, int i, value):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_PartialRow *)__pyx_v_self->__pyx_vtab)->set_loc(__pyx_v_self, __pyx_v_i, __pyx_v_value, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":2845
 *         return self
 * 
 *     cpdef set_field(self, key, value):             # <<<<<<<<<<<<<<
 *         cdef:
 *             int i = self.schema.get_loc(key)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_9set_field(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_8set_field[] = "PartialRow.set_field(self, key, value)";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_9set_field(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_field (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_value,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_field", 1, 2, 2, 1); __PYX_ERR(0, 2845, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_field") < 0)) __PYX_ERR(0, 2845, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_key = values[0];
    __pyx_v_value = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_field", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2845, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.PartialRow.set_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_8set_field(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), __pyx_v_key, __pyx_v_value);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_8set_field(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_field", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_10PartialRow_set_field(__pyx_v_self, __pyx_v_key, __pyx_v_value, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_field", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2851
 *         self.set_loc(i, value)
 * 
 *     cpdef set_loc(self, int i, value):             # <<<<<<<<<<<<<<
 *         cdef:
 *             DataType t = self.schema.loc_type(i)
 */

static PyObject *__pyx_pw_4kudu_6client_10PartialRow_11set_loc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_loc(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, int __pyx_v_i, PyObject *__pyx_v_value, int __pyx_skip_dispatch) {
  enum  kudu::client::KuduColumnSchema::DataType __pyx_v_t;
  kudu::Slice __pyx_v_slc;
  PyObject *__pyx_v_val = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  bool __pyx_t_10;
  int8_t __pyx_t_11;
  int16_t __pyx_t_12;
  int32_t __pyx_t_13;
  int64_t __pyx_t_14;
  float __pyx_t_15;
  double __pyx_t_16;
  char *__pyx_t_17;
  Py_ssize_t __pyx_t_18;
  kudu::int128_t __pyx_t_19;
  __Pyx_RefNannySetupContext("set_loc", 0);
  __Pyx_INCREF(__pyx_v_value);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_loc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_10PartialRow_11set_loc)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_v_value};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2851, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_v_value};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2851, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2851, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
          __Pyx_INCREF(__pyx_v_value);
          __Pyx_GIVEREF(__pyx_v_value);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_value);
          __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2851, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":2853
 *     cpdef set_loc(self, int i, value):
 *         cdef:
 *             DataType t = self.schema.loc_type(i)             # <<<<<<<<<<<<<<
 *             Slice slc
 * 
 */
  __pyx_v_t = __pyx_f_4kudu_6schema_6Schema_loc_type(__pyx_v_self->schema, __pyx_v_i);

  /* "kudu/client.pyx":2856
 *             Slice slc
 * 
 *         if value is None:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetNull(i))
 *             return
 */
  __pyx_t_8 = (__pyx_v_value == Py_None);
  __pyx_t_9 = (__pyx_t_8 != 0);
  if (__pyx_t_9) {

    /* "kudu/client.pyx":2857
 * 
 *         if value is None:
 *             check_status(self.row.SetNull(i))             # <<<<<<<<<<<<<<
 *             return
 * 
 */
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetNull(__pyx_v_i)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2857, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2858
 *         if value is None:
 *             check_status(self.row.SetNull(i))
 *             return             # <<<<<<<<<<<<<<
 * 
 *         # Leave it to Cython to do the coercion and complain if it doesn't
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;

    /* "kudu/client.pyx":2856
 *             Slice slc
 * 
 *         if value is None:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetNull(i))
 *             return
 */
  }

  /* "kudu/client.pyx":2863
 *         # work. Cython will catch many casting problems but we should verify
 *         # with unit tests.
 *         if t == KUDU_BOOL:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetBool(i, <c_bool> value))
 *         elif t == KUDU_INT8:
 */
  switch (__pyx_v_t) {
    case  kudu::client::KuduColumnSchema::BOOL:

    /* "kudu/client.pyx":2864
 *         # with unit tests.
 *         if t == KUDU_BOOL:
 *             check_status(self.row.SetBool(i, <c_bool> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT8:
 *             check_status(self.row.SetInt8(i, <int8_t> value))
 */
    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_10 == ((bool)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2864, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetBool(__pyx_v_i, ((bool)__pyx_t_10))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2864, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2863
 *         # work. Cython will catch many casting problems but we should verify
 *         # with unit tests.
 *         if t == KUDU_BOOL:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetBool(i, <c_bool> value))
 *         elif t == KUDU_INT8:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT8:

    /* "kudu/client.pyx":2866
 *             check_status(self.row.SetBool(i, <c_bool> value))
 *         elif t == KUDU_INT8:
 *             check_status(self.row.SetInt8(i, <int8_t> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT16:
 *             check_status(self.row.SetInt16(i, <int16_t> value))
 */
    __pyx_t_11 = __Pyx_PyInt_As_int8_t(__pyx_v_value); if (unlikely((__pyx_t_11 == ((int8_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2866, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetInt8(__pyx_v_i, ((int8_t)__pyx_t_11))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2865
 *         if t == KUDU_BOOL:
 *             check_status(self.row.SetBool(i, <c_bool> value))
 *         elif t == KUDU_INT8:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetInt8(i, <int8_t> value))
 *         elif t == KUDU_INT16:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT16:

    /* "kudu/client.pyx":2868
 *             check_status(self.row.SetInt8(i, <int8_t> value))
 *         elif t == KUDU_INT16:
 *             check_status(self.row.SetInt16(i, <int16_t> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT32:
 *             check_status(self.row.SetInt32(i, <int32_t> value))
 */
    __pyx_t_12 = __Pyx_PyInt_As_int16_t(__pyx_v_value); if (unlikely((__pyx_t_12 == ((int16_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2868, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetInt16(__pyx_v_i, ((int16_t)__pyx_t_12))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2867
 *         elif t == KUDU_INT8:
 *             check_status(self.row.SetInt8(i, <int8_t> value))
 *         elif t == KUDU_INT16:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetInt16(i, <int16_t> value))
 *         elif t == KUDU_INT32:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT32:

    /* "kudu/client.pyx":2870
 *             check_status(self.row.SetInt16(i, <int16_t> value))
 *         elif t == KUDU_INT32:
 *             check_status(self.row.SetInt32(i, <int32_t> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_INT64:
 *             check_status(self.row.SetInt64(i, <int64_t> value))
 */
    __pyx_t_13 = __Pyx_PyInt_As_int32_t(__pyx_v_value); if (unlikely((__pyx_t_13 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2870, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetInt32(__pyx_v_i, ((int32_t)__pyx_t_13))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2870, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2869
 *         elif t == KUDU_INT16:
 *             check_status(self.row.SetInt16(i, <int16_t> value))
 *         elif t == KUDU_INT32:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetInt32(i, <int32_t> value))
 *         elif t == KUDU_INT64:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT64:

    /* "kudu/client.pyx":2872
 *             check_status(self.row.SetInt32(i, <int32_t> value))
 *         elif t == KUDU_INT64:
 *             check_status(self.row.SetInt64(i, <int64_t> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_FLOAT:
 *             check_status(self.row.SetFloat(i, <float> value))
 */
    __pyx_t_14 = __Pyx_PyInt_As_int64_t(__pyx_v_value); if (unlikely((__pyx_t_14 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2872, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetInt64(__pyx_v_i, ((int64_t)__pyx_t_14))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2872, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2871
 *         elif t == KUDU_INT32:
 *             check_status(self.row.SetInt32(i, <int32_t> value))
 *         elif t == KUDU_INT64:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetInt64(i, <int64_t> value))
 *         elif t == KUDU_FLOAT:
 */
    break;
    case  kudu::client::KuduColumnSchema::FLOAT:

    /* "kudu/client.pyx":2874
 *             check_status(self.row.SetInt64(i, <int64_t> value))
 *         elif t == KUDU_FLOAT:
 *             check_status(self.row.SetFloat(i, <float> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_DOUBLE:
 *             check_status(self.row.SetDouble(i, <double> value))
 */
    __pyx_t_15 = __pyx_PyFloat_AsFloat(__pyx_v_value); if (unlikely((__pyx_t_15 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 2874, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetFloat(__pyx_v_i, ((float)__pyx_t_15))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2874, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2873
 *         elif t == KUDU_INT64:
 *             check_status(self.row.SetInt64(i, <int64_t> value))
 *         elif t == KUDU_FLOAT:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetFloat(i, <float> value))
 *         elif t == KUDU_DOUBLE:
 */
    break;
    case  kudu::client::KuduColumnSchema::DOUBLE:

    /* "kudu/client.pyx":2876
 *             check_status(self.row.SetFloat(i, <float> value))
 *         elif t == KUDU_DOUBLE:
 *             check_status(self.row.SetDouble(i, <double> value))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_STRING:
 *             if isinstance(value, unicode):
 */
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2876, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetDouble(__pyx_v_i, ((double)__pyx_t_16))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2876, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2875
 *         elif t == KUDU_FLOAT:
 *             check_status(self.row.SetFloat(i, <float> value))
 *         elif t == KUDU_DOUBLE:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetDouble(i, <double> value))
 *         elif t == KUDU_STRING:
 */
    break;
    case  kudu::client::KuduColumnSchema::STRING:

    /* "kudu/client.pyx":2878
 *             check_status(self.row.SetDouble(i, <double> value))
 *         elif t == KUDU_STRING:
 *             if isinstance(value, unicode):             # <<<<<<<<<<<<<<
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))
 */
    __pyx_t_9 = PyUnicode_Check(__pyx_v_value); 
    __pyx_t_8 = (__pyx_t_9 != 0);
    if (__pyx_t_8) {

      /* "kudu/client.pyx":2879
 *         elif t == KUDU_STRING:
 *             if isinstance(value, unicode):
 *                 value = value.encode('utf8')             # <<<<<<<<<<<<<<
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetStringCopy(i, slc))
 */
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_encode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_n_s_utf8) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_utf8);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
      __pyx_t_1 = 0;

      /* "kudu/client.pyx":2878
 *             check_status(self.row.SetDouble(i, <double> value))
 *         elif t == KUDU_STRING:
 *             if isinstance(value, unicode):             # <<<<<<<<<<<<<<
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))
 */
    }

    /* "kudu/client.pyx":2880
 *             if isinstance(value, unicode):
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetStringCopy(i, slc))
 *         elif t == KUDU_BINARY:
 */
    __pyx_t_17 = __Pyx_PyObject_AsWritableString(__pyx_v_value); if (unlikely((!__pyx_t_17) && PyErr_Occurred())) __PYX_ERR(0, 2880, __pyx_L1_error)
    __pyx_t_18 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_18 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2880, __pyx_L1_error)
    __pyx_v_slc = kudu::Slice(((char *)__pyx_t_17), __pyx_t_18);

    /* "kudu/client.pyx":2881
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetStringCopy(i, slc))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_BINARY:
 *             if isinstance(value, unicode):
 */
    __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetStringCopy(__pyx_v_i, __pyx_v_slc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2881, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":2877
 *         elif t == KUDU_DOUBLE:
 *             check_status(self.row.SetDouble(i, <double> value))
 *         elif t == KUDU_STRING:             # <<<<<<<<<<<<<<
 *             if isinstance(value, unicode):
 *                 value = value.encode('utf8')
 */
    break;
    case  kudu::client::KuduColumnSchema::BINARY:

    /* "kudu/client.pyx":2883
 *             check_status(self.row.SetStringCopy(i, slc))
 *         elif t == KUDU_BINARY:
 *             if isinstance(value, unicode):             # <<<<<<<<<<<<<<
 *                 raise TypeError("Unicode objects must be explicitly encoded " +
 *                                 "before storing in a Binary field.")
 */
    __pyx_t_8 = PyUnicode_Check(__pyx_v_value); 
    __pyx_t_9 = (__pyx_t_8 != 0);
    if (unlikely(__pyx_t_9)) {

      /* "kudu/client.pyx":2884
 *         elif t == KUDU_BINARY:
 *             if isinstance(value, unicode):
 *                 raise TypeError("Unicode objects must be explicitly encoded " +             # <<<<<<<<<<<<<<
 *                                 "before storing in a Binary field.")
 * 
 */
      __pyx_t_1 = PyNumber_Add(__pyx_kp_s_Unicode_objects_must_be_explicit, __pyx_kp_s_before_storing_in_a_Binary_field); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2884, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2884, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __PYX_ERR(0, 2884, __pyx_L1_error)

      /* "kudu/client.pyx":2883
 *             check_status(self.row.SetStringCopy(i, slc))
 *         elif t == KUDU_BINARY:
 *             if isinstance(value, unicode):             # <<<<<<<<<<<<<<
 *                 raise TypeError("Unicode objects must be explicitly encoded " +
 *                                 "before storing in a Binary field.")
 */
    }

    /* "kudu/client.pyx":2887
 *                                 "before storing in a Binary field.")
 * 
 *             slc = Slice(<char*> value, len(value))             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetBinaryCopy(i, slc))
 *         elif t == KUDU_VARCHAR:
 */
    __pyx_t_17 = __Pyx_PyObject_AsWritableString(__pyx_v_value); if (unlikely((!__pyx_t_17) && PyErr_Occurred())) __PYX_ERR(0, 2887, __pyx_L1_error)
    __pyx_t_18 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_18 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2887, __pyx_L1_error)
    __pyx_v_slc = kudu::Slice(((char *)__pyx_t_17), __pyx_t_18);

    /* "kudu/client.pyx":2888
 * 
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetBinaryCopy(i, slc))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_VARCHAR:
 *             if isinstance(value, unicode):
 */
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetBinaryCopy(__pyx_v_i, __pyx_v_slc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2888, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2882
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetStringCopy(i, slc))
 *         elif t == KUDU_BINARY:             # <<<<<<<<<<<<<<
 *             if isinstance(value, unicode):
 *                 raise TypeError("Unicode objects must be explicitly encoded " +
 */
    break;
    case  kudu::client::KuduColumnSchema::VARCHAR:

    /* "kudu/client.pyx":2890
 *             check_status(self.row.SetBinaryCopy(i, slc))
 *         elif t == KUDU_VARCHAR:
 *             if isinstance(value, unicode):             # <<<<<<<<<<<<<<
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))
 */
    __pyx_t_9 = PyUnicode_Check(__pyx_v_value); 
    __pyx_t_8 = (__pyx_t_9 != 0);
    if (__pyx_t_8) {

      /* "kudu/client.pyx":2891
 *         elif t == KUDU_VARCHAR:
 *             if isinstance(value, unicode):
 *                 value = value.encode('utf8')             # <<<<<<<<<<<<<<
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetVarchar(i, slc))
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s_encode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_n_s_utf8) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_s_utf8);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
      __pyx_t_2 = 0;

      /* "kudu/client.pyx":2890
 *             check_status(self.row.SetBinaryCopy(i, slc))
 *         elif t == KUDU_VARCHAR:
 *             if isinstance(value, unicode):             # <<<<<<<<<<<<<<
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))
 */
    }

    /* "kudu/client.pyx":2892
 *             if isinstance(value, unicode):
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetVarchar(i, slc))
 *         elif t == KUDU_UNIXTIME_MICROS:
 */
    __pyx_t_17 = __Pyx_PyObject_AsWritableString(__pyx_v_value); if (unlikely((!__pyx_t_17) && PyErr_Occurred())) __PYX_ERR(0, 2892, __pyx_L1_error)
    __pyx_t_18 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_18 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2892, __pyx_L1_error)
    __pyx_v_slc = kudu::Slice(((char *)__pyx_t_17), __pyx_t_18);

    /* "kudu/client.pyx":2893
 *                 value = value.encode('utf8')
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetVarchar(i, slc))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_UNIXTIME_MICROS:
 *             check_status(self.row.SetUnixTimeMicros(i, <int64_t>
 */
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetVarchar(__pyx_v_i, __pyx_v_slc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2893, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2889
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetBinaryCopy(i, slc))
 *         elif t == KUDU_VARCHAR:             # <<<<<<<<<<<<<<
 *             if isinstance(value, unicode):
 *                 value = value.encode('utf8')
 */
    break;
    case  kudu::client::KuduColumnSchema::UNIXTIME_MICROS:

    /* "kudu/client.pyx":2896
 *         elif t == KUDU_UNIXTIME_MICROS:
 *             check_status(self.row.SetUnixTimeMicros(i, <int64_t>
 *                 to_unixtime_micros(value)))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_DATE:
 *             val = date_to_unix_epoch_days(value)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_to_unixtime_micros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2896, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_value);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2896, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_14 = __Pyx_PyInt_As_int64_t(__pyx_t_2); if (unlikely((__pyx_t_14 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2896, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2895
 *             check_status(self.row.SetVarchar(i, slc))
 *         elif t == KUDU_UNIXTIME_MICROS:
 *             check_status(self.row.SetUnixTimeMicros(i, <int64_t>             # <<<<<<<<<<<<<<
 *                 to_unixtime_micros(value)))
 *         elif t == KUDU_DATE:
 */
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetUnixTimeMicros(__pyx_v_i, ((int64_t)__pyx_t_14))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2895, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2894
 *             slc = Slice(<char*> value, len(value))
 *             check_status(self.row.SetVarchar(i, slc))
 *         elif t == KUDU_UNIXTIME_MICROS:             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetUnixTimeMicros(i, <int64_t>
 *                 to_unixtime_micros(value)))
 */
    break;
    case  kudu::client::KuduColumnSchema::DATE:

    /* "kudu/client.pyx":2898
 *                 to_unixtime_micros(value)))
 *         elif t == KUDU_DATE:
 *             val = date_to_unix_epoch_days(value)             # <<<<<<<<<<<<<<
 *             check_status(self.row.SetDate(i, <int32_t>val))
 *         elif t == KUDU_DECIMAL:
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_date_to_unix_epoch_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_value);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2898, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_val = __pyx_t_2;
    __pyx_t_2 = 0;

    /* "kudu/client.pyx":2899
 *         elif t == KUDU_DATE:
 *             val = date_to_unix_epoch_days(value)
 *             check_status(self.row.SetDate(i, <int32_t>val))             # <<<<<<<<<<<<<<
 *         elif t == KUDU_DECIMAL:
 *             IF PYKUDU_INT128_SUPPORTED == 1:
 */
    __pyx_t_13 = __Pyx_PyInt_As_int32_t(__pyx_v_val); if (unlikely((__pyx_t_13 == ((int32_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2899, __pyx_L1_error)
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetDate(__pyx_v_i, ((int32_t)__pyx_t_13))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2897
 *             check_status(self.row.SetUnixTimeMicros(i, <int64_t>
 *                 to_unixtime_micros(value)))
 *         elif t == KUDU_DATE:             # <<<<<<<<<<<<<<
 *             val = date_to_unix_epoch_days(value)
 *             check_status(self.row.SetDate(i, <int32_t>val))
 */
    break;
    case  kudu::client::KuduColumnSchema::DECIMAL:

    /* "kudu/client.pyx":2902
 *         elif t == KUDU_DECIMAL:
 *             IF PYKUDU_INT128_SUPPORTED == 1:
 *                 check_status(self.row.SetUnscaledDecimal(i, <int128_t>to_unscaled_decimal(value)))             # <<<<<<<<<<<<<<
 *             ELSE:
 *                 raise KuduException("The decimal type is not supported when GCC version is < 4.6.0" % self)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_to_unscaled_decimal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_value);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_19 = __Pyx_PyInt_As_kudu_3a__3a_int128_t(__pyx_t_2); if (unlikely((__pyx_t_19 == ((kudu::int128_t)-1)) && PyErr_Occurred())) __PYX_ERR(0, 2902, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->row->SetUnscaledDecimal(__pyx_v_i, ((kudu::int128_t)__pyx_t_19))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2900
 *             val = date_to_unix_epoch_days(value)
 *             check_status(self.row.SetDate(i, <int32_t>val))
 *         elif t == KUDU_DECIMAL:             # <<<<<<<<<<<<<<
 *             IF PYKUDU_INT128_SUPPORTED == 1:
 *                 check_status(self.row.SetUnscaledDecimal(i, <int128_t>to_unscaled_decimal(value)))
 */
    break;
    default:

    /* "kudu/client.pyx":2906
 *                 raise KuduException("The decimal type is not supported when GCC version is < 4.6.0" % self)
 *         else:
 *             raise TypeError("Cannot set kudu type <{0}>.".format(_type_names[t]))             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_field_null(self, key):
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Cannot_set_kudu_type_0, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__pyx_v_4kudu_6client__type_names == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 2906, __pyx_L1_error)
    }
    __pyx_t_4 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType(__pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__type_names, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 2906, __pyx_L1_error)
    break;
  }

  /* "kudu/client.pyx":2851
 *         self.set_loc(i, value)
 * 
 *     cpdef set_loc(self, int i, value):             # <<<<<<<<<<<<<<
 *         cdef:
 *             DataType t = self.schema.loc_type(i)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_loc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_11set_loc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_10set_loc[] = "PartialRow.set_loc(self, int i, value)";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_11set_loc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_i;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_loc (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_value,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_loc", 1, 2, 2, 1); __PYX_ERR(0, 2851, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_loc") < 0)) __PYX_ERR(0, 2851, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_i = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2851, __pyx_L3_error)
    __pyx_v_value = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_loc", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2851, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.PartialRow.set_loc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_10set_loc(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), __pyx_v_i, __pyx_v_value);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_10set_loc(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, int __pyx_v_i, PyObject *__pyx_v_value) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_loc", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_10PartialRow_set_loc(__pyx_v_self, __pyx_v_i, __pyx_v_value, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_loc", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2908
 *             raise TypeError("Cannot set kudu type <{0}>.".format(_type_names[t]))
 * 
 *     cpdef set_field_null(self, key):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

static PyObject *__pyx_pw_4kudu_6client_10PartialRow_13set_field_null(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_field_null(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_key, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("set_field_null", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_field_null); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2908, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_10PartialRow_13set_field_null)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_key) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_key);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2908, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":2909
 * 
 *     cpdef set_field_null(self, key):
 *         pass             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_loc_null(self, int i):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_field_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2908
 *             raise TypeError("Cannot set kudu type <{0}>.".format(_type_names[t]))
 * 
 *     cpdef set_field_null(self, key):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_13set_field_null(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_12set_field_null[] = "PartialRow.set_field_null(self, key)";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_13set_field_null(PyObject *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_field_null (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_12set_field_null(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), ((PyObject *)__pyx_v_key));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_12set_field_null(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_key) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_field_null", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_10PartialRow_set_field_null(__pyx_v_self, __pyx_v_key, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_field_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2911
 *         pass
 * 
 *     cpdef set_loc_null(self, int i):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

static PyObject *__pyx_pw_4kudu_6client_10PartialRow_15set_loc_null(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static PyObject *__pyx_f_4kudu_6client_10PartialRow_set_loc_null(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED int __pyx_v_i, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("set_loc_null", 0);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || (Py_TYPE(((PyObject *)__pyx_v_self))->tp_flags & (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_type_dict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_loc_null); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2911, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)(void*)__pyx_pw_4kudu_6client_10PartialRow_15set_loc_null)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2911, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2911, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_type_dict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "kudu/client.pyx":2912
 * 
 *     cpdef set_loc_null(self, int i):
 *         pass             # <<<<<<<<<<<<<<
 * 
 *     cdef add_to_session(self, Session s):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_loc_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2911
 *         pass
 * 
 *     cpdef set_loc_null(self, int i):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_15set_loc_null(PyObject *__pyx_v_self, PyObject *__pyx_arg_i); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_14set_loc_null[] = "PartialRow.set_loc_null(self, int i)";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_15set_loc_null(PyObject *__pyx_v_self, PyObject *__pyx_arg_i) {
  int __pyx_v_i;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_loc_null (wrapper)", 0);
  assert(__pyx_arg_i); {
    __pyx_v_i = __Pyx_PyInt_As_int(__pyx_arg_i); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2911, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.PartialRow.set_loc_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_14set_loc_null(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), ((int)__pyx_v_i));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_14set_loc_null(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, int __pyx_v_i) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("set_loc_null", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_4kudu_6client_10PartialRow_set_loc_null(__pyx_v_self, __pyx_v_i, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow.set_loc_null", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2914
 *         pass
 * 
 *     cdef add_to_session(self, Session s):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

static PyObject *__pyx_f_4kudu_6client_10PartialRow_add_to_session(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Session *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_to_session", 0);

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":46
 *         KuduPartialRow* row
 *         Schema schema
 *         public bint _own             # <<<<<<<<<<<<<<
 * 
 *     cpdef set_field(self, key, value)
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_4_own_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_4_own_1__get__(PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_4_own___get__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_4_own___get__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__get__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->_own); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 46, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow._own.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_4kudu_6client_10PartialRow_4_own_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4kudu_6client_10PartialRow_4_own_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_4_own_2__set__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_10PartialRow_4_own_2__set__(struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__set__", 0);
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 46, __pyx_L1_error)
  __pyx_v_self->_own = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.PartialRow._own.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_16__reduce_cython__[] = "PartialRow.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_16__reduce_cython__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_16__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_10PartialRow_18__setstate_cython__[] = "PartialRow.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_10PartialRow_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_10PartialRow_18__setstate_cython__(((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_10PartialRow_18__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.PartialRow.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2926
 *         PartialRow py_row
 * 
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.applied = 0
 *         self.py_row = PartialRow(table.schema)
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_14WriteOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_14WriteOperation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  CYTHON_UNUSED PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2926, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2926, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.WriteOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2926, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_14WriteOperation___cinit__(((struct __pyx_obj_4kudu_6client_WriteOperation *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_14WriteOperation___cinit__(struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, CYTHON_UNUSED PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2927
 * 
 *     def __cinit__(self, Table table, record=None):
 *         self.applied = 0             # <<<<<<<<<<<<<<
 *         self.py_row = PartialRow(table.schema)
 *         self.py_row._own = 0
 */
  __pyx_v_self->applied = 0;

  /* "kudu/client.pyx":2928
 *     def __cinit__(self, Table table, record=None):
 *         self.applied = 0
 *         self.py_row = PartialRow(table.schema)             # <<<<<<<<<<<<<<
 *         self.py_row._own = 0
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_PartialRow), ((PyObject *)__pyx_v_table->schema)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF(__pyx_v_self->py_row);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->py_row));
  __pyx_v_self->py_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":2929
 *         self.applied = 0
 *         self.py_row = PartialRow(table.schema)
 *         self.py_row._own = 0             # <<<<<<<<<<<<<<
 * 
 *     cdef add_to_session(self, Session s):
 */
  __pyx_v_self->py_row->_own = 0;

  /* "kudu/client.pyx":2926
 *         PartialRow py_row
 * 
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.applied = 0
 *         self.py_row = PartialRow(table.schema)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.WriteOperation.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2931
 *         self.py_row._own = 0
 * 
 *     cdef add_to_session(self, Session s):             # <<<<<<<<<<<<<<
 *         if self.applied:
 *             raise Exception
 */

static PyObject *__pyx_f_4kudu_6client_14WriteOperation_add_to_session(struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, struct __pyx_obj_4kudu_6client_Session *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  __Pyx_RefNannySetupContext("add_to_session", 0);

  /* "kudu/client.pyx":2932
 * 
 *     cdef add_to_session(self, Session s):
 *         if self.applied:             # <<<<<<<<<<<<<<
 *             raise Exception
 * 
 */
  __pyx_t_1 = (__pyx_v_self->applied != 0);
  if (unlikely(__pyx_t_1)) {

    /* "kudu/client.pyx":2933
 *     cdef add_to_session(self, Session s):
 *         if self.applied:
 *             raise Exception             # <<<<<<<<<<<<<<
 * 
 *         check_status(s.s.get().Apply(self.op))
 */
    __Pyx_Raise(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), 0, 0, 0);
    __PYX_ERR(0, 2933, __pyx_L1_error)

    /* "kudu/client.pyx":2932
 * 
 *     cdef add_to_session(self, Session s):
 *         if self.applied:             # <<<<<<<<<<<<<<
 *             raise Exception
 * 
 */
  }

  /* "kudu/client.pyx":2935
 *             raise Exception
 * 
 *         check_status(s.s.get().Apply(self.op))             # <<<<<<<<<<<<<<
 *         self.op = NULL
 *         self.applied = 1
 */
  __pyx_t_2 = __pyx_f_4kudu_6errors_check_status(__pyx_v_s->s.get()->Apply(__pyx_v_self->op)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":2936
 * 
 *         check_status(s.s.get().Apply(self.op))
 *         self.op = NULL             # <<<<<<<<<<<<<<
 *         self.applied = 1
 * 
 */
  __pyx_v_self->op = NULL;

  /* "kudu/client.pyx":2937
 *         check_status(s.s.get().Apply(self.op))
 *         self.op = NULL
 *         self.applied = 1             # <<<<<<<<<<<<<<
 * 
 *     def __setitem__(self, key, value):
 */
  __pyx_v_self->applied = 1;

  /* "kudu/client.pyx":2931
 *         self.py_row._own = 0
 * 
 *     cdef add_to_session(self, Session s):             # <<<<<<<<<<<<<<
 *         if self.applied:
 *             raise Exception
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("kudu.client.WriteOperation.add_to_session", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2939
 *         self.applied = 1
 * 
 *     def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 *         # Since the write operation is no longer a sub-class of the PartialRow
 *         # we need to explicitly retain the item setting functionality and API
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_14WriteOperation_3__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_4kudu_6client_14WriteOperation_3__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_14WriteOperation_2__setitem__(((struct __pyx_obj_4kudu_6client_WriteOperation *)__pyx_v_self), ((PyObject *)__pyx_v_key), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_14WriteOperation_2__setitem__(struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setitem__", 0);

  /* "kudu/client.pyx":2943
 *         # we need to explicitly retain the item setting functionality and API
 *         # style.
 *         self.py_row[key] = value             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->py_row), __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(0, 2943, __pyx_L1_error)

  /* "kudu/client.pyx":2939
 *         self.applied = 1
 * 
 *     def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
 *         # Since the write operation is no longer a sub-class of the PartialRow
 *         # we need to explicitly retain the item setting functionality and API
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("kudu.client.WriteOperation.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_14WriteOperation_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_14WriteOperation_4__reduce_cython__[] = "WriteOperation.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_14WriteOperation_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_14WriteOperation_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_WriteOperation *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_14WriteOperation_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.WriteOperation.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_14WriteOperation_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_14WriteOperation_6__setstate_cython__[] = "WriteOperation.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_14WriteOperation_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_14WriteOperation_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_WriteOperation *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_14WriteOperation_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_WriteOperation *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.WriteOperation.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2947
 * 
 * cdef class Insert(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewInsert()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_6Insert_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_6Insert_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2947, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2947, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Insert.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2947, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Insert___cinit__(((struct __pyx_obj_4kudu_6client_Insert *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_6Insert___cinit__(struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2948
 * cdef class Insert(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsert()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewInsert();

  /* "kudu/client.pyx":2949
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsert()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":2950
 *         self.op = table.ptr().NewInsert()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2950, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2951
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2951, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2951, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2950
 *         self.op = table.ptr().NewInsert()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  }

  /* "kudu/client.pyx":2947
 * 
 * cdef class Insert(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewInsert()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Insert.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2953
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_6Insert_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_6Insert_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_6Insert_2__dealloc__(((struct __pyx_obj_4kudu_6client_Insert *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_6Insert_2__dealloc__(struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2954
 * 
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * cdef class InsertIgnore(WriteOperation):
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":2953
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Insert_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Insert_4__reduce_cython__[] = "Insert.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Insert_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Insert_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Insert *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Insert_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__67, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Insert.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Insert_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Insert_6__setstate_cython__[] = "Insert.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Insert_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Insert_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Insert *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Insert_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Insert *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Insert.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2957
 * 
 * cdef class InsertIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewInsertIgnore()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_12InsertIgnore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_12InsertIgnore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2957, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2957, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.InsertIgnore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2957, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_12InsertIgnore___cinit__(((struct __pyx_obj_4kudu_6client_InsertIgnore *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_12InsertIgnore___cinit__(struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2958
 * cdef class InsertIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsertIgnore()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewInsertIgnore();

  /* "kudu/client.pyx":2959
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewInsertIgnore()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":2960
 *         self.op = table.ptr().NewInsertIgnore()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2960, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2961
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2960
 *         self.op = table.ptr().NewInsertIgnore()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  }

  /* "kudu/client.pyx":2957
 * 
 * cdef class InsertIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewInsertIgnore()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.InsertIgnore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2963
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_12InsertIgnore_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_12InsertIgnore_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_12InsertIgnore_2__dealloc__(((struct __pyx_obj_4kudu_6client_InsertIgnore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_12InsertIgnore_2__dealloc__(struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2964
 * 
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * 
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":2963
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12InsertIgnore_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12InsertIgnore_4__reduce_cython__[] = "InsertIgnore.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_12InsertIgnore_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12InsertIgnore_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_InsertIgnore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12InsertIgnore_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__69, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.InsertIgnore.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12InsertIgnore_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_12InsertIgnore_6__setstate_cython__[] = "InsertIgnore.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_12InsertIgnore_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12InsertIgnore_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_InsertIgnore *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12InsertIgnore_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_InsertIgnore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.InsertIgnore.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2968
 * 
 * cdef class Upsert(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewUpsert()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_6Upsert_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_6Upsert_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2968, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2968, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Upsert.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2968, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Upsert___cinit__(((struct __pyx_obj_4kudu_6client_Upsert *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_6Upsert___cinit__(struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2969
 * cdef class Upsert(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpsert()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewUpsert();

  /* "kudu/client.pyx":2970
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpsert()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":2971
 *         self.op = table.ptr().NewUpsert()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 *     def __dealloc__(self):
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2971, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2972
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 *     def __dealloc__(self):
 *         del self.op
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2971
 *         self.op = table.ptr().NewUpsert()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 *     def __dealloc__(self):
 */
  }

  /* "kudu/client.pyx":2968
 * 
 * cdef class Upsert(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewUpsert()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Upsert.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2973
 *         if record:
 *             self.py_row.from_record(record)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_6Upsert_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_6Upsert_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_6Upsert_2__dealloc__(((struct __pyx_obj_4kudu_6client_Upsert *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_6Upsert_2__dealloc__(struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2974
 *             self.py_row.from_record(record)
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * 
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":2973
 *         if record:
 *             self.py_row.from_record(record)
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Upsert_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Upsert_4__reduce_cython__[] = "Upsert.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Upsert_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Upsert_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Upsert *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Upsert_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Upsert.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Upsert_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Upsert_6__setstate_cython__[] = "Upsert.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Upsert_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Upsert_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Upsert *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Upsert_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Upsert *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Upsert.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2978
 * 
 * cdef class Update(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewUpdate()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_6Update_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_6Update_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2978, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2978, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Update.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2978, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Update___cinit__(((struct __pyx_obj_4kudu_6client_Update *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_6Update___cinit__(struct __pyx_obj_4kudu_6client_Update *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2979
 * cdef class Update(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdate()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewUpdate();

  /* "kudu/client.pyx":2980
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdate()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":2981
 *         self.op = table.ptr().NewUpdate()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2981, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2982
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2981
 *         self.op = table.ptr().NewUpdate()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  }

  /* "kudu/client.pyx":2978
 * 
 * cdef class Update(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewUpdate()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Update.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2984
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_6Update_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_6Update_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_6Update_2__dealloc__(((struct __pyx_obj_4kudu_6client_Update *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_6Update_2__dealloc__(struct __pyx_obj_4kudu_6client_Update *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2985
 * 
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * cdef class UpdateIgnore(WriteOperation):
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":2984
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Update_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Update_4__reduce_cython__[] = "Update.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Update_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Update_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Update *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Update_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Update *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Update.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Update_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Update_6__setstate_cython__[] = "Update.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Update_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Update_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Update *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Update_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Update *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Update.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2988
 * 
 * cdef class UpdateIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewUpdateIgnore()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_12UpdateIgnore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_12UpdateIgnore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2988, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2988, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.UpdateIgnore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2988, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_12UpdateIgnore___cinit__(((struct __pyx_obj_4kudu_6client_UpdateIgnore *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_12UpdateIgnore___cinit__(struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2989
 * cdef class UpdateIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdateIgnore()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewUpdateIgnore();

  /* "kudu/client.pyx":2990
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewUpdateIgnore()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":2991
 *         self.op = table.ptr().NewUpdateIgnore()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2991, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":2992
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2992, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2992, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":2991
 *         self.op = table.ptr().NewUpdateIgnore()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  }

  /* "kudu/client.pyx":2988
 * 
 * cdef class UpdateIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewUpdateIgnore()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.UpdateIgnore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2994
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_12UpdateIgnore_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_12UpdateIgnore_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_12UpdateIgnore_2__dealloc__(((struct __pyx_obj_4kudu_6client_UpdateIgnore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_12UpdateIgnore_2__dealloc__(struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":2995
 * 
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * cdef class Delete(WriteOperation):
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":2994
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12UpdateIgnore_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12UpdateIgnore_4__reduce_cython__[] = "UpdateIgnore.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_12UpdateIgnore_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12UpdateIgnore_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_UpdateIgnore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12UpdateIgnore_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.UpdateIgnore.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12UpdateIgnore_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_12UpdateIgnore_6__setstate_cython__[] = "UpdateIgnore.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_12UpdateIgnore_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12UpdateIgnore_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_UpdateIgnore *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12UpdateIgnore_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_UpdateIgnore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.UpdateIgnore.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":2998
 * 
 * cdef class Delete(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewDelete()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_6Delete_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_6Delete_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 2998, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2998, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.Delete.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 2998, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_6Delete___cinit__(((struct __pyx_obj_4kudu_6client_Delete *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_6Delete___cinit__(struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":2999
 * cdef class Delete(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDelete()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewDelete();

  /* "kudu/client.pyx":3000
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDelete()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":3001
 *         self.op = table.ptr().NewDelete()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3001, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":3002
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3002, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3002, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":3001
 *         self.op = table.ptr().NewDelete()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  }

  /* "kudu/client.pyx":2998
 * 
 * cdef class Delete(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewDelete()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.Delete.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3004
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_6Delete_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_6Delete_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_6Delete_2__dealloc__(((struct __pyx_obj_4kudu_6client_Delete *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_6Delete_2__dealloc__(struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":3005
 * 
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * cdef class DeleteIgnore(WriteOperation):
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":3004
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Delete_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_6Delete_4__reduce_cython__[] = "Delete.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_6Delete_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Delete_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_Delete *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Delete_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Delete.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_6Delete_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_6Delete_6__setstate_cython__[] = "Delete.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_6Delete_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_6Delete_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_Delete *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_6Delete_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_Delete *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__78, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.Delete.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3008
 * 
 * cdef class DeleteIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewDeleteIgnore()
 *         self.py_row.row = self.op.mutable_row()
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_12DeleteIgnore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_12DeleteIgnore_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  PyObject *__pyx_v_record = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,&__pyx_n_s_record,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_record);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3008, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
    __pyx_v_record = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3008, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.DeleteIgnore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 3008, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_12DeleteIgnore___cinit__(((struct __pyx_obj_4kudu_6client_DeleteIgnore *)__pyx_v_self), __pyx_v_table, __pyx_v_record);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_12DeleteIgnore___cinit__(struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table, PyObject *__pyx_v_record) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":3009
 * cdef class DeleteIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDeleteIgnore()             # <<<<<<<<<<<<<<
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 */
  __pyx_v_self->__pyx_base.op = __pyx_f_4kudu_6client_5Table_ptr(__pyx_v_table)->NewDeleteIgnore();

  /* "kudu/client.pyx":3010
 *     def __cinit__(self, Table table, record=None):
 *         self.op = table.ptr().NewDeleteIgnore()
 *         self.py_row.row = self.op.mutable_row()             # <<<<<<<<<<<<<<
 *         if record:
 *             self.py_row.from_record(record)
 */
  __pyx_v_self->__pyx_base.py_row->row = __pyx_v_self->__pyx_base.op->mutable_row();

  /* "kudu/client.pyx":3011
 *         self.op = table.ptr().NewDeleteIgnore()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_record); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3011, __pyx_L1_error)
  if (__pyx_t_1) {

    /* "kudu/client.pyx":3012
 *         self.py_row.row = self.op.mutable_row()
 *         if record:
 *             self.py_row.from_record(record)             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.py_row), __pyx_n_s_from_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3012, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_record) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_record);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3012, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":3011
 *         self.op = table.ptr().NewDeleteIgnore()
 *         self.py_row.row = self.op.mutable_row()
 *         if record:             # <<<<<<<<<<<<<<
 *             self.py_row.from_record(record)
 * 
 */
  }

  /* "kudu/client.pyx":3008
 * 
 * cdef class DeleteIgnore(WriteOperation):
 *     def __cinit__(self, Table table, record=None):             # <<<<<<<<<<<<<<
 *         self.op = table.ptr().NewDeleteIgnore()
 *         self.py_row.row = self.op.mutable_row()
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.DeleteIgnore.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3014
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_12DeleteIgnore_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_12DeleteIgnore_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_12DeleteIgnore_2__dealloc__(((struct __pyx_obj_4kudu_6client_DeleteIgnore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_12DeleteIgnore_2__dealloc__(struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":3015
 * 
 *     def __dealloc__(self):
 *         del self.op             # <<<<<<<<<<<<<<
 * 
 * cdef inline cast_pyvalue(DataType t, object o):
 */
  delete __pyx_v_self->__pyx_base.op;

  /* "kudu/client.pyx":3014
 *             self.py_row.from_record(record)
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         del self.op
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12DeleteIgnore_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12DeleteIgnore_4__reduce_cython__[] = "DeleteIgnore.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_12DeleteIgnore_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12DeleteIgnore_4__reduce_cython__(((struct __pyx_obj_4kudu_6client_DeleteIgnore *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12DeleteIgnore_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.DeleteIgnore.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12DeleteIgnore_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_12DeleteIgnore_6__setstate_cython__[] = "DeleteIgnore.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_12DeleteIgnore_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12DeleteIgnore_6__setstate_cython__(((struct __pyx_obj_4kudu_6client_DeleteIgnore *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12DeleteIgnore_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_DeleteIgnore *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__80, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.DeleteIgnore.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3017
 *         del self.op
 * 
 * cdef inline cast_pyvalue(DataType t, object o):             # <<<<<<<<<<<<<<
 *     if t == KUDU_BOOL:
 *         return BoolVal(o)
 */

static CYTHON_INLINE PyObject *__pyx_f_4kudu_6client_cast_pyvalue(enum  kudu::client::KuduColumnSchema::DataType __pyx_v_t, PyObject *__pyx_v_o) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  __Pyx_RefNannySetupContext("cast_pyvalue", 0);

  /* "kudu/client.pyx":3018
 * 
 * cdef inline cast_pyvalue(DataType t, object o):
 *     if t == KUDU_BOOL:             # <<<<<<<<<<<<<<
 *         return BoolVal(o)
 *     elif t == KUDU_INT8:
 */
  switch (__pyx_v_t) {
    case  kudu::client::KuduColumnSchema::BOOL:

    /* "kudu/client.pyx":3019
 * cdef inline cast_pyvalue(DataType t, object o):
 *     if t == KUDU_BOOL:
 *         return BoolVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_INT8:
 *         return Int8Val(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_BoolVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3019, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3018
 * 
 * cdef inline cast_pyvalue(DataType t, object o):
 *     if t == KUDU_BOOL:             # <<<<<<<<<<<<<<
 *         return BoolVal(o)
 *     elif t == KUDU_INT8:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT8:

    /* "kudu/client.pyx":3021
 *         return BoolVal(o)
 *     elif t == KUDU_INT8:
 *         return Int8Val(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_INT16:
 *         return Int16Val(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_Int8Val), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3021, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3020
 *     if t == KUDU_BOOL:
 *         return BoolVal(o)
 *     elif t == KUDU_INT8:             # <<<<<<<<<<<<<<
 *         return Int8Val(o)
 *     elif t == KUDU_INT16:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT16:

    /* "kudu/client.pyx":3023
 *         return Int8Val(o)
 *     elif t == KUDU_INT16:
 *         return Int16Val(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_INT32:
 *         return Int32Val(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_Int16Val), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3023, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3022
 *     elif t == KUDU_INT8:
 *         return Int8Val(o)
 *     elif t == KUDU_INT16:             # <<<<<<<<<<<<<<
 *         return Int16Val(o)
 *     elif t == KUDU_INT32:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT32:

    /* "kudu/client.pyx":3025
 *         return Int16Val(o)
 *     elif t == KUDU_INT32:
 *         return Int32Val(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_INT64:
 *         return Int64Val(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_Int32Val), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3024
 *     elif t == KUDU_INT16:
 *         return Int16Val(o)
 *     elif t == KUDU_INT32:             # <<<<<<<<<<<<<<
 *         return Int32Val(o)
 *     elif t == KUDU_INT64:
 */
    break;
    case  kudu::client::KuduColumnSchema::INT64:

    /* "kudu/client.pyx":3027
 *         return Int32Val(o)
 *     elif t == KUDU_INT64:
 *         return Int64Val(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_DOUBLE:
 *         return DoubleVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_Int64Val), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3026
 *     elif t == KUDU_INT32:
 *         return Int32Val(o)
 *     elif t == KUDU_INT64:             # <<<<<<<<<<<<<<
 *         return Int64Val(o)
 *     elif t == KUDU_DOUBLE:
 */
    break;
    case  kudu::client::KuduColumnSchema::DOUBLE:

    /* "kudu/client.pyx":3029
 *         return Int64Val(o)
 *     elif t == KUDU_DOUBLE:
 *         return DoubleVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_FLOAT:
 *         return FloatVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_DoubleVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3028
 *     elif t == KUDU_INT64:
 *         return Int64Val(o)
 *     elif t == KUDU_DOUBLE:             # <<<<<<<<<<<<<<
 *         return DoubleVal(o)
 *     elif t == KUDU_FLOAT:
 */
    break;
    case  kudu::client::KuduColumnSchema::FLOAT:

    /* "kudu/client.pyx":3031
 *         return DoubleVal(o)
 *     elif t == KUDU_FLOAT:
 *         return FloatVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_STRING:
 *         return StringVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_FloatVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3030
 *     elif t == KUDU_DOUBLE:
 *         return DoubleVal(o)
 *     elif t == KUDU_FLOAT:             # <<<<<<<<<<<<<<
 *         return FloatVal(o)
 *     elif t == KUDU_STRING:
 */
    break;
    case  kudu::client::KuduColumnSchema::STRING:

    /* "kudu/client.pyx":3033
 *         return FloatVal(o)
 *     elif t == KUDU_STRING:
 *         return StringVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_UNIXTIME_MICROS:
 *         return UnixtimeMicrosVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_StringVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3033, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3032
 *     elif t == KUDU_FLOAT:
 *         return FloatVal(o)
 *     elif t == KUDU_STRING:             # <<<<<<<<<<<<<<
 *         return StringVal(o)
 *     elif t == KUDU_UNIXTIME_MICROS:
 */
    break;
    case  kudu::client::KuduColumnSchema::UNIXTIME_MICROS:

    /* "kudu/client.pyx":3035
 *         return StringVal(o)
 *     elif t == KUDU_UNIXTIME_MICROS:
 *         return UnixtimeMicrosVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_BINARY:
 *         return StringVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_UnixtimeMicrosVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3035, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3034
 *     elif t == KUDU_STRING:
 *         return StringVal(o)
 *     elif t == KUDU_UNIXTIME_MICROS:             # <<<<<<<<<<<<<<
 *         return UnixtimeMicrosVal(o)
 *     elif t == KUDU_BINARY:
 */
    break;
    case  kudu::client::KuduColumnSchema::BINARY:

    /* "kudu/client.pyx":3037
 *         return UnixtimeMicrosVal(o)
 *     elif t == KUDU_BINARY:
 *         return StringVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_VARCHAR:
 *         return StringVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_StringVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3037, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3036
 *     elif t == KUDU_UNIXTIME_MICROS:
 *         return UnixtimeMicrosVal(o)
 *     elif t == KUDU_BINARY:             # <<<<<<<<<<<<<<
 *         return StringVal(o)
 *     elif t == KUDU_VARCHAR:
 */
    break;
    case  kudu::client::KuduColumnSchema::VARCHAR:

    /* "kudu/client.pyx":3039
 *         return StringVal(o)
 *     elif t == KUDU_VARCHAR:
 *         return StringVal(o)             # <<<<<<<<<<<<<<
 *     elif t == KUDU_DATE:
 *         return DateVal(o)
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_StringVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3039, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3038
 *     elif t == KUDU_BINARY:
 *         return StringVal(o)
 *     elif t == KUDU_VARCHAR:             # <<<<<<<<<<<<<<
 *         return StringVal(o)
 *     elif t == KUDU_DATE:
 */
    break;
    case  kudu::client::KuduColumnSchema::DATE:

    /* "kudu/client.pyx":3041
 *         return StringVal(o)
 *     elif t == KUDU_DATE:
 *         return DateVal(o)             # <<<<<<<<<<<<<<
 *     else:
 *         raise TypeError("Cannot cast kudu type <{0}>".format(_type_names[t]))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4kudu_6client_DateVal), __pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "kudu/client.pyx":3040
 *     elif t == KUDU_VARCHAR:
 *         return StringVal(o)
 *     elif t == KUDU_DATE:             # <<<<<<<<<<<<<<
 *         return DateVal(o)
 *     else:
 */
    break;
    default:

    /* "kudu/client.pyx":3043
 *         return DateVal(o)
 *     else:
 *         raise TypeError("Cannot cast kudu type <{0}>".format(_type_names[t]))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Cannot_cast_kudu_type_0, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(__pyx_v_4kudu_6client__type_names == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 3043, __pyx_L1_error)
    }
    __pyx_t_3 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_4kudu_6client__type_names, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __PYX_ERR(0, 3043, __pyx_L1_error)
    break;
  }

  /* "kudu/client.pyx":3017
 *         del self.op
 * 
 * cdef inline cast_pyvalue(DataType t, object o):             # <<<<<<<<<<<<<<
 *     if t == KUDU_BOOL:
 *         return BoolVal(o)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.cast_pyvalue", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3051
 *     """
 * 
 *     def __cinit__(self, Table table):             # <<<<<<<<<<<<<<
 *         self._table = table
 *         self._new_name = None
 */

/* Python wrapper */
static int __pyx_pw_4kudu_6client_12TableAlterer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_4kudu_6client_12TableAlterer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_4kudu_6client_Table *__pyx_v_table = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_table,0};
    PyObject* values[1] = {0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_table)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 3051, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
    }
    __pyx_v_table = ((struct __pyx_obj_4kudu_6client_Table *)values[0]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3051, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TableAlterer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_table), __pyx_ptype_4kudu_6client_Table, 1, "table", 0))) __PYX_ERR(0, 3051, __pyx_L1_error)
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer___cinit__(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), __pyx_v_table);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_4kudu_6client_12TableAlterer___cinit__(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, struct __pyx_obj_4kudu_6client_Table *__pyx_v_table) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  std::string __pyx_t_5;
  __Pyx_RefNannySetupContext("__cinit__", 0);

  /* "kudu/client.pyx":3052
 * 
 *     def __cinit__(self, Table table):
 *         self._table = table             # <<<<<<<<<<<<<<
 *         self._new_name = None
 *         self._init(self._table.parent.cp
 */
  __Pyx_INCREF(((PyObject *)__pyx_v_table));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_table));
  __Pyx_GOTREF(__pyx_v_self->_table);
  __Pyx_DECREF(((PyObject *)__pyx_v_self->_table));
  __pyx_v_self->_table = __pyx_v_table;

  /* "kudu/client.pyx":3053
 *     def __cinit__(self, Table table):
 *         self._table = table
 *         self._new_name = None             # <<<<<<<<<<<<<<
 *         self._init(self._table.parent.cp
 *                    .NewTableAlterer(tobytes(self._table.name)))
 */
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF(__pyx_v_self->_new_name);
  __Pyx_DECREF(__pyx_v_self->_new_name);
  __pyx_v_self->_new_name = Py_None;

  /* "kudu/client.pyx":3055
 *         self._new_name = None
 *         self._init(self._table.parent.cp
 *                    .NewTableAlterer(tobytes(self._table.name)))             # <<<<<<<<<<<<<<
 * 
 *     def __dealloc__(self):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table), __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3055, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_5 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3055, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":3054
 *         self._table = table
 *         self._new_name = None
 *         self._init(self._table.parent.cp             # <<<<<<<<<<<<<<
 *                    .NewTableAlterer(tobytes(self._table.name)))
 * 
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_4kudu_6client_TableAlterer *)__pyx_v_self->__pyx_vtab)->_init(__pyx_v_self, __pyx_v_self->_table->parent->cp->NewTableAlterer(__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":3051
 *     """
 * 
 *     def __cinit__(self, Table table):             # <<<<<<<<<<<<<<
 *         self._table = table
 *         self._new_name = None
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("kudu.client.TableAlterer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3057
 *                    .NewTableAlterer(tobytes(self._table.name)))
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._alterer != NULL:
 *             del self._alterer
 */

/* Python wrapper */
static void __pyx_pw_4kudu_6client_12TableAlterer_3__dealloc__(PyObject *__pyx_v_self); /*proto*/
static void __pyx_pw_4kudu_6client_12TableAlterer_3__dealloc__(PyObject *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
  __pyx_pf_4kudu_6client_12TableAlterer_2__dealloc__(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

static void __pyx_pf_4kudu_6client_12TableAlterer_2__dealloc__(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self) {
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  __Pyx_RefNannySetupContext("__dealloc__", 0);

  /* "kudu/client.pyx":3058
 * 
 *     def __dealloc__(self):
 *         if self._alterer != NULL:             # <<<<<<<<<<<<<<
 *             del self._alterer
 * 
 */
  __pyx_t_1 = ((__pyx_v_self->_alterer != NULL) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":3059
 *     def __dealloc__(self):
 *         if self._alterer != NULL:
 *             del self._alterer             # <<<<<<<<<<<<<<
 * 
 *     cdef _init(self, KuduTableAlterer* alterer):
 */
    delete __pyx_v_self->_alterer;

    /* "kudu/client.pyx":3058
 * 
 *     def __dealloc__(self):
 *         if self._alterer != NULL:             # <<<<<<<<<<<<<<
 *             del self._alterer
 * 
 */
  }

  /* "kudu/client.pyx":3057
 *                    .NewTableAlterer(tobytes(self._table.name)))
 * 
 *     def __dealloc__(self):             # <<<<<<<<<<<<<<
 *         if self._alterer != NULL:
 *             del self._alterer
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "kudu/client.pyx":3061
 *             del self._alterer
 * 
 *     cdef _init(self, KuduTableAlterer* alterer):             # <<<<<<<<<<<<<<
 *         self._alterer = alterer
 * 
 */

static PyObject *__pyx_f_4kudu_6client_12TableAlterer__init(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, kudu::client::KuduTableAlterer *__pyx_v_alterer) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_init", 0);

  /* "kudu/client.pyx":3062
 * 
 *     cdef _init(self, KuduTableAlterer* alterer):
 *         self._alterer = alterer             # <<<<<<<<<<<<<<
 * 
 *     def rename(self, table_name):
 */
  __pyx_v_self->_alterer = __pyx_v_alterer;

  /* "kudu/client.pyx":3061
 *             del self._alterer
 * 
 *     cdef _init(self, KuduTableAlterer* alterer):             # <<<<<<<<<<<<<<
 *         self._alterer = alterer
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3064
 *         self._alterer = alterer
 * 
 *     def rename(self, table_name):             # <<<<<<<<<<<<<<
 *         """
 *         Rename the table. Returns a reference to itself to facilitate chaining.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_5rename(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_4rename[] = "TableAlterer.rename(self, table_name)\n\n        Rename the table. Returns a reference to itself to facilitate chaining.\n\n        Parameters\n        ----------\n        table_name : str\n          The new name for the table.\n\n        Return\n        ------\n        self : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_5rename(PyObject *__pyx_v_self, PyObject *__pyx_v_table_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rename (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_4rename(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), ((PyObject *)__pyx_v_table_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_4rename(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_table_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("rename", 0);

  /* "kudu/client.pyx":3077
 *         self : TableAlterer
 *         """
 *         self._alterer.RenameTo(tobytes(table_name))             # <<<<<<<<<<<<<<
 *         self._new_name = table_name
 *         return self
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_table_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_table_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3077, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (void)(__pyx_v_self->_alterer->RenameTo(__pyx_t_4));

  /* "kudu/client.pyx":3078
 *         """
 *         self._alterer.RenameTo(tobytes(table_name))
 *         self._new_name = table_name             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __Pyx_INCREF(__pyx_v_table_name);
  __Pyx_GIVEREF(__pyx_v_table_name);
  __Pyx_GOTREF(__pyx_v_self->_new_name);
  __Pyx_DECREF(__pyx_v_self->_new_name);
  __pyx_v_self->_new_name = __pyx_v_table_name;

  /* "kudu/client.pyx":3079
 *         self._alterer.RenameTo(tobytes(table_name))
 *         self._new_name = table_name
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_column(self, name, type_=None, nullable=None, compression=None,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":3064
 *         self._alterer = alterer
 * 
 *     def rename(self, table_name):             # <<<<<<<<<<<<<<
 *         """
 *         Rename the table. Returns a reference to itself to facilitate chaining.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.TableAlterer.rename", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3081
 *         return self
 * 
 *     def add_column(self, name, type_=None, nullable=None, compression=None,             # <<<<<<<<<<<<<<
 *                    encoding=None, default=None):
 *         """
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_7add_column(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_6add_column[] = "TableAlterer.add_column(self, name, type_=None, nullable=None, compression=None, encoding=None, default=None)\n\n        Add a new column to the table.\n\n        When adding a column, you must specify the default value of the new\n        column using ColumnSpec.default(...) or the default parameter in this\n        method.\n\n        Parameters\n        ----------\n        name : string\n        type_ : string or KuduType\n          Data type e.g. 'int32' or kudu.int32\n        nullable : boolean, default None\n          New columns are nullable by default. Set boolean value for explicit\n          nullable / not-nullable\n        compression : string or int\n          One of kudu.COMPRESSION_* constants or their string equivalent.\n        encoding : string or int\n          One of kudu.ENCODING_* constants or their string equivalent.\n        default : obj\n          Use this to set the column default value\n\n        Returns\n        -------\n        spec : ColumnSpec\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_7add_column(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_type_ = 0;
  PyObject *__pyx_v_nullable = 0;
  PyObject *__pyx_v_compression = 0;
  PyObject *__pyx_v_encoding = 0;
  PyObject *__pyx_v_default = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_column (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_type_2,&__pyx_n_s_nullable,&__pyx_n_s_compression,&__pyx_n_s_encoding,&__pyx_n_s_default,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)Py_None);
    values[3] = ((PyObject *)Py_None);

    /* "kudu/client.pyx":3082
 * 
 *     def add_column(self, name, type_=None, nullable=None, compression=None,
 *                    encoding=None, default=None):             # <<<<<<<<<<<<<<
 *         """
 *         Add a new column to the table.
 */
    values[4] = ((PyObject *)Py_None);
    values[5] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_2);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nullable);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_compression);
          if (value) { values[3] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_encoding);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_column") < 0)) __PYX_ERR(0, 3081, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_type_ = values[1];
    __pyx_v_nullable = values[2];
    __pyx_v_compression = values[3];
    __pyx_v_encoding = values[4];
    __pyx_v_default = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_column", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3081, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TableAlterer.add_column", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_6add_column(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), __pyx_v_name, __pyx_v_type_, __pyx_v_nullable, __pyx_v_compression, __pyx_v_encoding, __pyx_v_default);

  /* "kudu/client.pyx":3081
 *         return self
 * 
 *     def add_column(self, name, type_=None, nullable=None, compression=None,             # <<<<<<<<<<<<<<
 *                    encoding=None, default=None):
 *         """
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_6add_column(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_type_, PyObject *__pyx_v_nullable, PyObject *__pyx_v_compression, PyObject *__pyx_v_encoding, PyObject *__pyx_v_default) {
  struct __pyx_obj_4kudu_6schema_ColumnSpec *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  __Pyx_RefNannySetupContext("add_column", 0);

  /* "kudu/client.pyx":3110
 *         """
 *         cdef:
 *             ColumnSpec result = ColumnSpec()             # <<<<<<<<<<<<<<
 * 
 *         result.spec = self._alterer.AddColumn(tobytes(name))
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6schema_ColumnSpec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6schema_ColumnSpec *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":3112
 *             ColumnSpec result = ColumnSpec()
 * 
 *         result.spec = self._alterer.AddColumn(tobytes(name))             # <<<<<<<<<<<<<<
 * 
 *         if type_ is not None:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result->spec = __pyx_v_self->_alterer->AddColumn(__pyx_t_4);

  /* "kudu/client.pyx":3114
 *         result.spec = self._alterer.AddColumn(tobytes(name))
 * 
 *         if type_ is not None:             # <<<<<<<<<<<<<<
 *             result.type(type_)
 * 
 */
  __pyx_t_5 = (__pyx_v_type_ != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "kudu/client.pyx":3115
 * 
 *         if type_ is not None:
 *             result.type(type_)             # <<<<<<<<<<<<<<
 * 
 *         if nullable is not None:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_type_) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_type_);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":3114
 *         result.spec = self._alterer.AddColumn(tobytes(name))
 * 
 *         if type_ is not None:             # <<<<<<<<<<<<<<
 *             result.type(type_)
 * 
 */
  }

  /* "kudu/client.pyx":3117
 *             result.type(type_)
 * 
 *         if nullable is not None:             # <<<<<<<<<<<<<<
 *             result.nullable(nullable)
 * 
 */
  __pyx_t_6 = (__pyx_v_nullable != Py_None);
  __pyx_t_5 = (__pyx_t_6 != 0);
  if (__pyx_t_5) {

    /* "kudu/client.pyx":3118
 * 
 *         if nullable is not None:
 *             result.nullable(nullable)             # <<<<<<<<<<<<<<
 * 
 *         if compression is not None:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_nullable); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_nullable) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_nullable);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":3117
 *             result.type(type_)
 * 
 *         if nullable is not None:             # <<<<<<<<<<<<<<
 *             result.nullable(nullable)
 * 
 */
  }

  /* "kudu/client.pyx":3120
 *             result.nullable(nullable)
 * 
 *         if compression is not None:             # <<<<<<<<<<<<<<
 *             result.compression(compression)
 * 
 */
  __pyx_t_5 = (__pyx_v_compression != Py_None);
  __pyx_t_6 = (__pyx_t_5 != 0);
  if (__pyx_t_6) {

    /* "kudu/client.pyx":3121
 * 
 *         if compression is not None:
 *             result.compression(compression)             # <<<<<<<<<<<<<<
 * 
 *         if encoding is not None:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_compression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_compression) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_compression);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3121, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":3120
 *             result.nullable(nullable)
 * 
 *         if compression is not None:             # <<<<<<<<<<<<<<
 *             result.compression(compression)
 * 
 */
  }

  /* "kudu/client.pyx":3123
 *             result.compression(compression)
 * 
 *         if encoding is not None:             # <<<<<<<<<<<<<<
 *             result.encoding(encoding)
 * 
 */
  __pyx_t_6 = (__pyx_v_encoding != Py_None);
  __pyx_t_5 = (__pyx_t_6 != 0);
  if (__pyx_t_5) {

    /* "kudu/client.pyx":3124
 * 
 *         if encoding is not None:
 *             result.encoding(encoding)             # <<<<<<<<<<<<<<
 * 
 *         if default:
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_encoding); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_encoding) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_encoding);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":3123
 *             result.compression(compression)
 * 
 *         if encoding is not None:             # <<<<<<<<<<<<<<
 *             result.encoding(encoding)
 * 
 */
  }

  /* "kudu/client.pyx":3126
 *             result.encoding(encoding)
 * 
 *         if default:             # <<<<<<<<<<<<<<
 *             result.default(default)
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_default); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3126, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "kudu/client.pyx":3127
 * 
 *         if default:
 *             result.default(default)             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_default) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_default);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":3126
 *             result.encoding(encoding)
 * 
 *         if default:             # <<<<<<<<<<<<<<
 *             result.default(default)
 * 
 */
  }

  /* "kudu/client.pyx":3129
 *             result.default(default)
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def alter_column(self, name, rename_to=None):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":3081
 *         return self
 * 
 *     def add_column(self, name, type_=None, nullable=None, compression=None,             # <<<<<<<<<<<<<<
 *                    encoding=None, default=None):
 *         """
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.TableAlterer.add_column", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3131
 *         return result
 * 
 *     def alter_column(self, name, rename_to=None):             # <<<<<<<<<<<<<<
 *         """
 *         Alter an existing column.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_9alter_column(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_8alter_column[] = "TableAlterer.alter_column(self, name, rename_to=None)\n\n        Alter an existing column.\n\n        Parameters\n        ----------\n        name : string\n        rename_to : str\n          If set, the column will be renamed to this\n\n        Returns\n        -------\n        spec : ColumnSpec\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_9alter_column(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_rename_to = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("alter_column (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_rename_to,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rename_to);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "alter_column") < 0)) __PYX_ERR(0, 3131, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_name = values[0];
    __pyx_v_rename_to = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("alter_column", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3131, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TableAlterer.alter_column", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_8alter_column(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), __pyx_v_name, __pyx_v_rename_to);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_8alter_column(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_rename_to) {
  struct __pyx_obj_4kudu_6schema_ColumnSpec *__pyx_v_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("alter_column", 0);

  /* "kudu/client.pyx":3146
 *         """
 *         cdef:
 *             ColumnSpec result = ColumnSpec()             # <<<<<<<<<<<<<<
 * 
 *         result.spec = self._alterer.AlterColumn(tobytes(name))
 */
  __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4kudu_6schema_ColumnSpec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_result = ((struct __pyx_obj_4kudu_6schema_ColumnSpec *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "kudu/client.pyx":3148
 *             ColumnSpec result = ColumnSpec()
 * 
 *         result.spec = self._alterer.AlterColumn(tobytes(name))             # <<<<<<<<<<<<<<
 * 
 *         if rename_to:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_result->spec = __pyx_v_self->_alterer->AlterColumn(__pyx_t_4);

  /* "kudu/client.pyx":3150
 *         result.spec = self._alterer.AlterColumn(tobytes(name))
 * 
 *         if rename_to:             # <<<<<<<<<<<<<<
 *             result.rename(rename_to)
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_rename_to); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3150, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "kudu/client.pyx":3151
 * 
 *         if rename_to:
 *             result.rename(rename_to)             # <<<<<<<<<<<<<<
 * 
 *         return result
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s_rename); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_rename_to) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_rename_to);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3151, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "kudu/client.pyx":3150
 *         result.spec = self._alterer.AlterColumn(tobytes(name))
 * 
 *         if rename_to:             # <<<<<<<<<<<<<<
 *             result.rename(rename_to)
 * 
 */
  }

  /* "kudu/client.pyx":3153
 *             result.rename(rename_to)
 * 
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def drop_column(self, name):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;

  /* "kudu/client.pyx":3131
 *         return result
 * 
 *     def alter_column(self, name, rename_to=None):             # <<<<<<<<<<<<<<
 *         """
 *         Alter an existing column.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.TableAlterer.alter_column", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3155
 *         return result
 * 
 *     def drop_column(self, name):             # <<<<<<<<<<<<<<
 *         """
 *         Drops an existing column from the table.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_11drop_column(PyObject *__pyx_v_self, PyObject *__pyx_v_name); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_10drop_column[] = "TableAlterer.drop_column(self, name)\n\n        Drops an existing column from the table.\n\n        Parameters\n        ----------\n        name : str\n          The name of the column to drop.\n\n        Returns\n        -------\n        self : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_11drop_column(PyObject *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("drop_column (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_10drop_column(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), ((PyObject *)__pyx_v_name));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_10drop_column(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("drop_column", 0);

  /* "kudu/client.pyx":3168
 *         self : TableAlterer
 *         """
 *         self._alterer.DropColumn(tobytes(name))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_name) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_name);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3168, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (void)(__pyx_v_self->_alterer->DropColumn(__pyx_t_4));

  /* "kudu/client.pyx":3169
 *         """
 *         self._alterer.DropColumn(tobytes(name))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def add_range_partition(self, lower_bound=None,
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":3155
 *         return result
 * 
 *     def drop_column(self, name):             # <<<<<<<<<<<<<<
 *         """
 *         Drops an existing column from the table.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.TableAlterer.drop_column", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3171
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                             upper_bound=None,
 *                             lower_bound_type='inclusive',
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_13add_range_partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_12add_range_partition[] = "TableAlterer.add_range_partition(self, lower_bound=None, upper_bound=None, lower_bound_type='inclusive', upper_bound_type='exclusive')\n\n        Add a range partition to the table with the specified lower bound and\n        upper bound.\n\n        Multiple range partitions may be added as part of a single alter table\n        transaction by calling this method multiple times on the table alterer.\n\n        This client may immediately write and scan the new tablets when Alter()\n        returns success, however other existing clients may have to wait for a\n        timeout period to elapse before the tablets become visible. This period\n        is configured by the master's 'table_locations_ttl_ms' flag, and\n        defaults to 5 minutes.\n\n        Parameters\n        ----------\n        lower_bound : PartialRow/list/tuple/dict\n        upper_bound : PartialRow/list/tuple/dict\n        lower_bound_type : {'inclusive', 'exclusive'} or constants\n          kudu.EXCLUSIVE_BOUND and kudu.INCLUSIVE_BOUND\n        upper_bound_type : {'inclusive', 'exclusive'} or constants\n          kudu.EXCLUSIVE_BOUND and kudu.INCLUSIVE_BOUND\n\n        Returns\n        -------\n        self : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_13add_range_partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_lower_bound = 0;
  PyObject *__pyx_v_upper_bound = 0;
  PyObject *__pyx_v_lower_bound_type = 0;
  PyObject *__pyx_v_upper_bound_type = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("add_range_partition (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lower_bound,&__pyx_n_s_upper_bound,&__pyx_n_s_lower_bound_type,&__pyx_n_s_upper_bound_type,0};
    PyObject* values[4] = {0,0,0,0};
    values[0] = ((PyObject *)Py_None);

    /* "kudu/client.pyx":3172
 * 
 *     def add_range_partition(self, lower_bound=None,
 *                             upper_bound=None,             # <<<<<<<<<<<<<<
 *                             lower_bound_type='inclusive',
 *                             upper_bound_type='exclusive'):
 */
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_n_s_inclusive);
    values[3] = ((PyObject *)__pyx_n_s_exclusive);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower_bound);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper_bound);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower_bound_type);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper_bound_type);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "add_range_partition") < 0)) __PYX_ERR(0, 3171, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_lower_bound = values[0];
    __pyx_v_upper_bound = values[1];
    __pyx_v_lower_bound_type = values[2];
    __pyx_v_upper_bound_type = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_range_partition", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3171, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TableAlterer.add_range_partition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_12add_range_partition(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), __pyx_v_lower_bound, __pyx_v_upper_bound, __pyx_v_lower_bound_type, __pyx_v_upper_bound_type);

  /* "kudu/client.pyx":3171
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                             upper_bound=None,
 *                             lower_bound_type='inclusive',
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_12add_range_partition(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_lower_bound, PyObject *__pyx_v_upper_bound, PyObject *__pyx_v_lower_bound_type, PyObject *__pyx_v_upper_bound_type) {
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_lbound = 0;
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_ubound = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum  kudu::client::KuduTableCreator::RangePartitionBound __pyx_t_6;
  enum  kudu::client::KuduTableCreator::RangePartitionBound __pyx_t_7;
  __Pyx_RefNannySetupContext("add_range_partition", 0);

  /* "kudu/client.pyx":3205
 *             PartialRow ubound
 * 
 *         if not isinstance(lower_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             lbound = self._table.schema.new_row(lower_bound)
 *         else:
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_lower_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":3206
 * 
 *         if not isinstance(lower_bound, PartialRow):
 *             lbound = self._table.schema.new_row(lower_bound)             # <<<<<<<<<<<<<<
 *         else:
 *             lbound = lower_bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_lower_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_lower_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3206, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3206, __pyx_L1_error)
    __pyx_v_lbound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":3205
 *             PartialRow ubound
 * 
 *         if not isinstance(lower_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             lbound = self._table.schema.new_row(lower_bound)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":3208
 *             lbound = self._table.schema.new_row(lower_bound)
 *         else:
 *             lbound = lower_bound             # <<<<<<<<<<<<<<
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):
 */
  /*else*/ {
    if (!(likely(((__pyx_v_lower_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_lower_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3208, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_lower_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_lbound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":3209
 *         else:
 *             lbound = lower_bound
 *         lbound._own = 0             # <<<<<<<<<<<<<<
 *         if not isinstance(upper_bound, PartialRow):
 *             ubound = self._table.schema.new_row(upper_bound)
 */
  __pyx_v_lbound->_own = 0;

  /* "kudu/client.pyx":3210
 *             lbound = lower_bound
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             ubound = self._table.schema.new_row(upper_bound)
 *         else:
 */
  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_upper_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":3211
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):
 *             ubound = self._table.schema.new_row(upper_bound)             # <<<<<<<<<<<<<<
 *         else:
 *             ubound = upper_bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_upper_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_upper_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3211, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3211, __pyx_L1_error)
    __pyx_v_ubound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":3210
 *             lbound = lower_bound
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             ubound = self._table.schema.new_row(upper_bound)
 *         else:
 */
    goto __pyx_L4;
  }

  /* "kudu/client.pyx":3213
 *             ubound = self._table.schema.new_row(upper_bound)
 *         else:
 *             ubound = upper_bound             # <<<<<<<<<<<<<<
 *         ubound._own = 0
 *         self._alterer.AddRangePartition(
 */
  /*else*/ {
    if (!(likely(((__pyx_v_upper_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_upper_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3213, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_upper_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_ubound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L4:;

  /* "kudu/client.pyx":3214
 *         else:
 *             ubound = upper_bound
 *         ubound._own = 0             # <<<<<<<<<<<<<<
 *         self._alterer.AddRangePartition(
 *             lbound.row,
 */
  __pyx_v_ubound->_own = 0;

  /* "kudu/client.pyx":3218
 *             lbound.row,
 *             ubound.row,
 *             _check_convert_range_bound_type(lower_bound_type),             # <<<<<<<<<<<<<<
 *             _check_convert_range_bound_type(upper_bound_type)
 *         )
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_check_convert_range_bound_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_lower_bound_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_lower_bound_type);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = ((enum  kudu::client::KuduTableCreator::RangePartitionBound)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3218, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":3219
 *             ubound.row,
 *             _check_convert_range_bound_type(lower_bound_type),
 *             _check_convert_range_bound_type(upper_bound_type)             # <<<<<<<<<<<<<<
 *         )
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_check_convert_range_bound_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_upper_bound_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_upper_bound_type);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = ((enum  kudu::client::KuduTableCreator::RangePartitionBound)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3219, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":3215
 *             ubound = upper_bound
 *         ubound._own = 0
 *         self._alterer.AddRangePartition(             # <<<<<<<<<<<<<<
 *             lbound.row,
 *             ubound.row,
 */
  (void)(__pyx_v_self->_alterer->AddRangePartition(__pyx_v_lbound->row, __pyx_v_ubound->row, __pyx_t_6, __pyx_t_7));

  /* "kudu/client.pyx":3171
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                             upper_bound=None,
 *                             lower_bound_type='inclusive',
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.TableAlterer.add_range_partition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lbound);
  __Pyx_XDECREF((PyObject *)__pyx_v_ubound);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3222
 *         )
 * 
 *     def drop_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                              upper_bound=None,
 *                              lower_bound_type='inclusive',
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_15drop_range_partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_14drop_range_partition[] = "TableAlterer.drop_range_partition(self, lower_bound=None, upper_bound=None, lower_bound_type='inclusive', upper_bound_type='exclusive')\n\n        Drop the range partition from the table with the specified lower bound\n        and upper bound. The bounds must match an existing range partition\n        exactly, and may not span multiple range partitions.\n\n        Multiple range partitions may be dropped as part of a single alter\n        table transaction by calling this method multiple times on the\n        table alterer.\n\n        Parameters\n        ----------\n        lower_bound : PartialRow/list/tuple/dict\n        upper_bound : PartialRow/list/tuple/dict\n        lower_bound_type : {'inclusive', 'exclusive'} or constants\n          kudu.EXCLUSIVE_BOUND and kudu.INCLUSIVE_BOUND\n        upper_bound_type : {'inclusive', 'exclusive'} or constants\n          kudu.EXCLUSIVE_BOUND and kudu.INCLUSIVE_BOUND\n\n        Returns\n        -------\n        self : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_15drop_range_partition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_lower_bound = 0;
  PyObject *__pyx_v_upper_bound = 0;
  PyObject *__pyx_v_lower_bound_type = 0;
  PyObject *__pyx_v_upper_bound_type = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("drop_range_partition (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lower_bound,&__pyx_n_s_upper_bound,&__pyx_n_s_lower_bound_type,&__pyx_n_s_upper_bound_type,0};
    PyObject* values[4] = {0,0,0,0};
    values[0] = ((PyObject *)Py_None);

    /* "kudu/client.pyx":3223
 * 
 *     def drop_range_partition(self, lower_bound=None,
 *                              upper_bound=None,             # <<<<<<<<<<<<<<
 *                              lower_bound_type='inclusive',
 *                              upper_bound_type='exclusive'):
 */
    values[1] = ((PyObject *)Py_None);
    values[2] = ((PyObject *)__pyx_n_s_inclusive);
    values[3] = ((PyObject *)__pyx_n_s_exclusive);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower_bound);
          if (value) { values[0] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper_bound);
          if (value) { values[1] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower_bound_type);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper_bound_type);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "drop_range_partition") < 0)) __PYX_ERR(0, 3222, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_lower_bound = values[0];
    __pyx_v_upper_bound = values[1];
    __pyx_v_lower_bound_type = values[2];
    __pyx_v_upper_bound_type = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("drop_range_partition", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3222, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("kudu.client.TableAlterer.drop_range_partition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_14drop_range_partition(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), __pyx_v_lower_bound, __pyx_v_upper_bound, __pyx_v_lower_bound_type, __pyx_v_upper_bound_type);

  /* "kudu/client.pyx":3222
 *         )
 * 
 *     def drop_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                              upper_bound=None,
 *                              lower_bound_type='inclusive',
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_14drop_range_partition(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_lower_bound, PyObject *__pyx_v_upper_bound, PyObject *__pyx_v_lower_bound_type, PyObject *__pyx_v_upper_bound_type) {
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_lbound = 0;
  struct __pyx_obj_4kudu_6client_PartialRow *__pyx_v_ubound = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  enum  kudu::client::KuduTableCreator::RangePartitionBound __pyx_t_6;
  enum  kudu::client::KuduTableCreator::RangePartitionBound __pyx_t_7;
  __Pyx_RefNannySetupContext("drop_range_partition", 0);

  /* "kudu/client.pyx":3252
 *             PartialRow ubound
 * 
 *         if not isinstance(lower_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             lbound = self._table.schema.new_row(lower_bound)
 *         else:
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_lower_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
  if (__pyx_t_2) {

    /* "kudu/client.pyx":3253
 * 
 *         if not isinstance(lower_bound, PartialRow):
 *             lbound = self._table.schema.new_row(lower_bound)             # <<<<<<<<<<<<<<
 *         else:
 *             lbound = lower_bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_lower_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_lower_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3253, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3253, __pyx_L1_error)
    __pyx_v_lbound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":3252
 *             PartialRow ubound
 * 
 *         if not isinstance(lower_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             lbound = self._table.schema.new_row(lower_bound)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "kudu/client.pyx":3255
 *             lbound = self._table.schema.new_row(lower_bound)
 *         else:
 *             lbound = lower_bound             # <<<<<<<<<<<<<<
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):
 */
  /*else*/ {
    if (!(likely(((__pyx_v_lower_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_lower_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3255, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_lower_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_lbound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "kudu/client.pyx":3256
 *         else:
 *             lbound = lower_bound
 *         lbound._own = 0             # <<<<<<<<<<<<<<
 *         if not isinstance(upper_bound, PartialRow):
 *             ubound = self._table.schema.new_row(upper_bound)
 */
  __pyx_v_lbound->_own = 0;

  /* "kudu/client.pyx":3257
 *             lbound = lower_bound
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             ubound = self._table.schema.new_row(upper_bound)
 *         else:
 */
  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_upper_bound, __pyx_ptype_4kudu_6client_PartialRow); 
  __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
  if (__pyx_t_1) {

    /* "kudu/client.pyx":3258
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):
 *             ubound = self._table.schema.new_row(upper_bound)             # <<<<<<<<<<<<<<
 *         else:
 *             ubound = upper_bound
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->schema), __pyx_n_s_new_row); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_upper_bound) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_upper_bound);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3258, __pyx_L1_error)
    __pyx_v_ubound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;

    /* "kudu/client.pyx":3257
 *             lbound = lower_bound
 *         lbound._own = 0
 *         if not isinstance(upper_bound, PartialRow):             # <<<<<<<<<<<<<<
 *             ubound = self._table.schema.new_row(upper_bound)
 *         else:
 */
    goto __pyx_L4;
  }

  /* "kudu/client.pyx":3260
 *             ubound = self._table.schema.new_row(upper_bound)
 *         else:
 *             ubound = upper_bound             # <<<<<<<<<<<<<<
 *         ubound._own = 0
 *         self._alterer.DropRangePartition(
 */
  /*else*/ {
    if (!(likely(((__pyx_v_upper_bound) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_upper_bound, __pyx_ptype_4kudu_6client_PartialRow))))) __PYX_ERR(0, 3260, __pyx_L1_error)
    __pyx_t_3 = __pyx_v_upper_bound;
    __Pyx_INCREF(__pyx_t_3);
    __pyx_v_ubound = ((struct __pyx_obj_4kudu_6client_PartialRow *)__pyx_t_3);
    __pyx_t_3 = 0;
  }
  __pyx_L4:;

  /* "kudu/client.pyx":3261
 *         else:
 *             ubound = upper_bound
 *         ubound._own = 0             # <<<<<<<<<<<<<<
 *         self._alterer.DropRangePartition(
 *             lbound.row,
 */
  __pyx_v_ubound->_own = 0;

  /* "kudu/client.pyx":3265
 *             lbound.row,
 *             ubound.row,
 *             _check_convert_range_bound_type(lower_bound_type),             # <<<<<<<<<<<<<<
 *             _check_convert_range_bound_type(upper_bound_type)
 *         )
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_check_convert_range_bound_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_lower_bound_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_lower_bound_type);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = ((enum  kudu::client::KuduTableCreator::RangePartitionBound)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":3266
 *             ubound.row,
 *             _check_convert_range_bound_type(lower_bound_type),
 *             _check_convert_range_bound_type(upper_bound_type)             # <<<<<<<<<<<<<<
 *         )
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_check_convert_range_bound_type_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_upper_bound_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_upper_bound_type);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = ((enum  kudu::client::KuduTableCreator::RangePartitionBound)__Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(__pyx_t_3)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3266, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "kudu/client.pyx":3262
 *             ubound = upper_bound
 *         ubound._own = 0
 *         self._alterer.DropRangePartition(             # <<<<<<<<<<<<<<
 *             lbound.row,
 *             ubound.row,
 */
  (void)(__pyx_v_self->_alterer->DropRangePartition(__pyx_v_lbound->row, __pyx_v_ubound->row, __pyx_t_6, __pyx_t_7));

  /* "kudu/client.pyx":3222
 *         )
 * 
 *     def drop_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                              upper_bound=None,
 *                              lower_bound_type='inclusive',
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.TableAlterer.drop_range_partition", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lbound);
  __Pyx_XDECREF((PyObject *)__pyx_v_ubound);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3269
 *         )
 * 
 *     def set_owner(self, new_owner):             # <<<<<<<<<<<<<<
 *         """
 *         Set the owner of the table.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_17set_owner(PyObject *__pyx_v_self, PyObject *__pyx_v_new_owner); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_16set_owner[] = "TableAlterer.set_owner(self, new_owner)\n\n        Set the owner of the table.\n\n        Parameters\n        ----------\n        new_owner : string\n\n        Returns\n        -------\n        self : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_17set_owner(PyObject *__pyx_v_self, PyObject *__pyx_v_new_owner) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_owner (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_16set_owner(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), ((PyObject *)__pyx_v_new_owner));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_16set_owner(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_new_owner) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("set_owner", 0);

  /* "kudu/client.pyx":3281
 *         self : TableAlterer
 *         """
 *         self._alterer.SetOwner(tobytes(new_owner))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_new_owner) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_new_owner);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (void)(__pyx_v_self->_alterer->SetOwner(__pyx_t_4));

  /* "kudu/client.pyx":3282
 *         """
 *         self._alterer.SetOwner(tobytes(new_owner))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def set_comment(self, new_comment):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":3269
 *         )
 * 
 *     def set_owner(self, new_owner):             # <<<<<<<<<<<<<<
 *         """
 *         Set the owner of the table.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.TableAlterer.set_owner", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3284
 *         return self
 * 
 *     def set_comment(self, new_comment):             # <<<<<<<<<<<<<<
 *         """
 *         Set the comment on the table.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_19set_comment(PyObject *__pyx_v_self, PyObject *__pyx_v_new_comment); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_18set_comment[] = "TableAlterer.set_comment(self, new_comment)\n\n        Set the comment on the table.\n\n        Parameters\n        ----------\n        new_comment : string\n\n        Returns\n        -------\n        self : TableAlterer\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_19set_comment(PyObject *__pyx_v_self, PyObject *__pyx_v_new_comment) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_comment (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_18set_comment(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), ((PyObject *)__pyx_v_new_comment));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_18set_comment(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, PyObject *__pyx_v_new_comment) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  std::string __pyx_t_4;
  __Pyx_RefNannySetupContext("set_comment", 0);

  /* "kudu/client.pyx":3296
 *         self : TableAlterer
 *         """
 *         self._alterer.SetComment(tobytes(new_comment))             # <<<<<<<<<<<<<<
 *         return self
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_new_comment) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_new_comment);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_convert_string_from_py_std__in_string(__pyx_t_1); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  (void)(__pyx_v_self->_alterer->SetComment(__pyx_t_4));

  /* "kudu/client.pyx":3297
 *         """
 *         self._alterer.SetComment(tobytes(new_comment))
 *         return self             # <<<<<<<<<<<<<<
 * 
 *     def alter(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_self));
  __pyx_r = ((PyObject *)__pyx_v_self);
  goto __pyx_L0;

  /* "kudu/client.pyx":3284
 *         return self
 * 
 *     def set_comment(self, new_comment):             # <<<<<<<<<<<<<<
 *         """
 *         Set the comment on the table.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("kudu.client.TableAlterer.set_comment", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pyx":3299
 *         return self
 * 
 *     def alter(self):             # <<<<<<<<<<<<<<
 *         """
 *         Alter table. Returns a new table object upon completion of the alter.
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_21alter(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_20alter[] = "TableAlterer.alter(self)\n\n        Alter table. Returns a new table object upon completion of the alter.\n\n        Returns\n        -------\n        table :Table\n        ";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_21alter(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("alter (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_20alter(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_20alter(struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  __Pyx_RefNannySetupContext("alter", 0);

  /* "kudu/client.pyx":3307
 *         table :Table
 *         """
 *         check_status(self._alterer.Alter())             # <<<<<<<<<<<<<<
 *         return self._table.parent.table(self._new_name or self._table.name)
 */
  __pyx_t_1 = __pyx_f_4kudu_6errors_check_status(__pyx_v_self->_alterer->Alter()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":3308
 *         """
 *         check_status(self._alterer.Alter())
 *         return self._table.parent.table(self._new_name or self._table.name)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table->parent), __pyx_n_s_table); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_self->_new_name); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3308, __pyx_L1_error)
  if (!__pyx_t_4) {
  } else {
    __Pyx_INCREF(__pyx_v_self->_new_name);
    __pyx_t_3 = __pyx_v_self->_new_name;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_table), __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_t_5);
  __pyx_t_3 = __pyx_t_5;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_L3_bool_binop_done:;
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "kudu/client.pyx":3299
 *         return self
 * 
 *     def alter(self):             # <<<<<<<<<<<<<<
 *         """
 *         Alter table. Returns a new table object upon completion of the alter.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("kudu.client.TableAlterer.alter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_23__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_22__reduce_cython__[] = "TableAlterer.__reduce_cython__(self)";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_23__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_22__reduce_cython__(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_22__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__reduce_cython__", 0);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__81, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 2, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TableAlterer.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

/* Python wrapper */
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_25__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/
static char __pyx_doc_4kudu_6client_12TableAlterer_24__setstate_cython__[] = "TableAlterer.__setstate_cython__(self, __pyx_state)";
static PyObject *__pyx_pw_4kudu_6client_12TableAlterer_25__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  __pyx_r = __pyx_pf_4kudu_6client_12TableAlterer_24__setstate_cython__(((struct __pyx_obj_4kudu_6client_TableAlterer *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_4kudu_6client_12TableAlterer_24__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4kudu_6client_TableAlterer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__setstate_cython__", 0);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__82, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __PYX_ERR(1, 4, __pyx_L1_error)

  /* "(tree fragment)":3
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("kudu.client.TableAlterer.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/schema.pxd":67
 *     cdef int get_loc(self, name) except -1
 * 
 *     cdef inline DataType loc_type(self, int i):             # <<<<<<<<<<<<<<
 *         return self.schema.Column(i).type()
 * 
 */

static CYTHON_INLINE enum  kudu::client::KuduColumnSchema::DataType __pyx_f_4kudu_6schema_6Schema_loc_type(struct __pyx_obj_4kudu_6schema_Schema *__pyx_v_self, int __pyx_v_i) {
  enum  kudu::client::KuduColumnSchema::DataType __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("loc_type", 0);

  /* "kudu/schema.pxd":68
 * 
 *     cdef inline DataType loc_type(self, int i):
 *         return self.schema.Column(i).type()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_self->schema->Column(__pyx_v_i).type();
  goto __pyx_L0;

  /* "kudu/schema.pxd":67
 *     cdef int get_loc(self, name) except -1
 * 
 *     cdef inline DataType loc_type(self, int i):             # <<<<<<<<<<<<<<
 *         return self.schema.Column(i).type()
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "kudu/client.pxd":72
 *     cdef init(self)
 * 
 *     cdef inline KuduTable* ptr(self):             # <<<<<<<<<<<<<<
 *         return self.table.get()
 * 
 */

static CYTHON_INLINE kudu::client::KuduTable *__pyx_f_4kudu_6client_5Table_ptr(struct __pyx_obj_4kudu_6client_Table *__pyx_v_self) {
  kudu::client::KuduTable *__pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ptr", 0);

  /* "kudu/client.pxd":73
 * 
 *     cdef inline KuduTable* ptr(self):
 *         return self.table.get()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_self->table.get();
  goto __pyx_L0;

  /* "kudu/client.pxd":72
 *     cdef init(self)
 * 
 *     cdef inline KuduTable* ptr(self):             # <<<<<<<<<<<<<<
 *         return self.table.get()
 * 
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":31
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyObject_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyObject_string_to_py_std__in_string", 0);

  /* "string.to_py":32
 * @cname("__pyx_convert_PyObject_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyUnicode_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 32, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":31
 * 
 * @cname("__pyx_convert_PyObject_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyObject_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyObject_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyObject_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":37
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyUnicode_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyUnicode_string_to_py_std__in_string", 0);

  /* "string.to_py":38
 * @cname("__pyx_convert_PyUnicode_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyStr_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyUnicode_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 38, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":37
 * 
 * @cname("__pyx_convert_PyUnicode_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyUnicode_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyUnicode_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyUnicode_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":43
 * 
 * @cname("__pyx_convert_PyStr_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyStr_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyStr_string_to_py_std__in_string", 0);

  /* "string.to_py":44
 * @cname("__pyx_convert_PyStr_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyBytes_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyStr_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":43
 * 
 * @cname("__pyx_convert_PyStr_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyStr_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyStr_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyStr_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":49
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyBytes_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyBytes_string_to_py_std__in_string", 0);

  /* "string.to_py":50
 * @cname("__pyx_convert_PyBytes_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * cdef extern from *:
 *     cdef object __Pyx_PyByteArray_FromStringAndSize(const char*, size_t)
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":49
 * 
 * @cname("__pyx_convert_PyBytes_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyBytes_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyBytes_FromStringAndSize(s.data(), s.size())
 * cdef extern from *:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyBytes_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.to_py":55
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
 * 
 */

static CYTHON_INLINE PyObject *__pyx_convert_PyByteArray_string_to_py_std__in_string(std::string const &__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__pyx_convert_PyByteArray_string_to_py_std__in_string", 0);

  /* "string.to_py":56
 * @cname("__pyx_convert_PyByteArray_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_std__in_string(const string& s):
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())             # <<<<<<<<<<<<<<
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyByteArray_FromStringAndSize(__pyx_v_s.data(), __pyx_v_s.size()); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "string.to_py":55
 * 
 * @cname("__pyx_convert_PyByteArray_string_to_py_std__in_string")
 * cdef inline object __pyx_convert_PyByteArray_string_to_py_std__in_string(const string& s):             # <<<<<<<<<<<<<<
 *     return __Pyx_PyByteArray_FromStringAndSize(s.data(), s.size())
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("string.to_py.__pyx_convert_PyByteArray_string_to_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "string.from_py":13
 * 
 * @cname("__pyx_convert_string_from_py_std__in_string")
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t length = 0
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 */

static std::string __pyx_convert_string_from_py_std__in_string(PyObject *__pyx_v_o) {
  Py_ssize_t __pyx_v_length;
  char const *__pyx_v_data;
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  char const *__pyx_t_1;
  __Pyx_RefNannySetupContext("__pyx_convert_string_from_py_std__in_string", 0);

  /* "string.from_py":14
 * @cname("__pyx_convert_string_from_py_std__in_string")
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:
 *     cdef Py_ssize_t length = 0             # <<<<<<<<<<<<<<
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 *     return string(data, length)
 */
  __pyx_v_length = 0;

  /* "string.from_py":15
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:
 *     cdef Py_ssize_t length = 0
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)             # <<<<<<<<<<<<<<
 *     return string(data, length)
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_AsStringAndSize(__pyx_v_o, (&__pyx_v_length)); if (unlikely(__pyx_t_1 == ((char const *)NULL))) __PYX_ERR(1, 15, __pyx_L1_error)
  __pyx_v_data = __pyx_t_1;

  /* "string.from_py":16
 *     cdef Py_ssize_t length = 0
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 *     return string(data, length)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = std::string(__pyx_v_data, __pyx_v_length);
  goto __pyx_L0;

  /* "string.from_py":13
 * 
 * @cname("__pyx_convert_string_from_py_std__in_string")
 * cdef string __pyx_convert_string_from_py_std__in_string(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef Py_ssize_t length = 0
 *     cdef const char* data = __Pyx_PyObject_AsStringAndSize(o, &length)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("string.from_py.__pyx_convert_string_from_py_std__in_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_int")
 * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

static std::vector<int>  __pyx_convert_vector_from_py_int(PyObject *__pyx_v_o) {
  std::vector<int>  __pyx_v_v;
  PyObject *__pyx_v_item = NULL;
  std::vector<int>  __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *(*__pyx_t_3)(PyObject *);
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  __Pyx_RefNannySetupContext("__pyx_convert_vector_from_py_int", 0);

  /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) {
    __pyx_t_1 = __pyx_v_o; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 47, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 47, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 47, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 47, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(1, 47, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "vector.from_py":48
 *     cdef vector[X] v
 *     for item in o:
 *         v.push_back(<X>item)             # <<<<<<<<<<<<<<
 *     return v
 * 
 */
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_item); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 48, __pyx_L1_error)
    __pyx_v_v.push_back(((int)__pyx_t_5));

    /* "vector.from_py":47
 * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *:
 *     cdef vector[X] v
 *     for item in o:             # <<<<<<<<<<<<<<
 *         v.push_back(<X>item)
 *     return v
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "vector.from_py":49
 *     for item in o:
 *         v.push_back(<X>item)
 *     return v             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_v;
  goto __pyx_L0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_int")
 * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("vector.from_py.__pyx_convert_vector_from_py_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_item);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static struct __pyx_vtabstruct_4kudu_6client_Client __pyx_vtable_4kudu_6client_Client;

static PyObject *__pyx_tp_new_4kudu_6client_Client(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Client *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Client *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Client;
  new((void*)&(p->client)) kudu::client::sp::shared_ptr<kudu::client::KuduClient> ();
  p->master_addrs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_6Client_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Client(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Client *p = (struct __pyx_obj_4kudu_6client_Client *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_6Client_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->client);
  Py_CLEAR(p->master_addrs);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_Client(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_Client *p = (struct __pyx_obj_4kudu_6client_Client *)o;
  if (p->master_addrs) {
    e = (*v)(p->master_addrs, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_Client(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_Client *p = (struct __pyx_obj_4kudu_6client_Client *)o;
  tmp = ((PyObject*)p->master_addrs);
  p->master_addrs = ((PyObject*)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4kudu_6client_6Client_is_multimaster(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_6Client_14is_multimaster_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_6Client_master_addrs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_6Client_12master_addrs_1__get__(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Client[] = {
  {"close", (PyCFunction)__pyx_pw_4kudu_6client_6Client_5close, METH_NOARGS, __pyx_doc_4kudu_6client_6Client_4close},
  {"latest_observed_timestamp", (PyCFunction)__pyx_pw_4kudu_6client_6Client_7latest_observed_timestamp, METH_NOARGS, __pyx_doc_4kudu_6client_6Client_6latest_observed_timestamp},
  {"create_table", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_6Client_9create_table, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_6Client_8create_table},
  {"delete_table", (PyCFunction)__pyx_pw_4kudu_6client_6Client_11delete_table, METH_O, __pyx_doc_4kudu_6client_6Client_10delete_table},
  {"table_exists", (PyCFunction)__pyx_pw_4kudu_6client_6Client_13table_exists, METH_O, __pyx_doc_4kudu_6client_6Client_12table_exists},
  {"deserialize_token_into_scanner", (PyCFunction)__pyx_pw_4kudu_6client_6Client_15deserialize_token_into_scanner, METH_O, __pyx_doc_4kudu_6client_6Client_14deserialize_token_into_scanner},
  {"table", (PyCFunction)__pyx_pw_4kudu_6client_6Client_17table, METH_O, __pyx_doc_4kudu_6client_6Client_16table},
  {"list_tables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_6Client_19list_tables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_6Client_18list_tables},
  {"list_tablet_servers", (PyCFunction)__pyx_pw_4kudu_6client_6Client_21list_tablet_servers, METH_NOARGS, __pyx_doc_4kudu_6client_6Client_20list_tablet_servers},
  {"new_session", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_6Client_23new_session, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_6Client_22new_session},
  {"new_table_alterer", (PyCFunction)__pyx_pw_4kudu_6client_6Client_25new_table_alterer, METH_O, __pyx_doc_4kudu_6client_6Client_24new_table_alterer},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Client_27__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Client_26__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Client_29__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Client_28__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4kudu_6client_Client[] = {
  {(char *)"is_multimaster", __pyx_getprop_4kudu_6client_6Client_is_multimaster, 0, (char *)0, 0},
  {(char *)"master_addrs", __pyx_getprop_4kudu_6client_6Client_master_addrs, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Client = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Client", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Client), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Client, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    The primary class for interacting with a Kudu cluster. Can connect to one\n    or more Kudu master servers. Do not instantiate this class directly; use\n    kudu.connect instead.\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_Client, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_Client, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Client, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4kudu_6client_Client, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Client, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_Session(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_Session *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Session *)o);
  new((void*)&(p->s)) kudu::client::sp::shared_ptr<kudu::client::KuduSession> ();
  if (unlikely(__pyx_pw_4kudu_6client_7Session_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Session(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Session *p = (struct __pyx_obj_4kudu_6client_Session *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  __Pyx_call_destructor(p->s);
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Session[] = {
  {"set_flush_mode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_7Session_3set_flush_mode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_7Session_2set_flush_mode},
  {"set_timeout_ms", (PyCFunction)__pyx_pw_4kudu_6client_7Session_5set_timeout_ms, METH_O, __pyx_doc_4kudu_6client_7Session_4set_timeout_ms},
  {"set_mutation_buffer_space", (PyCFunction)__pyx_pw_4kudu_6client_7Session_7set_mutation_buffer_space, METH_O, __pyx_doc_4kudu_6client_7Session_6set_mutation_buffer_space},
  {"set_mutation_buffer_flush_watermark", (PyCFunction)__pyx_pw_4kudu_6client_7Session_9set_mutation_buffer_flush_watermark, METH_O, __pyx_doc_4kudu_6client_7Session_8set_mutation_buffer_flush_watermark},
  {"set_mutation_buffer_flush_interval", (PyCFunction)__pyx_pw_4kudu_6client_7Session_11set_mutation_buffer_flush_interval, METH_O, __pyx_doc_4kudu_6client_7Session_10set_mutation_buffer_flush_interval},
  {"set_mutation_buffer_max_num", (PyCFunction)__pyx_pw_4kudu_6client_7Session_13set_mutation_buffer_max_num, METH_O, __pyx_doc_4kudu_6client_7Session_12set_mutation_buffer_max_num},
  {"apply", (PyCFunction)__pyx_pw_4kudu_6client_7Session_15apply, METH_O, __pyx_doc_4kudu_6client_7Session_14apply},
  {"flush", (PyCFunction)__pyx_pw_4kudu_6client_7Session_17flush, METH_NOARGS, __pyx_doc_4kudu_6client_7Session_16flush},
  {"get_pending_errors", (PyCFunction)__pyx_pw_4kudu_6client_7Session_19get_pending_errors, METH_NOARGS, __pyx_doc_4kudu_6client_7Session_18get_pending_errors},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Session_21__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_7Session_20__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Session_23__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_7Session_22__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Session = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Session", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Session), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Session, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Wrapper for a client KuduSession to build up write operations to interact\n    with the cluster.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Session, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Session, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_PartialRow __pyx_vtable_4kudu_6client_PartialRow;

static PyObject *__pyx_tp_new_4kudu_6client_PartialRow(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_PartialRow *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_PartialRow *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_PartialRow;
  p->schema = ((struct __pyx_obj_4kudu_6schema_Schema *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_10PartialRow_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_PartialRow(PyObject *o) {
  struct __pyx_obj_4kudu_6client_PartialRow *p = (struct __pyx_obj_4kudu_6client_PartialRow *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_10PartialRow_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->schema);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_PartialRow(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_PartialRow *p = (struct __pyx_obj_4kudu_6client_PartialRow *)o;
  if (p->schema) {
    e = (*v)(((PyObject *)p->schema), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_PartialRow(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_PartialRow *p = (struct __pyx_obj_4kudu_6client_PartialRow *)o;
  tmp = ((PyObject*)p->schema);
  p->schema = ((struct __pyx_obj_4kudu_6schema_Schema *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static int __pyx_mp_ass_subscript_4kudu_6client_PartialRow(PyObject *o, PyObject *i, PyObject *v) {
  if (v) {
    return __pyx_pw_4kudu_6client_10PartialRow_5__setitem__(o, i, v);
  }
  else {
    PyErr_Format(PyExc_NotImplementedError,
      "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name);
    return -1;
  }
}

static PyObject *__pyx_getprop_4kudu_6client_10PartialRow__own(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_10PartialRow_4_own_1__get__(o);
}

static int __pyx_setprop_4kudu_6client_10PartialRow__own(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4kudu_6client_10PartialRow_4_own_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4kudu_6client_PartialRow[] = {
  {"from_record", (PyCFunction)__pyx_pw_4kudu_6client_10PartialRow_7from_record, METH_O, __pyx_doc_4kudu_6client_10PartialRow_6from_record},
  {"set_field", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_10PartialRow_9set_field, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_10PartialRow_8set_field},
  {"set_loc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_10PartialRow_11set_loc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_10PartialRow_10set_loc},
  {"set_field_null", (PyCFunction)__pyx_pw_4kudu_6client_10PartialRow_13set_field_null, METH_O, __pyx_doc_4kudu_6client_10PartialRow_12set_field_null},
  {"set_loc_null", (PyCFunction)__pyx_pw_4kudu_6client_10PartialRow_15set_loc_null, METH_O, __pyx_doc_4kudu_6client_10PartialRow_14set_loc_null},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_10PartialRow_17__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_10PartialRow_16__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_10PartialRow_19__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_10PartialRow_18__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4kudu_6client_PartialRow[] = {
  {(char *)"_own", __pyx_getprop_4kudu_6client_10PartialRow__own, __pyx_setprop_4kudu_6client_10PartialRow__own, (char *)"_own: 'bool'", 0},
  {0, 0, 0, 0, 0}
};

static PyMappingMethods __pyx_tp_as_mapping_PartialRow = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  __pyx_mp_ass_subscript_4kudu_6client_PartialRow, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_4kudu_6client_PartialRow = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.PartialRow", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_PartialRow), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_PartialRow, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_PartialRow, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_PartialRow, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_PartialRow, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_PartialRow, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4kudu_6client_PartialRow, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_PartialRow, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Table __pyx_vtable_4kudu_6client_Table;

static PyObject *__pyx_tp_new_4kudu_6client_Table(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Table *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Table *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Table;
  new((void*)&(p->table)) kudu::client::sp::shared_ptr<kudu::client::KuduTable> ();
  p->_name = Py_None; Py_INCREF(Py_None);
  p->schema = ((struct __pyx_obj_4kudu_6schema_Schema *)Py_None); Py_INCREF(Py_None);
  p->parent = ((struct __pyx_obj_4kudu_6client_Client *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_5Table_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Table(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Table *p = (struct __pyx_obj_4kudu_6client_Table *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  __Pyx_call_destructor(p->table);
  Py_CLEAR(p->_name);
  Py_CLEAR(p->schema);
  Py_CLEAR(p->parent);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_Table(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_Table *p = (struct __pyx_obj_4kudu_6client_Table *)o;
  if (p->_name) {
    e = (*v)(p->_name, a); if (e) return e;
  }
  if (p->schema) {
    e = (*v)(((PyObject *)p->schema), a); if (e) return e;
  }
  if (p->parent) {
    e = (*v)(((PyObject *)p->parent), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_Table(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_Table *p = (struct __pyx_obj_4kudu_6client_Table *)o;
  tmp = ((PyObject*)p->_name);
  p->_name = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->schema);
  p->schema = ((struct __pyx_obj_4kudu_6schema_Schema *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->parent);
  p->parent = ((struct __pyx_obj_4kudu_6client_Client *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
static PyObject *__pyx_sq_item_4kudu_6client_Table(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  Py_DECREF(x);
  return r;
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_4name_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_id(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_2id_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_num_columns(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_11num_columns_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_owner(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_5owner_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_comment(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_7comment_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table__name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_5_name_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_schema(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_6schema_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_parent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_6parent_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_5Table_num_replicas(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_5Table_12num_replicas_1__get__(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Table[] = {
  {"rename", (PyCFunction)__pyx_pw_4kudu_6client_5Table_7rename, METH_O, __pyx_doc_4kudu_6client_5Table_6rename},
  {"drop", (PyCFunction)__pyx_pw_4kudu_6client_5Table_9drop, METH_NOARGS, __pyx_doc_4kudu_6client_5Table_8drop},
  {"new_insert", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_11new_insert, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_10new_insert},
  {"new_insert_ignore", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_13new_insert_ignore, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_12new_insert_ignore},
  {"new_upsert", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_15new_upsert, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_14new_upsert},
  {"new_update", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_17new_update, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_16new_update},
  {"new_update_ignore", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_19new_update_ignore, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_18new_update_ignore},
  {"new_delete", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_21new_delete, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_20new_delete},
  {"new_delete_ignore", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_5Table_23new_delete_ignore, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_5Table_22new_delete_ignore},
  {"scanner", (PyCFunction)__pyx_pw_4kudu_6client_5Table_25scanner, METH_NOARGS, __pyx_doc_4kudu_6client_5Table_24scanner},
  {"scan_token_builder", (PyCFunction)__pyx_pw_4kudu_6client_5Table_27scan_token_builder, METH_NOARGS, __pyx_doc_4kudu_6client_5Table_26scan_token_builder},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_5Table_29__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_5Table_28__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_5Table_31__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_5Table_30__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4kudu_6client_Table[] = {
  {(char *)"name", __pyx_getprop_4kudu_6client_5Table_name, 0, (char *)"Name of the table.", 0},
  {(char *)"id", __pyx_getprop_4kudu_6client_5Table_id, 0, (char *)"Identifier string for the table.", 0},
  {(char *)"num_columns", __pyx_getprop_4kudu_6client_5Table_num_columns, 0, (char *)"Number of columns in the table's schema.", 0},
  {(char *)"owner", __pyx_getprop_4kudu_6client_5Table_owner, 0, (char *)"Name of the owner of the table.", 0},
  {(char *)"comment", __pyx_getprop_4kudu_6client_5Table_comment, 0, (char *)"Comment on the table.", 0},
  {(char *)"_name", __pyx_getprop_4kudu_6client_5Table__name, 0, (char *)0, 0},
  {(char *)"schema", __pyx_getprop_4kudu_6client_5Table_schema, 0, (char *)0, 0},
  {(char *)"parent", __pyx_getprop_4kudu_6client_5Table_parent, 0, (char *)0, 0},
  {(char *)"num_replicas", __pyx_getprop_4kudu_6client_5Table_num_replicas, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_Table = {
  __pyx_pw_4kudu_6client_5Table_3__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_4kudu_6client_Table, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_Table = {
  __pyx_pw_4kudu_6client_5Table_3__len__, /*mp_length*/
  __pyx_pw_4kudu_6client_5Table_5__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_4kudu_6client_Table = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Table", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Table), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Table, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_Table, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_Table, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Represents a Kudu table, containing the schema and other tools. Create by\n    using the kudu.Client.table method after connecting to a cluster.\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_Table, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_Table, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Table, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4kudu_6client_Table, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Table, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_TableAlterer __pyx_vtable_4kudu_6client_TableAlterer;

static PyObject *__pyx_tp_new_4kudu_6client_TableAlterer(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_TableAlterer *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_TableAlterer *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_TableAlterer;
  p->_table = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  p->_new_name = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_12TableAlterer_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_TableAlterer(PyObject *o) {
  struct __pyx_obj_4kudu_6client_TableAlterer *p = (struct __pyx_obj_4kudu_6client_TableAlterer *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_12TableAlterer_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_table);
  Py_CLEAR(p->_new_name);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_TableAlterer(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_TableAlterer *p = (struct __pyx_obj_4kudu_6client_TableAlterer *)o;
  if (p->_table) {
    e = (*v)(((PyObject *)p->_table), a); if (e) return e;
  }
  if (p->_new_name) {
    e = (*v)(p->_new_name, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_TableAlterer(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_TableAlterer *p = (struct __pyx_obj_4kudu_6client_TableAlterer *)o;
  tmp = ((PyObject*)p->_table);
  p->_table = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->_new_name);
  p->_new_name = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4kudu_6client_TableAlterer[] = {
  {"rename", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_5rename, METH_O, __pyx_doc_4kudu_6client_12TableAlterer_4rename},
  {"add_column", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12TableAlterer_7add_column, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12TableAlterer_6add_column},
  {"alter_column", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12TableAlterer_9alter_column, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12TableAlterer_8alter_column},
  {"drop_column", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_11drop_column, METH_O, __pyx_doc_4kudu_6client_12TableAlterer_10drop_column},
  {"add_range_partition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12TableAlterer_13add_range_partition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12TableAlterer_12add_range_partition},
  {"drop_range_partition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_12TableAlterer_15drop_range_partition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_12TableAlterer_14drop_range_partition},
  {"set_owner", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_17set_owner, METH_O, __pyx_doc_4kudu_6client_12TableAlterer_16set_owner},
  {"set_comment", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_19set_comment, METH_O, __pyx_doc_4kudu_6client_12TableAlterer_18set_comment},
  {"alter", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_21alter, METH_NOARGS, __pyx_doc_4kudu_6client_12TableAlterer_20alter},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_23__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_12TableAlterer_22__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12TableAlterer_25__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_12TableAlterer_24__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_TableAlterer = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.TableAlterer", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_TableAlterer), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_TableAlterer, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    Alters an existing table based on the provided steps.\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_TableAlterer, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_TableAlterer, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_TableAlterer, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_TableAlterer, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_TimeDelta __pyx_vtable_4kudu_6client_TimeDelta;

static PyObject *__pyx_tp_new_4kudu_6client_TimeDelta(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_TimeDelta *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_TimeDelta *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_TimeDelta;
  new((void*)&(p->delta)) kudu::MonoDelta();
  if (unlikely(__pyx_pw_4kudu_6client_9TimeDelta_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_TimeDelta(PyObject *o) {
  struct __pyx_obj_4kudu_6client_TimeDelta *p = (struct __pyx_obj_4kudu_6client_TimeDelta *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  __Pyx_call_destructor(p->delta);
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_TimeDelta[] = {
  {"from_seconds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_3from_seconds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_2from_seconds},
  {"from_millis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_5from_millis, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_4from_millis},
  {"from_micros", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_7from_micros, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_6from_micros},
  {"from_nanos", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9TimeDelta_9from_nanos, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9TimeDelta_8from_nanos},
  {"to_seconds", (PyCFunction)__pyx_pw_4kudu_6client_9TimeDelta_11to_seconds, METH_NOARGS, __pyx_doc_4kudu_6client_9TimeDelta_10to_seconds},
  {"to_millis", (PyCFunction)__pyx_pw_4kudu_6client_9TimeDelta_13to_millis, METH_NOARGS, __pyx_doc_4kudu_6client_9TimeDelta_12to_millis},
  {"to_micros", (PyCFunction)__pyx_pw_4kudu_6client_9TimeDelta_15to_micros, METH_NOARGS, __pyx_doc_4kudu_6client_9TimeDelta_14to_micros},
  {"to_nanos", (PyCFunction)__pyx_pw_4kudu_6client_9TimeDelta_17to_nanos, METH_NOARGS, __pyx_doc_4kudu_6client_9TimeDelta_16to_nanos},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9TimeDelta_23__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_9TimeDelta_22__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9TimeDelta_25__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_9TimeDelta_24__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_TimeDelta = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.TimeDelta", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_TimeDelta), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_TimeDelta, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4kudu_6client_9TimeDelta_19__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Wrapper interface for kudu MonoDelta class, which is used to specify\n    timedeltas for timeouts and other uses.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  __pyx_pw_4kudu_6client_9TimeDelta_21__richcmp__, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_TimeDelta, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_TimeDelta, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_RawValue(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_8RawValue_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_RawValue(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_RawValue[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8RawValue_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_8RawValue_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8RawValue_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_8RawValue_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_RawValue = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.RawValue", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_RawValue), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_RawValue, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_RawValue, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_Int8Val(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_7Int8Val_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_Int8Val[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Int8Val_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_7Int8Val_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Int8Val_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_7Int8Val_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Int8Val = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Int8Val", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Int8Val), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Int8Val, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Int8Val, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_Int16Val(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_8Int16Val_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_Int16Val[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8Int16Val_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_8Int16Val_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8Int16Val_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_8Int16Val_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Int16Val = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Int16Val", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Int16Val), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Int16Val, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Int16Val, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_Int32Val(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_8Int32Val_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_Int32Val[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8Int32Val_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_8Int32Val_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8Int32Val_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_8Int32Val_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Int32Val = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Int32Val", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Int32Val), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Int32Val, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Int32Val, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_Int64Val(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_8Int64Val_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_Int64Val[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8Int64Val_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_8Int64Val_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8Int64Val_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_8Int64Val_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Int64Val = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Int64Val", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Int64Val), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Int64Val, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Int64Val, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_DoubleVal(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_9DoubleVal_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_DoubleVal[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9DoubleVal_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_9DoubleVal_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9DoubleVal_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_9DoubleVal_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_DoubleVal = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.DoubleVal", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_DoubleVal), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_DoubleVal, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_DoubleVal, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_FloatVal(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_8FloatVal_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_FloatVal[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8FloatVal_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_8FloatVal_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8FloatVal_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_8FloatVal_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_FloatVal = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.FloatVal", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_FloatVal), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_FloatVal, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_FloatVal, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_BoolVal(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_7BoolVal_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_BoolVal[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7BoolVal_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_7BoolVal_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7BoolVal_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_7BoolVal_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_BoolVal = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.BoolVal", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_BoolVal), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_BoolVal, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_BoolVal, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_StringVal(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_StringVal *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_StringVal *)o);
  p->py_str = Py_None; Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_9StringVal_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_StringVal(PyObject *o) {
  struct __pyx_obj_4kudu_6client_StringVal *p = (struct __pyx_obj_4kudu_6client_StringVal *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_9StringVal_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->py_str);
  #if CYTHON_USE_TYPE_SLOTS
  if (PyType_IS_GC(Py_TYPE(o)->tp_base))
  #endif
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_RawValue(o);
}

static int __pyx_tp_traverse_4kudu_6client_StringVal(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_StringVal *p = (struct __pyx_obj_4kudu_6client_StringVal *)o;
  e = ((likely(__pyx_ptype_4kudu_6client_RawValue)) ? ((__pyx_ptype_4kudu_6client_RawValue->tp_traverse) ? __pyx_ptype_4kudu_6client_RawValue->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4kudu_6client_StringVal)); if (e) return e;
  if (p->py_str) {
    e = (*v)(p->py_str, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_StringVal(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_StringVal *p = (struct __pyx_obj_4kudu_6client_StringVal *)o;
  if (likely(__pyx_ptype_4kudu_6client_RawValue)) { if (__pyx_ptype_4kudu_6client_RawValue->tp_clear) __pyx_ptype_4kudu_6client_RawValue->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4kudu_6client_StringVal);
  tmp = ((PyObject*)p->py_str);
  p->py_str = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4kudu_6client_StringVal[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9StringVal_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_9StringVal_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9StringVal_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_9StringVal_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_StringVal = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.StringVal", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_StringVal), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_StringVal, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_StringVal, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_StringVal, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_StringVal, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_StringVal, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_UnixtimeMicrosVal(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_UnixtimeMicrosVal[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_17UnixtimeMicrosVal_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_17UnixtimeMicrosVal_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_17UnixtimeMicrosVal_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_UnixtimeMicrosVal = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.UnixtimeMicrosVal", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_UnixtimeMicrosVal), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_UnixtimeMicrosVal, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_UnixtimeMicrosVal, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_DateVal(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = __pyx_tp_new_4kudu_6client_RawValue(t, a, k);
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_7DateVal_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static PyMethodDef __pyx_methods_4kudu_6client_DateVal[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7DateVal_3__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_7DateVal_2__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7DateVal_5__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_7DateVal_4__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_DateVal = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.DateVal", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_DateVal), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RawValue, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_DateVal, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_DateVal, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_TabletServer __pyx_vtable_4kudu_6client_TabletServer;

static PyObject *__pyx_tp_new_4kudu_6client_TabletServer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_TabletServer *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_TabletServer *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_TabletServer;
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client_TabletServer(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_12TabletServer_1__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyObject *__pyx_getprop_4kudu_6client_12TabletServer__own(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_12TabletServer_4_own_1__get__(o);
}

static int __pyx_setprop_4kudu_6client_12TabletServer__own(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_4kudu_6client_12TabletServer_4_own_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_4kudu_6client_TabletServer[] = {
  {"uuid", (PyCFunction)__pyx_pw_4kudu_6client_12TabletServer_5uuid, METH_NOARGS, __pyx_doc_4kudu_6client_12TabletServer_4uuid},
  {"hostname", (PyCFunction)__pyx_pw_4kudu_6client_12TabletServer_7hostname, METH_NOARGS, __pyx_doc_4kudu_6client_12TabletServer_6hostname},
  {"port", (PyCFunction)__pyx_pw_4kudu_6client_12TabletServer_9port, METH_NOARGS, __pyx_doc_4kudu_6client_12TabletServer_8port},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12TabletServer_11__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_12TabletServer_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12TabletServer_13__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_12TabletServer_12__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4kudu_6client_TabletServer[] = {
  {(char *)"_own", __pyx_getprop_4kudu_6client_12TabletServer__own, __pyx_setprop_4kudu_6client_12TabletServer__own, (char *)"_own: 'bool'", 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_TabletServer = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.TabletServer", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_TabletServer), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_TabletServer, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Represents a Kudu tablet server, containing the uuid, hostname and port.\n    Create a list of TabletServers by using the kudu.Client.list_tablet_servers\n    method after connecting to a cluster\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  __pyx_pw_4kudu_6client_12TabletServer_3__richcmp__, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_TabletServer, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4kudu_6client_TabletServer, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_TabletServer, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_Column(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Column *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Column *)o);
  p->parent = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  p->spec = ((struct __pyx_obj_4kudu_6schema_ColumnSchema *)Py_None); Py_INCREF(Py_None);
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_6Column_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Column(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Column *p = (struct __pyx_obj_4kudu_6client_Column *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->parent);
  Py_CLEAR(p->spec);
  Py_CLEAR(p->name);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_Column(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_Column *p = (struct __pyx_obj_4kudu_6client_Column *)o;
  if (p->parent) {
    e = (*v)(((PyObject *)p->parent), a); if (e) return e;
  }
  if (p->spec) {
    e = (*v)(((PyObject *)p->spec), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_Column(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_Column *p = (struct __pyx_obj_4kudu_6client_Column *)o;
  tmp = ((PyObject*)p->parent);
  p->parent = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->spec);
  p->spec = ((struct __pyx_obj_4kudu_6schema_ColumnSchema *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_4kudu_6client_6Column_parent(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_6Column_6parent_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_6Column_spec(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_6Column_4spec_1__get__(o);
}

static PyObject *__pyx_getprop_4kudu_6client_6Column_name(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_4kudu_6client_6Column_4name_1__get__(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Column[] = {
  {"in_list", (PyCFunction)__pyx_pw_4kudu_6client_6Column_7in_list, METH_O, __pyx_doc_4kudu_6client_6Column_6in_list},
  {"is_not_null", (PyCFunction)__pyx_pw_4kudu_6client_6Column_9is_not_null, METH_NOARGS, __pyx_doc_4kudu_6client_6Column_8is_not_null},
  {"is_null", (PyCFunction)__pyx_pw_4kudu_6client_6Column_11is_null, METH_NOARGS, __pyx_doc_4kudu_6client_6Column_10is_null},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Column_13__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Column_12__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Column_15__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Column_14__setstate_cython__},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_4kudu_6client_Column[] = {
  {(char *)"parent", __pyx_getprop_4kudu_6client_6Column_parent, 0, (char *)0, 0},
  {(char *)"spec", __pyx_getprop_4kudu_6client_6Column_spec, 0, (char *)0, 0},
  {(char *)"name", __pyx_getprop_4kudu_6client_6Column_name, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Column = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Column", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Column), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Column, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4kudu_6client_6Column_3__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    A reference to a Kudu table column intended to simplify creating predicates\n    and other column-specific operations.\n\n    Write arithmetic comparisons to create new Predicate objects that can be\n    passed to a Scanner.\n\n    Examples\n    --------\n    scanner.add_predicate(table[col_name] <= 10)\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_Column, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_Column, /*tp_clear*/
  __pyx_pw_4kudu_6client_6Column_5__richcmp__, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Column, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_4kudu_6client_Column, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Column, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Predicate __pyx_vtable_4kudu_6client_Predicate;

static PyObject *__pyx_tp_new_4kudu_6client_Predicate(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_Predicate *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Predicate *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Predicate;
  if (unlikely(__pyx_pw_4kudu_6client_9Predicate_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Predicate(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_9Predicate_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Predicate[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9Predicate_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_9Predicate_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9Predicate_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_9Predicate_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Predicate = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Predicate", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Predicate), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Predicate, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Wrapper for a KuduPredicate. Pass to Scanner.add_predicates\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Predicate, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Predicate, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Row __pyx_vtable_4kudu_6client_Row;

static PyObject *__pyx_tp_new_4kudu_6client_Row(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Row *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Row *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Row;
  new((void*)&(p->row))  kudu::client::KuduScanBatch::RowPtr();
  p->parent = ((struct __pyx_obj_4kudu_6client_RowBatch *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_3Row_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Row(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Row *p = (struct __pyx_obj_4kudu_6client_Row *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_3Row_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  __Pyx_call_destructor(p->row);
  Py_CLEAR(p->parent);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_Row(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_Row *p = (struct __pyx_obj_4kudu_6client_Row *)o;
  if (p->parent) {
    e = (*v)(((PyObject *)p->parent), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_Row(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_Row *p = (struct __pyx_obj_4kudu_6client_Row *)o;
  tmp = ((PyObject*)p->parent);
  p->parent = ((struct __pyx_obj_4kudu_6client_RowBatch *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4kudu_6client_Row[] = {
  {"as_tuple", (PyCFunction)__pyx_pw_4kudu_6client_3Row_5as_tuple, METH_NOARGS, __pyx_doc_4kudu_6client_3Row_4as_tuple},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_3Row_7__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_3Row_6__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_3Row_9__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_3Row_8__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Row = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Row", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Row), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Row, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    A single row from a row batch\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_Row, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_Row, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Row, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Row, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_RowBatch __pyx_vtable_4kudu_6client_RowBatch;

static PyObject *__pyx_tp_new_4kudu_6client_RowBatch(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_RowBatch *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_RowBatch *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_RowBatch;
  new((void*)&(p->batch)) kudu::client::KuduScanBatch();
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client_RowBatch(PyObject *o) {
  struct __pyx_obj_4kudu_6client_RowBatch *p = (struct __pyx_obj_4kudu_6client_RowBatch *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  __Pyx_call_destructor(p->batch);
  (*Py_TYPE(o)->tp_free)(o);
}
static PyObject *__pyx_sq_item_4kudu_6client_RowBatch(PyObject *o, Py_ssize_t i) {
  PyObject *r;
  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
  Py_DECREF(x);
  return r;
}

static PyMethodDef __pyx_methods_4kudu_6client_RowBatch[] = {
  {"as_tuples", (PyCFunction)__pyx_pw_4kudu_6client_8RowBatch_8as_tuples, METH_NOARGS, __pyx_doc_4kudu_6client_8RowBatch_7as_tuples},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8RowBatch_10__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_8RowBatch_9__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_8RowBatch_12__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_8RowBatch_11__setstate_cython__},
  {0, 0, 0, 0}
};

static PySequenceMethods __pyx_tp_as_sequence_RowBatch = {
  __pyx_pw_4kudu_6client_8RowBatch_1__len__, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  __pyx_sq_item_4kudu_6client_RowBatch, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_RowBatch = {
  __pyx_pw_4kudu_6client_8RowBatch_1__len__, /*mp_length*/
  __pyx_pw_4kudu_6client_8RowBatch_3__getitem__, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_4kudu_6client_RowBatch = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.RowBatch", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_RowBatch), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_RowBatch, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  &__pyx_tp_as_sequence_RowBatch, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_RowBatch, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Class holding a batch of rows from a Scanner\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  __pyx_pw_4kudu_6client_8RowBatch_5__iter__, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_RowBatch, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_RowBatch, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Scanner __pyx_vtable_4kudu_6client_Scanner;

static PyObject *__pyx_tp_new_4kudu_6client_Scanner(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Scanner *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Scanner *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Scanner;
  p->table = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_7Scanner_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Scanner(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Scanner *p = (struct __pyx_obj_4kudu_6client_Scanner *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_7Scanner_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->table);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_Scanner(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_Scanner *p = (struct __pyx_obj_4kudu_6client_Scanner *)o;
  if (p->table) {
    e = (*v)(((PyObject *)p->table), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_Scanner(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_Scanner *p = (struct __pyx_obj_4kudu_6client_Scanner *)o;
  tmp = ((PyObject*)p->table);
  p->table = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4kudu_6client_Scanner[] = {
  {"add_predicates", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_5add_predicates, METH_O, __pyx_doc_4kudu_6client_7Scanner_4add_predicates},
  {"add_predicate", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_7add_predicate, METH_O, __pyx_doc_4kudu_6client_7Scanner_6add_predicate},
  {"set_projected_column_names", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_9set_projected_column_names, METH_O, __pyx_doc_4kudu_6client_7Scanner_8set_projected_column_names},
  {"set_selection", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_11set_selection, METH_O, __pyx_doc_4kudu_6client_7Scanner_10set_selection},
  {"set_projected_column_indexes", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_13set_projected_column_indexes, METH_O, __pyx_doc_4kudu_6client_7Scanner_12set_projected_column_indexes},
  {"set_read_mode", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_15set_read_mode, METH_O, __pyx_doc_4kudu_6client_7Scanner_14set_read_mode},
  {"set_snapshot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_7Scanner_17set_snapshot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_7Scanner_16set_snapshot},
  {"set_limit", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_19set_limit, METH_O, __pyx_doc_4kudu_6client_7Scanner_18set_limit},
  {"set_fault_tolerant", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_21set_fault_tolerant, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_20set_fault_tolerant},
  {"new_bound", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_23new_bound, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_22new_bound},
  {"add_lower_bound", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_25add_lower_bound, METH_O, __pyx_doc_4kudu_6client_7Scanner_24add_lower_bound},
  {"add_exclusive_upper_bound", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_27add_exclusive_upper_bound, METH_O, __pyx_doc_4kudu_6client_7Scanner_26add_exclusive_upper_bound},
  {"get_projection_schema", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_29get_projection_schema, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_28get_projection_schema},
  {"get_resource_metrics", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_31get_resource_metrics, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_30get_resource_metrics},
  {"open", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_33open, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_32open},
  {"has_more_rows", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_35has_more_rows, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_34has_more_rows},
  {"read_all_tuples", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_37read_all_tuples, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_36read_all_tuples},
  {"xbatches", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_39xbatches, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_38xbatches},
  {"read_next_batch_tuples", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_42read_next_batch_tuples, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_41read_next_batch_tuples},
  {"next_batch", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_44next_batch, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_43next_batch},
  {"set_cache_blocks", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_46set_cache_blocks, METH_O, __pyx_doc_4kudu_6client_7Scanner_45set_cache_blocks},
  {"keep_alive", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_48keep_alive, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_47keep_alive},
  {"get_current_server", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_50get_current_server, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_49get_current_server},
  {"close", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_52close, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_51close},
  {"to_pandas", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_7Scanner_54to_pandas, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_7Scanner_53to_pandas},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_56__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_7Scanner_55__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Scanner_58__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_7Scanner_57__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Scanner = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Scanner", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Scanner), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Scanner, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    A class for defining a selection of data we wish to scan out of a Kudu\n    table. Create a scanner using Table.scanner.\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_Scanner, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_Scanner, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Scanner, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Scanner, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_ScanToken __pyx_vtable_4kudu_6client_ScanToken;

static PyObject *__pyx_tp_new_4kudu_6client_ScanToken(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_ScanToken *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_ScanToken *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_ScanToken;
  if (unlikely(__pyx_pw_4kudu_6client_9ScanToken_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_ScanToken(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_9ScanToken_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_ScanToken[] = {
  {"into_kudu_scanner", (PyCFunction)__pyx_pw_4kudu_6client_9ScanToken_5into_kudu_scanner, METH_NOARGS, __pyx_doc_4kudu_6client_9ScanToken_4into_kudu_scanner},
  {"tablet", (PyCFunction)__pyx_pw_4kudu_6client_9ScanToken_7tablet, METH_NOARGS, __pyx_doc_4kudu_6client_9ScanToken_6tablet},
  {"serialize", (PyCFunction)__pyx_pw_4kudu_6client_9ScanToken_9serialize, METH_NOARGS, __pyx_doc_4kudu_6client_9ScanToken_8serialize},
  {"deserialize_into_scanner", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_9ScanToken_11deserialize_into_scanner, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_9ScanToken_10deserialize_into_scanner},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9ScanToken_13__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_9ScanToken_12__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9ScanToken_15__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_9ScanToken_14__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_ScanToken = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.ScanToken", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_ScanToken), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_ScanToken, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    A ScanToken describes a partial scan of a Kudu table limited to a single\n    contiguous physical location. Using the KuduScanTokenBuilder, clients\n    can describe the desired scan, including predicates, bounds, timestamps,\n    and caching, and receive back a collection of scan tokens.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_ScanToken, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_ScanToken, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_ScanTokenBuilder __pyx_vtable_4kudu_6client_ScanTokenBuilder;

static PyObject *__pyx_tp_new_4kudu_6client_ScanTokenBuilder(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_ScanTokenBuilder *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_ScanTokenBuilder;
  p->_table = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_16ScanTokenBuilder_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_ScanTokenBuilder(PyObject *o) {
  struct __pyx_obj_4kudu_6client_ScanTokenBuilder *p = (struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_16ScanTokenBuilder_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  Py_CLEAR(p->_table);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_ScanTokenBuilder(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_ScanTokenBuilder *p = (struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)o;
  if (p->_table) {
    e = (*v)(((PyObject *)p->_table), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_ScanTokenBuilder(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_ScanTokenBuilder *p = (struct __pyx_obj_4kudu_6client_ScanTokenBuilder *)o;
  tmp = ((PyObject*)p->_table);
  p->_table = ((struct __pyx_obj_4kudu_6client_Table *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyMethodDef __pyx_methods_4kudu_6client_ScanTokenBuilder[] = {
  {"set_projected_column_names", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_5set_projected_column_names, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_4set_projected_column_names},
  {"set_projected_column_indexes", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_7set_projected_column_indexes, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_6set_projected_column_indexes},
  {"set_batch_size_bytes", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_9set_batch_size_bytes, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_8set_batch_size_bytes},
  {"set_read_mode", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_11set_read_mode, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_10set_read_mode},
  {"set_snapshot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4kudu_6client_16ScanTokenBuilder_13set_snapshot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4kudu_6client_16ScanTokenBuilder_12set_snapshot},
  {"set_timeout_millis", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_15set_timeout_millis, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_14set_timeout_millis},
  {"set_timout_millis", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_17set_timout_millis, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_16set_timout_millis},
  {"set_fault_tolerant", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_19set_fault_tolerant, METH_NOARGS, __pyx_doc_4kudu_6client_16ScanTokenBuilder_18set_fault_tolerant},
  {"set_selection", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_21set_selection, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_20set_selection},
  {"add_predicates", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_23add_predicates, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_22add_predicates},
  {"add_predicate", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_25add_predicate, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_24add_predicate},
  {"new_bound", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_27new_bound, METH_NOARGS, __pyx_doc_4kudu_6client_16ScanTokenBuilder_26new_bound},
  {"add_lower_bound", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_29add_lower_bound, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_28add_lower_bound},
  {"add_upper_bound", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_31add_upper_bound, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_30add_upper_bound},
  {"set_cache_blocks", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_33set_cache_blocks, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_32set_cache_blocks},
  {"build", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_35build, METH_NOARGS, __pyx_doc_4kudu_6client_16ScanTokenBuilder_34build},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_37__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_16ScanTokenBuilder_36__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_16ScanTokenBuilder_39__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_16ScanTokenBuilder_38__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_ScanTokenBuilder = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.ScanTokenBuilder", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_ScanTokenBuilder), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_ScanTokenBuilder, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  "\n    This class builds ScanTokens for a Table.\n    ", /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_ScanTokenBuilder, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_ScanTokenBuilder, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_ScanTokenBuilder, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_ScanTokenBuilder, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Tablet __pyx_vtable_4kudu_6client_Tablet;

static PyObject *__pyx_tp_new_4kudu_6client_Tablet(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_Tablet *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Tablet *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Tablet;
  new((void*)&(p->_replicas)) std::vector<kudu::client::KuduReplica *> ();
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client_Tablet(PyObject *o) {
  struct __pyx_obj_4kudu_6client_Tablet *p = (struct __pyx_obj_4kudu_6client_Tablet *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  __Pyx_call_destructor(p->_replicas);
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Tablet[] = {
  {"id", (PyCFunction)__pyx_pw_4kudu_6client_6Tablet_1id, METH_NOARGS, __pyx_doc_4kudu_6client_6Tablet_id},
  {"replicas", (PyCFunction)__pyx_pw_4kudu_6client_6Tablet_3replicas, METH_NOARGS, __pyx_doc_4kudu_6client_6Tablet_2replicas},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Tablet_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Tablet_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Tablet_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Tablet_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Tablet = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Tablet", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Tablet), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Tablet, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Represents a remote Tablet. Contains the tablet id and Replicas associated\n    with the Kudu Tablet. Retrieved by the ScanToken.tablet() method.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Tablet, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Tablet, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Replica __pyx_vtable_4kudu_6client_Replica;

static PyObject *__pyx_tp_new_4kudu_6client_Replica(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_4kudu_6client_Replica *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Replica *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_Replica;
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client_Replica(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Replica[] = {
  {"is_leader", (PyCFunction)__pyx_pw_4kudu_6client_7Replica_1is_leader, METH_NOARGS, __pyx_doc_4kudu_6client_7Replica_is_leader},
  {"ts", (PyCFunction)__pyx_pw_4kudu_6client_7Replica_3ts, METH_NOARGS, __pyx_doc_4kudu_6client_7Replica_2ts},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Replica_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_7Replica_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_7Replica_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_7Replica_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Replica = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Replica", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Replica), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Replica, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Represents a remote Tablet's replica. Retrieve a list of Replicas with the\n    Tablet.replicas() method. Contains the boolean is_leader and its\n    respective TabletServer object.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Replica, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Replica, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyObject *__pyx_tp_new_4kudu_6client_KuduError(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  if (unlikely(__pyx_pw_4kudu_6client_9KuduError_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_KuduError(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_9KuduError_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_KuduError[] = {
  {"failed_op", (PyCFunction)__pyx_pw_4kudu_6client_9KuduError_5failed_op, METH_NOARGS, __pyx_doc_4kudu_6client_9KuduError_4failed_op},
  {"was_possibly_successful", (PyCFunction)__pyx_pw_4kudu_6client_9KuduError_7was_possibly_successful, METH_NOARGS, __pyx_doc_4kudu_6client_9KuduError_6was_possibly_successful},
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9KuduError_11__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_9KuduError_10__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_9KuduError_13__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_9KuduError_12__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_KuduError = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.KuduError", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_KuduError), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_KuduError, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  __pyx_pw_4kudu_6client_9KuduError_9__repr__, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "\n    Wrapper for a C++ KuduError indicating a client error resulting from\n    applying operations in a session.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_KuduError, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_KuduError, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_WriteOperation __pyx_vtable_4kudu_6client_WriteOperation;

static PyObject *__pyx_tp_new_4kudu_6client_WriteOperation(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_WriteOperation *p;
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_WriteOperation *)o);
  p->__pyx_vtab = __pyx_vtabptr_4kudu_6client_WriteOperation;
  p->py_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)Py_None); Py_INCREF(Py_None);
  if (unlikely(__pyx_pw_4kudu_6client_14WriteOperation_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_WriteOperation(PyObject *o) {
  struct __pyx_obj_4kudu_6client_WriteOperation *p = (struct __pyx_obj_4kudu_6client_WriteOperation *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->py_row);
  (*Py_TYPE(o)->tp_free)(o);
}

static int __pyx_tp_traverse_4kudu_6client_WriteOperation(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client_WriteOperation *p = (struct __pyx_obj_4kudu_6client_WriteOperation *)o;
  if (p->py_row) {
    e = (*v)(((PyObject *)p->py_row), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client_WriteOperation(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client_WriteOperation *p = (struct __pyx_obj_4kudu_6client_WriteOperation *)o;
  tmp = ((PyObject*)p->py_row);
  p->py_row = ((struct __pyx_obj_4kudu_6client_PartialRow *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static int __pyx_mp_ass_subscript_4kudu_6client_WriteOperation(PyObject *o, PyObject *i, PyObject *v) {
  if (v) {
    return __pyx_pw_4kudu_6client_14WriteOperation_3__setitem__(o, i, v);
  }
  else {
    PyErr_Format(PyExc_NotImplementedError,
      "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name);
    return -1;
  }
}

static PyMethodDef __pyx_methods_4kudu_6client_WriteOperation[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_14WriteOperation_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_14WriteOperation_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_14WriteOperation_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_14WriteOperation_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyMappingMethods __pyx_tp_as_mapping_WriteOperation = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  __pyx_mp_ass_subscript_4kudu_6client_WriteOperation, /*mp_ass_subscript*/
};

static PyTypeObject __pyx_type_4kudu_6client_WriteOperation = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.WriteOperation", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_WriteOperation), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_WriteOperation, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_WriteOperation, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_WriteOperation, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_WriteOperation, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Insert __pyx_vtable_4kudu_6client_Insert;

static PyObject *__pyx_tp_new_4kudu_6client_Insert(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Insert *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Insert *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_Insert;
  if (unlikely(__pyx_pw_4kudu_6client_6Insert_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Insert(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_6Insert_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Insert[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Insert_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Insert_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Insert_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Insert_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Insert = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Insert", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Insert), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Insert, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Insert, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Insert, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_InsertIgnore __pyx_vtable_4kudu_6client_InsertIgnore;

static PyObject *__pyx_tp_new_4kudu_6client_InsertIgnore(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_InsertIgnore *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_InsertIgnore *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_InsertIgnore;
  if (unlikely(__pyx_pw_4kudu_6client_12InsertIgnore_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_InsertIgnore(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_12InsertIgnore_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_InsertIgnore[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12InsertIgnore_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_12InsertIgnore_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12InsertIgnore_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_12InsertIgnore_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_InsertIgnore = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.InsertIgnore", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_InsertIgnore), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_InsertIgnore, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_InsertIgnore, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_InsertIgnore, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Upsert __pyx_vtable_4kudu_6client_Upsert;

static PyObject *__pyx_tp_new_4kudu_6client_Upsert(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Upsert *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Upsert *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_Upsert;
  if (unlikely(__pyx_pw_4kudu_6client_6Upsert_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Upsert(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_6Upsert_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Upsert[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Upsert_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Upsert_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Upsert_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Upsert_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Upsert = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Upsert", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Upsert), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Upsert, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Upsert, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Upsert, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Update __pyx_vtable_4kudu_6client_Update;

static PyObject *__pyx_tp_new_4kudu_6client_Update(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Update *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Update *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_Update;
  if (unlikely(__pyx_pw_4kudu_6client_6Update_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Update(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_6Update_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Update[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Update_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Update_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Update_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Update_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Update = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Update", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Update), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Update, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Update, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Update, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_UpdateIgnore __pyx_vtable_4kudu_6client_UpdateIgnore;

static PyObject *__pyx_tp_new_4kudu_6client_UpdateIgnore(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_UpdateIgnore *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_UpdateIgnore *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_UpdateIgnore;
  if (unlikely(__pyx_pw_4kudu_6client_12UpdateIgnore_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_UpdateIgnore(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_12UpdateIgnore_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_UpdateIgnore[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12UpdateIgnore_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_12UpdateIgnore_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12UpdateIgnore_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_12UpdateIgnore_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_UpdateIgnore = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.UpdateIgnore", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_UpdateIgnore), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_UpdateIgnore, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_UpdateIgnore, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_UpdateIgnore, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_Delete __pyx_vtable_4kudu_6client_Delete;

static PyObject *__pyx_tp_new_4kudu_6client_Delete(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_Delete *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_Delete *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_Delete;
  if (unlikely(__pyx_pw_4kudu_6client_6Delete_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_Delete(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_6Delete_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_Delete[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Delete_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_6Delete_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_6Delete_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_6Delete_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_Delete = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.Delete", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_Delete), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_Delete, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_Delete, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_Delete, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};
static struct __pyx_vtabstruct_4kudu_6client_DeleteIgnore __pyx_vtable_4kudu_6client_DeleteIgnore;

static PyObject *__pyx_tp_new_4kudu_6client_DeleteIgnore(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_4kudu_6client_DeleteIgnore *p;
  PyObject *o = __pyx_tp_new_4kudu_6client_WriteOperation(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_4kudu_6client_DeleteIgnore *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4kudu_6client_WriteOperation*)__pyx_vtabptr_4kudu_6client_DeleteIgnore;
  if (unlikely(__pyx_pw_4kudu_6client_12DeleteIgnore_1__cinit__(o, a, k) < 0)) goto bad;
  return o;
  bad:
  Py_DECREF(o); o = 0;
  return NULL;
}

static void __pyx_tp_dealloc_4kudu_6client_DeleteIgnore(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  PyObject_GC_UnTrack(o);
  {
    PyObject *etype, *eval, *etb;
    PyErr_Fetch(&etype, &eval, &etb);
    ++Py_REFCNT(o);
    __pyx_pw_4kudu_6client_12DeleteIgnore_3__dealloc__(o);
    --Py_REFCNT(o);
    PyErr_Restore(etype, eval, etb);
  }
  PyObject_GC_Track(o);
  __pyx_tp_dealloc_4kudu_6client_WriteOperation(o);
}

static PyMethodDef __pyx_methods_4kudu_6client_DeleteIgnore[] = {
  {"__reduce_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12DeleteIgnore_5__reduce_cython__, METH_NOARGS, __pyx_doc_4kudu_6client_12DeleteIgnore_4__reduce_cython__},
  {"__setstate_cython__", (PyCFunction)__pyx_pw_4kudu_6client_12DeleteIgnore_7__setstate_cython__, METH_O, __pyx_doc_4kudu_6client_12DeleteIgnore_6__setstate_cython__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_4kudu_6client_DeleteIgnore = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.DeleteIgnore", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client_DeleteIgnore), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client_DeleteIgnore, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client_WriteOperation, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client_WriteOperation, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_4kudu_6client_DeleteIgnore, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client_DeleteIgnore, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *__pyx_freelist_4kudu_6client___pyx_scope_struct____iter__[8];
static int __pyx_freecount_4kudu_6client___pyx_scope_struct____iter__ = 0;

static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct____iter__(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4kudu_6client___pyx_scope_struct____iter__ > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__)))) {
    o = (PyObject*)__pyx_freelist_4kudu_6client___pyx_scope_struct____iter__[--__pyx_freecount_4kudu_6client___pyx_scope_struct____iter__];
    memset(o, 0, sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct____iter__(PyObject *o) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4kudu_6client___pyx_scope_struct____iter__ < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__)))) {
    __pyx_freelist_4kudu_6client___pyx_scope_struct____iter__[__pyx_freecount_4kudu_6client___pyx_scope_struct____iter__++] = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4kudu_6client___pyx_scope_struct____iter__(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__ *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4kudu_6client___pyx_scope_struct____iter__ = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.__pyx_scope_struct____iter__", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct____iter__), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct____iter__, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client___pyx_scope_struct____iter__, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client___pyx_scope_struct____iter__, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *__pyx_freelist_4kudu_6client___pyx_scope_struct_1_set_selection[8];
static int __pyx_freecount_4kudu_6client___pyx_scope_struct_1_set_selection = 0;

static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_1_set_selection(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4kudu_6client___pyx_scope_struct_1_set_selection > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection)))) {
    o = (PyObject*)__pyx_freelist_4kudu_6client___pyx_scope_struct_1_set_selection[--__pyx_freecount_4kudu_6client___pyx_scope_struct_1_set_selection];
    memset(o, 0, sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_1_set_selection(PyObject *o) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_replica_selection);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4kudu_6client___pyx_scope_struct_1_set_selection < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection)))) {
    __pyx_freelist_4kudu_6client___pyx_scope_struct_1_set_selection[__pyx_freecount_4kudu_6client___pyx_scope_struct_1_set_selection++] = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_1_set_selection(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *)o;
  if (p->__pyx_v_replica_selection) {
    e = (*v)(p->__pyx_v_replica_selection, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client___pyx_scope_struct_1_set_selection(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection *)o;
  tmp = ((PyObject*)p->__pyx_v_replica_selection);
  p->__pyx_v_replica_selection = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.__pyx_scope_struct_1_set_selection", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_1_set_selection), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_1_set_selection, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_1_set_selection, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client___pyx_scope_struct_1_set_selection, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client___pyx_scope_struct_1_set_selection, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *__pyx_freelist_4kudu_6client___pyx_scope_struct_2_set_read_mode[8];
static int __pyx_freecount_4kudu_6client___pyx_scope_struct_2_set_read_mode = 0;

static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_2_set_read_mode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4kudu_6client___pyx_scope_struct_2_set_read_mode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode)))) {
    o = (PyObject*)__pyx_freelist_4kudu_6client___pyx_scope_struct_2_set_read_mode[--__pyx_freecount_4kudu_6client___pyx_scope_struct_2_set_read_mode];
    memset(o, 0, sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_2_set_read_mode(PyObject *o) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_read_mode);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4kudu_6client___pyx_scope_struct_2_set_read_mode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode)))) {
    __pyx_freelist_4kudu_6client___pyx_scope_struct_2_set_read_mode[__pyx_freecount_4kudu_6client___pyx_scope_struct_2_set_read_mode++] = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_2_set_read_mode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *)o;
  if (p->__pyx_v_read_mode) {
    e = (*v)(p->__pyx_v_read_mode, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client___pyx_scope_struct_2_set_read_mode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode *)o;
  tmp = ((PyObject*)p->__pyx_v_read_mode);
  p->__pyx_v_read_mode = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.__pyx_scope_struct_2_set_read_mode", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_2_set_read_mode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_2_set_read_mode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_2_set_read_mode, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client___pyx_scope_struct_2_set_read_mode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client___pyx_scope_struct_2_set_read_mode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *__pyx_freelist_4kudu_6client___pyx_scope_struct_3_xbatches[8];
static int __pyx_freecount_4kudu_6client___pyx_scope_struct_3_xbatches = 0;

static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_3_xbatches(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4kudu_6client___pyx_scope_struct_3_xbatches > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches)))) {
    o = (PyObject*)__pyx_freelist_4kudu_6client___pyx_scope_struct_3_xbatches[--__pyx_freecount_4kudu_6client___pyx_scope_struct_3_xbatches];
    memset(o, 0, sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_3_xbatches(PyObject *o) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_self);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4kudu_6client___pyx_scope_struct_3_xbatches < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches)))) {
    __pyx_freelist_4kudu_6client___pyx_scope_struct_3_xbatches[__pyx_freecount_4kudu_6client___pyx_scope_struct_3_xbatches++] = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_3_xbatches(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches *)o;
  if (p->__pyx_v_self) {
    e = (*v)(((PyObject *)p->__pyx_v_self), a); if (e) return e;
  }
  return 0;
}

static PyTypeObject __pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.__pyx_scope_struct_3_xbatches", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_3_xbatches), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_3_xbatches, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_3_xbatches, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client___pyx_scope_struct_3_xbatches, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *__pyx_freelist_4kudu_6client___pyx_scope_struct_4_set_read_mode[8];
static int __pyx_freecount_4kudu_6client___pyx_scope_struct_4_set_read_mode = 0;

static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_4_set_read_mode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4kudu_6client___pyx_scope_struct_4_set_read_mode > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode)))) {
    o = (PyObject*)__pyx_freelist_4kudu_6client___pyx_scope_struct_4_set_read_mode[--__pyx_freecount_4kudu_6client___pyx_scope_struct_4_set_read_mode];
    memset(o, 0, sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_4_set_read_mode(PyObject *o) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_read_mode);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4kudu_6client___pyx_scope_struct_4_set_read_mode < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode)))) {
    __pyx_freelist_4kudu_6client___pyx_scope_struct_4_set_read_mode[__pyx_freecount_4kudu_6client___pyx_scope_struct_4_set_read_mode++] = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_4_set_read_mode(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *)o;
  if (p->__pyx_v_read_mode) {
    e = (*v)(p->__pyx_v_read_mode, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client___pyx_scope_struct_4_set_read_mode(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode *)o;
  tmp = ((PyObject*)p->__pyx_v_read_mode);
  p->__pyx_v_read_mode = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.__pyx_scope_struct_4_set_read_mode", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_4_set_read_mode), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_4_set_read_mode, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_4_set_read_mode, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client___pyx_scope_struct_4_set_read_mode, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client___pyx_scope_struct_4_set_read_mode, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *__pyx_freelist_4kudu_6client___pyx_scope_struct_5_set_selection[8];
static int __pyx_freecount_4kudu_6client___pyx_scope_struct_5_set_selection = 0;

static PyObject *__pyx_tp_new_4kudu_6client___pyx_scope_struct_5_set_selection(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_4kudu_6client___pyx_scope_struct_5_set_selection > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection)))) {
    o = (PyObject*)__pyx_freelist_4kudu_6client___pyx_scope_struct_5_set_selection[--__pyx_freecount_4kudu_6client___pyx_scope_struct_5_set_selection];
    memset(o, 0, sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  return o;
}

static void __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_5_set_selection(PyObject *o) {
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *)o;
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_replica_selection);
  if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_4kudu_6client___pyx_scope_struct_5_set_selection < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection)))) {
    __pyx_freelist_4kudu_6client___pyx_scope_struct_5_set_selection[__pyx_freecount_4kudu_6client___pyx_scope_struct_5_set_selection++] = ((struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *)o);
  } else {
    (*Py_TYPE(o)->tp_free)(o);
  }
}

static int __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_5_set_selection(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *)o;
  if (p->__pyx_v_replica_selection) {
    e = (*v)(p->__pyx_v_replica_selection, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_4kudu_6client___pyx_scope_struct_5_set_selection(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *p = (struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection *)o;
  tmp = ((PyObject*)p->__pyx_v_replica_selection);
  p->__pyx_v_replica_selection = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyTypeObject __pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection = {
  PyVarObject_HEAD_INIT(0, 0)
  "kudu.client.__pyx_scope_struct_5_set_selection", /*tp_name*/
  sizeof(struct __pyx_obj_4kudu_6client___pyx_scope_struct_5_set_selection), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_4kudu_6client___pyx_scope_struct_5_set_selection, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_4kudu_6client___pyx_scope_struct_5_set_selection, /*tp_traverse*/
  __pyx_tp_clear_4kudu_6client___pyx_scope_struct_5_set_selection, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_4kudu_6client___pyx_scope_struct_5_set_selection, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b1
  0, /*tp_vectorcall*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
  0, /*tp_print*/
  #endif
};

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
#if CYTHON_PEP489_MULTI_PHASE_INIT
static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
static int __pyx_pymod_exec_client(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_client},
  {0, NULL}
};
#endif

static struct PyModuleDef __pyx_moduledef = {
    PyModuleDef_HEAD_INIT,
    "client",
    0, /* m_doc */
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    0, /* m_size */
  #else
    -1, /* m_size */
  #endif
    __pyx_methods /* m_methods */,
  #if CYTHON_PEP489_MULTI_PHASE_INIT
    __pyx_moduledef_slots, /* m_slots */
  #else
    NULL, /* m_reload */
  #endif
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif
#ifndef CYTHON_SMALL_CODE
#if defined(__clang__)
    #define CYTHON_SMALL_CODE
#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
    #define CYTHON_SMALL_CODE __attribute__((cold))
#else
    #define CYTHON_SMALL_CODE
#endif
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_kp_s_Argument_to_Client_create_table, __pyx_k_Argument_to_Client_create_table, sizeof(__pyx_k_Argument_to_Client_create_table), 0, 0, 1, 0},
  {&__pyx_n_s_BoolVal, __pyx_k_BoolVal, sizeof(__pyx_k_BoolVal), 0, 0, 1, 1},
  {&__pyx_n_s_CLIENT_SUPPORTS_DECIMAL, __pyx_k_CLIENT_SUPPORTS_DECIMAL, sizeof(__pyx_k_CLIENT_SUPPORTS_DECIMAL), 0, 0, 1, 1},
  {&__pyx_n_s_CLIENT_SUPPORTS_PANDAS, __pyx_k_CLIENT_SUPPORTS_PANDAS, sizeof(__pyx_k_CLIENT_SUPPORTS_PANDAS), 0, 0, 1, 1},
  {&__pyx_n_s_CLOSEST_REPLICA, __pyx_k_CLOSEST_REPLICA, sizeof(__pyx_k_CLOSEST_REPLICA), 0, 0, 1, 1},
  {&__pyx_kp_s_Cannot_cast_kudu_type_0, __pyx_k_Cannot_cast_kudu_type_0, sizeof(__pyx_k_Cannot_cast_kudu_type_0), 0, 0, 1, 0},
  {&__pyx_kp_s_Cannot_get_kudu_type_0, __pyx_k_Cannot_get_kudu_type_0, sizeof(__pyx_k_Cannot_get_kudu_type_0), 0, 0, 1, 0},
  {&__pyx_kp_s_Cannot_set_kudu_type_0, __pyx_k_Cannot_set_kudu_type_0, sizeof(__pyx_k_Cannot_set_kudu_type_0), 0, 0, 1, 0},
  {&__pyx_n_s_Client, __pyx_k_Client, sizeof(__pyx_k_Client), 0, 0, 1, 1},
  {&__pyx_n_s_Column, __pyx_k_Column, sizeof(__pyx_k_Column), 0, 0, 1, 1},
  {&__pyx_kp_s_Column_0_parent_1_type_2, __pyx_k_Column_0_parent_1_type_2, sizeof(__pyx_k_Column_0_parent_1_type_2), 0, 0, 1, 0},
  {&__pyx_kp_s_Column_index_0_is_out_of_bounds, __pyx_k_Column_index_0_is_out_of_bounds, sizeof(__pyx_k_Column_index_0_is_out_of_bounds), 0, 0, 1, 0},
  {&__pyx_n_s_DataFrame, __pyx_k_DataFrame, sizeof(__pyx_k_DataFrame), 0, 0, 1, 1},
  {&__pyx_n_s_DateVal, __pyx_k_DateVal, sizeof(__pyx_k_DateVal), 0, 0, 1, 1},
  {&__pyx_n_s_Delete, __pyx_k_Delete, sizeof(__pyx_k_Delete), 0, 0, 1, 1},
  {&__pyx_n_s_DeleteIgnore, __pyx_k_DeleteIgnore, sizeof(__pyx_k_DeleteIgnore), 0, 0, 1, 1},
  {&__pyx_n_s_DoubleVal, __pyx_k_DoubleVal, sizeof(__pyx_k_DoubleVal), 0, 0, 1, 1},
  {&__pyx_n_s_ENCRYPTION_OPTIONAL, __pyx_k_ENCRYPTION_OPTIONAL, sizeof(__pyx_k_ENCRYPTION_OPTIONAL), 0, 0, 1, 1},
  {&__pyx_n_s_ENCRYPTION_REQUIRED, __pyx_k_ENCRYPTION_REQUIRED, sizeof(__pyx_k_ENCRYPTION_REQUIRED), 0, 0, 1, 1},
  {&__pyx_n_s_ENCRYPTION_REQUIRED_REMOTE, __pyx_k_ENCRYPTION_REQUIRED_REMOTE, sizeof(__pyx_k_ENCRYPTION_REQUIRED_REMOTE), 0, 0, 1, 1},
  {&__pyx_n_s_EXCLUSIVE_BOUND, __pyx_k_EXCLUSIVE_BOUND, sizeof(__pyx_k_EXCLUSIVE_BOUND), 0, 0, 1, 1},
  {&__pyx_kp_s_Empty_iterator_for_addr_or_addrs, __pyx_k_Empty_iterator_for_addr_or_addrs, sizeof(__pyx_k_Empty_iterator_for_addr_or_addrs), 0, 0, 1, 0},
  {&__pyx_n_s_FIRST_REPLICA, __pyx_k_FIRST_REPLICA, sizeof(__pyx_k_FIRST_REPLICA), 0, 0, 1, 1},
  {&__pyx_n_s_FLUSH_AUTO_BACKGROUND, __pyx_k_FLUSH_AUTO_BACKGROUND, sizeof(__pyx_k_FLUSH_AUTO_BACKGROUND), 0, 0, 1, 1},
  {&__pyx_n_s_FLUSH_AUTO_SYNC, __pyx_k_FLUSH_AUTO_SYNC, sizeof(__pyx_k_FLUSH_AUTO_SYNC), 0, 0, 1, 1},
  {&__pyx_n_s_FLUSH_MANUAL, __pyx_k_FLUSH_MANUAL, sizeof(__pyx_k_FLUSH_MANUAL), 0, 0, 1, 1},
  {&__pyx_n_s_FloatVal, __pyx_k_FloatVal, sizeof(__pyx_k_FloatVal), 0, 0, 1, 1},
  {&__pyx_n_s_INCLUSIVE_BOUND, __pyx_k_INCLUSIVE_BOUND, sizeof(__pyx_k_INCLUSIVE_BOUND), 0, 0, 1, 1},
  {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
  {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
  {&__pyx_n_s_Insert, __pyx_k_Insert, sizeof(__pyx_k_Insert), 0, 0, 1, 1},
  {&__pyx_n_s_InsertIgnore, __pyx_k_InsertIgnore, sizeof(__pyx_k_InsertIgnore), 0, 0, 1, 1},
  {&__pyx_n_s_Int16Val, __pyx_k_Int16Val, sizeof(__pyx_k_Int16Val), 0, 0, 1, 1},
  {&__pyx_n_s_Int32Val, __pyx_k_Int32Val, sizeof(__pyx_k_Int32Val), 0, 0, 1, 1},
  {&__pyx_n_s_Int64Val, __pyx_k_Int64Val, sizeof(__pyx_k_Int64Val), 0, 0, 1, 1},
  {&__pyx_n_s_Int8Val, __pyx_k_Int8Val, sizeof(__pyx_k_Int8Val), 0, 0, 1, 1},
  {&__pyx_kp_s_Invalid_flush_mode_0, __pyx_k_Invalid_flush_mode_0, sizeof(__pyx_k_Invalid_flush_mode_0), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_range_partition_bound_ty, __pyx_k_Invalid_range_partition_bound_ty, sizeof(__pyx_k_Invalid_range_partition_bound_ty), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_read_mode_0, __pyx_k_Invalid_read_mode_0, sizeof(__pyx_k_Invalid_read_mode_0), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_record_type_0_for, __pyx_k_Invalid_record_type_0_for, sizeof(__pyx_k_Invalid_record_type_0_for), 0, 0, 1, 0},
  {&__pyx_kp_s_Invalid_replica_selection_policy, __pyx_k_Invalid_replica_selection_policy, sizeof(__pyx_k_Invalid_replica_selection_policy), 0, 0, 1, 0},
  {&__pyx_n_s_KUDU_BINARY, __pyx_k_KUDU_BINARY, sizeof(__pyx_k_KUDU_BINARY), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_BOOL, __pyx_k_KUDU_BOOL, sizeof(__pyx_k_KUDU_BOOL), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_DATE, __pyx_k_KUDU_DATE, sizeof(__pyx_k_KUDU_DATE), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_DECIMAL, __pyx_k_KUDU_DECIMAL, sizeof(__pyx_k_KUDU_DECIMAL), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_DOUBLE, __pyx_k_KUDU_DOUBLE, sizeof(__pyx_k_KUDU_DOUBLE), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_FLOAT, __pyx_k_KUDU_FLOAT, sizeof(__pyx_k_KUDU_FLOAT), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_INT16, __pyx_k_KUDU_INT16, sizeof(__pyx_k_KUDU_INT16), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_INT32, __pyx_k_KUDU_INT32, sizeof(__pyx_k_KUDU_INT32), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_INT64, __pyx_k_KUDU_INT64, sizeof(__pyx_k_KUDU_INT64), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_INT8, __pyx_k_KUDU_INT8, sizeof(__pyx_k_KUDU_INT8), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_STRING, __pyx_k_KUDU_STRING, sizeof(__pyx_k_KUDU_STRING), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_UNIXTIME_MICROS, __pyx_k_KUDU_UNIXTIME_MICROS, sizeof(__pyx_k_KUDU_UNIXTIME_MICROS), 0, 0, 1, 1},
  {&__pyx_n_s_KUDU_VARCHAR, __pyx_k_KUDU_VARCHAR, sizeof(__pyx_k_KUDU_VARCHAR), 0, 0, 1, 1},
  {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1},
  {&__pyx_n_s_KuduError, __pyx_k_KuduError, sizeof(__pyx_k_KuduError), 0, 0, 1, 1},
  {&__pyx_kp_s_KuduError_s, __pyx_k_KuduError_s, sizeof(__pyx_k_KuduError_s), 0, 0, 1, 0},
  {&__pyx_n_s_KuduException, __pyx_k_KuduException, sizeof(__pyx_k_KuduException), 0, 0, 1, 1},
  {&__pyx_n_s_LEADER_ONLY, __pyx_k_LEADER_ONLY, sizeof(__pyx_k_LEADER_ONLY), 0, 0, 1, 1},
  {&__pyx_kp_s_Limit_must_be_positive, __pyx_k_Limit_must_be_positive, sizeof(__pyx_k_Limit_must_be_positive), 0, 0, 1, 0},
  {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1},
  {&__pyx_n_s_PartialRow, __pyx_k_PartialRow, sizeof(__pyx_k_PartialRow), 0, 0, 1, 1},
  {&__pyx_kp_s_PartialRow_from_record, __pyx_k_PartialRow_from_record, sizeof(__pyx_k_PartialRow_from_record), 0, 0, 1, 0},
  {&__pyx_n_s_Partitioning, __pyx_k_Partitioning, sizeof(__pyx_k_Partitioning), 0, 0, 1, 1},
  {&__pyx_n_s_Partitioning___init, __pyx_k_Partitioning___init, sizeof(__pyx_k_Partitioning___init), 0, 0, 1, 1},
  {&__pyx_n_s_Partitioning_add_hash_partitions, __pyx_k_Partitioning_add_hash_partitions, sizeof(__pyx_k_Partitioning_add_hash_partitions), 0, 0, 1, 1},
  {&__pyx_n_s_Partitioning_add_range_partition, __pyx_k_Partitioning_add_range_partition, sizeof(__pyx_k_Partitioning_add_range_partition), 0, 0, 1, 1},
  {&__pyx_n_s_Partitioning_add_range_partition_2, __pyx_k_Partitioning_add_range_partition_2, sizeof(__pyx_k_Partitioning_add_range_partition_2), 0, 0, 1, 1},
  {&__pyx_n_s_Partitioning_set_range_partition, __pyx_k_Partitioning_set_range_partition, sizeof(__pyx_k_Partitioning_set_range_partition), 0, 0, 1, 1},
  {&__pyx_n_s_Predicate, __pyx_k_Predicate, sizeof(__pyx_k_Predicate), 0, 0, 1, 1},
  {&__pyx_n_s_READ_AT_SNAPSHOT, __pyx_k_READ_AT_SNAPSHOT, sizeof(__pyx_k_READ_AT_SNAPSHOT), 0, 0, 1, 1},
  {&__pyx_n_s_READ_LATEST, __pyx_k_READ_LATEST, sizeof(__pyx_k_READ_LATEST), 0, 0, 1, 1},
  {&__pyx_n_s_READ_YOUR_WRITES, __pyx_k_READ_YOUR_WRITES, sizeof(__pyx_k_READ_YOUR_WRITES), 0, 0, 1, 1},
  {&__pyx_kp_s_Range_Partition_Columns_must_be, __pyx_k_Range_Partition_Columns_must_be, sizeof(__pyx_k_Range_Partition_Columns_must_be), 0, 0, 1, 0},
  {&__pyx_n_s_RawValue, __pyx_k_RawValue, sizeof(__pyx_k_RawValue), 0, 0, 1, 1},
  {&__pyx_n_s_Replica, __pyx_k_Replica, sizeof(__pyx_k_Replica), 0, 0, 1, 1},
  {&__pyx_n_s_Row, __pyx_k_Row, sizeof(__pyx_k_Row), 0, 0, 1, 1},
  {&__pyx_n_s_RowBatch, __pyx_k_RowBatch, sizeof(__pyx_k_RowBatch), 0, 0, 1, 1},
  {&__pyx_n_s_RowBatch___iter, __pyx_k_RowBatch___iter, sizeof(__pyx_k_RowBatch___iter), 0, 0, 1, 1},
  {&__pyx_n_s_ScanToken, __pyx_k_ScanToken, sizeof(__pyx_k_ScanToken), 0, 0, 1, 1},
  {&__pyx_n_s_ScanTokenBuilder, __pyx_k_ScanTokenBuilder, sizeof(__pyx_k_ScanTokenBuilder), 0, 0, 1, 1},
  {&__pyx_n_s_Scanner, __pyx_k_Scanner, sizeof(__pyx_k_Scanner), 0, 0, 1, 1},
  {&__pyx_n_s_Scanner_xbatches, __pyx_k_Scanner_xbatches, sizeof(__pyx_k_Scanner_xbatches), 0, 0, 1, 1},
  {&__pyx_kp_s_See_the_strftime_3_documentation, __pyx_k_See_the_strftime_3_documentation, sizeof(__pyx_k_See_the_strftime_3_documentation), 0, 0, 1, 0},
  {&__pyx_n_s_Session, __pyx_k_Session, sizeof(__pyx_k_Session), 0, 0, 1, 1},
  {&__pyx_kp_s_Snapshot_Timestamps_be_greater_t, __pyx_k_Snapshot_Timestamps_be_greater_t, sizeof(__pyx_k_Snapshot_Timestamps_be_greater_t), 0, 0, 1, 0},
  {&__pyx_n_s_StopIteration, __pyx_k_StopIteration, sizeof(__pyx_k_StopIteration), 0, 0, 1, 1},
  {&__pyx_n_s_StringVal, __pyx_k_StringVal, sizeof(__pyx_k_StringVal), 0, 0, 1, 1},
  {&__pyx_n_s_Table, __pyx_k_Table, sizeof(__pyx_k_Table), 0, 0, 1, 1},
  {&__pyx_n_s_TableAlterer, __pyx_k_TableAlterer, sizeof(__pyx_k_TableAlterer), 0, 0, 1, 1},
  {&__pyx_n_s_Tablet, __pyx_k_Tablet, sizeof(__pyx_k_Tablet), 0, 0, 1, 1},
  {&__pyx_n_s_TabletServer, __pyx_k_TabletServer, sizeof(__pyx_k_TabletServer), 0, 0, 1, 1},
  {&__pyx_n_s_TimeDelta, __pyx_k_TimeDelta, sizeof(__pyx_k_TimeDelta), 0, 0, 1, 1},
  {&__pyx_kp_s_To_use_a_string_timestamp_you_mu, __pyx_k_To_use_a_string_timestamp_you_mu, sizeof(__pyx_k_To_use_a_string_timestamp_you_mu), 0, 0, 1, 0},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_kp_s_Unicode_objects_must_be_explicit, __pyx_k_Unicode_objects_must_be_explicit, sizeof(__pyx_k_Unicode_objects_must_be_explicit), 0, 0, 1, 0},
  {&__pyx_n_s_UnixtimeMicrosVal, __pyx_k_UnixtimeMicrosVal, sizeof(__pyx_k_UnixtimeMicrosVal), 0, 0, 1, 1},
  {&__pyx_n_s_Update, __pyx_k_Update, sizeof(__pyx_k_Update), 0, 0, 1, 1},
  {&__pyx_n_s_UpdateIgnore, __pyx_k_UpdateIgnore, sizeof(__pyx_k_UpdateIgnore), 0, 0, 1, 1},
  {&__pyx_n_s_Upsert, __pyx_k_Upsert, sizeof(__pyx_k_Upsert), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_n_s_WriteOperation, __pyx_k_WriteOperation, sizeof(__pyx_k_WriteOperation), 0, 0, 1, 1},
  {&__pyx_n_s_add_hash_partitions, __pyx_k_add_hash_partitions, sizeof(__pyx_k_add_hash_partitions), 0, 0, 1, 1},
  {&__pyx_n_s_add_predicate, __pyx_k_add_predicate, sizeof(__pyx_k_add_predicate), 0, 0, 1, 1},
  {&__pyx_n_s_add_range_partition, __pyx_k_add_range_partition, sizeof(__pyx_k_add_range_partition), 0, 0, 1, 1},
  {&__pyx_n_s_add_range_partition_split, __pyx_k_add_range_partition_split, sizeof(__pyx_k_add_range_partition_split), 0, 0, 1, 1},
  {&__pyx_kp_s_adding_a_range_partition, __pyx_k_adding_a_range_partition, sizeof(__pyx_k_adding_a_range_partition), 0, 0, 1, 0},
  {&__pyx_kp_s_adding_a_range_partition_split, __pyx_k_adding_a_range_partition_split, sizeof(__pyx_k_adding_a_range_partition_split), 0, 0, 1, 0},
  {&__pyx_n_s_addr_or_addrs, __pyx_k_addr_or_addrs, sizeof(__pyx_k_addr_or_addrs), 0, 0, 1, 1},
  {&__pyx_n_s_admin_timeout_ms, __pyx_k_admin_timeout_ms, sizeof(__pyx_k_admin_timeout_ms), 0, 0, 1, 1},
  {&__pyx_n_s_any, __pyx_k_any, sizeof(__pyx_k_any), 0, 0, 1, 1},
  {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_n_s_as_tuple, __pyx_k_as_tuple, sizeof(__pyx_k_as_tuple), 0, 0, 1, 1},
  {&__pyx_n_s_as_tuples, __pyx_k_as_tuples, sizeof(__pyx_k_as_tuples), 0, 0, 1, 1},
  {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1},
  {&__pyx_n_s_background, __pyx_k_background, sizeof(__pyx_k_background), 0, 0, 1, 1},
  {&__pyx_n_s_batch, __pyx_k_batch, sizeof(__pyx_k_batch), 0, 0, 1, 1},
  {&__pyx_kp_s_before_storing_in_a_Binary_field, __pyx_k_before_storing_in_a_Binary_field, sizeof(__pyx_k_before_storing_in_a_Binary_field), 0, 0, 1, 0},
  {&__pyx_n_s_bound, __pyx_k_bound, sizeof(__pyx_k_bound), 0, 0, 1, 1},
  {&__pyx_n_s_bound_type, __pyx_k_bound_type, sizeof(__pyx_k_bound_type), 0, 0, 1, 1},
  {&__pyx_n_s_check_convert_range_bound_type, __pyx_k_check_convert_range_bound_type, sizeof(__pyx_k_check_convert_range_bound_type), 0, 0, 1, 1},
  {&__pyx_n_s_check_convert_range_bound_type_2, __pyx_k_check_convert_range_bound_type_2, sizeof(__pyx_k_check_convert_range_bound_type_2), 0, 0, 1, 1},
  {&__pyx_n_s_client, __pyx_k_client, sizeof(__pyx_k_client), 0, 0, 1, 1},
  {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
  {&__pyx_n_s_closest, __pyx_k_closest, sizeof(__pyx_k_closest), 0, 0, 1, 1},
  {&__pyx_n_s_coerce_float, __pyx_k_coerce_float, sizeof(__pyx_k_coerce_float), 0, 0, 1, 1},
  {&__pyx_n_s_column_names, __pyx_k_column_names, sizeof(__pyx_k_column_names), 0, 0, 1, 1},
  {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1},
  {&__pyx_n_s_comment, __pyx_k_comment, sizeof(__pyx_k_comment), 0, 0, 1, 1},
  {&__pyx_n_s_compression, __pyx_k_compression, sizeof(__pyx_k_compression), 0, 0, 1, 1},
  {&__pyx_n_s_concat, __pyx_k_concat, sizeof(__pyx_k_concat), 0, 0, 1, 1},
  {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
  {&__pyx_n_s_correct_pandas_data_type, __pyx_k_correct_pandas_data_type, sizeof(__pyx_k_correct_pandas_data_type), 0, 0, 1, 1},
  {&__pyx_n_s_date_to_unix_epoch_days, __pyx_k_date_to_unix_epoch_days, sizeof(__pyx_k_date_to_unix_epoch_days), 0, 0, 1, 1},
  {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1},
  {&__pyx_n_s_deserialize_into_scanner, __pyx_k_deserialize_into_scanner, sizeof(__pyx_k_deserialize_into_scanner), 0, 0, 1, 1},
  {&__pyx_n_s_dict_iter, __pyx_k_dict_iter, sizeof(__pyx_k_dict_iter), 0, 0, 1, 1},
  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
  {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
  {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
  {&__pyx_n_s_encoding, __pyx_k_encoding, sizeof(__pyx_k_encoding), 0, 0, 1, 1},
  {&__pyx_n_s_encryption_policy, __pyx_k_encryption_policy, sizeof(__pyx_k_encryption_policy), 0, 0, 1, 1},
  {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
  {&__pyx_n_s_errors, __pyx_k_errors, sizeof(__pyx_k_errors), 0, 0, 1, 1},
  {&__pyx_n_s_exclusive, __pyx_k_exclusive, sizeof(__pyx_k_exclusive), 0, 0, 1, 1},
  {&__pyx_n_s_first, __pyx_k_first, sizeof(__pyx_k_first), 0, 0, 1, 1},
  {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1},
  {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1},
  {&__pyx_n_s_flush_mode, __pyx_k_flush_mode, sizeof(__pyx_k_flush_mode), 0, 0, 1, 1},
  {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
  {&__pyx_n_s_from_hybridtime, __pyx_k_from_hybridtime, sizeof(__pyx_k_from_hybridtime), 0, 0, 1, 1},
  {&__pyx_n_s_from_micros, __pyx_k_from_micros, sizeof(__pyx_k_from_micros), 0, 0, 1, 1},
  {&__pyx_n_s_from_millis, __pyx_k_from_millis, sizeof(__pyx_k_from_millis), 0, 0, 1, 1},
  {&__pyx_n_s_from_nanos, __pyx_k_from_nanos, sizeof(__pyx_k_from_nanos), 0, 0, 1, 1},
  {&__pyx_n_s_from_record, __pyx_k_from_record, sizeof(__pyx_k_from_record), 0, 0, 1, 1},
  {&__pyx_n_s_from_records, __pyx_k_from_records, sizeof(__pyx_k_from_records), 0, 0, 1, 1},
  {&__pyx_n_s_from_seconds, __pyx_k_from_seconds, sizeof(__pyx_k_from_seconds), 0, 0, 1, 1},
  {&__pyx_n_s_from_unixtime_micros, __pyx_k_from_unixtime_micros, sizeof(__pyx_k_from_unixtime_micros), 0, 0, 1, 1},
  {&__pyx_n_s_from_unscaled_decimal, __pyx_k_from_unscaled_decimal, sizeof(__pyx_k_from_unscaled_decimal), 0, 0, 1, 1},
  {&__pyx_n_s_frombytes, __pyx_k_frombytes, sizeof(__pyx_k_frombytes), 0, 0, 1, 1},
  {&__pyx_n_s_get_projection_schema, __pyx_k_get_projection_schema, sizeof(__pyx_k_get_projection_schema), 0, 0, 1, 1},
  {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
  {&__pyx_n_s_has_more_rows, __pyx_k_has_more_rows, sizeof(__pyx_k_has_more_rows), 0, 0, 1, 1},
  {&__pyx_n_s_hash_partitions, __pyx_k_hash_partitions, sizeof(__pyx_k_hash_partitions), 0, 0, 1, 1},
  {&__pyx_n_s_hostname, __pyx_k_hostname, sizeof(__pyx_k_hostname), 0, 0, 1, 1},
  {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
  {&__pyx_n_s_ignore_index, __pyx_k_ignore_index, sizeof(__pyx_k_ignore_index), 0, 0, 1, 1},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_inclusive, __pyx_k_inclusive, sizeof(__pyx_k_inclusive), 0, 0, 1, 1},
  {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
  {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
  {&__pyx_n_s_int16, __pyx_k_int16, sizeof(__pyx_k_int16), 0, 0, 1, 1},
  {&__pyx_n_s_int32, __pyx_k_int32, sizeof(__pyx_k_int32), 0, 0, 1, 1},
  {&__pyx_n_s_int8, __pyx_k_int8, sizeof(__pyx_k_int8), 0, 0, 1, 1},
  {&__pyx_n_s_invalid_bound_type, __pyx_k_invalid_bound_type, sizeof(__pyx_k_invalid_bound_type), 0, 0, 1, 1},
  {&__pyx_kp_s_invalid_operation_0, __pyx_k_invalid_operation_0, sizeof(__pyx_k_invalid_operation_0), 0, 0, 1, 0},
  {&__pyx_n_s_invalid_selection_policy, __pyx_k_invalid_selection_policy, sizeof(__pyx_k_invalid_selection_policy), 0, 0, 1, 1},
  {&__pyx_n_s_isnull, __pyx_k_isnull, sizeof(__pyx_k_isnull), 0, 0, 1, 1},
  {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1},
  {&__pyx_n_s_iter, __pyx_k_iter, sizeof(__pyx_k_iter), 0, 0, 1, 1},
  {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1},
  {&__pyx_kp_s_kudu_TimeDelta, __pyx_k_kudu_TimeDelta, sizeof(__pyx_k_kudu_TimeDelta), 0, 0, 1, 0},
  {&__pyx_kp_s_kudu_TimeDelta_0, __pyx_k_kudu_TimeDelta_0, sizeof(__pyx_k_kudu_TimeDelta_0), 0, 0, 1, 0},
  {&__pyx_n_s_kudu_client, __pyx_k_kudu_client, sizeof(__pyx_k_kudu_client), 0, 0, 1, 1},
  {&__pyx_kp_s_kudu_client_pyx, __pyx_k_kudu_client_pyx, sizeof(__pyx_k_kudu_client_pyx), 0, 0, 1, 0},
  {&__pyx_n_s_kudu_compat, __pyx_k_kudu_compat, sizeof(__pyx_k_kudu_compat), 0, 0, 1, 1},
  {&__pyx_n_s_kudu_util, __pyx_k_kudu_util, sizeof(__pyx_k_kudu_util), 0, 0, 1, 1},
  {&__pyx_n_s_latest, __pyx_k_latest, sizeof(__pyx_k_latest), 0, 0, 1, 1},
  {&__pyx_n_s_leader, __pyx_k_leader, sizeof(__pyx_k_leader), 0, 0, 1, 1},
  {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1},
  {&__pyx_n_s_lower_bound, __pyx_k_lower_bound, sizeof(__pyx_k_lower_bound), 0, 0, 1, 1},
  {&__pyx_n_s_lower_bound_type, __pyx_k_lower_bound_type, sizeof(__pyx_k_lower_bound_type), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_manual, __pyx_k_manual, sizeof(__pyx_k_manual), 0, 0, 1, 1},
  {&__pyx_n_s_match_substring, __pyx_k_match_substring, sizeof(__pyx_k_match_substring), 0, 0, 1, 1},
  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
  {&__pyx_n_s_ms, __pyx_k_ms, sizeof(__pyx_k_ms), 0, 0, 1, 1},
  {&__pyx_n_s_mutation_buffer_flush_interval, __pyx_k_mutation_buffer_flush_interval, sizeof(__pyx_k_mutation_buffer_flush_interval), 0, 0, 1, 1},
  {&__pyx_n_s_mutation_buffer_max_num, __pyx_k_mutation_buffer_max_num, sizeof(__pyx_k_mutation_buffer_max_num), 0, 0, 1, 1},
  {&__pyx_n_s_mutation_buffer_sz, __pyx_k_mutation_buffer_sz, sizeof(__pyx_k_mutation_buffer_sz), 0, 0, 1, 1},
  {&__pyx_n_s_mutation_buffer_watermark, __pyx_k_mutation_buffer_watermark, sizeof(__pyx_k_mutation_buffer_watermark), 0, 0, 1, 1},
  {&__pyx_n_s_n_replicas, __pyx_k_n_replicas, sizeof(__pyx_k_n_replicas), 0, 0, 1, 1},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
  {&__pyx_n_s_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 0, 1, 1},
  {&__pyx_n_s_new_row, __pyx_k_new_row, sizeof(__pyx_k_new_row), 0, 0, 1, 1},
  {&__pyx_n_s_new_value, __pyx_k_new_value, sizeof(__pyx_k_new_value), 0, 0, 1, 1},
  {&__pyx_n_s_next_batch, __pyx_k_next_batch, sizeof(__pyx_k_next_batch), 0, 0, 1, 1},
  {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
  {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
  {&__pyx_n_s_nullable, __pyx_k_nullable, sizeof(__pyx_k_nullable), 0, 0, 1, 1},
  {&__pyx_n_s_num_buckets, __pyx_k_num_buckets, sizeof(__pyx_k_num_buckets), 0, 0, 1, 1},
  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
  {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
  {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
  {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
  {&__pyx_n_s_optional, __pyx_k_optional, sizeof(__pyx_k_optional), 0, 0, 1, 1},
  {&__pyx_n_s_owner, __pyx_k_owner, sizeof(__pyx_k_owner), 0, 0, 1, 1},
  {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1},
  {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1},
  {&__pyx_n_s_partitioning, __pyx_k_partitioning, sizeof(__pyx_k_partitioning), 0, 0, 1, 1},
  {&__pyx_n_s_port, __pyx_k_port, sizeof(__pyx_k_port), 0, 0, 1, 1},
  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_range_partition_cols, __pyx_k_range_partition_cols, sizeof(__pyx_k_range_partition_cols), 0, 0, 1, 1},
  {&__pyx_n_s_range_partition_splits, __pyx_k_range_partition_splits, sizeof(__pyx_k_range_partition_splits), 0, 0, 1, 1},
  {&__pyx_n_s_range_partitions, __pyx_k_range_partitions, sizeof(__pyx_k_range_partitions), 0, 0, 1, 1},
  {&__pyx_n_s_read_your_writes, __pyx_k_read_your_writes, sizeof(__pyx_k_read_your_writes), 0, 0, 1, 1},
  {&__pyx_n_s_record, __pyx_k_record, sizeof(__pyx_k_record), 0, 0, 1, 1},
  {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
  {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
  {&__pyx_n_s_rename, __pyx_k_rename, sizeof(__pyx_k_rename), 0, 0, 1, 1},
  {&__pyx_n_s_rename_to, __pyx_k_rename_to, sizeof(__pyx_k_rename_to), 0, 0, 1, 1},
  {&__pyx_n_s_require_authentication, __pyx_k_require_authentication, sizeof(__pyx_k_require_authentication), 0, 0, 1, 1},
  {&__pyx_n_s_required, __pyx_k_required, sizeof(__pyx_k_required), 0, 0, 1, 1},
  {&__pyx_n_s_required_remote, __pyx_k_required_remote, sizeof(__pyx_k_required_remote), 0, 0, 1, 1},
  {&__pyx_n_s_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 0, 1, 1},
  {&__pyx_n_s_rpc_timeout_ms, __pyx_k_rpc_timeout_ms, sizeof(__pyx_k_rpc_timeout_ms), 0, 0, 1, 1},
  {&__pyx_n_s_sasl_protocol_name, __pyx_k_sasl_protocol_name, sizeof(__pyx_k_sasl_protocol_name), 0, 0, 1, 1},
  {&__pyx_n_s_schema, __pyx_k_schema, sizeof(__pyx_k_schema), 0, 0, 1, 1},
  {&__pyx_n_s_seconds, __pyx_k_seconds, sizeof(__pyx_k_seconds), 0, 0, 1, 1},
  {&__pyx_n_s_seed, __pyx_k_seed, sizeof(__pyx_k_seed), 0, 0, 1, 1},
  {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
  {&__pyx_kp_s_self__replica_cannot_be_converte, __pyx_k_self__replica_cannot_be_converte, sizeof(__pyx_k_self__replica_cannot_be_converte), 0, 0, 1, 0},
  {&__pyx_kp_s_self__replicas_self__tablet_cann, __pyx_k_self__replicas_self__tablet_cann, sizeof(__pyx_k_self__replicas_self__tablet_cann), 0, 0, 1, 0},
  {&__pyx_kp_s_self__tserver_cannot_be_converte, __pyx_k_self__tserver_cannot_be_converte, sizeof(__pyx_k_self__tserver_cannot_be_converte), 0, 0, 1, 0},
  {&__pyx_kp_s_self_batch_cannot_be_converted_t, __pyx_k_self_batch_cannot_be_converted_t, sizeof(__pyx_k_self_batch_cannot_be_converted_t), 0, 0, 1, 0},
  {&__pyx_n_s_send, __pyx_k_send, sizeof(__pyx_k_send), 0, 0, 1, 1},
  {&__pyx_n_s_serialized_token, __pyx_k_serialized_token, sizeof(__pyx_k_serialized_token), 0, 0, 1, 1},
  {&__pyx_n_s_set_field, __pyx_k_set_field, sizeof(__pyx_k_set_field), 0, 0, 1, 1},
  {&__pyx_n_s_set_field_null, __pyx_k_set_field_null, sizeof(__pyx_k_set_field_null), 0, 0, 1, 1},
  {&__pyx_n_s_set_flush_mode, __pyx_k_set_flush_mode, sizeof(__pyx_k_set_flush_mode), 0, 0, 1, 1},
  {&__pyx_n_s_set_loc, __pyx_k_set_loc, sizeof(__pyx_k_set_loc), 0, 0, 1, 1},
  {&__pyx_n_s_set_loc_null, __pyx_k_set_loc_null, sizeof(__pyx_k_set_loc_null), 0, 0, 1, 1},
  {&__pyx_n_s_set_mutation_buffer_flush_interv, __pyx_k_set_mutation_buffer_flush_interv, sizeof(__pyx_k_set_mutation_buffer_flush_interv), 0, 0, 1, 1},
  {&__pyx_n_s_set_mutation_buffer_flush_waterm, __pyx_k_set_mutation_buffer_flush_waterm, sizeof(__pyx_k_set_mutation_buffer_flush_waterm), 0, 0, 1, 1},
  {&__pyx_n_s_set_mutation_buffer_max_num, __pyx_k_set_mutation_buffer_max_num, sizeof(__pyx_k_set_mutation_buffer_max_num), 0, 0, 1, 1},
  {&__pyx_n_s_set_mutation_buffer_space, __pyx_k_set_mutation_buffer_space, sizeof(__pyx_k_set_mutation_buffer_space), 0, 0, 1, 1},
  {&__pyx_n_s_set_range_partition_columns, __pyx_k_set_range_partition_columns, sizeof(__pyx_k_set_range_partition_columns), 0, 0, 1, 1},
  {&__pyx_n_s_set_read_mode_locals_invalid_sel, __pyx_k_set_read_mode_locals_invalid_sel, sizeof(__pyx_k_set_read_mode_locals_invalid_sel), 0, 0, 1, 1},
  {&__pyx_n_s_set_selection_locals_invalid_sel, __pyx_k_set_selection_locals_invalid_sel, sizeof(__pyx_k_set_selection_locals_invalid_sel), 0, 0, 1, 1},
  {&__pyx_n_s_set_timeout_millis, __pyx_k_set_timeout_millis, sizeof(__pyx_k_set_timeout_millis), 0, 0, 1, 1},
  {&__pyx_n_s_set_timeout_ms, __pyx_k_set_timeout_ms, sizeof(__pyx_k_set_timeout_ms), 0, 0, 1, 1},
  {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
  {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
  {&__pyx_n_s_six, __pyx_k_six, sizeof(__pyx_k_six), 0, 0, 1, 1},
  {&__pyx_n_s_snapshot, __pyx_k_snapshot, sizeof(__pyx_k_snapshot), 0, 0, 1, 1},
  {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
  {&__pyx_n_s_split_row, __pyx_k_split_row, sizeof(__pyx_k_split_row), 0, 0, 1, 1},
  {&__pyx_n_s_ssl, __pyx_k_ssl, sizeof(__pyx_k_ssl), 0, 0, 1, 1},
  {&__pyx_n_s_staticmethod, __pyx_k_staticmethod, sizeof(__pyx_k_staticmethod), 0, 0, 1, 1},
  {&__pyx_n_s_string_types, __pyx_k_string_types, sizeof(__pyx_k_string_types), 0, 0, 1, 1},
  {&__pyx_n_s_sync, __pyx_k_sync, sizeof(__pyx_k_sync), 0, 0, 1, 1},
  {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1},
  {&__pyx_n_s_table_name, __pyx_k_table_name, sizeof(__pyx_k_table_name), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_throw, __pyx_k_throw, sizeof(__pyx_k_throw), 0, 0, 1, 1},
  {&__pyx_n_s_timeout_ms, __pyx_k_timeout_ms, sizeof(__pyx_k_timeout_ms), 0, 0, 1, 1},
  {&__pyx_n_s_timestamp, __pyx_k_timestamp, sizeof(__pyx_k_timestamp), 0, 0, 1, 1},
  {&__pyx_n_s_to_micros, __pyx_k_to_micros, sizeof(__pyx_k_to_micros), 0, 0, 1, 1},
  {&__pyx_n_s_to_millis, __pyx_k_to_millis, sizeof(__pyx_k_to_millis), 0, 0, 1, 1},
  {&__pyx_n_s_to_nanos, __pyx_k_to_nanos, sizeof(__pyx_k_to_nanos), 0, 0, 1, 1},
  {&__pyx_n_s_to_seconds, __pyx_k_to_seconds, sizeof(__pyx_k_to_seconds), 0, 0, 1, 1},
  {&__pyx_n_s_to_unixtime_micros, __pyx_k_to_unixtime_micros, sizeof(__pyx_k_to_unixtime_micros), 0, 0, 1, 1},
  {&__pyx_n_s_to_unscaled_decimal, __pyx_k_to_unscaled_decimal, sizeof(__pyx_k_to_unscaled_decimal), 0, 0, 1, 1},
  {&__pyx_n_s_tobytes, __pyx_k_tobytes, sizeof(__pyx_k_tobytes), 0, 0, 1, 1},
  {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
  {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1},
  {&__pyx_n_s_unix_epoch_days_to_date, __pyx_k_unix_epoch_days_to_date, sizeof(__pyx_k_unix_epoch_days_to_date), 0, 0, 1, 1},
  {&__pyx_n_s_upper_bound, __pyx_k_upper_bound, sizeof(__pyx_k_upper_bound), 0, 0, 1, 1},
  {&__pyx_n_s_upper_bound_type, __pyx_k_upper_bound_type, sizeof(__pyx_k_upper_bound_type), 0, 0, 1, 1},
  {&__pyx_n_s_us, __pyx_k_us, sizeof(__pyx_k_us), 0, 0, 1, 1},
  {&__pyx_n_s_utf8, __pyx_k_utf8, sizeof(__pyx_k_utf8), 0, 0, 1, 1},
  {&__pyx_n_s_uuid, __pyx_k_uuid, sizeof(__pyx_k_uuid), 0, 0, 1, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_n_s_xbatches, __pyx_k_xbatches, sizeof(__pyx_k_xbatches), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(0, 53, __pyx_L1_error)
  __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(0, 164, __pyx_L1_error)
  __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 1211, __pyx_L1_error)
  __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 128, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 116, __pyx_L1_error)
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 558, __pyx_L1_error)
  __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(0, 2140, __pyx_L1_error)
  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 2815, __pyx_L1_error)
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 2833, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "kudu/client.pyx":115
 * def _check_convert_range_bound_type(bound):
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):             # <<<<<<<<<<<<<<
 *         raise ValueError('Invalid range partition bound type: {0}'
 *                          .format(bound_type))
 */
  __pyx_tuple_ = PyTuple_Pack(1, __pyx_n_s_bound_type); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);
  __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_invalid_bound_type, 115, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 115, __pyx_L1_error)

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "kudu/client.pyx":322
 *         # will hang
 *         if not addr_or_addrs:
 *             raise ValueError("Empty iterator for addr_or_addrs.")             # <<<<<<<<<<<<<<
 * 
 *         self.master_addrs = addr_or_addrs
 */
  __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_Empty_iterator_for_addr_or_addrs); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__13);
  __Pyx_GIVEREF(__pyx_tuple__13);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__15);
  __Pyx_GIVEREF(__pyx_tuple__15);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__28);
  __Pyx_GIVEREF(__pyx_tuple__28);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_self__tserver_cannot_be_converte); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "(tree fragment)":4
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._tserver cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_self__tserver_cannot_be_converte); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_self_batch_cannot_be_converted_t); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);

  /* "(tree fragment)":4
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self.batch cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_s_self_batch_cannot_be_converted_t); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);

  /* "kudu/client.pyx":1855
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_invalid_selection_policy, 1855, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(0, 1855, __pyx_L1_error)

  /* "kudu/client.pyx":1906
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */
  __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_invalid_selection_policy, 1906, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 1906, __pyx_L1_error)

  /* "kudu/client.pyx":1955
 *                          <uint64_t> snapshot_micros))
 *         else:
 *             raise ValueError(             # <<<<<<<<<<<<<<
 *                 "Snapshot Timestamps be greater than the unix epoch.")
 * 
 */
  __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_s_Snapshot_Timestamps_be_greater_t); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 1955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);

  /* "kudu/client.pyx":1974
 *         """
 *         if limit <= 0:
 *             raise ValueError("Limit must be positive.")             # <<<<<<<<<<<<<<
 *         check_status(self.scanner.SetLimit(<int64_t> limit))
 * 
 */
  __pyx_tuple__48 = PyTuple_Pack(1, __pyx_kp_s_Limit_must_be_positive); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 1974, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__49 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__52 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);

  /* "kudu/client.pyx":2436
 *         cdef ReadMode rmode
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid read mode: {0}'
 *                              .format(read_mode))
 */
  __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_invalid_selection_policy, 2436, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 2436, __pyx_L1_error)

  /* "kudu/client.pyx":2544
 *         cdef ReplicaSelection selection
 * 
 *         def invalid_selection_policy():             # <<<<<<<<<<<<<<
 *             raise ValueError('Invalid replica selection policy: {0}'
 *                              .format(replica_selection))
 */
  __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_invalid_selection_policy, 2544, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 2544, __pyx_L1_error)

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_s_self__replicas_self__tablet_cann); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);

  /* "(tree fragment)":4
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replicas,self._tablet cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_s_self__replicas_self__tablet_cann); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 */
  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_s_self__replica_cannot_be_converte); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "(tree fragment)":4
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("self._replica cannot be converted to a Python object for pickling")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_self__replica_cannot_be_converte); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__60);
  __Pyx_GIVEREF(__pyx_tuple__60);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__67 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__70 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__72 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__73 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__73);
  __Pyx_GIVEREF(__pyx_tuple__73);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__75);
  __Pyx_GIVEREF(__pyx_tuple__75);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__77 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__78 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__78);
  __Pyx_GIVEREF(__pyx_tuple__78);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__80 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__80);
  __Pyx_GIVEREF(__pyx_tuple__80);

  /* "(tree fragment)":2
 * def __reduce_cython__(self):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 */
  __pyx_tuple__81 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(1, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);

  /* "(tree fragment)":4
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")
 * def __setstate_cython__(self, __pyx_state):
 *     raise TypeError("no default __reduce__ due to non-trivial __cinit__")             # <<<<<<<<<<<<<<
 */
  __pyx_tuple__82 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__82);
  __Pyx_GIVEREF(__pyx_tuple__82);

  /* "kudu/client.pyx":113
 * }
 * 
 * def _check_convert_range_bound_type(bound):             # <<<<<<<<<<<<<<
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):
 */
  __pyx_tuple__83 = PyTuple_Pack(3, __pyx_n_s_bound, __pyx_n_s_invalid_bound_type, __pyx_n_s_invalid_bound_type); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__83);
  __Pyx_GIVEREF(__pyx_tuple__83);
  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_check_convert_range_bound_type_2, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(0, 113, __pyx_L1_error)

  /* "kudu/client.pyx":131
 *             invalid_bound_type(bound)
 * 
 * def _correct_pandas_data_type(dtype):             # <<<<<<<<<<<<<<
 *     """
 *     This method returns the correct Pandas data type for some data types that
 */
  __pyx_tuple__85 = PyTuple_Pack(2, __pyx_n_s_dtype, __pyx_n_s_np); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);
  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_correct_pandas_data_type, 131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 131, __pyx_L1_error)

  /* "kudu/client.pyx":165
 * 
 *     @staticmethod
 *     def from_seconds(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from fractional seconds.
 */
  __pyx_tuple__87 = PyTuple_Pack(2, __pyx_n_s_seconds, __pyx_n_s_result); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);
  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_from_seconds, 165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(0, 165, __pyx_L1_error)

  /* "kudu/client.pyx":182
 * 
 *     @staticmethod
 *     def from_millis(int64_t ms):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer milliseconds.
 */
  __pyx_tuple__89 = PyTuple_Pack(2, __pyx_n_s_ms, __pyx_n_s_result); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);
  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_from_millis, 182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(0, 182, __pyx_L1_error)

  /* "kudu/client.pyx":199
 * 
 *     @staticmethod
 *     def from_micros(int64_t us):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer microseconds.
 */
  __pyx_tuple__91 = PyTuple_Pack(2, __pyx_n_s_us, __pyx_n_s_result); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_from_micros, 199, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 199, __pyx_L1_error)

  /* "kudu/client.pyx":216
 * 
 *     @staticmethod
 *     def from_nanos(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer nanoseconds.
 */
  __pyx_tuple__93 = PyTuple_Pack(2, __pyx_n_s_seconds, __pyx_n_s_result); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_from_nanos, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(0, 216, __pyx_L1_error)

  /* "kudu/client.pyx":1211
 *         return result
 * 
 * class Partitioning(object):             # <<<<<<<<<<<<<<
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 */
  __pyx_tuple__95 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 1211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);

  /* "kudu/client.pyx":1214
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._hash_partitions = []
 *         self._range_partition_cols = None
 */
  __pyx_tuple__96 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(0, 1214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__96);
  __Pyx_GIVEREF(__pyx_tuple__96);
  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_init, 1214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(0, 1214, __pyx_L1_error)

  /* "kudu/client.pyx":1220
 *         self._range_partition_splits = []
 * 
 *     def add_hash_partitions(self, column_names, num_buckets, seed=None):             # <<<<<<<<<<<<<<
 *         """
 *         Adds a set of hash partitions to the table.
 */
  __pyx_tuple__98 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_column_names, __pyx_n_s_num_buckets, __pyx_n_s_seed); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 1220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);
  __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(4, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_add_hash_partitions, 1220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(0, 1220, __pyx_L1_error)
  __pyx_tuple__100 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(0, 1220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__100);
  __Pyx_GIVEREF(__pyx_tuple__100);

  /* "kudu/client.pyx":1249
 *         return self
 * 
 *     def set_range_partition_columns(self, column_names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns on which the table will be range-partitioned.
 */
  __pyx_tuple__101 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_column_names); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);
  __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_set_range_partition_columns, 1249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(0, 1249, __pyx_L1_error)

  /* "kudu/client.pyx":1271
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                                   upper_bound=None,
 *                                   lower_bound_type='inclusive',
 */
  __pyx_tuple__103 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_lower_bound, __pyx_n_s_upper_bound, __pyx_n_s_lower_bound_type, __pyx_n_s_upper_bound_type); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__103);
  __Pyx_GIVEREF(__pyx_tuple__103);
  __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_add_range_partition, 1271, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __pyx_tuple__105 = PyTuple_Pack(4, ((PyObject *)Py_None), ((PyObject *)Py_None), ((PyObject*)__pyx_n_s_inclusive), ((PyObject*)__pyx_n_s_exclusive)); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__105);
  __Pyx_GIVEREF(__pyx_tuple__105);

  /* "kudu/client.pyx":1308
 *         return self
 * 
 *     def add_range_partition_split(self, split_row):             # <<<<<<<<<<<<<<
 *         """
 *         Add a range partition split at the provided row.
 */
  __pyx_tuple__106 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_split_row); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(0, 1308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);
  __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_kudu_client_pyx, __pyx_n_s_add_range_partition_split, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(0, 1308, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  __pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type;
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_5000 = PyInt_FromLong(5000); if (unlikely(!__pyx_int_5000)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}

static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/

static int __Pyx_modinit_global_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
  /*--- Global init code ---*/
  __pyx_v_4kudu_6client__replica_selection_policies = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4kudu_6client__read_modes = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4kudu_6client__encryption_policies = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4kudu_6client__type_names = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4kudu_6client__partition_bound_types = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __pyx_v_4kudu_6client__flush_modes = ((PyObject*)Py_None); Py_INCREF(Py_None);
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_variable_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
  /*--- Variable export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_export_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
  /*--- Function export code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_4kudu_6client_Client = &__pyx_vtable_4kudu_6client_Client;
  __pyx_vtable_4kudu_6client_Client.close = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Client *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_6Client_close;
  __pyx_vtable_4kudu_6client_Client._apply_partitioning = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Client *, kudu::client::KuduTableCreator *, PyObject *, struct __pyx_obj_4kudu_6schema_Schema *))__pyx_f_4kudu_6client_6Client__apply_partitioning;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Client) < 0) __PYX_ERR(0, 285, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Client.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Client.tp_dictoffset && __pyx_type_4kudu_6client_Client.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Client.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Client.tp_dict, __pyx_vtabptr_4kudu_6client_Client) < 0) __PYX_ERR(0, 285, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Client, (PyObject *)&__pyx_type_4kudu_6client_Client) < 0) __PYX_ERR(0, 285, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Client) < 0) __PYX_ERR(0, 285, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Client = &__pyx_type_4kudu_6client_Client;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Session) < 0) __PYX_ERR(0, 1360, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Session.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Session.tp_dictoffset && __pyx_type_4kudu_6client_Session.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Session.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Session, (PyObject *)&__pyx_type_4kudu_6client_Session) < 0) __PYX_ERR(0, 1360, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Session) < 0) __PYX_ERR(0, 1360, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Session = &__pyx_type_4kudu_6client_Session;
  __pyx_vtabptr_4kudu_6client_PartialRow = &__pyx_vtable_4kudu_6client_PartialRow;
  __pyx_vtable_4kudu_6client_PartialRow.set_field = (PyObject *(*)(struct __pyx_obj_4kudu_6client_PartialRow *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_10PartialRow_set_field;
  __pyx_vtable_4kudu_6client_PartialRow.set_loc = (PyObject *(*)(struct __pyx_obj_4kudu_6client_PartialRow *, int, PyObject *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_10PartialRow_set_loc;
  __pyx_vtable_4kudu_6client_PartialRow.set_field_null = (PyObject *(*)(struct __pyx_obj_4kudu_6client_PartialRow *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_10PartialRow_set_field_null;
  __pyx_vtable_4kudu_6client_PartialRow.set_loc_null = (PyObject *(*)(struct __pyx_obj_4kudu_6client_PartialRow *, int, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_10PartialRow_set_loc_null;
  __pyx_vtable_4kudu_6client_PartialRow.add_to_session = (PyObject *(*)(struct __pyx_obj_4kudu_6client_PartialRow *, struct __pyx_obj_4kudu_6client_Session *))__pyx_f_4kudu_6client_10PartialRow_add_to_session;
  if (PyType_Ready(&__pyx_type_4kudu_6client_PartialRow) < 0) __PYX_ERR(0, 2797, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_PartialRow.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_PartialRow.tp_dictoffset && __pyx_type_4kudu_6client_PartialRow.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_PartialRow.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_PartialRow.tp_dict, __pyx_vtabptr_4kudu_6client_PartialRow) < 0) __PYX_ERR(0, 2797, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PartialRow, (PyObject *)&__pyx_type_4kudu_6client_PartialRow) < 0) __PYX_ERR(0, 2797, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_PartialRow) < 0) __PYX_ERR(0, 2797, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_PartialRow = &__pyx_type_4kudu_6client_PartialRow;
  __pyx_vtabptr_4kudu_6client_Table = &__pyx_vtable_4kudu_6client_Table;
  __pyx_vtable_4kudu_6client_Table.init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Table *))__pyx_f_4kudu_6client_5Table_init;
  __pyx_vtable_4kudu_6client_Table.ptr = (kudu::client::KuduTable *(*)(struct __pyx_obj_4kudu_6client_Table *))__pyx_f_4kudu_6client_5Table_ptr;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Table) < 0) __PYX_ERR(0, 813, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Table.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Table.tp_dictoffset && __pyx_type_4kudu_6client_Table.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Table.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Table.tp_dict, __pyx_vtabptr_4kudu_6client_Table) < 0) __PYX_ERR(0, 813, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Table, (PyObject *)&__pyx_type_4kudu_6client_Table) < 0) __PYX_ERR(0, 813, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Table) < 0) __PYX_ERR(0, 813, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Table = &__pyx_type_4kudu_6client_Table;
  __pyx_vtabptr_4kudu_6client_TableAlterer = &__pyx_vtable_4kudu_6client_TableAlterer;
  __pyx_vtable_4kudu_6client_TableAlterer._init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_TableAlterer *, kudu::client::KuduTableAlterer *))__pyx_f_4kudu_6client_12TableAlterer__init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_TableAlterer) < 0) __PYX_ERR(0, 3046, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_TableAlterer.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_TableAlterer.tp_dictoffset && __pyx_type_4kudu_6client_TableAlterer.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_TableAlterer.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_TableAlterer.tp_dict, __pyx_vtabptr_4kudu_6client_TableAlterer) < 0) __PYX_ERR(0, 3046, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TableAlterer, (PyObject *)&__pyx_type_4kudu_6client_TableAlterer) < 0) __PYX_ERR(0, 3046, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_TableAlterer) < 0) __PYX_ERR(0, 3046, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_TableAlterer = &__pyx_type_4kudu_6client_TableAlterer;
  __pyx_vtabptr_4kudu_6client_TimeDelta = &__pyx_vtable_4kudu_6client_TimeDelta;
  __pyx_vtable_4kudu_6client_TimeDelta.to_seconds = (double (*)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_9TimeDelta_to_seconds;
  __pyx_vtable_4kudu_6client_TimeDelta.to_millis = (int64_t (*)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_9TimeDelta_to_millis;
  __pyx_vtable_4kudu_6client_TimeDelta.to_micros = (int64_t (*)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_9TimeDelta_to_micros;
  __pyx_vtable_4kudu_6client_TimeDelta.to_nanos = (int64_t (*)(struct __pyx_obj_4kudu_6client_TimeDelta *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_9TimeDelta_to_nanos;
  __pyx_vtable_4kudu_6client_TimeDelta.init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_TimeDelta *, kudu::MonoDelta const &))__pyx_f_4kudu_6client_9TimeDelta_init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_TimeDelta) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_TimeDelta.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_TimeDelta.tp_dictoffset && __pyx_type_4kudu_6client_TimeDelta.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_TimeDelta.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_TimeDelta.tp_dict, __pyx_vtabptr_4kudu_6client_TimeDelta) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TimeDelta, (PyObject *)&__pyx_type_4kudu_6client_TimeDelta) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_TimeDelta) < 0) __PYX_ERR(0, 152, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_TimeDelta = &__pyx_type_4kudu_6client_TimeDelta;
  if (PyType_Ready(&__pyx_type_4kudu_6client_RawValue) < 0) __PYX_ERR(0, 665, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_RawValue.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_RawValue.tp_dictoffset && __pyx_type_4kudu_6client_RawValue.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_RawValue.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RawValue, (PyObject *)&__pyx_type_4kudu_6client_RawValue) < 0) __PYX_ERR(0, 665, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_RawValue) < 0) __PYX_ERR(0, 665, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_RawValue = &__pyx_type_4kudu_6client_RawValue;
  __pyx_type_4kudu_6client_Int8Val.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Int8Val) < 0) __PYX_ERR(0, 673, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Int8Val.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Int8Val.tp_dictoffset && __pyx_type_4kudu_6client_Int8Val.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Int8Val.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Int8Val, (PyObject *)&__pyx_type_4kudu_6client_Int8Val) < 0) __PYX_ERR(0, 673, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Int8Val) < 0) __PYX_ERR(0, 673, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Int8Val = &__pyx_type_4kudu_6client_Int8Val;
  __pyx_type_4kudu_6client_Int16Val.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Int16Val) < 0) __PYX_ERR(0, 682, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Int16Val.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Int16Val.tp_dictoffset && __pyx_type_4kudu_6client_Int16Val.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Int16Val.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Int16Val, (PyObject *)&__pyx_type_4kudu_6client_Int16Val) < 0) __PYX_ERR(0, 682, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Int16Val) < 0) __PYX_ERR(0, 682, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Int16Val = &__pyx_type_4kudu_6client_Int16Val;
  __pyx_type_4kudu_6client_Int32Val.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Int32Val) < 0) __PYX_ERR(0, 691, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Int32Val.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Int32Val.tp_dictoffset && __pyx_type_4kudu_6client_Int32Val.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Int32Val.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Int32Val, (PyObject *)&__pyx_type_4kudu_6client_Int32Val) < 0) __PYX_ERR(0, 691, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Int32Val) < 0) __PYX_ERR(0, 691, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Int32Val = &__pyx_type_4kudu_6client_Int32Val;
  __pyx_type_4kudu_6client_Int64Val.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Int64Val) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Int64Val.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Int64Val.tp_dictoffset && __pyx_type_4kudu_6client_Int64Val.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Int64Val.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Int64Val, (PyObject *)&__pyx_type_4kudu_6client_Int64Val) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Int64Val) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Int64Val = &__pyx_type_4kudu_6client_Int64Val;
  __pyx_type_4kudu_6client_DoubleVal.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_DoubleVal) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_DoubleVal.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_DoubleVal.tp_dictoffset && __pyx_type_4kudu_6client_DoubleVal.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_DoubleVal.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DoubleVal, (PyObject *)&__pyx_type_4kudu_6client_DoubleVal) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_DoubleVal) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_DoubleVal = &__pyx_type_4kudu_6client_DoubleVal;
  __pyx_type_4kudu_6client_FloatVal.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_FloatVal) < 0) __PYX_ERR(0, 718, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_FloatVal.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_FloatVal.tp_dictoffset && __pyx_type_4kudu_6client_FloatVal.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_FloatVal.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FloatVal, (PyObject *)&__pyx_type_4kudu_6client_FloatVal) < 0) __PYX_ERR(0, 718, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_FloatVal) < 0) __PYX_ERR(0, 718, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_FloatVal = &__pyx_type_4kudu_6client_FloatVal;
  __pyx_type_4kudu_6client_BoolVal.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_BoolVal) < 0) __PYX_ERR(0, 727, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_BoolVal.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_BoolVal.tp_dictoffset && __pyx_type_4kudu_6client_BoolVal.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_BoolVal.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BoolVal, (PyObject *)&__pyx_type_4kudu_6client_BoolVal) < 0) __PYX_ERR(0, 727, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_BoolVal) < 0) __PYX_ERR(0, 727, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_BoolVal = &__pyx_type_4kudu_6client_BoolVal;
  __pyx_type_4kudu_6client_StringVal.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_StringVal) < 0) __PYX_ERR(0, 736, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_StringVal.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_StringVal.tp_dictoffset && __pyx_type_4kudu_6client_StringVal.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_StringVal.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_StringVal, (PyObject *)&__pyx_type_4kudu_6client_StringVal) < 0) __PYX_ERR(0, 736, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_StringVal) < 0) __PYX_ERR(0, 736, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_StringVal = &__pyx_type_4kudu_6client_StringVal;
  __pyx_type_4kudu_6client_UnixtimeMicrosVal.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_UnixtimeMicrosVal) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_UnixtimeMicrosVal.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_UnixtimeMicrosVal.tp_dictoffset && __pyx_type_4kudu_6client_UnixtimeMicrosVal.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_UnixtimeMicrosVal.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_UnixtimeMicrosVal, (PyObject *)&__pyx_type_4kudu_6client_UnixtimeMicrosVal) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_UnixtimeMicrosVal) < 0) __PYX_ERR(0, 756, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_UnixtimeMicrosVal = &__pyx_type_4kudu_6client_UnixtimeMicrosVal;
  __pyx_type_4kudu_6client_DateVal.tp_base = __pyx_ptype_4kudu_6client_RawValue;
  if (PyType_Ready(&__pyx_type_4kudu_6client_DateVal) < 0) __PYX_ERR(0, 764, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_DateVal.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_DateVal.tp_dictoffset && __pyx_type_4kudu_6client_DateVal.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_DateVal.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DateVal, (PyObject *)&__pyx_type_4kudu_6client_DateVal) < 0) __PYX_ERR(0, 764, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_DateVal) < 0) __PYX_ERR(0, 764, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_DateVal = &__pyx_type_4kudu_6client_DateVal;
  __pyx_vtabptr_4kudu_6client_TabletServer = &__pyx_vtable_4kudu_6client_TabletServer;
  __pyx_vtable_4kudu_6client_TabletServer._init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_TabletServer *, kudu::client::KuduTabletServer const *))__pyx_f_4kudu_6client_12TabletServer__init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_TabletServer) < 0) __PYX_ERR(0, 773, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_TabletServer.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_TabletServer.tp_dictoffset && __pyx_type_4kudu_6client_TabletServer.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_TabletServer.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_TabletServer.tp_dict, __pyx_vtabptr_4kudu_6client_TabletServer) < 0) __PYX_ERR(0, 773, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TabletServer, (PyObject *)&__pyx_type_4kudu_6client_TabletServer) < 0) __PYX_ERR(0, 773, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_TabletServer) < 0) __PYX_ERR(0, 773, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_TabletServer = &__pyx_type_4kudu_6client_TabletServer;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Column) < 0) __PYX_ERR(0, 1043, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Column.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Column.tp_dictoffset && __pyx_type_4kudu_6client_Column.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Column.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Column, (PyObject *)&__pyx_type_4kudu_6client_Column) < 0) __PYX_ERR(0, 1043, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Column) < 0) __PYX_ERR(0, 1043, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Column = &__pyx_type_4kudu_6client_Column;
  __pyx_vtabptr_4kudu_6client_Predicate = &__pyx_vtable_4kudu_6client_Predicate;
  __pyx_vtable_4kudu_6client_Predicate.init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Predicate *, kudu::client::KuduPredicate *))__pyx_f_4kudu_6client_9Predicate_init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Predicate) < 0) __PYX_ERR(0, 1329, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Predicate.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Predicate.tp_dictoffset && __pyx_type_4kudu_6client_Predicate.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Predicate.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Predicate.tp_dict, __pyx_vtabptr_4kudu_6client_Predicate) < 0) __PYX_ERR(0, 1329, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Predicate, (PyObject *)&__pyx_type_4kudu_6client_Predicate) < 0) __PYX_ERR(0, 1329, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Predicate) < 0) __PYX_ERR(0, 1329, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Predicate = &__pyx_type_4kudu_6client_Predicate;
  __pyx_vtabptr_4kudu_6client_Row = &__pyx_vtable_4kudu_6client_Row;
  __pyx_vtable_4kudu_6client_Row.as_tuple = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_3Row_as_tuple;
  __pyx_vtable_4kudu_6client_Row.get_bool = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_bool;
  __pyx_vtable_4kudu_6client_Row.get_int8 = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_int8;
  __pyx_vtable_4kudu_6client_Row.get_int16 = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_int16;
  __pyx_vtable_4kudu_6client_Row.get_int32 = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_int32;
  __pyx_vtable_4kudu_6client_Row.get_int64 = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_int64;
  __pyx_vtable_4kudu_6client_Row.get_double = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_double;
  __pyx_vtable_4kudu_6client_Row.get_float = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_float;
  __pyx_vtable_4kudu_6client_Row.get_string = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_string;
  __pyx_vtable_4kudu_6client_Row.get_binary = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_binary;
  __pyx_vtable_4kudu_6client_Row.get_unixtime_micros = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_unixtime_micros;
  __pyx_vtable_4kudu_6client_Row.__pyx___get_unscaled_decimal = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row___get_unscaled_decimal;
  __pyx_vtable_4kudu_6client_Row.get_decimal = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_decimal;
  __pyx_vtable_4kudu_6client_Row.get_varchar = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_varchar;
  __pyx_vtable_4kudu_6client_Row.get_date = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_date;
  __pyx_vtable_4kudu_6client_Row.get_slot = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_get_slot;
  __pyx_vtable_4kudu_6client_Row.is_null = (int (*)(struct __pyx_obj_4kudu_6client_Row *, int))__pyx_f_4kudu_6client_3Row_is_null;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Row) < 0) __PYX_ERR(0, 1545, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Row.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Row.tp_dictoffset && __pyx_type_4kudu_6client_Row.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Row.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Row.tp_dict, __pyx_vtabptr_4kudu_6client_Row) < 0) __PYX_ERR(0, 1545, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Row, (PyObject *)&__pyx_type_4kudu_6client_Row) < 0) __PYX_ERR(0, 1545, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Row) < 0) __PYX_ERR(0, 1545, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Row = &__pyx_type_4kudu_6client_Row;
  __pyx_vtabptr_4kudu_6client_RowBatch = &__pyx_vtable_4kudu_6client_RowBatch;
  __pyx_vtable_4kudu_6client_RowBatch.get_row = (struct __pyx_obj_4kudu_6client_Row *(*)(struct __pyx_obj_4kudu_6client_RowBatch *, PyObject *))__pyx_f_4kudu_6client_8RowBatch_get_row;
  if (PyType_Ready(&__pyx_type_4kudu_6client_RowBatch) < 0) __PYX_ERR(0, 1699, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_RowBatch.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_RowBatch.tp_dictoffset && __pyx_type_4kudu_6client_RowBatch.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_RowBatch.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_RowBatch.tp_dict, __pyx_vtabptr_4kudu_6client_RowBatch) < 0) __PYX_ERR(0, 1699, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RowBatch, (PyObject *)&__pyx_type_4kudu_6client_RowBatch) < 0) __PYX_ERR(0, 1699, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_RowBatch) < 0) __PYX_ERR(0, 1699, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_RowBatch = &__pyx_type_4kudu_6client_RowBatch;
  __pyx_vtabptr_4kudu_6client_Scanner = &__pyx_vtable_4kudu_6client_Scanner;
  __pyx_vtable_4kudu_6client_Scanner.ensure_open = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Scanner *))__pyx_f_4kudu_6client_7Scanner_ensure_open;
  __pyx_vtable_4kudu_6client_Scanner.add_predicate = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Scanner *, struct __pyx_obj_4kudu_6client_Predicate *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_7Scanner_add_predicate;
  __pyx_vtable_4kudu_6client_Scanner.next_batch = (struct __pyx_obj_4kudu_6client_RowBatch *(*)(struct __pyx_obj_4kudu_6client_Scanner *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_7Scanner_next_batch;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Scanner) < 0) __PYX_ERR(0, 1741, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Scanner.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Scanner.tp_dictoffset && __pyx_type_4kudu_6client_Scanner.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Scanner.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Scanner.tp_dict, __pyx_vtabptr_4kudu_6client_Scanner) < 0) __PYX_ERR(0, 1741, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Scanner, (PyObject *)&__pyx_type_4kudu_6client_Scanner) < 0) __PYX_ERR(0, 1741, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Scanner) < 0) __PYX_ERR(0, 1741, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Scanner = &__pyx_type_4kudu_6client_Scanner;
  __pyx_vtabptr_4kudu_6client_ScanToken = &__pyx_vtable_4kudu_6client_ScanToken;
  __pyx_vtable_4kudu_6client_ScanToken._init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_ScanToken *, kudu::client::KuduScanToken *))__pyx_f_4kudu_6client_9ScanToken__init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_ScanToken) < 0) __PYX_ERR(0, 2269, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_ScanToken.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_ScanToken.tp_dictoffset && __pyx_type_4kudu_6client_ScanToken.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_ScanToken.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_ScanToken.tp_dict, __pyx_vtabptr_4kudu_6client_ScanToken) < 0) __PYX_ERR(0, 2269, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ScanToken, (PyObject *)&__pyx_type_4kudu_6client_ScanToken) < 0) __PYX_ERR(0, 2269, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_ScanToken) < 0) __PYX_ERR(0, 2269, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_ScanToken = &__pyx_type_4kudu_6client_ScanToken;
  __pyx_vtabptr_4kudu_6client_ScanTokenBuilder = &__pyx_vtable_4kudu_6client_ScanTokenBuilder;
  __pyx_vtable_4kudu_6client_ScanTokenBuilder.add_predicate = (PyObject *(*)(struct __pyx_obj_4kudu_6client_ScanTokenBuilder *, struct __pyx_obj_4kudu_6client_Predicate *, int __pyx_skip_dispatch))__pyx_f_4kudu_6client_16ScanTokenBuilder_add_predicate;
  if (PyType_Ready(&__pyx_type_4kudu_6client_ScanTokenBuilder) < 0) __PYX_ERR(0, 2351, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_ScanTokenBuilder.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_ScanTokenBuilder.tp_dictoffset && __pyx_type_4kudu_6client_ScanTokenBuilder.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_ScanTokenBuilder.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_ScanTokenBuilder.tp_dict, __pyx_vtabptr_4kudu_6client_ScanTokenBuilder) < 0) __PYX_ERR(0, 2351, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ScanTokenBuilder, (PyObject *)&__pyx_type_4kudu_6client_ScanTokenBuilder) < 0) __PYX_ERR(0, 2351, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_ScanTokenBuilder) < 0) __PYX_ERR(0, 2351, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_ScanTokenBuilder = &__pyx_type_4kudu_6client_ScanTokenBuilder;
  __pyx_vtabptr_4kudu_6client_Tablet = &__pyx_vtable_4kudu_6client_Tablet;
  __pyx_vtable_4kudu_6client_Tablet._init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Tablet *, kudu::client::KuduTablet const *))__pyx_f_4kudu_6client_6Tablet__init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Tablet) < 0) __PYX_ERR(0, 2705, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Tablet.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Tablet.tp_dictoffset && __pyx_type_4kudu_6client_Tablet.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Tablet.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Tablet.tp_dict, __pyx_vtabptr_4kudu_6client_Tablet) < 0) __PYX_ERR(0, 2705, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Tablet, (PyObject *)&__pyx_type_4kudu_6client_Tablet) < 0) __PYX_ERR(0, 2705, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Tablet) < 0) __PYX_ERR(0, 2705, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Tablet = &__pyx_type_4kudu_6client_Tablet;
  __pyx_vtabptr_4kudu_6client_Replica = &__pyx_vtable_4kudu_6client_Replica;
  __pyx_vtable_4kudu_6client_Replica._init = (PyObject *(*)(struct __pyx_obj_4kudu_6client_Replica *, kudu::client::KuduReplica const *))__pyx_f_4kudu_6client_7Replica__init;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Replica) < 0) __PYX_ERR(0, 2731, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Replica.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Replica.tp_dictoffset && __pyx_type_4kudu_6client_Replica.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Replica.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Replica.tp_dict, __pyx_vtabptr_4kudu_6client_Replica) < 0) __PYX_ERR(0, 2731, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Replica, (PyObject *)&__pyx_type_4kudu_6client_Replica) < 0) __PYX_ERR(0, 2731, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Replica) < 0) __PYX_ERR(0, 2731, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Replica = &__pyx_type_4kudu_6client_Replica;
  if (PyType_Ready(&__pyx_type_4kudu_6client_KuduError) < 0) __PYX_ERR(0, 2750, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_KuduError.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_KuduError.tp_dictoffset && __pyx_type_4kudu_6client_KuduError.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_KuduError.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_KuduError, (PyObject *)&__pyx_type_4kudu_6client_KuduError) < 0) __PYX_ERR(0, 2750, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_KuduError) < 0) __PYX_ERR(0, 2750, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_KuduError = &__pyx_type_4kudu_6client_KuduError;
  __pyx_vtabptr_4kudu_6client_WriteOperation = &__pyx_vtable_4kudu_6client_WriteOperation;
  __pyx_vtable_4kudu_6client_WriteOperation.add_to_session = (PyObject *(*)(struct __pyx_obj_4kudu_6client_WriteOperation *, struct __pyx_obj_4kudu_6client_Session *))__pyx_f_4kudu_6client_14WriteOperation_add_to_session;
  if (PyType_Ready(&__pyx_type_4kudu_6client_WriteOperation) < 0) __PYX_ERR(0, 2918, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_WriteOperation.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_WriteOperation.tp_dictoffset && __pyx_type_4kudu_6client_WriteOperation.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_WriteOperation.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_WriteOperation.tp_dict, __pyx_vtabptr_4kudu_6client_WriteOperation) < 0) __PYX_ERR(0, 2918, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_WriteOperation, (PyObject *)&__pyx_type_4kudu_6client_WriteOperation) < 0) __PYX_ERR(0, 2918, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_WriteOperation) < 0) __PYX_ERR(0, 2918, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_WriteOperation = &__pyx_type_4kudu_6client_WriteOperation;
  __pyx_vtabptr_4kudu_6client_Insert = &__pyx_vtable_4kudu_6client_Insert;
  __pyx_vtable_4kudu_6client_Insert.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_Insert.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Insert) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Insert.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Insert.tp_dictoffset && __pyx_type_4kudu_6client_Insert.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Insert.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Insert.tp_dict, __pyx_vtabptr_4kudu_6client_Insert) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Insert, (PyObject *)&__pyx_type_4kudu_6client_Insert) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Insert) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Insert = &__pyx_type_4kudu_6client_Insert;
  __pyx_vtabptr_4kudu_6client_InsertIgnore = &__pyx_vtable_4kudu_6client_InsertIgnore;
  __pyx_vtable_4kudu_6client_InsertIgnore.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_InsertIgnore.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_InsertIgnore) < 0) __PYX_ERR(0, 2956, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_InsertIgnore.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_InsertIgnore.tp_dictoffset && __pyx_type_4kudu_6client_InsertIgnore.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_InsertIgnore.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_InsertIgnore.tp_dict, __pyx_vtabptr_4kudu_6client_InsertIgnore) < 0) __PYX_ERR(0, 2956, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_InsertIgnore, (PyObject *)&__pyx_type_4kudu_6client_InsertIgnore) < 0) __PYX_ERR(0, 2956, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_InsertIgnore) < 0) __PYX_ERR(0, 2956, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_InsertIgnore = &__pyx_type_4kudu_6client_InsertIgnore;
  __pyx_vtabptr_4kudu_6client_Upsert = &__pyx_vtable_4kudu_6client_Upsert;
  __pyx_vtable_4kudu_6client_Upsert.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_Upsert.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Upsert) < 0) __PYX_ERR(0, 2967, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Upsert.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Upsert.tp_dictoffset && __pyx_type_4kudu_6client_Upsert.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Upsert.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Upsert.tp_dict, __pyx_vtabptr_4kudu_6client_Upsert) < 0) __PYX_ERR(0, 2967, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Upsert, (PyObject *)&__pyx_type_4kudu_6client_Upsert) < 0) __PYX_ERR(0, 2967, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Upsert) < 0) __PYX_ERR(0, 2967, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Upsert = &__pyx_type_4kudu_6client_Upsert;
  __pyx_vtabptr_4kudu_6client_Update = &__pyx_vtable_4kudu_6client_Update;
  __pyx_vtable_4kudu_6client_Update.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_Update.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Update) < 0) __PYX_ERR(0, 2977, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Update.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Update.tp_dictoffset && __pyx_type_4kudu_6client_Update.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Update.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Update.tp_dict, __pyx_vtabptr_4kudu_6client_Update) < 0) __PYX_ERR(0, 2977, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Update, (PyObject *)&__pyx_type_4kudu_6client_Update) < 0) __PYX_ERR(0, 2977, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Update) < 0) __PYX_ERR(0, 2977, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Update = &__pyx_type_4kudu_6client_Update;
  __pyx_vtabptr_4kudu_6client_UpdateIgnore = &__pyx_vtable_4kudu_6client_UpdateIgnore;
  __pyx_vtable_4kudu_6client_UpdateIgnore.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_UpdateIgnore.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_UpdateIgnore) < 0) __PYX_ERR(0, 2987, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_UpdateIgnore.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_UpdateIgnore.tp_dictoffset && __pyx_type_4kudu_6client_UpdateIgnore.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_UpdateIgnore.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_UpdateIgnore.tp_dict, __pyx_vtabptr_4kudu_6client_UpdateIgnore) < 0) __PYX_ERR(0, 2987, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_UpdateIgnore, (PyObject *)&__pyx_type_4kudu_6client_UpdateIgnore) < 0) __PYX_ERR(0, 2987, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_UpdateIgnore) < 0) __PYX_ERR(0, 2987, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_UpdateIgnore = &__pyx_type_4kudu_6client_UpdateIgnore;
  __pyx_vtabptr_4kudu_6client_Delete = &__pyx_vtable_4kudu_6client_Delete;
  __pyx_vtable_4kudu_6client_Delete.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_Delete.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_Delete) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_Delete.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_Delete.tp_dictoffset && __pyx_type_4kudu_6client_Delete.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_Delete.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_Delete.tp_dict, __pyx_vtabptr_4kudu_6client_Delete) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Delete, (PyObject *)&__pyx_type_4kudu_6client_Delete) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_Delete) < 0) __PYX_ERR(0, 2997, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_Delete = &__pyx_type_4kudu_6client_Delete;
  __pyx_vtabptr_4kudu_6client_DeleteIgnore = &__pyx_vtable_4kudu_6client_DeleteIgnore;
  __pyx_vtable_4kudu_6client_DeleteIgnore.__pyx_base = *__pyx_vtabptr_4kudu_6client_WriteOperation;
  __pyx_type_4kudu_6client_DeleteIgnore.tp_base = __pyx_ptype_4kudu_6client_WriteOperation;
  if (PyType_Ready(&__pyx_type_4kudu_6client_DeleteIgnore) < 0) __PYX_ERR(0, 3007, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client_DeleteIgnore.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client_DeleteIgnore.tp_dictoffset && __pyx_type_4kudu_6client_DeleteIgnore.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client_DeleteIgnore.tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  if (__Pyx_SetVtable(__pyx_type_4kudu_6client_DeleteIgnore.tp_dict, __pyx_vtabptr_4kudu_6client_DeleteIgnore) < 0) __PYX_ERR(0, 3007, __pyx_L1_error)
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DeleteIgnore, (PyObject *)&__pyx_type_4kudu_6client_DeleteIgnore) < 0) __PYX_ERR(0, 3007, __pyx_L1_error)
  if (__Pyx_setup_reduce((PyObject*)&__pyx_type_4kudu_6client_DeleteIgnore) < 0) __PYX_ERR(0, 3007, __pyx_L1_error)
  __pyx_ptype_4kudu_6client_DeleteIgnore = &__pyx_type_4kudu_6client_DeleteIgnore;
  if (PyType_Ready(&__pyx_type_4kudu_6client___pyx_scope_struct____iter__) < 0) __PYX_ERR(0, 1713, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client___pyx_scope_struct____iter__.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client___pyx_scope_struct____iter__.tp_dictoffset && __pyx_type_4kudu_6client___pyx_scope_struct____iter__.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client___pyx_scope_struct____iter__.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4kudu_6client___pyx_scope_struct____iter__ = &__pyx_type_4kudu_6client___pyx_scope_struct____iter__;
  if (PyType_Ready(&__pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection) < 0) __PYX_ERR(0, 1839, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection.tp_dictoffset && __pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4kudu_6client___pyx_scope_struct_1_set_selection = &__pyx_type_4kudu_6client___pyx_scope_struct_1_set_selection;
  if (PyType_Ready(&__pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode) < 0) __PYX_ERR(0, 1890, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode.tp_dictoffset && __pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4kudu_6client___pyx_scope_struct_2_set_read_mode = &__pyx_type_4kudu_6client___pyx_scope_struct_2_set_read_mode;
  if (PyType_Ready(&__pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches) < 0) __PYX_ERR(0, 2116, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches.tp_dictoffset && __pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4kudu_6client___pyx_scope_struct_3_xbatches = &__pyx_type_4kudu_6client___pyx_scope_struct_3_xbatches;
  if (PyType_Ready(&__pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode) < 0) __PYX_ERR(0, 2421, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode.tp_dictoffset && __pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4kudu_6client___pyx_scope_struct_4_set_read_mode = &__pyx_type_4kudu_6client___pyx_scope_struct_4_set_read_mode;
  if (PyType_Ready(&__pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection) < 0) __PYX_ERR(0, 2528, __pyx_L1_error)
  #if PY_VERSION_HEX < 0x030800B1
  __pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection.tp_print = 0;
  #endif
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection.tp_dictoffset && __pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection.tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  __pyx_ptype_4kudu_6client___pyx_scope_struct_5_set_selection = &__pyx_type_4kudu_6client___pyx_scope_struct_5_set_selection;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
  /*--- Type import code ---*/
  __pyx_t_1 = PyImport_ImportModule("kudu.schema"); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 24, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_4kudu_6schema_KuduType = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "KuduType", sizeof(struct __pyx_obj_4kudu_6schema_KuduType), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_KuduType) __PYX_ERR(3, 24, __pyx_L1_error)
  __pyx_ptype_4kudu_6schema_ColumnTypeAttributes = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "ColumnTypeAttributes", sizeof(struct __pyx_obj_4kudu_6schema_ColumnTypeAttributes), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_ColumnTypeAttributes) __PYX_ERR(3, 29, __pyx_L1_error)
  __pyx_ptype_4kudu_6schema_ColumnSchema = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "ColumnSchema", sizeof(struct __pyx_obj_4kudu_6schema_ColumnSchema), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_ColumnSchema) __PYX_ERR(3, 37, __pyx_L1_error)
  __pyx_ptype_4kudu_6schema_ColumnSpec = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "ColumnSpec", sizeof(struct __pyx_obj_4kudu_6schema_ColumnSpec), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_ColumnSpec) __PYX_ERR(3, 46, __pyx_L1_error)
  __pyx_ptype_4kudu_6schema_SchemaBuilder = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "SchemaBuilder", sizeof(struct __pyx_obj_4kudu_6schema_SchemaBuilder), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_SchemaBuilder) __PYX_ERR(3, 52, __pyx_L1_error)
  __pyx_ptype_4kudu_6schema_Schema = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "Schema", sizeof(struct __pyx_obj_4kudu_6schema_Schema), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_Schema) __PYX_ERR(3, 57, __pyx_L1_error)
  __pyx_vtabptr_4kudu_6schema_Schema = (struct __pyx_vtabstruct_4kudu_6schema_Schema*)__Pyx_GetVtable(__pyx_ptype_4kudu_6schema_Schema->tp_dict); if (unlikely(!__pyx_vtabptr_4kudu_6schema_Schema)) __PYX_ERR(3, 57, __pyx_L1_error)
  __pyx_ptype_4kudu_6schema_KuduValue = __Pyx_ImportType(__pyx_t_1, "kudu.schema", "KuduValue", sizeof(struct __pyx_obj_4kudu_6schema_KuduValue), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_4kudu_6schema_KuduValue) __PYX_ERR(3, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(5, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn);
   if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(6, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_variable_import_code(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __pyx_t_1 = PyImport_ImportModule("kudu.errors"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction(__pyx_t_1, "check_status", (void (**)(void))&__pyx_f_4kudu_6errors_check_status, "PyObject *(kudu::Status const &)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}


#if PY_MAJOR_VERSION < 3
#ifdef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC void
#else
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#endif
#else
#ifdef CYTHON_NO_PYINIT_EXPORT
#define __Pyx_PyMODINIT_FUNC PyObject *
#else
#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
#endif
#endif


#if PY_MAJOR_VERSION < 3
__Pyx_PyMODINIT_FUNC initclient(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initclient(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_client(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_client(void)
#if CYTHON_PEP489_MULTI_PHASE_INIT
{
  return PyModuleDef_Init(&__pyx_moduledef);
}
static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
    #if PY_VERSION_HEX >= 0x030700A1
    static PY_INT64_T main_interpreter_id = -1;
    PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
    if (main_interpreter_id == -1) {
        main_interpreter_id = current_id;
        return (unlikely(current_id == -1)) ? -1 : 0;
    } else if (unlikely(main_interpreter_id != current_id))
    #else
    static PyInterpreterState *main_interpreter = NULL;
    PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
    if (!main_interpreter) {
        main_interpreter = current_interpreter;
    } else if (unlikely(main_interpreter != current_interpreter))
    #endif
    {
        PyErr_SetString(
            PyExc_ImportError,
            "Interpreter change detected - this module can only be loaded into one interpreter per process.");
        return -1;
    }
    return 0;
}
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) {
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
            result = PyDict_SetItemString(moddict, to_name, value);
        }
        Py_DECREF(value);
    } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Clear();
    } else {
        result = -1;
    }
    return result;
}
static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    if (__Pyx_check_single_interpreter())
        return NULL;
    if (__pyx_m)
        return __Pyx_NewRef(__pyx_m);
    modname = PyObject_GetAttrString(spec, "name");
    if (unlikely(!modname)) goto bad;
    module = PyModule_NewObject(modname);
    Py_DECREF(modname);
    if (unlikely(!module)) goto bad;
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
    if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
    return module;
bad:
    Py_XDECREF(module);
    return NULL;
}


static CYTHON_SMALL_CODE int __pyx_pymod_exec_client(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'client' has already been imported. Re-initialisation is not supported.");
    return -1;
  }
  #elif PY_MAJOR_VERSION >= 3
  if (__pyx_m) return __Pyx_NewRef(__pyx_m);
  #endif
  #if CYTHON_REFNANNY
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
if (!__Pyx_RefNanny) {
  PyErr_Clear();
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
  if (!__Pyx_RefNanny)
      Py_FatalError("failed to import 'refnanny' module");
}
#endif
  __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_client(void)", 0);
  if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pxy_PyFrame_Initialize_Offsets
  __Pxy_PyFrame_Initialize_Offsets();
  #endif
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Module creation code ---*/
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  __pyx_m = __pyx_pyinit_module;
  Py_INCREF(__pyx_m);
  #else
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("client", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_b);
  __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_cython_runtime);
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_kudu__client) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "kudu.client")) {
      if (unlikely(PyDict_SetItemString(modules, "kudu.client", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error;
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error;
  /*--- Global type/function init code ---*/
  (void)__Pyx_modinit_global_init_code();
  (void)__Pyx_modinit_variable_export_code();
  (void)__Pyx_modinit_function_export_code();
  if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error;
  if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error;
  (void)__Pyx_modinit_variable_import_code();
  if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error;
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif

  /* "kudu/client.pyx":31
 * 
 * from libkudu_client cimport *
 * from kudu.compat import tobytes, frombytes, dict_iter             # <<<<<<<<<<<<<<
 * from kudu.schema cimport Schema, ColumnSchema, ColumnSpec, KuduValue, KuduType
 * from kudu.errors cimport check_status
 */
  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_tobytes);
  __Pyx_GIVEREF(__pyx_n_s_tobytes);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_tobytes);
  __Pyx_INCREF(__pyx_n_s_frombytes);
  __Pyx_GIVEREF(__pyx_n_s_frombytes);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_frombytes);
  __Pyx_INCREF(__pyx_n_s_dict_iter);
  __Pyx_GIVEREF(__pyx_n_s_dict_iter);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_dict_iter);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_kudu_compat, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_tobytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_tobytes, __pyx_t_1) < 0) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_frombytes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_frombytes, __pyx_t_1) < 0) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_dict_iter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_dict_iter, __pyx_t_1) < 0) __PYX_ERR(0, 31, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":34
 * from kudu.schema cimport Schema, ColumnSchema, ColumnSpec, KuduValue, KuduType
 * from kudu.errors cimport check_status
 * from kudu.util import to_unixtime_micros, from_unixtime_micros, \             # <<<<<<<<<<<<<<
 *     from_hybridtime, to_unscaled_decimal, from_unscaled_decimal, \
 *     unix_epoch_days_to_date, date_to_unix_epoch_days
 */
  __pyx_t_2 = PyList_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_to_unixtime_micros);
  __Pyx_GIVEREF(__pyx_n_s_to_unixtime_micros);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_to_unixtime_micros);
  __Pyx_INCREF(__pyx_n_s_from_unixtime_micros);
  __Pyx_GIVEREF(__pyx_n_s_from_unixtime_micros);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_from_unixtime_micros);
  __Pyx_INCREF(__pyx_n_s_from_hybridtime);
  __Pyx_GIVEREF(__pyx_n_s_from_hybridtime);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_from_hybridtime);
  __Pyx_INCREF(__pyx_n_s_to_unscaled_decimal);
  __Pyx_GIVEREF(__pyx_n_s_to_unscaled_decimal);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_to_unscaled_decimal);
  __Pyx_INCREF(__pyx_n_s_from_unscaled_decimal);
  __Pyx_GIVEREF(__pyx_n_s_from_unscaled_decimal);
  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_from_unscaled_decimal);
  __Pyx_INCREF(__pyx_n_s_unix_epoch_days_to_date);
  __Pyx_GIVEREF(__pyx_n_s_unix_epoch_days_to_date);
  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_unix_epoch_days_to_date);
  __Pyx_INCREF(__pyx_n_s_date_to_unix_epoch_days);
  __Pyx_GIVEREF(__pyx_n_s_date_to_unix_epoch_days);
  PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_date_to_unix_epoch_days);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_kudu_util, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_to_unixtime_micros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_to_unixtime_micros, __pyx_t_2) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_from_unixtime_micros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_from_unixtime_micros, __pyx_t_2) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_from_hybridtime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_from_hybridtime, __pyx_t_2) < 0) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_to_unscaled_decimal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_to_unscaled_decimal, __pyx_t_2) < 0) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_from_unscaled_decimal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_from_unscaled_decimal, __pyx_t_2) < 0) __PYX_ERR(0, 35, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_unix_epoch_days_to_date); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_unix_epoch_days_to_date, __pyx_t_2) < 0) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_date_to_unix_epoch_days); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_date_to_unix_epoch_days, __pyx_t_2) < 0) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":37
 *     from_hybridtime, to_unscaled_decimal, from_unscaled_decimal, \
 *     unix_epoch_days_to_date, date_to_unix_epoch_days
 * from errors import KuduException             # <<<<<<<<<<<<<<
 * 
 * import six
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_KuduException);
  __Pyx_GIVEREF(__pyx_n_s_KuduException);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_KuduException);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_errors, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_KuduException); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_KuduException, __pyx_t_1) < 0) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":39
 * from errors import KuduException
 * 
 * import six             # <<<<<<<<<<<<<<
 * 
 * # True if this python client was compiled with a
 */
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_six, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_six, __pyx_t_2) < 0) __PYX_ERR(0, 39, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":46
 * # except for EL6 environments.
 * IF PYKUDU_INT128_SUPPORTED == 1:
 *     CLIENT_SUPPORTS_DECIMAL = True             # <<<<<<<<<<<<<<
 * ELSE:
 *     CLIENT_SUPPORTS_DECIMAL = False
 */
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CLIENT_SUPPORTS_DECIMAL, Py_True) < 0) __PYX_ERR(0, 46, __pyx_L1_error)

  /* "kudu/client.pyx":50
 *     CLIENT_SUPPORTS_DECIMAL = False
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import pandas
 *     CLIENT_SUPPORTS_PANDAS = True
 */
  {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
    __Pyx_XGOTREF(__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_4);
    __Pyx_XGOTREF(__pyx_t_5);
    /*try:*/ {

      /* "kudu/client.pyx":51
 * 
 * try:
 *     import pandas             # <<<<<<<<<<<<<<
 *     CLIENT_SUPPORTS_PANDAS = True
 * except ImportError:
 */
      __pyx_t_2 = __Pyx_Import(__pyx_n_s_pandas, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L2_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_2) < 0) __PYX_ERR(0, 51, __pyx_L2_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "kudu/client.pyx":52
 * try:
 *     import pandas
 *     CLIENT_SUPPORTS_PANDAS = True             # <<<<<<<<<<<<<<
 * except ImportError:
 *     CLIENT_SUPPORTS_PANDAS = False
 */
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_CLIENT_SUPPORTS_PANDAS, Py_True) < 0) __PYX_ERR(0, 52, __pyx_L2_error)

      /* "kudu/client.pyx":50
 *     CLIENT_SUPPORTS_DECIMAL = False
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import pandas
 *     CLIENT_SUPPORTS_PANDAS = True
 */
    }
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L7_try_end;
    __pyx_L2_error:;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "kudu/client.pyx":53
 *     import pandas
 *     CLIENT_SUPPORTS_PANDAS = True
 * except ImportError:             # <<<<<<<<<<<<<<
 *     CLIENT_SUPPORTS_PANDAS = False
 * 
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("kudu.client", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_7) < 0) __PYX_ERR(0, 53, __pyx_L4_except_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_7);

      /* "kudu/client.pyx":54
 *     CLIENT_SUPPORTS_PANDAS = True
 * except ImportError:
 *     CLIENT_SUPPORTS_PANDAS = False             # <<<<<<<<<<<<<<
 * 
 * # Replica selection enums
 */
      if (PyDict_SetItem(__pyx_d, __pyx_n_s_CLIENT_SUPPORTS_PANDAS, Py_False) < 0) __PYX_ERR(0, 54, __pyx_L4_except_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L3_exception_handled;
    }
    goto __pyx_L4_except_error;
    __pyx_L4_except_error:;

    /* "kudu/client.pyx":50
 *     CLIENT_SUPPORTS_DECIMAL = False
 * 
 * try:             # <<<<<<<<<<<<<<
 *     import pandas
 *     CLIENT_SUPPORTS_PANDAS = True
 */
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    goto __pyx_L1_error;
    __pyx_L3_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_XGIVEREF(__pyx_t_4);
    __Pyx_XGIVEREF(__pyx_t_5);
    __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
    __pyx_L7_try_end:;
  }

  /* "kudu/client.pyx":57
 * 
 * # Replica selection enums
 * LEADER_ONLY = ReplicaSelection_Leader             # <<<<<<<<<<<<<<
 * CLOSEST_REPLICA = ReplicaSelection_Closest
 * FIRST_REPLICA = ReplicaSelection_First
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection( kudu::client::KuduClient::LEADER_ONLY); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_LEADER_ONLY, __pyx_t_7) < 0) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":58
 * # Replica selection enums
 * LEADER_ONLY = ReplicaSelection_Leader
 * CLOSEST_REPLICA = ReplicaSelection_Closest             # <<<<<<<<<<<<<<
 * FIRST_REPLICA = ReplicaSelection_First
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection( kudu::client::KuduClient::CLOSEST_REPLICA); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_CLOSEST_REPLICA, __pyx_t_7) < 0) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":59
 * LEADER_ONLY = ReplicaSelection_Leader
 * CLOSEST_REPLICA = ReplicaSelection_Closest
 * FIRST_REPLICA = ReplicaSelection_First             # <<<<<<<<<<<<<<
 * 
 * cdef dict _replica_selection_policies = {
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection( kudu::client::KuduClient::FIRST_REPLICA); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FIRST_REPLICA, __pyx_t_7) < 0) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":62
 * 
 * cdef dict _replica_selection_policies = {
 *     'leader': ReplicaSelection_Leader,             # <<<<<<<<<<<<<<
 *     'closest': ReplicaSelection_Closest,
 *     'first': ReplicaSelection_First
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection( kudu::client::KuduClient::LEADER_ONLY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_leader, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":63
 * cdef dict _replica_selection_policies = {
 *     'leader': ReplicaSelection_Leader,
 *     'closest': ReplicaSelection_Closest,             # <<<<<<<<<<<<<<
 *     'first': ReplicaSelection_First
 * }
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection( kudu::client::KuduClient::CLOSEST_REPLICA); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_closest, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":64
 *     'leader': ReplicaSelection_Leader,
 *     'closest': ReplicaSelection_Closest,
 *     'first': ReplicaSelection_First             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection( kudu::client::KuduClient::FIRST_REPLICA); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_first, __pyx_t_1) < 0) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_4kudu_6client__replica_selection_policies);
  __Pyx_DECREF_SET(__pyx_v_4kudu_6client__replica_selection_policies, ((PyObject*)__pyx_t_7));
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":68
 * 
 * # Read mode enums
 * READ_LATEST = ReadMode_Latest             # <<<<<<<<<<<<<<
 * READ_AT_SNAPSHOT = ReadMode_Snapshot
 * READ_YOUR_WRITES = ReadMode_ReadYourWrites
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode( kudu::client::KuduScanner::READ_LATEST); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_READ_LATEST, __pyx_t_7) < 0) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":69
 * # Read mode enums
 * READ_LATEST = ReadMode_Latest
 * READ_AT_SNAPSHOT = ReadMode_Snapshot             # <<<<<<<<<<<<<<
 * READ_YOUR_WRITES = ReadMode_ReadYourWrites
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode( kudu::client::KuduScanner::READ_AT_SNAPSHOT); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_READ_AT_SNAPSHOT, __pyx_t_7) < 0) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":70
 * READ_LATEST = ReadMode_Latest
 * READ_AT_SNAPSHOT = ReadMode_Snapshot
 * READ_YOUR_WRITES = ReadMode_ReadYourWrites             # <<<<<<<<<<<<<<
 * 
 * cdef dict _read_modes = {
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode( kudu::client::KuduScanner::READ_YOUR_WRITES); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_READ_YOUR_WRITES, __pyx_t_7) < 0) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":73
 * 
 * cdef dict _read_modes = {
 *     'latest': ReadMode_Latest,             # <<<<<<<<<<<<<<
 *     'snapshot': ReadMode_Snapshot,
 *     'read_your_writes': ReadMode_ReadYourWrites
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode( kudu::client::KuduScanner::READ_LATEST); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_latest, __pyx_t_1) < 0) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":74
 * cdef dict _read_modes = {
 *     'latest': ReadMode_Latest,
 *     'snapshot': ReadMode_Snapshot,             # <<<<<<<<<<<<<<
 *     'read_your_writes': ReadMode_ReadYourWrites
 * }
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode( kudu::client::KuduScanner::READ_AT_SNAPSHOT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_snapshot, __pyx_t_1) < 0) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":75
 *     'latest': ReadMode_Latest,
 *     'snapshot': ReadMode_Snapshot,
 *     'read_your_writes': ReadMode_ReadYourWrites             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode( kudu::client::KuduScanner::READ_YOUR_WRITES); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_read_your_writes, __pyx_t_1) < 0) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_4kudu_6client__read_modes);
  __Pyx_DECREF_SET(__pyx_v_4kudu_6client__read_modes, ((PyObject*)__pyx_t_7));
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":78
 * }
 * 
 * ENCRYPTION_OPTIONAL = EncryptionPolicy_Optional             # <<<<<<<<<<<<<<
 * ENCRYPTION_REQUIRED_REMOTE = EncryptionPolicy_RequiredRemote
 * ENCRYPTION_REQUIRED = EncryptionPolicy_Required
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy( kudu::client::KuduClientBuilder::EncryptionPolicy::OPTIONAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ENCRYPTION_OPTIONAL, __pyx_t_7) < 0) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":79
 * 
 * ENCRYPTION_OPTIONAL = EncryptionPolicy_Optional
 * ENCRYPTION_REQUIRED_REMOTE = EncryptionPolicy_RequiredRemote             # <<<<<<<<<<<<<<
 * ENCRYPTION_REQUIRED = EncryptionPolicy_Required
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy( kudu::client::KuduClientBuilder::EncryptionPolicy::REQUIRED_REMOTE); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ENCRYPTION_REQUIRED_REMOTE, __pyx_t_7) < 0) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":80
 * ENCRYPTION_OPTIONAL = EncryptionPolicy_Optional
 * ENCRYPTION_REQUIRED_REMOTE = EncryptionPolicy_RequiredRemote
 * ENCRYPTION_REQUIRED = EncryptionPolicy_Required             # <<<<<<<<<<<<<<
 * 
 * cdef dict _encryption_policies = {
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy( kudu::client::KuduClientBuilder::EncryptionPolicy::REQUIRED); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ENCRYPTION_REQUIRED, __pyx_t_7) < 0) __PYX_ERR(0, 80, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":83
 * 
 * cdef dict _encryption_policies = {
 *     'optional': EncryptionPolicy_Optional,             # <<<<<<<<<<<<<<
 *     'required_remote': EncryptionPolicy_RequiredRemote,
 *     'required': EncryptionPolicy_Required
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy( kudu::client::KuduClientBuilder::EncryptionPolicy::OPTIONAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_optional, __pyx_t_1) < 0) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":84
 * cdef dict _encryption_policies = {
 *     'optional': EncryptionPolicy_Optional,
 *     'required_remote': EncryptionPolicy_RequiredRemote,             # <<<<<<<<<<<<<<
 *     'required': EncryptionPolicy_Required
 * }
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy( kudu::client::KuduClientBuilder::EncryptionPolicy::REQUIRED_REMOTE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_required_remote, __pyx_t_1) < 0) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":85
 *     'optional': EncryptionPolicy_Optional,
 *     'required_remote': EncryptionPolicy_RequiredRemote,
 *     'required': EncryptionPolicy_Required             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy( kudu::client::KuduClientBuilder::EncryptionPolicy::REQUIRED); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_required, __pyx_t_1) < 0) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_4kudu_6client__encryption_policies);
  __Pyx_DECREF_SET(__pyx_v_4kudu_6client__encryption_policies, ((PyObject*)__pyx_t_7));
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":89
 * 
 * cdef dict _type_names = {
 *     KUDU_INT8 : "KUDU_INT8",             # <<<<<<<<<<<<<<
 *     KUDU_INT16 : "KUDU_INT16",
 *     KUDU_INT32 : "KUDU_INT32",
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::INT8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_INT8) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":90
 * cdef dict _type_names = {
 *     KUDU_INT8 : "KUDU_INT8",
 *     KUDU_INT16 : "KUDU_INT16",             # <<<<<<<<<<<<<<
 *     KUDU_INT32 : "KUDU_INT32",
 *     KUDU_INT64 : "KUDU_INT64",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::INT16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_INT16) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":91
 *     KUDU_INT8 : "KUDU_INT8",
 *     KUDU_INT16 : "KUDU_INT16",
 *     KUDU_INT32 : "KUDU_INT32",             # <<<<<<<<<<<<<<
 *     KUDU_INT64 : "KUDU_INT64",
 *     KUDU_STRING : "KUDU_STRING",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::INT32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_INT32) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":92
 *     KUDU_INT16 : "KUDU_INT16",
 *     KUDU_INT32 : "KUDU_INT32",
 *     KUDU_INT64 : "KUDU_INT64",             # <<<<<<<<<<<<<<
 *     KUDU_STRING : "KUDU_STRING",
 *     KUDU_BOOL : "KUDU_BOOL",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::INT64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_INT64) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":93
 *     KUDU_INT32 : "KUDU_INT32",
 *     KUDU_INT64 : "KUDU_INT64",
 *     KUDU_STRING : "KUDU_STRING",             # <<<<<<<<<<<<<<
 *     KUDU_BOOL : "KUDU_BOOL",
 *     KUDU_FLOAT : "KUDU_FLOAT",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::STRING); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_STRING) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":94
 *     KUDU_INT64 : "KUDU_INT64",
 *     KUDU_STRING : "KUDU_STRING",
 *     KUDU_BOOL : "KUDU_BOOL",             # <<<<<<<<<<<<<<
 *     KUDU_FLOAT : "KUDU_FLOAT",
 *     KUDU_DOUBLE : "KUDU_DOUBLE",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::BOOL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_BOOL) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":95
 *     KUDU_STRING : "KUDU_STRING",
 *     KUDU_BOOL : "KUDU_BOOL",
 *     KUDU_FLOAT : "KUDU_FLOAT",             # <<<<<<<<<<<<<<
 *     KUDU_DOUBLE : "KUDU_DOUBLE",
 *     KUDU_BINARY : "KUDU_BINARY",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::FLOAT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_FLOAT) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":96
 *     KUDU_BOOL : "KUDU_BOOL",
 *     KUDU_FLOAT : "KUDU_FLOAT",
 *     KUDU_DOUBLE : "KUDU_DOUBLE",             # <<<<<<<<<<<<<<
 *     KUDU_BINARY : "KUDU_BINARY",
 *     KUDU_UNIXTIME_MICROS : "KUDU_UNIXTIME_MICROS",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::DOUBLE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_DOUBLE) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":97
 *     KUDU_FLOAT : "KUDU_FLOAT",
 *     KUDU_DOUBLE : "KUDU_DOUBLE",
 *     KUDU_BINARY : "KUDU_BINARY",             # <<<<<<<<<<<<<<
 *     KUDU_UNIXTIME_MICROS : "KUDU_UNIXTIME_MICROS",
 *     KUDU_DECIMAL : "KUDU_DECIMAL",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::BINARY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 97, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_BINARY) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":98
 *     KUDU_DOUBLE : "KUDU_DOUBLE",
 *     KUDU_BINARY : "KUDU_BINARY",
 *     KUDU_UNIXTIME_MICROS : "KUDU_UNIXTIME_MICROS",             # <<<<<<<<<<<<<<
 *     KUDU_DECIMAL : "KUDU_DECIMAL",
 *     KUDU_VARCHAR : "KUDU_VARCHAR",
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::UNIXTIME_MICROS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_UNIXTIME_MICROS) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":99
 *     KUDU_BINARY : "KUDU_BINARY",
 *     KUDU_UNIXTIME_MICROS : "KUDU_UNIXTIME_MICROS",
 *     KUDU_DECIMAL : "KUDU_DECIMAL",             # <<<<<<<<<<<<<<
 *     KUDU_VARCHAR : "KUDU_VARCHAR",
 *     KUDU_DATE : "KUDU_DATE"
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::DECIMAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_DECIMAL) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":100
 *     KUDU_UNIXTIME_MICROS : "KUDU_UNIXTIME_MICROS",
 *     KUDU_DECIMAL : "KUDU_DECIMAL",
 *     KUDU_VARCHAR : "KUDU_VARCHAR",             # <<<<<<<<<<<<<<
 *     KUDU_DATE : "KUDU_DATE"
 * }
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::VARCHAR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_VARCHAR) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":101
 *     KUDU_DECIMAL : "KUDU_DECIMAL",
 *     KUDU_VARCHAR : "KUDU_VARCHAR",
 *     KUDU_DATE : "KUDU_DATE"             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType( kudu::client::KuduColumnSchema::DATE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_t_1, __pyx_n_s_KUDU_DATE) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_4kudu_6client__type_names);
  __Pyx_DECREF_SET(__pyx_v_4kudu_6client__type_names, ((PyObject*)__pyx_t_7));
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":105
 * 
 * # Range Partition Bound Type enums
 * EXCLUSIVE_BOUND = PartitionType_Exclusive             # <<<<<<<<<<<<<<
 * INCLUSIVE_BOUND = PartitionType_Inclusive
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound( kudu::client::KuduTableCreator::EXCLUSIVE_BOUND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXCLUSIVE_BOUND, __pyx_t_7) < 0) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":106
 * # Range Partition Bound Type enums
 * EXCLUSIVE_BOUND = PartitionType_Exclusive
 * INCLUSIVE_BOUND = PartitionType_Inclusive             # <<<<<<<<<<<<<<
 * 
 * cdef dict _partition_bound_types = {
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound( kudu::client::KuduTableCreator::INCLUSIVE_BOUND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_INCLUSIVE_BOUND, __pyx_t_7) < 0) __PYX_ERR(0, 106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":109
 * 
 * cdef dict _partition_bound_types = {
 *     'exclusive': PartitionType_Exclusive,             # <<<<<<<<<<<<<<
 *     'inclusive': PartitionType_Inclusive
 * }
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound( kudu::client::KuduTableCreator::EXCLUSIVE_BOUND); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_exclusive, __pyx_t_1) < 0) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":110
 * cdef dict _partition_bound_types = {
 *     'exclusive': PartitionType_Exclusive,
 *     'inclusive': PartitionType_Inclusive             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound( kudu::client::KuduTableCreator::INCLUSIVE_BOUND); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_inclusive, __pyx_t_1) < 0) __PYX_ERR(0, 109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_4kudu_6client__partition_bound_types);
  __Pyx_DECREF_SET(__pyx_v_4kudu_6client__partition_bound_types, ((PyObject*)__pyx_t_7));
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":113
 * }
 * 
 * def _check_convert_range_bound_type(bound):             # <<<<<<<<<<<<<<
 *     # Convert bounds types to constants and raise exception if invalid.
 *     def invalid_bound_type(bound_type):
 */
  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4kudu_6client_1_check_convert_range_bound_type, NULL, __pyx_n_s_kudu_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_check_convert_range_bound_type_2, __pyx_t_7) < 0) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":131
 *             invalid_bound_type(bound)
 * 
 * def _correct_pandas_data_type(dtype):             # <<<<<<<<<<<<<<
 *     """
 *     This method returns the correct Pandas data type for some data types that
 */
  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4kudu_6client_3_correct_pandas_data_type, NULL, __pyx_n_s_kudu_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_correct_pandas_data_type, __pyx_t_7) < 0) __PYX_ERR(0, 131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":165
 * 
 *     @staticmethod
 *     def from_seconds(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from fractional seconds.
 */
  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4kudu_6client_9TimeDelta_3from_seconds, NULL, __pyx_n_s_kudu_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_seconds, __pyx_t_7) < 0) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":164
 *         pass
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_seconds(seconds):
 *         """
 */
  __Pyx_GetNameInClass(__pyx_t_7, (PyObject *)__pyx_ptype_4kudu_6client_TimeDelta, __pyx_n_s_from_seconds); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_seconds, __pyx_t_1) < 0) __PYX_ERR(0, 165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":182
 * 
 *     @staticmethod
 *     def from_millis(int64_t ms):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer milliseconds.
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4kudu_6client_9TimeDelta_5from_millis, NULL, __pyx_n_s_kudu_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_millis, __pyx_t_1) < 0) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":181
 *         return result
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_millis(int64_t ms):
 *         """
 */
  __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_4kudu_6client_TimeDelta, __pyx_n_s_from_millis); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_millis, __pyx_t_7) < 0) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":199
 * 
 *     @staticmethod
 *     def from_micros(int64_t us):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer microseconds.
 */
  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4kudu_6client_9TimeDelta_7from_micros, NULL, __pyx_n_s_kudu_client); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_micros, __pyx_t_7) < 0) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":198
 *         return result
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_micros(int64_t us):
 *         """
 */
  __Pyx_GetNameInClass(__pyx_t_7, (PyObject *)__pyx_ptype_4kudu_6client_TimeDelta, __pyx_n_s_from_micros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_micros, __pyx_t_1) < 0) __PYX_ERR(0, 199, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":216
 * 
 *     @staticmethod
 *     def from_nanos(seconds):             # <<<<<<<<<<<<<<
 *         """
 *         Construct a new TimeDelta from integer nanoseconds.
 */
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4kudu_6client_9TimeDelta_9from_nanos, NULL, __pyx_n_s_kudu_client); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_nanos, __pyx_t_1) < 0) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":215
 *         return result
 * 
 *     @staticmethod             # <<<<<<<<<<<<<<
 *     def from_nanos(seconds):
 *         """
 */
  __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_4kudu_6client_TimeDelta, __pyx_n_s_from_nanos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem((PyObject *)__pyx_ptype_4kudu_6client_TimeDelta->tp_dict, __pyx_n_s_from_nanos, __pyx_t_7) < 0) __PYX_ERR(0, 216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  PyType_Modified(__pyx_ptype_4kudu_6client_TimeDelta);

  /* "kudu/client.pyx":296
 *                   rpc_timeout_ms=None, sasl_protocol_name=None,
 *                   require_authentication=False,
 *                   encryption_policy=ENCRYPTION_OPTIONAL):             # <<<<<<<<<<<<<<
 *         cdef:
 *             string c_addr
 */
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_ENCRYPTION_OPTIONAL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_k__5 = __pyx_t_7;
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":1211
 *         return result
 * 
 * class Partitioning(object):             # <<<<<<<<<<<<<<
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 */
  __pyx_t_7 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__95); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_7, __pyx_tuple__95, __pyx_n_s_Partitioning, __pyx_n_s_Partitioning, (PyObject *) NULL, __pyx_n_s_kudu_client, __pyx_kp_s_Argument_to_Client_create_table); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);

  /* "kudu/client.pyx":1214
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         self._hash_partitions = []
 *         self._range_partition_cols = None
 */
  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_12Partitioning_1__init__, 0, __pyx_n_s_Partitioning___init, NULL, __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_init, __pyx_t_2) < 0) __PYX_ERR(0, 1214, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1220
 *         self._range_partition_splits = []
 * 
 *     def add_hash_partitions(self, column_names, num_buckets, seed=None):             # <<<<<<<<<<<<<<
 *         """
 *         Adds a set of hash partitions to the table.
 */
  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_12Partitioning_3add_hash_partitions, 0, __pyx_n_s_Partitioning_add_hash_partitions, NULL, __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__100);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_add_hash_partitions, __pyx_t_2) < 0) __PYX_ERR(0, 1220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1249
 *         return self
 * 
 *     def set_range_partition_columns(self, column_names):             # <<<<<<<<<<<<<<
 *         """
 *         Sets the columns on which the table will be range-partitioned.
 */
  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_12Partitioning_5set_range_partition_columns, 0, __pyx_n_s_Partitioning_set_range_partition, NULL, __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_range_partition_columns, __pyx_t_2) < 0) __PYX_ERR(0, 1249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1271
 *         return self
 * 
 *     def add_range_partition(self, lower_bound=None,             # <<<<<<<<<<<<<<
 *                                   upper_bound=None,
 *                                   lower_bound_type='inclusive',
 */
  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_12Partitioning_7add_range_partition, 0, __pyx_n_s_Partitioning_add_range_partition, NULL, __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__105);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_add_range_partition, __pyx_t_2) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1308
 *         return self
 * 
 *     def add_range_partition_split(self, split_row):             # <<<<<<<<<<<<<<
 *         """
 *         Add a range partition split at the provided row.
 */
  __pyx_t_2 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4kudu_6client_12Partitioning_9add_range_partition_split, 0, __pyx_n_s_Partitioning_add_range_partition_2, NULL, __pyx_n_s_kudu_client, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_add_range_partition_split, __pyx_t_2) < 0) __PYX_ERR(0, 1308, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "kudu/client.pyx":1211
 *         return result
 * 
 * class Partitioning(object):             # <<<<<<<<<<<<<<
 *     """ Argument to Client.create_table(...) to describe table partitioning. """
 * 
 */
  __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_7, __pyx_n_s_Partitioning, __pyx_tuple__95, __pyx_t_1, NULL, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1211, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Partitioning, __pyx_t_2) < 0) __PYX_ERR(0, 1211, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":1349
 * 
 * 
 * FLUSH_AUTO_SYNC = FlushMode_AutoSync             # <<<<<<<<<<<<<<
 * FLUSH_AUTO_BACKGROUND = FlushMode_AutoBackground
 * FLUSH_MANUAL = FlushMode_Manual
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode( kudu::client::KuduSession::AUTO_FLUSH_SYNC); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLUSH_AUTO_SYNC, __pyx_t_7) < 0) __PYX_ERR(0, 1349, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":1350
 * 
 * FLUSH_AUTO_SYNC = FlushMode_AutoSync
 * FLUSH_AUTO_BACKGROUND = FlushMode_AutoBackground             # <<<<<<<<<<<<<<
 * FLUSH_MANUAL = FlushMode_Manual
 * 
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode( kudu::client::KuduSession::AUTO_FLUSH_BACKGROUND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLUSH_AUTO_BACKGROUND, __pyx_t_7) < 0) __PYX_ERR(0, 1350, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":1351
 * FLUSH_AUTO_SYNC = FlushMode_AutoSync
 * FLUSH_AUTO_BACKGROUND = FlushMode_AutoBackground
 * FLUSH_MANUAL = FlushMode_Manual             # <<<<<<<<<<<<<<
 * 
 * cdef dict _flush_modes = {
 */
  __pyx_t_7 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode( kudu::client::KuduSession::MANUAL_FLUSH); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLUSH_MANUAL, __pyx_t_7) < 0) __PYX_ERR(0, 1351, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "kudu/client.pyx":1354
 * 
 * cdef dict _flush_modes = {
 *     'manual': FlushMode_Manual,             # <<<<<<<<<<<<<<
 *     'sync': FlushMode_AutoSync,
 *     'background': FlushMode_AutoBackground
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode( kudu::client::KuduSession::MANUAL_FLUSH); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_manual, __pyx_t_1) < 0) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1355
 * cdef dict _flush_modes = {
 *     'manual': FlushMode_Manual,
 *     'sync': FlushMode_AutoSync,             # <<<<<<<<<<<<<<
 *     'background': FlushMode_AutoBackground
 * }
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode( kudu::client::KuduSession::AUTO_FLUSH_SYNC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_sync, __pyx_t_1) < 0) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "kudu/client.pyx":1356
 *     'manual': FlushMode_Manual,
 *     'sync': FlushMode_AutoSync,
 *     'background': FlushMode_AutoBackground             # <<<<<<<<<<<<<<
 * }
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode( kudu::client::KuduSession::AUTO_FLUSH_BACKGROUND); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_background, __pyx_t_1) < 0) __PYX_ERR(0, 1354, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_4kudu_6client__flush_modes);
  __Pyx_DECREF_SET(__pyx_v_4kudu_6client__flush_modes, ((PyObject*)__pyx_t_7));
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;

  /* "kudu/client.pyx":1
 * # Licensed to the Apache Software Foundation (ASF) under one             # <<<<<<<<<<<<<<
 * # or more contributor license agreements.  See the NOTICE file
 * # distributed with this work for additional information
 */
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_7) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

  /* "vector.from_py":45
 * 
 * @cname("__pyx_convert_vector_from_py_int")
 * cdef vector[X] __pyx_convert_vector_from_py_int(object o) except *:             # <<<<<<<<<<<<<<
 *     cdef vector[X] v
 *     for item in o:
 */

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init kudu.client", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_CLEAR(__pyx_m);
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init kudu.client");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  return (__pyx_m != NULL) ? 0 : -1;
  #elif PY_MAJOR_VERSION >= 3
  return __pyx_m;
  #else
  return;
  #endif
}

/* --- Runtime support code --- */
/* Refnanny */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule(modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, "RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

/* PyObjectGetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#endif

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

/* PyCFunctionFastCall */
#if CYTHON_FAST_PYCCALL
static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) {
    PyCFunctionObject *func = (PyCFunctionObject*)func_obj;
    PyCFunction meth = PyCFunction_GET_FUNCTION(func);
    PyObject *self = PyCFunction_GET_SELF(func);
    int flags = PyCFunction_GET_FLAGS(func);
    assert(PyCFunction_Check(func));
    assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS)));
    assert(nargs >= 0);
    assert(nargs == 0 || args != NULL);
    /* _PyCFunction_FastCallDict() must not be called with an exception set,
       because it may clear it (directly or indirectly) and so the
       caller loses its exception */
    assert(!PyErr_Occurred());
    if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) {
        return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL);
    } else {
        return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs);
    }
}
#endif

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL
static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
                                               PyObject *globals) {
    PyFrameObject *f;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject **fastlocals;
    Py_ssize_t i;
    PyObject *result;
    assert(globals != NULL);
    /* XXX Perhaps we should create a specialized
       PyFrame_New() that doesn't take locals, but does
       take builtins without sanity checking them.
       */
    assert(tstate != NULL);
    f = PyFrame_New(tstate, co, globals, NULL);
    if (f == NULL) {
        return NULL;
    }
    fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
    for (i = 0; i < na; i++) {
        Py_INCREF(*args);
        fastlocals[i] = *args++;
    }
    result = PyEval_EvalFrameEx(f,0);
    ++tstate->recursion_depth;
    Py_DECREF(f);
    --tstate->recursion_depth;
    return result;
}
#if 1 || PY_VERSION_HEX < 0x030600B1
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
    PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
    PyObject *globals = PyFunction_GET_GLOBALS(func);
    PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
    PyObject *closure;
#if PY_MAJOR_VERSION >= 3
    PyObject *kwdefs;
#endif
    PyObject *kwtuple, **k;
    PyObject **d;
    Py_ssize_t nd;
    Py_ssize_t nk;
    PyObject *result;
    assert(kwargs == NULL || PyDict_Check(kwargs));
    nk = kwargs ? PyDict_Size(kwargs) : 0;
    if (Py_EnterRecursiveCall((char*)" while calling a Python object")) {
        return NULL;
    }
    if (
#if PY_MAJOR_VERSION >= 3
            co->co_kwonlyargcount == 0 &&
#endif
            likely(kwargs == NULL || nk == 0) &&
            co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
        if (argdefs == NULL && co->co_argcount == nargs) {
            result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
            goto done;
        }
        else if (nargs == 0 && argdefs != NULL
                 && co->co_argcount == Py_SIZE(argdefs)) {
            /* function called with no arguments, but all parameters have
               a default value: use default values as arguments .*/
            args = &PyTuple_GET_ITEM(argdefs, 0);
            result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
            goto done;
        }
    }
    if (kwargs != NULL) {
        Py_ssize_t pos, i;
        kwtuple = PyTuple_New(2 * nk);
        if (kwtuple == NULL) {
            result = NULL;
            goto done;
        }
        k = &PyTuple_GET_ITEM(kwtuple, 0);
        pos = i = 0;
        while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
            Py_INCREF(k[i]);
            Py_INCREF(k[i+1]);
            i += 2;
        }
        nk = i / 2;
    }
    else {
        kwtuple = NULL;
        k = NULL;
    }
    closure = PyFunction_GET_CLOSURE(func);
#if PY_MAJOR_VERSION >= 3
    kwdefs = PyFunction_GET_KW_DEFAULTS(func);
#endif
    if (argdefs != NULL) {
        d = &PyTuple_GET_ITEM(argdefs, 0);
        nd = Py_SIZE(argdefs);
    }
    else {
        d = NULL;
        nd = 0;
    }
#if PY_MAJOR_VERSION >= 3
    result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, kwdefs, closure);
#else
    result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
                               args, (int)nargs,
                               k, (int)nk,
                               d, (int)nd, closure);
#endif
    Py_XDECREF(kwtuple);
done:
    Py_LeaveRecursiveCall();
    return result;
}
#endif
#endif

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = func->ob_type->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCall2Args */
static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) {
    PyObject *args, *result = NULL;
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyFunction_FastCall(function, args, 2);
    }
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(function)) {
        PyObject *args[2] = {arg1, arg2};
        return __Pyx_PyCFunction_FastCall(function, args, 2);
    }
    #endif
    args = PyTuple_New(2);
    if (unlikely(!args)) goto done;
    Py_INCREF(arg1);
    PyTuple_SET_ITEM(args, 0, arg1);
    Py_INCREF(arg2);
    PyTuple_SET_ITEM(args, 1, arg2);
    Py_INCREF(function);
    result = __Pyx_PyObject_Call(function, args, NULL);
    Py_DECREF(args);
    Py_DECREF(function);
done:
    return result;
}

/* PyObjectCallMethO */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

/* PyObjectCallOneArg */
#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, &arg, 1);
    }
#endif
    if (likely(PyCFunction_Check(func))) {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
#if CYTHON_FAST_PYCCALL
        } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) {
            return __Pyx_PyCFunction_FastCall(func, &arg, 1);
#endif
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_Pack(1, arg);
    if (unlikely(!args)) return NULL;
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
}
#endif

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    __Pyx_PyThreadState_declare
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_PyThreadState_assign
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* FetchCommonType */
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* fake_module;
    PyTypeObject* cached_type = NULL;
    fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI);
    if (!fake_module) return NULL;
    Py_INCREF(fake_module);
    cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name);
    if (cached_type) {
        if (!PyType_Check((PyObject*)cached_type)) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s is not a type object",
                type->tp_name);
            goto bad;
        }
        if (cached_type->tp_basicsize != type->tp_basicsize) {
            PyErr_Format(PyExc_TypeError,
                "Shared Cython type %.200s has the wrong size, try recompiling",
                type->tp_name);
            goto bad;
        }
    } else {
        if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
        PyErr_Clear();
        if (PyType_Ready(type) < 0) goto bad;
        if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0)
            goto bad;
        Py_INCREF(type);
        cached_type = type;
    }
done:
    Py_DECREF(fake_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}

/* CythonFunction */
#include <structmember.h>
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure)
{
    if (unlikely(op->func_doc == NULL)) {
        if (op->func.m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(op->func.m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp = op->func_doc;
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    op->func_doc = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_name == NULL)) {
#if PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(op->func.m_ml->ml_name);
#endif
        if (unlikely(op->func_name == NULL))
            return NULL;
    }
    Py_INCREF(op->func_name);
    return op->func_name;
}
static int
__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = op->func_name;
    Py_INCREF(value);
    op->func_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = op->func_qualname;
    Py_INCREF(value);
    op->func_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure)
{
    PyObject *self;
    self = m->func_closure;
    if (self == NULL)
        self = Py_None;
    Py_INCREF(self);
    return self;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    if (unlikely(op->func_dict == NULL)) {
        op->func_dict = PyDict_New();
        if (unlikely(op->func_dict == NULL))
            return NULL;
    }
    Py_INCREF(op->func_dict);
    return op->func_dict;
}
static int
__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
    if (unlikely(value == NULL)) {
        PyErr_SetString(PyExc_TypeError,
               "function's dictionary may not be deleted");
        return -1;
    }
    if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
               "setting function's dictionary to a non-dict");
        return -1;
    }
    tmp = op->func_dict;
    Py_INCREF(value);
    op->func_dict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
    int result = 0;
    PyObject *res = op->defaults_getter((PyObject *) op);
    if (unlikely(!res))
        return -1;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
    Py_INCREF(op->defaults_tuple);
    op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
    Py_INCREF(op->defaults_kwdict);
    #else
    op->defaults_tuple = PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = PySequence_ITEM(res, 1);
        if (unlikely(!op->defaults_kwdict)) result = -1;
    }
    #endif
    Py_DECREF(res);
    return result;
}
static int
__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyTuple_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_tuple;
    op->defaults_tuple = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_tuple;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_tuple;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value) {
        value = Py_None;
    } else if (value != Py_None && !PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    Py_INCREF(value);
    tmp = op->defaults_kwdict;
    op->defaults_kwdict = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->defaults_kwdict;
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL;
            result = op->defaults_kwdict;
        } else {
            result = Py_None;
        }
    }
    Py_INCREF(result);
    return result;
}
static int
__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) {
    PyObject* tmp;
    if (!value || value == Py_None) {
        value = NULL;
    } else if (!PyDict_Check(value)) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    tmp = op->func_annotations;
    op->func_annotations = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) {
    PyObject* result = op->func_annotations;
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyGetSetDef __pyx_CyFunction_getsets[] = {
    {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "__doc__",  (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
    {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
    {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
    {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0},
    {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
    {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
    {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
    {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
    {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
    {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
    {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0},
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromString(m->func.m_ml->ml_name);
#else
    return PyString_FromString(m->func.m_ml->ml_name);
#endif
}
static PyMethodDef __pyx_CyFunction_methods[] = {
    {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
    {0, 0, 0, 0}
};
#if PY_VERSION_HEX < 0x030500A0
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist)
#endif
static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type);
    if (op == NULL)
        return NULL;
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
    op->func.m_ml = ml;
    op->func.m_self = (PyObject *) op;
    Py_XINCREF(closure);
    op->func_closure = closure;
    Py_XINCREF(module);
    op->func.m_module = module;
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
    op->func_classobj = NULL;
    op->func_globals = globals;
    Py_INCREF(op->func_globals);
    Py_XINCREF(code);
    op->func_code = code;
    op->defaults_pyobjects = 0;
    op->defaults = NULL;
    op->defaults_tuple = NULL;
    op->defaults_kwdict = NULL;
    op->defaults_getter = NULL;
    op->func_annotations = NULL;
    PyObject_GC_Track(op);
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
    Py_CLEAR(m->func.m_module);
    Py_CLEAR(m->func_dict);
    Py_CLEAR(m->func_name);
    Py_CLEAR(m->func_qualname);
    Py_CLEAR(m->func_doc);
    Py_CLEAR(m->func_globals);
    Py_CLEAR(m->func_code);
    Py_CLEAR(m->func_classobj);
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_XDECREF(pydefaults[i]);
        PyObject_Free(m->defaults);
        m->defaults = NULL;
    }
    return 0;
}
static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    if (__Pyx_CyFunction_weakreflist(m) != NULL)
        PyObject_ClearWeakRefs((PyObject *) m);
    __Pyx_CyFunction_clear(m);
    PyObject_GC_Del(m);
}
static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
{
    PyObject_GC_UnTrack(m);
    __Pyx__CyFunction_dealloc(m);
}
static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
{
    Py_VISIT(m->func_closure);
    Py_VISIT(m->func.m_module);
    Py_VISIT(m->func_dict);
    Py_VISIT(m->func_name);
    Py_VISIT(m->func_qualname);
    Py_VISIT(m->func_doc);
    Py_VISIT(m->func_globals);
    Py_VISIT(m->func_code);
    Py_VISIT(m->func_classobj);
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    if (m->defaults) {
        PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
        int i;
        for (i = 0; i < m->defaults_pyobjects; i++)
            Py_VISIT(pydefaults[i]);
    }
    return 0;
}
static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type)
{
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) {
        Py_INCREF(func);
        return func;
    }
    if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) {
        if (type == NULL)
            type = (PyObject *)(Py_TYPE(obj));
        return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type)));
    }
    if (obj == Py_None)
        obj = NULL;
    return __Pyx_PyMethod_New(func, obj, type);
}
static PyObject*
__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
{
#if PY_MAJOR_VERSION >= 3
    return PyUnicode_FromFormat("<cyfunction %U at %p>",
                                op->func_qualname, (void *)op);
#else
    return PyString_FromFormat("<cyfunction %s at %p>",
                               PyString_AsString(op->func_qualname), (void *)op);
#endif
}
static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    Py_ssize_t size;
    switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
    case METH_VARARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0))
            return (*meth)(self, arg);
        break;
    case METH_VARARGS | METH_KEYWORDS:
        return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
    case METH_NOARGS:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 0))
                return (*meth)(self, NULL);
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
            size = PyTuple_GET_SIZE(arg);
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
                #endif
                result = (*meth)(self, arg0);
                #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
                Py_DECREF(arg0);
                #endif
                return result;
            }
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags in "
                        "__Pyx_CyFunction_Call. METH_OLDARGS is no "
                        "longer supported!");
        return NULL;
    }
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw);
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
        argc = PyTuple_GET_SIZE(args);
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
    0,
    0,
    0,
#if PY_MAJOR_VERSION < 3
    0,
#else
    0,
#endif
    (reprfunc) __Pyx_CyFunction_repr,
    0,
    0,
    0,
    0,
    __Pyx_CyFunction_CallAsMethod,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
    0,
    (traverseproc) __Pyx_CyFunction_traverse,
    (inquiry) __Pyx_CyFunction_clear,
    0,
#if PY_VERSION_HEX < 0x030500A0
    offsetof(__pyx_CyFunctionObject, func_weakreflist),
#else
    offsetof(PyCFunctionObject, m_weakreflist),
#endif
    0,
    0,
    __pyx_CyFunction_methods,
    __pyx_CyFunction_members,
    __pyx_CyFunction_getsets,
    0,
    0,
    __Pyx_CyFunction_descr_get,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
};
static int __pyx_CyFunction_init(void) {
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* PyObjectCallNoArg */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCall(func, NULL, 0);
    }
#endif
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func)))
#else
    if (likely(PyCFunction_Check(func)))
#endif
    {
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

/* DictGetItem */
#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
    PyObject *value;
    value = PyDict_GetItemWithError(d, key);
    if (unlikely(!value)) {
        if (!PyErr_Occurred()) {
            if (unlikely(PyTuple_Check(key))) {
                PyObject* args = PyTuple_Pack(1, key);
                if (likely(args)) {
                    PyErr_SetObject(PyExc_KeyError, args);
                    Py_DECREF(args);
                }
            } else {
                PyErr_SetObject(PyExc_KeyError, key);
            }
        }
        return NULL;
    }
    Py_INCREF(value);
    return value;
}
#endif

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) &&
           exc_info->previous_item != NULL)
    {
        exc_info = exc_info->previous_item;
    }
    return exc_info;
}
#endif

/* SaveResetException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    *type = exc_info->exc_type;
    *value = exc_info->exc_value;
    *tb = exc_info->exc_traceback;
    #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    #endif
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = type;
    exc_info->exc_value = value;
    exc_info->exc_traceback = tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
}
#endif

/* PyErrExceptionMatches */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
    PyObject *exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
    if (unlikely(PyTuple_Check(err)))
        return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    return __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
}
#endif

/* GetException */
#if CYTHON_FAST_THREAD_STATE
static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
#else
static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
#endif
{
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_FAST_THREAD_STATE
    #if CYTHON_USE_EXC_INFO_STACK
    {
        _PyErr_StackItem *exc_info = tstate->exc_info;
        tmp_type = exc_info->exc_type;
        tmp_value = exc_info->exc_value;
        tmp_tb = exc_info->exc_traceback;
        exc_info->exc_type = local_type;
        exc_info->exc_value = local_value;
        exc_info->exc_traceback = local_tb;
    }
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    #endif
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if (strchr(__Pyx_MODULE_NAME, '.')) {
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_MAJOR_VERSION < 3
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kwdict,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    while (PyDict_Next(kwdict, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if ((!kw_allowed) && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

/* PyDictVersioning */
#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
}
static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
    PyObject **dictptr = NULL;
    Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
    if (offset) {
#if CYTHON_COMPILING_IN_CPYTHON
        dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
#else
        dictptr = _PyObject_GetDictPtr(obj);
#endif
    }
    return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
}
static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
    PyObject *dict = Py_TYPE(obj)->tp_dict;
    if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
        return 0;
    return obj_dict_version == __Pyx_get_object_dict_version(obj);
}
#endif

/* WriteUnraisableException */
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback, CYTHON_UNUSED int nogil) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_PyThreadState_declare
#ifdef WITH_THREAD
    PyGILState_STATE state;
    if (nogil)
        state = PyGILState_Ensure();
#ifdef _MSC_VER
    else state = (PyGILState_STATE)-1;
#endif
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
#ifdef WITH_THREAD
    if (nogil)
        PyGILState_Release(state);
#endif
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
    return 0;
}

/* GetModuleGlobalName */
#if CYTHON_USE_DICT_VERSIONS
static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
#else
static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
#endif
{
    PyObject *result;
#if !CYTHON_AVOID_BORROWED_REFS
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1
    result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    } else if (unlikely(PyErr_Occurred())) {
        return NULL;
    }
#else
    result = PyDict_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
#endif
#else
    result = PyObject_GetItem(__pyx_d, name);
    __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
    if (likely(result)) {
        return __Pyx_NewRef(result);
    }
    PyErr_Clear();
#endif
    return __Pyx_GetBuiltinName(name);
}

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
                 Py_TYPE(obj)->tp_name, type->tp_name);
    return 0;
}

/* SwapException */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    #if CYTHON_USE_EXC_INFO_STACK
    _PyErr_StackItem *exc_info = tstate->exc_info;
    tmp_type = exc_info->exc_type;
    tmp_value = exc_info->exc_value;
    tmp_tb = exc_info->exc_traceback;
    exc_info->exc_type = *type;
    exc_info->exc_value = *value;
    exc_info->exc_traceback = *tb;
    #else
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
    #endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#else
static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}
#endif

/* RaiseTooManyValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

/* RaiseNeedMoreValuesToUnpack */
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

/* IterFinish */
static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_FAST_THREAD_STATE
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

/* UnpackItemEndCheck */
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyList_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              CYTHON_NCP_UNUSED int wraparound,
                                                              CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    Py_ssize_t wrapped_i = i;
    if (wraparound & unlikely(i < 0)) {
        wrapped_i += PyTuple_GET_SIZE(o);
    }
    if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
                                                     CYTHON_NCP_UNUSED int wraparound,
                                                     CYTHON_NCP_UNUSED int boundscheck) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) {
    PyObject *runerr;
    Py_ssize_t key_value;
    PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence;
    if (unlikely(!(m && m->sq_item))) {
        PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name);
        return NULL;
    }
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) {
    PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping;
    if (likely(m && m->mp_subscript)) {
        return m->mp_subscript(obj, key);
    }
    return __Pyx_PyObject_GetIndex(obj, key);
}
#endif

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* PyObjectGetMethod */
static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
    PyObject *attr;
#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
    PyTypeObject *tp = Py_TYPE(obj);
    PyObject *descr;
    descrgetfunc f = NULL;
    PyObject **dictptr, *dict;
    int meth_found = 0;
    assert (*method == NULL);
    if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
        attr = __Pyx_PyObject_GetAttrStr(obj, name);
        goto try_unpack;
    }
    if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
        return 0;
    }
    descr = _PyType_Lookup(tp, name);
    if (likely(descr != NULL)) {
        Py_INCREF(descr);
#if PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type)))
        #endif
#else
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr)))
        #endif
#endif
        {
            meth_found = 1;
        } else {
            f = Py_TYPE(descr)->tp_descr_get;
            if (f != NULL && PyDescr_IsData(descr)) {
                attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
                Py_DECREF(descr);
                goto try_unpack;
            }
        }
    }
    dictptr = _PyObject_GetDictPtr(obj);
    if (dictptr != NULL && (dict = *dictptr) != NULL) {
        Py_INCREF(dict);
        attr = __Pyx_PyDict_GetItemStr(dict, name);
        if (attr != NULL) {
            Py_INCREF(attr);
            Py_DECREF(dict);
            Py_XDECREF(descr);
            goto try_unpack;
        }
        Py_DECREF(dict);
    }
    if (meth_found) {
        *method = descr;
        return 1;
    }
    if (f != NULL) {
        attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
        Py_DECREF(descr);
        goto try_unpack;
    }
    if (descr != NULL) {
        *method = descr;
        return 0;
    }
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(name));
#endif
    return 0;
#else
    attr = __Pyx_PyObject_GetAttrStr(obj, name);
    goto try_unpack;
#endif
try_unpack:
#if CYTHON_UNPACK_METHODS
    if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
        PyObject *function = PyMethod_GET_FUNCTION(attr);
        Py_INCREF(function);
        Py_DECREF(attr);
        *method = function;
        return 1;
    }
#endif
    *method = attr;
    return 0;
}

/* PyObjectCallMethod1 */
static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) {
    PyObject *result = __Pyx_PyObject_CallOneArg(method, arg);
    Py_DECREF(method);
    return result;
}
static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) {
    PyObject *method = NULL, *result;
    int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
    if (likely(is_method)) {
        result = __Pyx_PyObject_Call2Args(method, obj, arg);
        Py_DECREF(method);
        return result;
    }
    if (unlikely(!method)) return NULL;
    return __Pyx__PyObject_CallMethod1(method, arg);
}

/* append */
static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) {
    if (likely(PyList_CheckExact(L))) {
        if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1;
    } else {
        PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x);
        if (unlikely(!retval))
            return -1;
        Py_DECREF(retval);
    }
    return 0;
}

/* None */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* UnpackUnboundCMethod */
static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
    PyObject *method;
    method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
    if (unlikely(!method))
        return -1;
    target->method = method;
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION >= 3
    if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
    #endif
    {
        PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
        target->func = descr->d_method->ml_meth;
        target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
    }
#endif
    return 0;
}

/* CallUnboundCMethod0 */
static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
    PyObject *args, *result = NULL;
    if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
#if CYTHON_ASSUME_SAFE_MACROS
    args = PyTuple_New(1);
    if (unlikely(!args)) goto bad;
    Py_INCREF(self);
    PyTuple_SET_ITEM(args, 0, self);
#else
    args = PyTuple_Pack(1, self);
    if (unlikely(!args)) goto bad;
#endif
    result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
    Py_DECREF(args);
bad:
    return result;
}

/* py_dict_items */
static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
    if (PY_MAJOR_VERSION >= 3)
        return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_items, d);
    else
        return PyDict_Items(d);
}

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) {
    (void)inplace;
    (void)zerodivision_check;
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
            x = (long)((unsigned long)a + b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        const digit* digits = ((PyLongObject*)op1)->ob_digit;
        const Py_ssize_t size = Py_SIZE(op1);
        if (likely(__Pyx_sst_abs(size) <= 1)) {
            a = likely(size) ? digits[0] : 0;
            if (size == -1) a = -a;
        } else {
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
#ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
#endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
        double a = PyFloat_AS_DOUBLE(op1);
            double result;
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* CallNextTpTraverse */
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
    PyTypeObject* type = Py_TYPE(obj);
    while (type && type->tp_traverse != current_tp_traverse)
        type = type->tp_base;
    while (type && type->tp_traverse == current_tp_traverse)
        type = type->tp_base;
    if (type && type->tp_traverse)
        return type->tp_traverse(obj, v, a);
    return 0;
}

/* CallNextTpClear */
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
    PyTypeObject* type = Py_TYPE(obj);
    while (type && type->tp_clear != current_tp_clear)
        type = type->tp_base;
    while (type && type->tp_clear == current_tp_clear)
        type = type->tp_base;
    if (type && type->tp_clear)
        type->tp_clear(obj);
}

/* PyObject_GenericGetAttrNoDict */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'%.50s' object has no attribute '%U'",
                 tp->tp_name, attr_name);
#else
                 "'%.50s' object has no attribute '%.400s'",
                 tp->tp_name, PyString_AS_STRING(attr_name));
#endif
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PyObject_GenericGetAttr */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* SetVTable */
static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
#if PY_VERSION_HEX >= 0x02070000
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
#else
    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
#endif
    if (!ob)
        goto bad;
    if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* SetupReduce */
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD;
#else
    if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD;
#endif
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD;
            ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD;
            ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD;
            setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD;
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD;
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto GOOD;
BAD:
    if (!PyErr_Occurred())
        PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name);
    ret = -1;
GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType
#define __PYX_HAVE_RT_ImportType
static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name,
    size_t size, enum __Pyx_ImportType_CheckSize check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
#ifdef Py_LIMITED_API
    PyObject *py_basicsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#ifndef Py_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if ((size_t)basicsize < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) {
        PyOS_snprintf(warning, sizeof(warning),
            "%s.%s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize);
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
    }
    return (PyTypeObject *)result;
bad:
    Py_XDECREF(result);
    return NULL;
}
#endif

/* GetVTable */
static void* __Pyx_GetVtable(PyObject *dict) {
    void* ptr;
    PyObject *ob = PyObject_GetItem(dict, __pyx_n_s_pyx_vtable);
    if (!ob)
        goto bad;
#if PY_VERSION_HEX >= 0x02070000
    ptr = PyCapsule_GetPointer(ob, 0);
#else
    ptr = PyCObject_AsVoidPtr(ob);
#endif
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* ImportFrom */
static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

/* GetNameInClass */
static PyObject *__Pyx_GetGlobalNameAfterAttributeLookup(PyObject *name) {
    PyObject *result;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    __Pyx_GetModuleGlobalNameUncached(result, name);
    return result;
}
static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) {
    PyObject *result;
    result = __Pyx_PyObject_GetAttrStr(nmspace, name);
    if (!result) {
        result = __Pyx_GetGlobalNameAfterAttributeLookup(name);
    }
    return result;
}

/* CalculateMetaclass */
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
    Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
    for (i=0; i < nbases; i++) {
        PyTypeObject *tmptype;
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
        tmptype = Py_TYPE(tmp);
#if PY_MAJOR_VERSION < 3
        if (tmptype == &PyClass_Type)
            continue;
#endif
        if (!metaclass) {
            metaclass = tmptype;
            continue;
        }
        if (PyType_IsSubtype(metaclass, tmptype))
            continue;
        if (PyType_IsSubtype(tmptype, metaclass)) {
            metaclass = tmptype;
            continue;
        }
        PyErr_SetString(PyExc_TypeError,
                        "metaclass conflict: "
                        "the metaclass of a derived class "
                        "must be a (non-strict) subclass "
                        "of the metaclasses of all its bases");
        return NULL;
    }
    if (!metaclass) {
#if PY_MAJOR_VERSION < 3
        metaclass = &PyClass_Type;
#else
        metaclass = &PyType_Type;
#endif
    }
    Py_INCREF((PyObject*) metaclass);
    return (PyObject*) metaclass;
}

/* Py3ClassCreate */
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
    PyObject *ns;
    if (metaclass) {
        PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
        if (prep) {
            PyObject *pargs = PyTuple_Pack(2, name, bases);
            if (unlikely(!pargs)) {
                Py_DECREF(prep);
                return NULL;
            }
            ns = PyObject_Call(prep, pargs, mkw);
            Py_DECREF(prep);
            Py_DECREF(pargs);
        } else {
            if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
                return NULL;
            PyErr_Clear();
            ns = PyDict_New();
        }
    } else {
        ns = PyDict_New();
    }
    if (unlikely(!ns))
        return NULL;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
    return ns;
bad:
    Py_DECREF(ns);
    return NULL;
}
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
                                      PyObject *dict, PyObject *mkw,
                                      int calculate_metaclass, int allow_py2_metaclass) {
    PyObject *result, *margs;
    PyObject *owned_metaclass = NULL;
    if (allow_py2_metaclass) {
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
        if (owned_metaclass) {
            metaclass = owned_metaclass;
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
            PyErr_Clear();
        } else {
            return NULL;
        }
    }
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
        Py_XDECREF(owned_metaclass);
        if (unlikely(!metaclass))
            return NULL;
        owned_metaclass = metaclass;
    }
    margs = PyTuple_Pack(3, name, bases, dict);
    if (unlikely(!margs)) {
        result = NULL;
    } else {
        result = PyObject_Call(metaclass, margs, mkw);
        Py_DECREF(margs);
    }
    Py_XDECREF(owned_metaclass);
    return result;
}

/* CLineInTraceback */
#ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    if (unlikely(!__pyx_cython_runtime)) {
        return c_line;
    }
    __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
#if CYTHON_COMPILING_IN_CPYTHON
    cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
    if (likely(cython_runtime_dict)) {
        __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            use_cline, *cython_runtime_dict,
            __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
    } else
#endif
    {
      PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = start + (end - start) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(filename);
    #else
    py_srcfile = PyUnicode_FromString(filename);
    #endif
    if (!py_srcfile) goto bad;
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    Py_DECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(enum  kudu::client::KuduClient::ReplicaSelection value) {
    const enum  kudu::client::KuduClient::ReplicaSelection neg_one = (enum  kudu::client::KuduClient::ReplicaSelection) ((enum  kudu::client::KuduClient::ReplicaSelection) 0 - (enum  kudu::client::KuduClient::ReplicaSelection) 1), const_zero = (enum  kudu::client::KuduClient::ReplicaSelection) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum  kudu::client::KuduClient::ReplicaSelection),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(enum  kudu::client::KuduScanner::ReadMode value) {
    const enum  kudu::client::KuduScanner::ReadMode neg_one = (enum  kudu::client::KuduScanner::ReadMode) ((enum  kudu::client::KuduScanner::ReadMode) 0 - (enum  kudu::client::KuduScanner::ReadMode) 1), const_zero = (enum  kudu::client::KuduScanner::ReadMode) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  kudu::client::KuduScanner::ReadMode) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum  kudu::client::KuduScanner::ReadMode),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy(enum  kudu::client::KuduClientBuilder::EncryptionPolicy value) {
    const enum  kudu::client::KuduClientBuilder::EncryptionPolicy neg_one = (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) ((enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 0 - (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 1), const_zero = (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduColumnSchema_3a__3a_DataType(enum  kudu::client::KuduColumnSchema::DataType value) {
    const enum  kudu::client::KuduColumnSchema::DataType neg_one = (enum  kudu::client::KuduColumnSchema::DataType) ((enum  kudu::client::KuduColumnSchema::DataType) 0 - (enum  kudu::client::KuduColumnSchema::DataType) 1), const_zero = (enum  kudu::client::KuduColumnSchema::DataType) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  kudu::client::KuduColumnSchema::DataType) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum  kudu::client::KuduColumnSchema::DataType) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduColumnSchema::DataType) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  kudu::client::KuduColumnSchema::DataType) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduColumnSchema::DataType) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum  kudu::client::KuduColumnSchema::DataType),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(enum  kudu::client::KuduTableCreator::RangePartitionBound value) {
    const enum  kudu::client::KuduTableCreator::RangePartitionBound neg_one = (enum  kudu::client::KuduTableCreator::RangePartitionBound) ((enum  kudu::client::KuduTableCreator::RangePartitionBound) 0 - (enum  kudu::client::KuduTableCreator::RangePartitionBound) 1), const_zero = (enum  kudu::client::KuduTableCreator::RangePartitionBound) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound),
                                     little, !is_unsigned);
    }
}

/* CIntFromPyVerify */
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
    __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
    {\
        func_type value = func_value;\
        if (sizeof(target_type) < sizeof(func_type)) {\
            if (unlikely(value != (func_type) (target_type) value)) {\
                func_type zero = 0;\
                if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
                    return (target_type) -1;\
                if (is_unsigned && unlikely(value < zero))\
                    goto raise_neg_overflow;\
                else\
                    goto raise_overflow;\
            }\
        }\
        return (target_type) value;\
    }

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(enum  kudu::client::KuduSession::FlushMode value) {
    const enum  kudu::client::KuduSession::FlushMode neg_one = (enum  kudu::client::KuduSession::FlushMode) ((enum  kudu::client::KuduSession::FlushMode) 0 - (enum  kudu::client::KuduSession::FlushMode) 1), const_zero = (enum  kudu::client::KuduSession::FlushMode) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(enum  kudu::client::KuduSession::FlushMode) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(enum  kudu::client::KuduSession::FlushMode),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int64_t(int64_t value) {
    const int64_t neg_one = (int64_t) ((int64_t) 0 - (int64_t) 1), const_zero = (int64_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int64_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int64_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int64_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) {
    const uint64_t neg_one = (uint64_t) ((uint64_t) 0 - (uint64_t) 1), const_zero = (uint64_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint64_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint64_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value) {
    const uint16_t neg_one = (uint16_t) ((uint16_t) 0 - (uint16_t) 1), const_zero = (uint16_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint16_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint16_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint16_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(uint16_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(uint16_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint16_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int8_t(int8_t value) {
    const int8_t neg_one = (int8_t) ((int8_t) 0 - (int8_t) 1), const_zero = (int8_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int8_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int8_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int8_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int8_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int8_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int8_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int16_t(int16_t value) {
    const int16_t neg_one = (int16_t) ((int16_t) 0 - (int16_t) 1), const_zero = (int16_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int16_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int16_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int16_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int16_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int16_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int16_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int32_t(int32_t value) {
    const int32_t neg_one = (int32_t) ((int32_t) 0 - (int32_t) 1), const_zero = (int32_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int32_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int32_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int32_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int32_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int32_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int32_t),
                                     little, !is_unsigned);
    }
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_kudu_3a__3a_int128_t(kudu::int128_t value) {
    const kudu::int128_t neg_one = (kudu::int128_t) ((kudu::int128_t) 0 - (kudu::int128_t) 1), const_zero = (kudu::int128_t) 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(kudu::int128_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(kudu::int128_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(kudu::int128_t) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(kudu::int128_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(kudu::int128_t) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(kudu::int128_t),
                                     little, !is_unsigned);
    }
}

/* CIntFromPy */
static CYTHON_INLINE int64_t __Pyx_PyInt_As_int64_t(PyObject *x) {
    const int64_t neg_one = (int64_t) ((int64_t) 0 - (int64_t) 1), const_zero = (int64_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int64_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int64_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int64_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int64_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int64_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(int64_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) >= 2 * PyLong_SHIFT) {
                            return (int64_t) (((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int64_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) >= 3 * PyLong_SHIFT) {
                            return (int64_t) (((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int64_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) >= 4 * PyLong_SHIFT) {
                            return (int64_t) (((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int64_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int64_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int64_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int64_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int64_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int64_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int64_t) (((int64_t)-1)*(((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int64_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int64_t) ((((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int64_t) (((int64_t)-1)*(((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int64_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int64_t) ((((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int64_t) (((int64_t)-1)*(((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int64_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int64_t) ((((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int64_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int64_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int64_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int64_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int64_t) -1;
        }
    } else {
        int64_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int64_t) -1;
        val = __Pyx_PyInt_As_int64_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int64_t");
    return (int64_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int64_t");
    return (int64_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
    const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0])
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) {
                            return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) {
                            return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) {
                            return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                            return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                            return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) {
                            return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

/* CIntFromPy */
static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
    const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(size_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) {
                            return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) {
                            return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) {
                            return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (size_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(size_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (size_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                            return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                            return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) {
                            return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(size_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            size_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (size_t) -1;
        }
    } else {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) {
    const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0])
                case 2:
                    if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) {
                            return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) {
                            return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) {
                            return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (unsigned int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(unsigned int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (unsigned int) 0;
                case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(unsigned int,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                            return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                            return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) {
                            return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(unsigned int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned int val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned int) -1;
        }
    } else {
        unsigned int val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (unsigned int) -1;
        val = __Pyx_PyInt_As_unsigned_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned int");
    return (unsigned int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned int");
    return (unsigned int) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum  kudu::client::KuduClientBuilder::EncryptionPolicy __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy(PyObject *x) {
    const enum  kudu::client::KuduClientBuilder::EncryptionPolicy neg_one = (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) ((enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 0 - (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 1), const_zero = (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) >= 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) (((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) >= 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) (((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) >= 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) (((((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) (((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)-1)*(((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) ((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) (((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)-1)*(((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) ((((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) (((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)-1)*(((((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) ((((((((((enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClientBuilder::EncryptionPolicy)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduClientBuilder::EncryptionPolicy) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClientBuilder::EncryptionPolicy, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum  kudu::client::KuduClientBuilder::EncryptionPolicy val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) -1;
        }
    } else {
        enum  kudu::client::KuduClientBuilder::EncryptionPolicy val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) -1;
        val = __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClientBuilder_3a__3a_EncryptionPolicy(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum  kudu::client::KuduClientBuilder::EncryptionPolicy");
    return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum  kudu::client::KuduClientBuilder::EncryptionPolicy");
    return (enum  kudu::client::KuduClientBuilder::EncryptionPolicy) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum  kudu::client::KuduTableCreator::RangePartitionBound __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(PyObject *x) {
    const enum  kudu::client::KuduTableCreator::RangePartitionBound neg_one = (enum  kudu::client::KuduTableCreator::RangePartitionBound) ((enum  kudu::client::KuduTableCreator::RangePartitionBound) 0 - (enum  kudu::client::KuduTableCreator::RangePartitionBound) 1), const_zero = (enum  kudu::client::KuduTableCreator::RangePartitionBound) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduTableCreator::RangePartitionBound) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) >= 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) (((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) >= 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) (((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) >= 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) (((((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum  kudu::client::KuduTableCreator::RangePartitionBound) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduTableCreator::RangePartitionBound) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) (((enum  kudu::client::KuduTableCreator::RangePartitionBound)-1)*(((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) ((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) (((enum  kudu::client::KuduTableCreator::RangePartitionBound)-1)*(((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) ((((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) (((enum  kudu::client::KuduTableCreator::RangePartitionBound)-1)*(((((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduTableCreator::RangePartitionBound, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) ((((((((((enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduTableCreator::RangePartitionBound)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduTableCreator::RangePartitionBound, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduTableCreator::RangePartitionBound) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduTableCreator::RangePartitionBound, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum  kudu::client::KuduTableCreator::RangePartitionBound val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum  kudu::client::KuduTableCreator::RangePartitionBound) -1;
        }
    } else {
        enum  kudu::client::KuduTableCreator::RangePartitionBound val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum  kudu::client::KuduTableCreator::RangePartitionBound) -1;
        val = __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduTableCreator_3a__3a_RangePartitionBound(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum  kudu::client::KuduTableCreator::RangePartitionBound");
    return (enum  kudu::client::KuduTableCreator::RangePartitionBound) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum  kudu::client::KuduTableCreator::RangePartitionBound");
    return (enum  kudu::client::KuduTableCreator::RangePartitionBound) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int8_t __Pyx_PyInt_As_int8_t(PyObject *x) {
    const int8_t neg_one = (int8_t) ((int8_t) 0 - (int8_t) 1), const_zero = (int8_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int8_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int8_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int8_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int8_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int8_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(int8_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) >= 2 * PyLong_SHIFT) {
                            return (int8_t) (((((int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int8_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) >= 3 * PyLong_SHIFT) {
                            return (int8_t) (((((((int8_t)digits[2]) << PyLong_SHIFT) | (int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int8_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) >= 4 * PyLong_SHIFT) {
                            return (int8_t) (((((((((int8_t)digits[3]) << PyLong_SHIFT) | (int8_t)digits[2]) << PyLong_SHIFT) | (int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int8_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int8_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int8_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int8_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int8_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int8_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int8_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int8_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int8_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int8_t) (((int8_t)-1)*(((((int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int8_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int8_t) ((((((int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int8_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int8_t) (((int8_t)-1)*(((((((int8_t)digits[2]) << PyLong_SHIFT) | (int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int8_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int8_t) ((((((((int8_t)digits[2]) << PyLong_SHIFT) | (int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int8_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int8_t) (((int8_t)-1)*(((((((((int8_t)digits[3]) << PyLong_SHIFT) | (int8_t)digits[2]) << PyLong_SHIFT) | (int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int8_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int8_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int8_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int8_t) ((((((((((int8_t)digits[3]) << PyLong_SHIFT) | (int8_t)digits[2]) << PyLong_SHIFT) | (int8_t)digits[1]) << PyLong_SHIFT) | (int8_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int8_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int8_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int8_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int8_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int8_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int8_t) -1;
        }
    } else {
        int8_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int8_t) -1;
        val = __Pyx_PyInt_As_int8_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int8_t");
    return (int8_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int8_t");
    return (int8_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int16_t __Pyx_PyInt_As_int16_t(PyObject *x) {
    const int16_t neg_one = (int16_t) ((int16_t) 0 - (int16_t) 1), const_zero = (int16_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int16_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int16_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int16_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int16_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int16_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(int16_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) >= 2 * PyLong_SHIFT) {
                            return (int16_t) (((((int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int16_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) >= 3 * PyLong_SHIFT) {
                            return (int16_t) (((((((int16_t)digits[2]) << PyLong_SHIFT) | (int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int16_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) >= 4 * PyLong_SHIFT) {
                            return (int16_t) (((((((((int16_t)digits[3]) << PyLong_SHIFT) | (int16_t)digits[2]) << PyLong_SHIFT) | (int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int16_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int16_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int16_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int16_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int16_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int16_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int16_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int16_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int16_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int16_t) (((int16_t)-1)*(((((int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int16_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int16_t) ((((((int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int16_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int16_t) (((int16_t)-1)*(((((((int16_t)digits[2]) << PyLong_SHIFT) | (int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int16_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int16_t) ((((((((int16_t)digits[2]) << PyLong_SHIFT) | (int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int16_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int16_t) (((int16_t)-1)*(((((((((int16_t)digits[3]) << PyLong_SHIFT) | (int16_t)digits[2]) << PyLong_SHIFT) | (int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int16_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int16_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int16_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int16_t) ((((((((((int16_t)digits[3]) << PyLong_SHIFT) | (int16_t)digits[2]) << PyLong_SHIFT) | (int16_t)digits[1]) << PyLong_SHIFT) | (int16_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int16_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int16_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int16_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int16_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int16_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int16_t) -1;
        }
    } else {
        int16_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int16_t) -1;
        val = __Pyx_PyInt_As_int16_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int16_t");
    return (int16_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int16_t");
    return (int16_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE int32_t __Pyx_PyInt_As_int32_t(PyObject *x) {
    const int32_t neg_one = (int32_t) ((int32_t) 0 - (int32_t) 1), const_zero = (int32_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int32_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int32_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int32_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int32_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(int32_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(int32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) >= 2 * PyLong_SHIFT) {
                            return (int32_t) (((((int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) >= 3 * PyLong_SHIFT) {
                            return (int32_t) (((((((int32_t)digits[2]) << PyLong_SHIFT) | (int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) >= 4 * PyLong_SHIFT) {
                            return (int32_t) (((((((((int32_t)digits[3]) << PyLong_SHIFT) | (int32_t)digits[2]) << PyLong_SHIFT) | (int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int32_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(int32_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int32_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int32_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (int32_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(int32_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(int32_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(int32_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int32_t) (((int32_t)-1)*(((((int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(int32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (int32_t) ((((((int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(int32_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int32_t) (((int32_t)-1)*(((((((int32_t)digits[2]) << PyLong_SHIFT) | (int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(int32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (int32_t) ((((((((int32_t)digits[2]) << PyLong_SHIFT) | (int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(int32_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int32_t) (((int32_t)-1)*(((((((((int32_t)digits[3]) << PyLong_SHIFT) | (int32_t)digits[2]) << PyLong_SHIFT) | (int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(int32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(int32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(int32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (int32_t) ((((((((((int32_t)digits[3]) << PyLong_SHIFT) | (int32_t)digits[2]) << PyLong_SHIFT) | (int32_t)digits[1]) << PyLong_SHIFT) | (int32_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(int32_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(int32_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(int32_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(int32_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int32_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int32_t) -1;
        }
    } else {
        int32_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (int32_t) -1;
        val = __Pyx_PyInt_As_int32_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int32_t");
    return (int32_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int32_t");
    return (int32_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum  kudu::client::KuduSession::FlushMode __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(PyObject *x) {
    const enum  kudu::client::KuduSession::FlushMode neg_one = (enum  kudu::client::KuduSession::FlushMode) ((enum  kudu::client::KuduSession::FlushMode) 0 - (enum  kudu::client::KuduSession::FlushMode) 1), const_zero = (enum  kudu::client::KuduSession::FlushMode) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum  kudu::client::KuduSession::FlushMode) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum  kudu::client::KuduSession::FlushMode) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduSession::FlushMode) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) >= 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) (((((enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) >= 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) (((((((enum  kudu::client::KuduSession::FlushMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) >= 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) (((((((((enum  kudu::client::KuduSession::FlushMode)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum  kudu::client::KuduSession::FlushMode) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduSession::FlushMode, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduSession::FlushMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduSession::FlushMode) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) (((enum  kudu::client::KuduSession::FlushMode)-1)*(((((enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) ((((((enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) (((enum  kudu::client::KuduSession::FlushMode)-1)*(((((((enum  kudu::client::KuduSession::FlushMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) ((((((((enum  kudu::client::KuduSession::FlushMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) (((enum  kudu::client::KuduSession::FlushMode)-1)*(((((((((enum  kudu::client::KuduSession::FlushMode)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduSession::FlushMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduSession::FlushMode) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduSession::FlushMode) ((((((((((enum  kudu::client::KuduSession::FlushMode)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduSession::FlushMode)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduSession::FlushMode, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduSession::FlushMode) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduSession::FlushMode, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum  kudu::client::KuduSession::FlushMode val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum  kudu::client::KuduSession::FlushMode) -1;
        }
    } else {
        enum  kudu::client::KuduSession::FlushMode val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum  kudu::client::KuduSession::FlushMode) -1;
        val = __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduSession_3a__3a_FlushMode(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum  kudu::client::KuduSession::FlushMode");
    return (enum  kudu::client::KuduSession::FlushMode) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum  kudu::client::KuduSession::FlushMode");
    return (enum  kudu::client::KuduSession::FlushMode) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum  kudu::client::KuduClient::ReplicaSelection __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(PyObject *x) {
    const enum  kudu::client::KuduClient::ReplicaSelection neg_one = (enum  kudu::client::KuduClient::ReplicaSelection) ((enum  kudu::client::KuduClient::ReplicaSelection) 0 - (enum  kudu::client::KuduClient::ReplicaSelection) 1), const_zero = (enum  kudu::client::KuduClient::ReplicaSelection) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum  kudu::client::KuduClient::ReplicaSelection) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduClient::ReplicaSelection) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) >= 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) (((((enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) >= 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) (((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) >= 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) (((((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum  kudu::client::KuduClient::ReplicaSelection) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClient::ReplicaSelection, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduClient::ReplicaSelection) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) (((enum  kudu::client::KuduClient::ReplicaSelection)-1)*(((((enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) ((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) (((enum  kudu::client::KuduClient::ReplicaSelection)-1)*(((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) ((((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) (((enum  kudu::client::KuduClient::ReplicaSelection)-1)*(((((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduClient::ReplicaSelection, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduClient::ReplicaSelection) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduClient::ReplicaSelection) ((((((((((enum  kudu::client::KuduClient::ReplicaSelection)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduClient::ReplicaSelection)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClient::ReplicaSelection, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduClient::ReplicaSelection) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduClient::ReplicaSelection, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum  kudu::client::KuduClient::ReplicaSelection val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum  kudu::client::KuduClient::ReplicaSelection) -1;
        }
    } else {
        enum  kudu::client::KuduClient::ReplicaSelection val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum  kudu::client::KuduClient::ReplicaSelection) -1;
        val = __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduClient_3a__3a_ReplicaSelection(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum  kudu::client::KuduClient::ReplicaSelection");
    return (enum  kudu::client::KuduClient::ReplicaSelection) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum  kudu::client::KuduClient::ReplicaSelection");
    return (enum  kudu::client::KuduClient::ReplicaSelection) -1;
}

/* CIntFromPy */
static CYTHON_INLINE enum  kudu::client::KuduScanner::ReadMode __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(PyObject *x) {
    const enum  kudu::client::KuduScanner::ReadMode neg_one = (enum  kudu::client::KuduScanner::ReadMode) ((enum  kudu::client::KuduScanner::ReadMode) 0 - (enum  kudu::client::KuduScanner::ReadMode) 1), const_zero = (enum  kudu::client::KuduScanner::ReadMode) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(enum  kudu::client::KuduScanner::ReadMode) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (enum  kudu::client::KuduScanner::ReadMode) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduScanner::ReadMode) 0;
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, digit, digits[0])
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) >= 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) (((((enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) >= 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) (((((((enum  kudu::client::KuduScanner::ReadMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) >= 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) (((((((((enum  kudu::client::KuduScanner::ReadMode)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (enum  kudu::client::KuduScanner::ReadMode) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduScanner::ReadMode, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduScanner::ReadMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (enum  kudu::client::KuduScanner::ReadMode) 0;
                case -1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) (((enum  kudu::client::KuduScanner::ReadMode)-1)*(((((enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 2 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) ((((((enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) (((enum  kudu::client::KuduScanner::ReadMode)-1)*(((((((enum  kudu::client::KuduScanner::ReadMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 3 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) ((((((((enum  kudu::client::KuduScanner::ReadMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) (((enum  kudu::client::KuduScanner::ReadMode)-1)*(((((((((enum  kudu::client::KuduScanner::ReadMode)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(enum  kudu::client::KuduScanner::ReadMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(enum  kudu::client::KuduScanner::ReadMode) - 1 > 4 * PyLong_SHIFT) {
                            return (enum  kudu::client::KuduScanner::ReadMode) ((((((((((enum  kudu::client::KuduScanner::ReadMode)digits[3]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[2]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[1]) << PyLong_SHIFT) | (enum  kudu::client::KuduScanner::ReadMode)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduScanner::ReadMode, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(enum  kudu::client::KuduScanner::ReadMode) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(enum  kudu::client::KuduScanner::ReadMode, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            enum  kudu::client::KuduScanner::ReadMode val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (enum  kudu::client::KuduScanner::ReadMode) -1;
        }
    } else {
        enum  kudu::client::KuduScanner::ReadMode val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (enum  kudu::client::KuduScanner::ReadMode) -1;
        val = __Pyx_PyInt_As_enum____kudu_3a__3a_client_3a__3a_KuduScanner_3a__3a_ReadMode(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to enum  kudu::client::KuduScanner::ReadMode");
    return (enum  kudu::client::KuduScanner::ReadMode) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to enum  kudu::client::KuduScanner::ReadMode");
    return (enum  kudu::client::KuduScanner::ReadMode) -1;
}

/* CIntFromPy */
static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *x) {
    const uint64_t neg_one = (uint64_t) ((uint64_t) 0 - (uint64_t) 1), const_zero = (uint64_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uint64_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uint64_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uint64_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint64_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint64_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(uint64_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) >= 2 * PyLong_SHIFT) {
                            return (uint64_t) (((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint64_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) >= 3 * PyLong_SHIFT) {
                            return (uint64_t) (((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint64_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) >= 4 * PyLong_SHIFT) {
                            return (uint64_t) (((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (uint64_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(uint64_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint64_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint64_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(uint64_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(uint64_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(uint64_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint64_t) (((uint64_t)-1)*(((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(uint64_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint64_t) ((((((uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(uint64_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint64_t) (((uint64_t)-1)*(((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint64_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint64_t) ((((((((uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(uint64_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint64_t) (((uint64_t)-1)*(((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint64_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint64_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint64_t) ((((((((((uint64_t)digits[3]) << PyLong_SHIFT) | (uint64_t)digits[2]) << PyLong_SHIFT) | (uint64_t)digits[1]) << PyLong_SHIFT) | (uint64_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(uint64_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint64_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint64_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uint64_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uint64_t) -1;
        }
    } else {
        uint64_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (uint64_t) -1;
        val = __Pyx_PyInt_As_uint64_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint64_t");
    return (uint64_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint64_t");
    return (uint64_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE uint32_t __Pyx_PyInt_As_uint32_t(PyObject *x) {
    const uint32_t neg_one = (uint32_t) ((uint32_t) 0 - (uint32_t) 1), const_zero = (uint32_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uint32_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uint32_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uint32_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint32_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint32_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 2 * PyLong_SHIFT) {
                            return (uint32_t) (((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 3 * PyLong_SHIFT) {
                            return (uint32_t) (((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) >= 4 * PyLong_SHIFT) {
                            return (uint32_t) (((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (uint32_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(uint32_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint32_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (uint32_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(uint32_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(uint32_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(uint32_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(uint32_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                            return (uint32_t) ((((((uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(uint32_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(uint32_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                            return (uint32_t) ((((((((uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(uint32_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint32_t) (((uint32_t)-1)*(((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(uint32_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(uint32_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(uint32_t) - 1 > 4 * PyLong_SHIFT) {
                            return (uint32_t) ((((((((((uint32_t)digits[3]) << PyLong_SHIFT) | (uint32_t)digits[2]) << PyLong_SHIFT) | (uint32_t)digits[1]) << PyLong_SHIFT) | (uint32_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(uint32_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(uint32_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(uint32_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uint32_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uint32_t) -1;
        }
    } else {
        uint32_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (uint32_t) -1;
        val = __Pyx_PyInt_As_uint32_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint32_t");
    return (uint32_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint32_t");
    return (uint32_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE kudu::int128_t __Pyx_PyInt_As_kudu_3a__3a_int128_t(PyObject *x) {
    const kudu::int128_t neg_one = (kudu::int128_t) ((kudu::int128_t) 0 - (kudu::int128_t) 1), const_zero = (kudu::int128_t) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(kudu::int128_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(kudu::int128_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (kudu::int128_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (kudu::int128_t) 0;
                case  1: __PYX_VERIFY_RETURN_INT(kudu::int128_t, digit, digits[0])
                case 2:
                    if (8 * sizeof(kudu::int128_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) >= 2 * PyLong_SHIFT) {
                            return (kudu::int128_t) (((((kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(kudu::int128_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) >= 3 * PyLong_SHIFT) {
                            return (kudu::int128_t) (((((((kudu::int128_t)digits[2]) << PyLong_SHIFT) | (kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(kudu::int128_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) >= 4 * PyLong_SHIFT) {
                            return (kudu::int128_t) (((((((((kudu::int128_t)digits[3]) << PyLong_SHIFT) | (kudu::int128_t)digits[2]) << PyLong_SHIFT) | (kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (kudu::int128_t) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(kudu::int128_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(kudu::int128_t, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(kudu::int128_t) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(kudu::int128_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (kudu::int128_t) 0;
                case -1: __PYX_VERIFY_RETURN_INT(kudu::int128_t, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(kudu::int128_t,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(kudu::int128_t) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) - 1 > 2 * PyLong_SHIFT) {
                            return (kudu::int128_t) (((kudu::int128_t)-1)*(((((kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(kudu::int128_t) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) - 1 > 2 * PyLong_SHIFT) {
                            return (kudu::int128_t) ((((((kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(kudu::int128_t) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) - 1 > 3 * PyLong_SHIFT) {
                            return (kudu::int128_t) (((kudu::int128_t)-1)*(((((((kudu::int128_t)digits[2]) << PyLong_SHIFT) | (kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(kudu::int128_t) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) - 1 > 3 * PyLong_SHIFT) {
                            return (kudu::int128_t) ((((((((kudu::int128_t)digits[2]) << PyLong_SHIFT) | (kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(kudu::int128_t) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) - 1 > 4 * PyLong_SHIFT) {
                            return (kudu::int128_t) (((kudu::int128_t)-1)*(((((((((kudu::int128_t)digits[3]) << PyLong_SHIFT) | (kudu::int128_t)digits[2]) << PyLong_SHIFT) | (kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(kudu::int128_t) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(kudu::int128_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(kudu::int128_t) - 1 > 4 * PyLong_SHIFT) {
                            return (kudu::int128_t) ((((((((((kudu::int128_t)digits[3]) << PyLong_SHIFT) | (kudu::int128_t)digits[2]) << PyLong_SHIFT) | (kudu::int128_t)digits[1]) << PyLong_SHIFT) | (kudu::int128_t)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(kudu::int128_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(kudu::int128_t, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(kudu::int128_t) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(kudu::int128_t, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            kudu::int128_t val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (kudu::int128_t) -1;
        }
    } else {
        kudu::int128_t val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (kudu::int128_t) -1;
        val = __Pyx_PyInt_As_kudu_3a__3a_int128_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to kudu::int128_t");
    return (kudu::int128_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to kudu::int128_t");
    return (kudu::int128_t) -1;
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
    const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0])
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) {
                            return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) {
                            return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) {
                            return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                        }
                    }
                    break;
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            const digit* digits = ((PyLongObject*)x)->ob_digit;
            switch (Py_SIZE(x)) {
                case  0: return (long) 0;
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0]))
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +digits[0])
                case -2:
                    if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 2:
                    if (8 * sizeof(long) > 1 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                            return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -3:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 3:
                    if (8 * sizeof(long) > 2 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                            return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case -4:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
                case 4:
                    if (8 * sizeof(long) > 3 * PyLong_SHIFT) {
                        if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) {
                            __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                        } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                            return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
                        }
                    }
                    break;
            }
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
#ifdef HAVE_LONG_LONG
            } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
                __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
#endif
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_IntOrLong(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = a->tp_base;
        if (a == b)
            return 1;
    }
    return b == &PyBaseObject_Type;
}
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (a == b) return 1;
    mro = a->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(a, b);
}
#if PY_MAJOR_VERSION == 2
static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
    PyObject *exception, *value, *tb;
    int res;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&exception, &value, &tb);
    res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
    if (unlikely(res == -1)) {
        PyErr_WriteUnraisable(err);
        res = 0;
    }
    if (!res) {
        res = PyObject_IsSubclass(err, exc_type2);
        if (unlikely(res == -1)) {
            PyErr_WriteUnraisable(err);
            res = 0;
        }
    }
    __Pyx_ErrRestore(exception, value, tb);
    return res;
}
#else
static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
    int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0;
    if (!res) {
        res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
    return res;
}
#endif
static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
    Py_ssize_t i, n;
    assert(PyExceptionClass_Check(exc_type));
    n = PyTuple_GET_SIZE(tuple);
#if PY_MAJOR_VERSION >= 3
    for (i=0; i<n; i++) {
        if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
    }
#endif
    for (i=0; i<n; i++) {
        PyObject *t = PyTuple_GET_ITEM(tuple, i);
        #if PY_MAJOR_VERSION < 3
        if (likely(exc_type == t)) return 1;
        #endif
        if (likely(PyExceptionClass_Check(t))) {
            if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
        } else {
        }
    }
    return 0;
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
    if (likely(err == exc_type)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        if (likely(PyExceptionClass_Check(exc_type))) {
            return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
        } else if (likely(PyTuple_Check(exc_type))) {
            return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
        } else {
        }
    }
    return PyErr_GivenExceptionMatches(err, exc_type);
}
static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
    assert(PyExceptionClass_Check(exc_type1));
    assert(PyExceptionClass_Check(exc_type2));
    if (likely(err == exc_type1 || err == exc_type2)) return 1;
    if (likely(PyExceptionClass_Check(err))) {
        return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
    }
    return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
}
#endif

/* CoroutineBase */
#include <structmember.h>
#include <frameobject.h>
#define __Pyx_Coroutine_Undelegate(gen) Py_CLEAR((gen)->yieldfrom)
static int __Pyx_PyGen__FetchStopIterationValue(CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject **pvalue) {
    PyObject *et, *ev, *tb;
    PyObject *value = NULL;
    __Pyx_ErrFetch(&et, &ev, &tb);
    if (!et) {
        Py_XDECREF(tb);
        Py_XDECREF(ev);
        Py_INCREF(Py_None);
        *pvalue = Py_None;
        return 0;
    }
    if (likely(et == PyExc_StopIteration)) {
        if (!ev) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#if PY_VERSION_HEX >= 0x030300A0
        else if (Py_TYPE(ev) == (PyTypeObject*)PyExc_StopIteration) {
            value = ((PyStopIterationObject *)ev)->value;
            Py_INCREF(value);
            Py_DECREF(ev);
        }
#endif
        else if (unlikely(PyTuple_Check(ev))) {
            if (PyTuple_GET_SIZE(ev) >= 1) {
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                value = PyTuple_GET_ITEM(ev, 0);
                Py_INCREF(value);
#else
                value = PySequence_ITEM(ev, 0);
#endif
            } else {
                Py_INCREF(Py_None);
                value = Py_None;
            }
            Py_DECREF(ev);
        }
        else if (!__Pyx_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration)) {
            value = ev;
        }
        if (likely(value)) {
            Py_XDECREF(tb);
            Py_DECREF(et);
            *pvalue = value;
            return 0;
        }
    } else if (!__Pyx_PyErr_GivenExceptionMatches(et, PyExc_StopIteration)) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    PyErr_NormalizeException(&et, &ev, &tb);
    if (unlikely(!PyObject_TypeCheck(ev, (PyTypeObject*)PyExc_StopIteration))) {
        __Pyx_ErrRestore(et, ev, tb);
        return -1;
    }
    Py_XDECREF(tb);
    Py_DECREF(et);
#if PY_VERSION_HEX >= 0x030300A0
    value = ((PyStopIterationObject *)ev)->value;
    Py_INCREF(value);
    Py_DECREF(ev);
#else
    {
        PyObject* args = __Pyx_PyObject_GetAttrStr(ev, __pyx_n_s_args);
        Py_DECREF(ev);
        if (likely(args)) {
            value = PySequence_GetItem(args, 0);
            Py_DECREF(args);
        }
        if (unlikely(!value)) {
            __Pyx_ErrRestore(NULL, NULL, NULL);
            Py_INCREF(Py_None);
            value = Py_None;
        }
    }
#endif
    *pvalue = value;
    return 0;
}
static CYTHON_INLINE
void __Pyx_Coroutine_ExceptionClear(__Pyx_ExcInfoStruct *exc_state) {
    PyObject *t, *v, *tb;
    t = exc_state->exc_type;
    v = exc_state->exc_value;
    tb = exc_state->exc_traceback;
    exc_state->exc_type = NULL;
    exc_state->exc_value = NULL;
    exc_state->exc_traceback = NULL;
    Py_XDECREF(t);
    Py_XDECREF(v);
    Py_XDECREF(tb);
}
#define __Pyx_Coroutine_AlreadyRunningError(gen)  (__Pyx__Coroutine_AlreadyRunningError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyRunningError(CYTHON_UNUSED __pyx_CoroutineObject *gen) {
    const char *msg;
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check((PyObject*)gen)) {
        msg = "coroutine already executing";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact((PyObject*)gen)) {
        msg = "async generator already executing";
    #endif
    } else {
        msg = "generator already executing";
    }
    PyErr_SetString(PyExc_ValueError, msg);
}
#define __Pyx_Coroutine_NotStartedError(gen)  (__Pyx__Coroutine_NotStartedError(gen), (PyObject*)NULL)
static void __Pyx__Coroutine_NotStartedError(CYTHON_UNUSED PyObject *gen) {
    const char *msg;
    if ((0)) {
    #ifdef __Pyx_Coroutine_USED
    } else if (__Pyx_Coroutine_Check(gen)) {
        msg = "can't send non-None value to a just-started coroutine";
    #endif
    #ifdef __Pyx_AsyncGen_USED
    } else if (__Pyx_AsyncGen_CheckExact(gen)) {
        msg = "can't send non-None value to a just-started async generator";
    #endif
    } else {
        msg = "can't send non-None value to a just-started generator";
    }
    PyErr_SetString(PyExc_TypeError, msg);
}
#define __Pyx_Coroutine_AlreadyTerminatedError(gen, value, closing)  (__Pyx__Coroutine_AlreadyTerminatedError(gen, value, closing), (PyObject*)NULL)
static void __Pyx__Coroutine_AlreadyTerminatedError(CYTHON_UNUSED PyObject *gen, PyObject *value, CYTHON_UNUSED int closing) {
    #ifdef __Pyx_Coroutine_USED
    if (!closing && __Pyx_Coroutine_Check(gen)) {
        PyErr_SetString(PyExc_RuntimeError, "cannot reuse already awaited coroutine");
    } else
    #endif
    if (value) {
        #ifdef __Pyx_AsyncGen_USED
        if (__Pyx_AsyncGen_CheckExact(gen))
            PyErr_SetNone(__Pyx_PyExc_StopAsyncIteration);
        else
        #endif
        PyErr_SetNone(PyExc_StopIteration);
    }
}
static
PyObject *__Pyx_Coroutine_SendEx(__pyx_CoroutineObject *self, PyObject *value, int closing) {
    __Pyx_PyThreadState_declare
    PyThreadState *tstate;
    __Pyx_ExcInfoStruct *exc_state;
    PyObject *retval;
    assert(!self->is_running);
    if (unlikely(self->resume_label == 0)) {
        if (unlikely(value && value != Py_None)) {
            return __Pyx_Coroutine_NotStartedError((PyObject*)self);
        }
    }
    if (unlikely(self->resume_label == -1)) {
        return __Pyx_Coroutine_AlreadyTerminatedError((PyObject*)self, value, closing);
    }
#if CYTHON_FAST_THREAD_STATE
    __Pyx_PyThreadState_assign
    tstate = __pyx_tstate;
#else
    tstate = __Pyx_PyThreadState_Current;
#endif
    exc_state = &self->gi_exc_state;
    if (exc_state->exc_type) {
        #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
        #else
        if (exc_state->exc_traceback) {
            PyTracebackObject *tb = (PyTracebackObject *) exc_state->exc_traceback;
            PyFrameObject *f = tb->tb_frame;
            Py_XINCREF(tstate->frame);
            assert(f->f_back == NULL);
            f->f_back = tstate->frame;
        }
        #endif
    }
#if CYTHON_USE_EXC_INFO_STACK
    exc_state->previous_item = tstate->exc_info;
    tstate->exc_info = exc_state;
#else
    if (exc_state->exc_type) {
        __Pyx_ExceptionSwap(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    } else {
        __Pyx_Coroutine_ExceptionClear(exc_state);
        __Pyx_ExceptionSave(&exc_state->exc_type, &exc_state->exc_value, &exc_state->exc_traceback);
    }
#endif
    self->is_running = 1;
    retval = self->body((PyObject *) self, tstate, value);
    self->is_running = 0;
#if CYTHON_USE_EXC_INFO_STACK
    exc_state = &self->gi_exc_state;
    tstate->exc_info = exc_state->previous_item;
    exc_state->previous_item = NULL;
    __Pyx_Coroutine_ResetFrameBackpointer(exc_state);
#endif
    return retval;
}
static CYTHON_INLINE void __Pyx_Coroutine_ResetFrameBackpointer(__Pyx_ExcInfoStruct *exc_state) {
    PyObject *exc_tb = exc_state->exc_traceback;
    if (likely(exc_tb)) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_PYSTON
#else
        PyTracebackObject *tb = (PyTracebackObject *) exc_tb;
        PyFrameObject *f = tb->tb_frame;
        Py_CLEAR(f->f_back);
#endif
    }
}
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_MethodReturn(CYTHON_UNUSED PyObject* gen, PyObject *retval) {
    if (unlikely(!retval)) {
        __Pyx_PyThreadState_declare
        __Pyx_PyThreadState_assign
        if (!__Pyx_PyErr_Occurred()) {
            PyObject *exc = PyExc_StopIteration;
            #ifdef __Pyx_AsyncGen_USED
            if (__Pyx_AsyncGen_CheckExact(gen))
                exc = __Pyx_PyExc_StopAsyncIteration;
            #endif
            __Pyx_PyErr_SetNone(exc);
        }
    }
    return retval;
}
static CYTHON_INLINE
PyObject *__Pyx_Coroutine_FinishDelegation(__pyx_CoroutineObject *gen) {
    PyObject *ret;
    PyObject *val = NULL;
    __Pyx_Coroutine_Undelegate(gen);
    __Pyx_PyGen__FetchStopIterationValue(__Pyx_PyThreadState_Current, &val);
    ret = __Pyx_Coroutine_SendEx(gen, val, 0);
    Py_XDECREF(val);
    return ret;
}
static PyObject *__Pyx_Coroutine_Send(PyObject *self, PyObject *value) {
    PyObject *retval;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, value);
        } else
        #endif
        #ifdef __Pyx_AsyncGen_USED
        if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
            ret = __Pyx_async_gen_asend_send(yf, value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03050000 && defined(PyCoro_CheckExact) && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyCoro_CheckExact(yf)) {
            ret = _PyGen_Send((PyGenObject*)yf, value == Py_None ? NULL : value);
        } else
        #endif
        {
            if (value == Py_None)
                ret = Py_TYPE(yf)->tp_iternext(yf);
            else
                ret = __Pyx_PyObject_CallMethod1(yf, __pyx_n_s_send, value);
        }
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        retval = __Pyx_Coroutine_FinishDelegation(gen);
    } else {
        retval = __Pyx_Coroutine_SendEx(gen, value, 0);
    }
    return __Pyx_Coroutine_MethodReturn(self, retval);
}
static int __Pyx_Coroutine_CloseIter(__pyx_CoroutineObject *gen, PyObject *yf) {
    PyObject *retval = NULL;
    int err = 0;
    #ifdef __Pyx_Generator_USED
    if (__Pyx_Generator_CheckExact(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_Coroutine_USED
    if (__Pyx_Coroutine_Check(yf)) {
        retval = __Pyx_Coroutine_Close(yf);
        if (!retval)
            return -1;
    } else
    if (__Pyx_CoroutineAwait_CheckExact(yf)) {
        retval = __Pyx_CoroutineAwait_Close((__pyx_CoroutineAwaitObject*)yf, NULL);
        if (!retval)
            return -1;
    } else
    #endif
    #ifdef __Pyx_AsyncGen_USED
    if (__pyx_PyAsyncGenASend_CheckExact(yf)) {
        retval = __Pyx_async_gen_asend_close(yf, NULL);
    } else
    if (__pyx_PyAsyncGenAThrow_CheckExact(yf)) {
        retval = __Pyx_async_gen_athrow_close(yf, NULL);
    } else
    #endif
    {
        PyObject *meth;
        gen->is_running = 1;
        meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_close);
        if (unlikely(!meth)) {
            if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
                PyErr_WriteUnraisable(yf);
            }
            PyErr_Clear();
        } else {
            retval = PyObject_CallFunction(meth, NULL);
            Py_DECREF(meth);
            if (!retval)
                err = -1;
        }
        gen->is_running = 0;
    }
    Py_XDECREF(retval);
    return err;
}
static PyObject *__Pyx_Generator_Next(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject*) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        gen->is_running = 1;
        #ifdef __Pyx_Generator_USED
        if (__Pyx_Generator_CheckExact(yf)) {
            ret = __Pyx_Generator_Next(yf);
        } else
        #endif
        #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03030000 && (defined(__linux__) || PY_VERSION_HEX >= 0x030600B3)
        if (PyGen_CheckExact(yf)) {
            ret = _PyGen_Send((PyGenObject*)yf, NULL);
        } else
        #endif
        #ifdef __Pyx_Coroutine_USED
        if (__Pyx_Coroutine_Check(yf)) {
            ret = __Pyx_Coroutine_Send(yf, Py_None);
        } else
        #endif
            ret = Py_TYPE(yf)->tp_iternext(yf);
        gen->is_running = 0;
        if (likely(ret)) {
            return ret;
        }
        return __Pyx_Coroutine_FinishDelegation(gen);
    }
    return __Pyx_Coroutine_SendEx(gen, Py_None, 0);
}
static PyObject *__Pyx_Coroutine_Close_Method(PyObject *self, CYTHON_UNUSED PyObject *arg) {
    return __Pyx_Coroutine_Close(self);
}
static PyObject *__Pyx_Coroutine_Close(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *retval, *raised_exception;
    PyObject *yf = gen->yieldfrom;
    int err = 0;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        Py_INCREF(yf);
        err = __Pyx_Coroutine_CloseIter(gen, yf);
        __Pyx_Coroutine_Undelegate(gen);
        Py_DECREF(yf);
    }
    if (err == 0)
        PyErr_SetNone(PyExc_GeneratorExit);
    retval = __Pyx_Coroutine_SendEx(gen, NULL, 1);
    if (unlikely(retval)) {
        const char *msg;
        Py_DECREF(retval);
        if ((0)) {
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_Coroutine_Check(self)) {
            msg = "coroutine ignored GeneratorExit";
        #endif
        #ifdef __Pyx_AsyncGen_USED
        } else if (__Pyx_AsyncGen_CheckExact(self)) {
#if PY_VERSION_HEX < 0x03060000
            msg = "async generator ignored GeneratorExit - might require Python 3.6+ finalisation (PEP 525)";
#else
            msg = "async generator ignored GeneratorExit";
#endif
        #endif
        } else {
            msg = "generator ignored GeneratorExit";
        }
        PyErr_SetString(PyExc_RuntimeError, msg);
        return NULL;
    }
    raised_exception = PyErr_Occurred();
    if (likely(!raised_exception || __Pyx_PyErr_GivenExceptionMatches2(raised_exception, PyExc_GeneratorExit, PyExc_StopIteration))) {
        if (raised_exception) PyErr_Clear();
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
}
static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject *val, PyObject *tb,
                                        PyObject *args, int close_on_genexit) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject *yf = gen->yieldfrom;
    if (unlikely(gen->is_running))
        return __Pyx_Coroutine_AlreadyRunningError(gen);
    if (yf) {
        PyObject *ret;
        Py_INCREF(yf);
        if (__Pyx_PyErr_GivenExceptionMatches(typ, PyExc_GeneratorExit) && close_on_genexit) {
            int err = __Pyx_Coroutine_CloseIter(gen, yf);
            Py_DECREF(yf);
            __Pyx_Coroutine_Undelegate(gen);
            if (err < 0)
                return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
            goto throw_here;
        }
        gen->is_running = 1;
        if (0
        #ifdef __Pyx_Generator_USED
            || __Pyx_Generator_CheckExact(yf)
        #endif
        #ifdef __Pyx_Coroutine_USED
            || __Pyx_Coroutine_Check(yf)
        #endif
            ) {
            ret = __Pyx__Coroutine_Throw(yf, typ, val, tb, args, close_on_genexit);
        #ifdef __Pyx_Coroutine_USED
        } else if (__Pyx_CoroutineAwait_CheckExact(yf)) {
            ret = __Pyx__Coroutine_Throw(((__pyx_CoroutineAwaitObject*)yf)->coroutine, typ, val, tb, args, close_on_genexit);
        #endif
        } else {
            PyObject *meth = __Pyx_PyObject_GetAttrStr(yf, __pyx_n_s_throw);
            if (unlikely(!meth)) {
                Py_DECREF(yf);
                if (!PyErr_ExceptionMatches(PyExc_AttributeError)) {
                    gen->is_running = 0;
                    return NULL;
                }
                PyErr_Clear();
                __Pyx_Coroutine_Undelegate(gen);
                gen->is_running = 0;
                goto throw_here;
            }
            if (likely(args)) {
                ret = PyObject_CallObject(meth, args);
            } else {
                ret = PyObject_CallFunctionObjArgs(meth, typ, val, tb, NULL);
            }
            Py_DECREF(meth);
        }
        gen->is_running = 0;
        Py_DECREF(yf);
        if (!ret) {
            ret = __Pyx_Coroutine_FinishDelegation(gen);
        }
        return __Pyx_Coroutine_MethodReturn(self, ret);
    }
throw_here:
    __Pyx_Raise(typ, val, tb, NULL);
    return __Pyx_Coroutine_MethodReturn(self, __Pyx_Coroutine_SendEx(gen, NULL, 0));
}
static PyObject *__Pyx_Coroutine_Throw(PyObject *self, PyObject *args) {
    PyObject *typ;
    PyObject *val = NULL;
    PyObject *tb = NULL;
    if (!PyArg_UnpackTuple(args, (char *)"throw", 1, 3, &typ, &val, &tb))
        return NULL;
    return __Pyx__Coroutine_Throw(self, typ, val, tb, args, 1);
}
static CYTHON_INLINE int __Pyx_Coroutine_traverse_excstate(__Pyx_ExcInfoStruct *exc_state, visitproc visit, void *arg) {
    Py_VISIT(exc_state->exc_type);
    Py_VISIT(exc_state->exc_value);
    Py_VISIT(exc_state->exc_traceback);
    return 0;
}
static int __Pyx_Coroutine_traverse(__pyx_CoroutineObject *gen, visitproc visit, void *arg) {
    Py_VISIT(gen->closure);
    Py_VISIT(gen->classobj);
    Py_VISIT(gen->yieldfrom);
    return __Pyx_Coroutine_traverse_excstate(&gen->gi_exc_state, visit, arg);
}
static int __Pyx_Coroutine_clear(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    Py_CLEAR(gen->closure);
    Py_CLEAR(gen->classobj);
    Py_CLEAR(gen->yieldfrom);
    __Pyx_Coroutine_ExceptionClear(&gen->gi_exc_state);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        Py_CLEAR(((__pyx_PyAsyncGenObject*)gen)->ag_finalizer);
    }
#endif
    Py_CLEAR(gen->gi_code);
    Py_CLEAR(gen->gi_name);
    Py_CLEAR(gen->gi_qualname);
    Py_CLEAR(gen->gi_modulename);
    return 0;
}
static void __Pyx_Coroutine_dealloc(PyObject *self) {
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    PyObject_GC_UnTrack(gen);
    if (gen->gi_weakreflist != NULL)
        PyObject_ClearWeakRefs(self);
    if (gen->resume_label >= 0) {
        PyObject_GC_Track(self);
#if PY_VERSION_HEX >= 0x030400a1 && CYTHON_USE_TP_FINALIZE
        if (PyObject_CallFinalizerFromDealloc(self))
#else
        Py_TYPE(gen)->tp_del(self);
        if (self->ob_refcnt > 0)
#endif
        {
            return;
        }
        PyObject_GC_UnTrack(self);
    }
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        /* We have to handle this case for asynchronous generators
           right here, because this code has to be between UNTRACK
           and GC_Del. */
        Py_CLEAR(((__pyx_PyAsyncGenObject*)self)->ag_finalizer);
    }
#endif
    __Pyx_Coroutine_clear(self);
    PyObject_GC_Del(gen);
}
static void __Pyx_Coroutine_del(PyObject *self) {
    PyObject *error_type, *error_value, *error_traceback;
    __pyx_CoroutineObject *gen = (__pyx_CoroutineObject *) self;
    __Pyx_PyThreadState_declare
    if (gen->resume_label < 0) {
        return;
    }
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt == 0);
    self->ob_refcnt = 1;
#endif
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&error_type, &error_value, &error_traceback);
#ifdef __Pyx_AsyncGen_USED
    if (__Pyx_AsyncGen_CheckExact(self)) {
        __pyx_PyAsyncGenObject *agen = (__pyx_PyAsyncGenObject*)self;
        PyObject *finalizer = agen->ag_finalizer;
        if (finalizer && !agen->ag_closed) {
            PyObject *res = __Pyx_PyObject_CallOneArg(finalizer, self);
            if (unlikely(!res)) {
                PyErr_WriteUnraisable(self);
            } else {
                Py_DECREF(res);
            }
            __Pyx_ErrRestore(error_type, error_value, error_traceback);
            return;
        }
    }
#endif
    if (unlikely(gen->resume_label == 0 && !error_value)) {
#ifdef __Pyx_Coroutine_USED
#ifdef __Pyx_Generator_USED
    if (!__Pyx_Generator_CheckExact(self))
#endif
        {
        PyObject_GC_UnTrack(self);
#if PY_MAJOR_VERSION >= 3  || defined(PyErr_WarnFormat)
        if (unlikely(PyErr_WarnFormat(PyExc_RuntimeWarning, 1, "coroutine '%.50S' was never awaited", gen->gi_qualname) < 0))
            PyErr_WriteUnraisable(self);
#else
        {PyObject *msg;
        char *cmsg;
        #if CYTHON_COMPILING_IN_PYPY
        msg = NULL;
        cmsg = (char*) "coroutine was never awaited";
        #else
        char *cname;
        PyObject *qualname;
        qualname = gen->gi_qualname;
        cname = PyString_AS_STRING(qualname);
        msg = PyString_FromFormat("coroutine '%.50s' was never awaited", cname);
        if (unlikely(!msg)) {
            PyErr_Clear();
            cmsg = (char*) "coroutine was never awaited";
        } else {
            cmsg = PyString_AS_STRING(msg);
        }
        #endif
        if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, cmsg, 1) < 0))
            PyErr_WriteUnraisable(self);
        Py_XDECREF(msg);}
#endif
        PyObject_GC_Track(self);
        }
#endif
    } else {
        PyObject *res = __Pyx_Coroutine_Close(self);
        if (unlikely(!res)) {
            if (PyErr_Occurred())
                PyErr_WriteUnraisable(self);
        } else {
            Py_DECREF(res);
        }
    }
    __Pyx_ErrRestore(error_type, error_value, error_traceback);
#if !CYTHON_USE_TP_FINALIZE
    assert(self->ob_refcnt > 0);
    if (--self->ob_refcnt == 0) {
        return;
    }
    {
        Py_ssize_t refcnt = self->ob_refcnt;
        _Py_NewReference(self);
        self->ob_refcnt = refcnt;
    }
#if CYTHON_COMPILING_IN_CPYTHON
    assert(PyType_IS_GC(self->ob_type) &&
           _Py_AS_GC(self)->gc.gc_refs != _PyGC_REFS_UNTRACKED);
    _Py_DEC_REFTOTAL;
#endif
#ifdef COUNT_ALLOCS
    --Py_TYPE(self)->tp_frees;
    --Py_TYPE(self)->tp_allocs;
#endif
#endif
}
static PyObject *
__Pyx_Coroutine_get_name(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *name = self->gi_name;
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_name(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__name__ must be set to a string object");
        return -1;
    }
    tmp = self->gi_name;
    Py_INCREF(value);
    self->gi_name = value;
    Py_XDECREF(tmp);
    return 0;
}
static PyObject *
__Pyx_Coroutine_get_qualname(__pyx_CoroutineObject *self, CYTHON_UNUSED void *context)
{
    PyObject *name = self->gi_qualname;
    if (unlikely(!name)) name = Py_None;
    Py_INCREF(name);
    return name;
}
static int
__Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, CYTHON_UNUSED void *context)
{
    PyObject *tmp;
#if PY_MAJOR_VERSION >= 3
    if (unlikely(value == NULL || !PyUnicode_Check(value)))
#else
    if (unlikely(value == NULL || !PyString_Check(value)))
#endif
    {
        PyErr_SetString(PyExc_TypeError,
                        "__qualname__ must be set to a string object");
        return -1;
    }
    tmp = self->gi_qualname;
    Py_INCREF(value);
    self->gi_qualname = value;
    Py_XDECREF(tmp);
    return 0;
}
static __pyx_CoroutineObject *__Pyx__Coroutine_New(
            PyTypeObject* type, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    __pyx_CoroutineObject *gen = PyObject_GC_New(__pyx_CoroutineObject, type);
    if (unlikely(!gen))
        return NULL;
    return __Pyx__Coroutine_NewInit(gen, body, code, closure, name, qualname, module_name);
}
static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
            __pyx_CoroutineObject *gen, __pyx_coroutine_body_t body, PyObject *code, PyObject *closure,
            PyObject *name, PyObject *qualname, PyObject *module_name) {
    gen->body = body;
    gen->closure = closure;
    Py_XINCREF(closure);
    gen->is_running = 0;
    gen->resume_label = 0;
    gen->classobj = NULL;
    gen->yieldfrom = NULL;
    gen->gi_exc_state.exc_type = NULL;
    gen->gi_exc_state.exc_value = NULL;
    gen->gi_exc_state.exc_traceback = NULL;
#if CYTHON_USE_EXC_INFO_STACK
    gen->gi_exc_state.previous_item = NULL;
#endif
    gen->gi_weakreflist = NULL;
    Py_XINCREF(qualname);
    gen->gi_qualname = qualname;
    Py_XINCREF(name);
    gen->gi_name = name;
    Py_XINCREF(module_name);
    gen->gi_modulename = module_name;
    Py_XINCREF(code);
    gen->gi_code = code;
    PyObject_GC_Track(gen);
    return gen;
}

/* PatchModuleWithCoroutine */
static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_code) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    int result;
    PyObject *globals, *result_obj;
    globals = PyDict_New();  if (unlikely(!globals)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_coroutine_type",
    #ifdef __Pyx_Coroutine_USED
        (PyObject*)__pyx_CoroutineType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    result = PyDict_SetItemString(globals, "_cython_generator_type",
    #ifdef __Pyx_Generator_USED
        (PyObject*)__pyx_GeneratorType);
    #else
        Py_None);
    #endif
    if (unlikely(result < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "_module", module) < 0)) goto ignore;
    if (unlikely(PyDict_SetItemString(globals, "__builtins__", __pyx_b) < 0)) goto ignore;
    result_obj = PyRun_String(py_code, Py_file_input, globals, globals);
    if (unlikely(!result_obj)) goto ignore;
    Py_DECREF(result_obj);
    Py_DECREF(globals);
    return module;
ignore:
    Py_XDECREF(globals);
    PyErr_WriteUnraisable(module);
    if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning, "Cython module failed to patch module with custom type", 1) < 0)) {
        Py_DECREF(module);
        module = NULL;
    }
#else
    py_code++;
#endif
    return module;
}

/* PatchGeneratorABC */
#ifndef CYTHON_REGISTER_ABCS
#define CYTHON_REGISTER_ABCS 1
#endif
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
static PyObject* __Pyx_patch_abc_module(PyObject *module);
static PyObject* __Pyx_patch_abc_module(PyObject *module) {
    module = __Pyx_Coroutine_patch_module(
        module, ""
"if _cython_generator_type is not None:\n"
"    try: Generator = _module.Generator\n"
"    except AttributeError: pass\n"
"    else: Generator.register(_cython_generator_type)\n"
"if _cython_coroutine_type is not None:\n"
"    try: Coroutine = _module.Coroutine\n"
"    except AttributeError: pass\n"
"    else: Coroutine.register(_cython_coroutine_type)\n"
    );
    return module;
}
#endif
static int __Pyx_patch_abc(void) {
#if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
    static int abc_patched = 0;
    if (CYTHON_REGISTER_ABCS && !abc_patched) {
        PyObject *module;
        module = PyImport_ImportModule((PY_MAJOR_VERSION >= 3) ? "collections.abc" : "collections");
        if (!module) {
            PyErr_WriteUnraisable(NULL);
            if (unlikely(PyErr_WarnEx(PyExc_RuntimeWarning,
                    ((PY_MAJOR_VERSION >= 3) ?
                        "Cython module failed to register with collections.abc module" :
                        "Cython module failed to register with collections module"), 1) < 0)) {
                return -1;
            }
        } else {
            module = __Pyx_patch_abc_module(module);
            abc_patched = 1;
            if (unlikely(!module))
                return -1;
            Py_DECREF(module);
        }
        module = PyImport_ImportModule("backports_abc");
        if (module) {
            module = __Pyx_patch_abc_module(module);
            Py_XDECREF(module);
        }
        if (!module) {
            PyErr_Clear();
        }
    }
#else
    if ((0)) __Pyx_Coroutine_patch_module(NULL, NULL);
#endif
    return 0;
}

/* Generator */
static PyMethodDef __pyx_Generator_methods[] = {
    {"send", (PyCFunction) __Pyx_Coroutine_Send, METH_O,
     (char*) PyDoc_STR("send(arg) -> send 'arg' into generator,\nreturn next yielded value or raise StopIteration.")},
    {"throw", (PyCFunction) __Pyx_Coroutine_Throw, METH_VARARGS,
     (char*) PyDoc_STR("throw(typ[,val[,tb]]) -> raise exception in generator,\nreturn next yielded value or raise StopIteration.")},
    {"close", (PyCFunction) __Pyx_Coroutine_Close_Method, METH_NOARGS,
     (char*) PyDoc_STR("close() -> raise GeneratorExit inside generator.")},
    {0, 0, 0, 0}
};
static PyMemberDef __pyx_Generator_memberlist[] = {
    {(char *) "gi_running", T_BOOL, offsetof(__pyx_CoroutineObject, is_running), READONLY, NULL},
    {(char*) "gi_yieldfrom", T_OBJECT, offsetof(__pyx_CoroutineObject, yieldfrom), READONLY,
     (char*) PyDoc_STR("object being iterated by 'yield from', or None")},
    {(char*) "gi_code", T_OBJECT, offsetof(__pyx_CoroutineObject, gi_code), READONLY, NULL},
    {0, 0, 0, 0, 0}
};
static PyGetSetDef __pyx_Generator_getsets[] = {
    {(char *) "__name__", (getter)__Pyx_Coroutine_get_name, (setter)__Pyx_Coroutine_set_name,
     (char*) PyDoc_STR("name of the generator"), 0},
    {(char *) "__qualname__", (getter)__Pyx_Coroutine_get_qualname, (setter)__Pyx_Coroutine_set_qualname,
     (char*) PyDoc_STR("qualified name of the generator"), 0},
    {0, 0, 0, 0, 0}
};
static PyTypeObject __pyx_GeneratorType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    "generator",
    sizeof(__pyx_CoroutineObject),
    0,
    (destructor) __Pyx_Coroutine_dealloc,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_HAVE_FINALIZE,
    0,
    (traverseproc) __Pyx_Coroutine_traverse,
    0,
    0,
    offsetof(__pyx_CoroutineObject, gi_weakreflist),
    0,
    (iternextfunc) __Pyx_Generator_Next,
    __pyx_Generator_methods,
    __pyx_Generator_memberlist,
    __pyx_Generator_getsets,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if CYTHON_USE_TP_FINALIZE
    0,
#else
    __Pyx_Coroutine_del,
#endif
    0,
#if CYTHON_USE_TP_FINALIZE
    __Pyx_Coroutine_del,
#elif PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
    0,
#endif
};
static int __pyx_Generator_init(void) {
    __pyx_GeneratorType_type.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
    __pyx_GeneratorType_type.tp_iter = PyObject_SelfIter;
    __pyx_GeneratorType = __Pyx_FetchCommonType(&__pyx_GeneratorType_type);
    if (unlikely(!__pyx_GeneratorType)) {
        return -1;
    }
    return 0;
}

/* CheckBinaryVersion */
static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

/* FunctionImport */
#ifndef __PYX_HAVE_RT_ImportFunction
#define __PYX_HAVE_RT_ImportFunction
static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
    if (!d)
        goto bad;
    cobj = PyDict_GetItemString(d, funcname);
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C function %.200s",
                PyModule_GetName(module), funcname);
        goto bad;
    }
#if PY_VERSION_HEX >= 0x02070000
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    tmp.p = PyCapsule_GetPointer(cobj, sig);
#else
    {const char *desc, *s1, *s2;
    desc = (const char *)PyCObject_GetDesc(cobj);
    if (!desc)
        goto bad;
    s1 = desc; s2 = sig;
    while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; }
    if (*s1 != *s2) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, desc);
        goto bad;
    }
    tmp.p = PyCObject_AsVoidPtr(cobj);}
#endif
    *f = tmp.fp;
    if (!(*f))
        goto bad;
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(d);
    return -1;
}
#endif

/* InitStrings */
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
#if !CYTHON_PEP393_ENABLED
static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    char* defenc_c;
    PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
    if (!defenc) return NULL;
    defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    {
        char* end = defenc_c + PyBytes_GET_SIZE(defenc);
        char* c;
        for (c = defenc_c; c < end; c++) {
            if ((unsigned char) (*c) >= 128) {
                PyUnicode_AsASCIIString(o);
                return NULL;
            }
        }
    }
#endif
    *length = PyBytes_GET_SIZE(defenc);
    return defenc_c;
}
#else
static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
    if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
    if (likely(PyUnicode_IS_ASCII(o))) {
        *length = PyUnicode_GET_LENGTH(o);
        return PyUnicode_AsUTF8(o);
    } else {
        PyUnicode_AsASCIIString(o);
        return NULL;
    }
#else
    return PyUnicode_AsUTF8AndSize(o, length);
#endif
}
#endif
#endif
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
        return __Pyx_PyUnicode_AsStringAndSize(o, length);
    } else
#endif
#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
    int retval;
    if (unlikely(!x)) return -1;
    retval = __Pyx_PyObject_IsTrue(x);
    Py_DECREF(x);
    return retval;
}
static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type %.200s).  "
                "The ability to return an instance of a strict subclass of int "
                "is deprecated, and may be removed in a future version of Python.",
                Py_TYPE(result)->tp_name)) {
            Py_DECREF(result);
            return NULL;
        }
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type %.200s)",
                 type_name, type_name, Py_TYPE(result)->tp_name);
    Py_DECREF(result);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
#if CYTHON_USE_TYPE_SLOTS
  PyNumberMethods *m;
#endif
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_Check(x) || PyLong_Check(x)))
#else
  if (likely(PyLong_Check(x)))
#endif
    return __Pyx_NewRef(x);
#if CYTHON_USE_TYPE_SLOTS
  m = Py_TYPE(x)->tp_as_number;
  #if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = m->nb_int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = m->nb_long(x);
  }
  #else
  if (likely(m && m->nb_int)) {
    name = "int";
    res = m->nb_int(x);
  }
  #endif
#else
  if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
    res = PyNumber_Int(x);
  }
#endif
  if (likely(res)) {
#if PY_MAJOR_VERSION < 3
    if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
#else
    if (unlikely(!PyLong_CheckExact(res))) {
#endif
        return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b))) {
    if (sizeof(Py_ssize_t) >= sizeof(long))
        return PyInt_AS_LONG(b);
    else
        return PyInt_AsSsize_t(b);
  }
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_USE_PYLONG_INTERNALS
    const digit* digits = ((PyLongObject*)b)->ob_digit;
    const Py_ssize_t size = Py_SIZE(b);
    if (likely(__Pyx_sst_abs(size) <= 1)) {
        ival = likely(size) ? digits[0] : 0;
        if (size == -1) ival = -ival;
        return ival;
    } else {
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
