{-# LINE 1 "Bindings/APR/DBD.hsc" #-}

{-# LINE 2 "Bindings/APR/DBD.hsc" #-}

{-# LINE 3 "Bindings/APR/DBD.hsc" #-}

module Bindings.APR.DBD where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 6 "Bindings/APR/DBD.hsc" #-}
import Bindings.APR.ErrNo
import Bindings.APR.Pools

type C'apr_dbd_type_e = CUInt

{-# LINE 10 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_NONE = 0
c'APR_DBD_TYPE_NONE :: (Num a) => a

{-# LINE 11 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_TINY = 1
c'APR_DBD_TYPE_TINY :: (Num a) => a

{-# LINE 12 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_UTINY = 2
c'APR_DBD_TYPE_UTINY :: (Num a) => a

{-# LINE 13 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_SHORT = 3
c'APR_DBD_TYPE_SHORT :: (Num a) => a

{-# LINE 14 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_USHORT = 4
c'APR_DBD_TYPE_USHORT :: (Num a) => a

{-# LINE 15 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_INT = 5
c'APR_DBD_TYPE_INT :: (Num a) => a

{-# LINE 16 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_UINT = 6
c'APR_DBD_TYPE_UINT :: (Num a) => a

{-# LINE 17 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_LONG = 7
c'APR_DBD_TYPE_LONG :: (Num a) => a

{-# LINE 18 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_ULONG = 8
c'APR_DBD_TYPE_ULONG :: (Num a) => a

{-# LINE 19 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_LONGLONG = 9
c'APR_DBD_TYPE_LONGLONG :: (Num a) => a

{-# LINE 20 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_ULONGLONG = 10
c'APR_DBD_TYPE_ULONGLONG :: (Num a) => a

{-# LINE 21 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_FLOAT = 11
c'APR_DBD_TYPE_FLOAT :: (Num a) => a

{-# LINE 22 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_DOUBLE = 12
c'APR_DBD_TYPE_DOUBLE :: (Num a) => a

{-# LINE 23 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_STRING = 13
c'APR_DBD_TYPE_STRING :: (Num a) => a

{-# LINE 24 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_TEXT = 14
c'APR_DBD_TYPE_TEXT :: (Num a) => a

{-# LINE 25 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_TIME = 15
c'APR_DBD_TYPE_TIME :: (Num a) => a

{-# LINE 26 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_DATE = 16
c'APR_DBD_TYPE_DATE :: (Num a) => a

{-# LINE 27 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_DATETIME = 17
c'APR_DBD_TYPE_DATETIME :: (Num a) => a

{-# LINE 28 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_TIMESTAMP = 18
c'APR_DBD_TYPE_TIMESTAMP :: (Num a) => a

{-# LINE 29 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_ZTIMESTAMP = 19
c'APR_DBD_TYPE_ZTIMESTAMP :: (Num a) => a

{-# LINE 30 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_BLOB = 20
c'APR_DBD_TYPE_BLOB :: (Num a) => a

{-# LINE 31 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_CLOB = 21
c'APR_DBD_TYPE_CLOB :: (Num a) => a

{-# LINE 32 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TYPE_NULL = 22
c'APR_DBD_TYPE_NULL :: (Num a) => a

{-# LINE 33 "Bindings/APR/DBD.hsc" #-}

data C'apr_dbd_driver_t = C'apr_dbd_driver_t

{-# LINE 35 "Bindings/APR/DBD.hsc" #-}
data C'apr_dbd_t = C'apr_dbd_t

{-# LINE 36 "Bindings/APR/DBD.hsc" #-}
data C'apr_dbd_transaction_t = C'apr_dbd_transaction_t

{-# LINE 37 "Bindings/APR/DBD.hsc" #-}
data C'apr_dbd_results_t = C'apr_dbd_results_t

{-# LINE 38 "Bindings/APR/DBD.hsc" #-}
data C'apr_dbd_row_t = C'apr_dbd_row_t

{-# LINE 39 "Bindings/APR/DBD.hsc" #-}
data C'apr_dbd_prepared_t = C'apr_dbd_prepared_t

{-# LINE 40 "Bindings/APR/DBD.hsc" #-}

foreign import ccall "apr_dbd_init" c'apr_dbd_init
  :: Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_dbd_init" p'apr_dbd_init
  :: FunPtr (Ptr C'apr_pool_t -> IO C'apr_status_t)

{-# LINE 42 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_get_driver" c'apr_dbd_get_driver
  :: Ptr C'apr_pool_t -> Ptr CChar -> Ptr (Ptr C'apr_dbd_driver_t) -> IO C'apr_status_t
foreign import ccall "&apr_dbd_get_driver" p'apr_dbd_get_driver
  :: FunPtr (Ptr C'apr_pool_t -> Ptr CChar -> Ptr (Ptr C'apr_dbd_driver_t) -> IO C'apr_status_t)

{-# LINE 43 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_open_ex" c'apr_dbd_open_ex
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr CChar -> Ptr (Ptr C'apr_dbd_t) -> Ptr (Ptr CChar) -> IO C'apr_status_t
foreign import ccall "&apr_dbd_open_ex" p'apr_dbd_open_ex
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr CChar -> Ptr (Ptr C'apr_dbd_t) -> Ptr (Ptr CChar) -> IO C'apr_status_t)

{-# LINE 44 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_open" c'apr_dbd_open
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr CChar -> Ptr (Ptr C'apr_dbd_t) -> IO C'apr_status_t
foreign import ccall "&apr_dbd_open" p'apr_dbd_open
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr CChar -> Ptr (Ptr C'apr_dbd_t) -> IO C'apr_status_t)

{-# LINE 45 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_close" c'apr_dbd_close
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> IO C'apr_status_t
foreign import ccall "&apr_dbd_close" p'apr_dbd_close
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> IO C'apr_status_t)

{-# LINE 46 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_name" c'apr_dbd_name
  :: Ptr C'apr_dbd_driver_t -> IO (Ptr CChar)
foreign import ccall "&apr_dbd_name" p'apr_dbd_name
  :: FunPtr (Ptr C'apr_dbd_driver_t -> IO (Ptr CChar))

{-# LINE 47 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_native_handle" c'apr_dbd_native_handle
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> IO (Ptr ())
foreign import ccall "&apr_dbd_native_handle" p'apr_dbd_native_handle
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> IO (Ptr ()))

{-# LINE 48 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_check_conn" c'apr_dbd_check_conn
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> IO CInt
foreign import ccall "&apr_dbd_check_conn" p'apr_dbd_check_conn
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> IO CInt)

{-# LINE 49 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_set_dbname" c'apr_dbd_set_dbname
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CChar -> IO CInt
foreign import ccall "&apr_dbd_set_dbname" p'apr_dbd_set_dbname
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CChar -> IO CInt)

{-# LINE 50 "Bindings/APR/DBD.hsc" #-}

foreign import ccall "apr_dbd_transaction_start" c'apr_dbd_transaction_start
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_transaction_t) -> IO CInt
foreign import ccall "&apr_dbd_transaction_start" p'apr_dbd_transaction_start
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_transaction_t) -> IO CInt)

{-# LINE 52 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_transaction_end" c'apr_dbd_transaction_end
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_transaction_t -> IO CInt
foreign import ccall "&apr_dbd_transaction_end" p'apr_dbd_transaction_end
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_transaction_t -> IO CInt)

{-# LINE 53 "Bindings/APR/DBD.hsc" #-}

c'APR_DBD_TRANSACTION_COMMIT = 0
c'APR_DBD_TRANSACTION_COMMIT :: (Num a) => a

{-# LINE 55 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TRANSACTION_ROLLBACK = 1
c'APR_DBD_TRANSACTION_ROLLBACK :: (Num a) => a

{-# LINE 56 "Bindings/APR/DBD.hsc" #-}
c'APR_DBD_TRANSACTION_IGNORE_ERRORS = 2
c'APR_DBD_TRANSACTION_IGNORE_ERRORS :: (Num a) => a

{-# LINE 57 "Bindings/APR/DBD.hsc" #-}

foreign import ccall "apr_dbd_transaction_mode_get" c'apr_dbd_transaction_mode_get
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_transaction_t -> IO CInt
foreign import ccall "&apr_dbd_transaction_mode_get" p'apr_dbd_transaction_mode_get
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_transaction_t -> IO CInt)

{-# LINE 59 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_transaction_mode_set" c'apr_dbd_transaction_mode_set
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_transaction_t -> CInt -> IO CInt
foreign import ccall "&apr_dbd_transaction_mode_set" p'apr_dbd_transaction_mode_set
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_transaction_t -> CInt -> IO CInt)

{-# LINE 60 "Bindings/APR/DBD.hsc" #-}

foreign import ccall "apr_dbd_query" c'apr_dbd_query
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> Ptr CInt -> Ptr CChar -> IO CInt
foreign import ccall "&apr_dbd_query" p'apr_dbd_query
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> Ptr CInt -> Ptr CChar -> IO CInt)

{-# LINE 62 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_select" c'apr_dbd_select
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_results_t) -> Ptr CChar -> CInt -> IO CInt
foreign import ccall "&apr_dbd_select" p'apr_dbd_select
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_results_t) -> Ptr CChar -> CInt -> IO CInt)

{-# LINE 63 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_num_cols" c'apr_dbd_num_cols
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_results_t -> IO CInt
foreign import ccall "&apr_dbd_num_cols" p'apr_dbd_num_cols
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_results_t -> IO CInt)

{-# LINE 64 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_num_tuples" c'apr_dbd_num_tuples
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_results_t -> IO CInt
foreign import ccall "&apr_dbd_num_tuples" p'apr_dbd_num_tuples
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_results_t -> IO CInt)

{-# LINE 65 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_get_row" c'apr_dbd_get_row
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_results_t -> Ptr (Ptr C'apr_dbd_row_t) -> CInt -> IO CInt
foreign import ccall "&apr_dbd_get_row" p'apr_dbd_get_row
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_results_t -> Ptr (Ptr C'apr_dbd_row_t) -> CInt -> IO CInt)

{-# LINE 66 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_get_entry" c'apr_dbd_get_entry
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_row_t -> CInt -> IO (Ptr CChar)
foreign import ccall "&apr_dbd_get_entry" p'apr_dbd_get_entry
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_row_t -> CInt -> IO (Ptr CChar))

{-# LINE 67 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_get_name" c'apr_dbd_get_name
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_results_t -> CInt -> IO (Ptr CChar)
foreign import ccall "&apr_dbd_get_name" p'apr_dbd_get_name
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_results_t -> CInt -> IO (Ptr CChar))

{-# LINE 68 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_error" c'apr_dbd_error
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> CInt -> IO (Ptr CChar)
foreign import ccall "&apr_dbd_error" p'apr_dbd_error
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> CInt -> IO (Ptr CChar))

{-# LINE 69 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_escape" c'apr_dbd_escape
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> Ptr CChar -> Ptr C'apr_dbd_t -> IO (Ptr CChar)
foreign import ccall "&apr_dbd_escape" p'apr_dbd_escape
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_t -> Ptr CChar -> Ptr C'apr_dbd_t -> IO (Ptr CChar))

{-# LINE 70 "Bindings/APR/DBD.hsc" #-}

foreign import ccall "apr_dbd_prepare" c'apr_dbd_prepare
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CChar -> Ptr CChar -> Ptr (Ptr C'apr_dbd_prepared_t) -> IO CInt
foreign import ccall "&apr_dbd_prepare" p'apr_dbd_prepare
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CChar -> Ptr CChar -> Ptr (Ptr C'apr_dbd_prepared_t) -> IO CInt)

{-# LINE 72 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_pquery" c'apr_dbd_pquery
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CInt -> Ptr C'apr_dbd_prepared_t -> CInt -> Ptr (Ptr CChar) -> IO CInt
foreign import ccall "&apr_dbd_pquery" p'apr_dbd_pquery
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CInt -> Ptr C'apr_dbd_prepared_t -> CInt -> Ptr (Ptr CChar) -> IO CInt)

{-# LINE 73 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_pselect" c'apr_dbd_pselect
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_results_t) -> Ptr C'apr_dbd_prepared_t -> CInt -> CInt -> Ptr (Ptr CChar) -> IO CInt
foreign import ccall "&apr_dbd_pselect" p'apr_dbd_pselect
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_results_t) -> Ptr C'apr_dbd_prepared_t -> CInt -> CInt -> Ptr (Ptr CChar) -> IO CInt)

{-# LINE 74 "Bindings/APR/DBD.hsc" #-}
-- FIXME: apr_dbd_pvquery takes varargs
-- FIXME: apr_dbd_pvselect takes varargs
foreign import ccall "apr_dbd_pbquery" c'apr_dbd_pbquery
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CInt -> Ptr C'apr_dbd_prepared_t -> Ptr (Ptr ()) -> IO CInt
foreign import ccall "&apr_dbd_pbquery" p'apr_dbd_pbquery
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr CInt -> Ptr C'apr_dbd_prepared_t -> Ptr (Ptr ()) -> IO CInt)

{-# LINE 77 "Bindings/APR/DBD.hsc" #-}
foreign import ccall "apr_dbd_pbselect" c'apr_dbd_pbselect
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_results_t) -> Ptr C'apr_dbd_prepared_t -> CInt -> Ptr (Ptr ()) -> IO CInt
foreign import ccall "&apr_dbd_pbselect" p'apr_dbd_pbselect
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_pool_t -> Ptr C'apr_dbd_t -> Ptr (Ptr C'apr_dbd_results_t) -> Ptr C'apr_dbd_prepared_t -> CInt -> Ptr (Ptr ()) -> IO CInt)

{-# LINE 78 "Bindings/APR/DBD.hsc" #-}
-- FIXME: apr_dbd_pvbquery takes varargs
-- FIXME: apr_dbd_pvbselect takes varargs

foreign import ccall "apr_dbd_datum_get" c'apr_dbd_datum_get
  :: Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_row_t -> CInt -> C'apr_dbd_type_e -> Ptr () -> IO C'apr_status_t
foreign import ccall "&apr_dbd_datum_get" p'apr_dbd_datum_get
  :: FunPtr (Ptr C'apr_dbd_driver_t -> Ptr C'apr_dbd_row_t -> CInt -> C'apr_dbd_type_e -> Ptr () -> IO C'apr_status_t)

{-# LINE 82 "Bindings/APR/DBD.hsc" #-}