Module Postgresql

module Postgresql: sig .. end
Client-interface to the PostgreSQL database.


Please learn about more details in the database documentation!

Types

type oid = int 
Object ID (= Postgresql type of an object)
type large_object 
Handle for large objects
module FFormat: sig .. end
Type of field formats
type ftype = 
| BOOL
| BYTEA
| CHAR
| NAME
| INT8
| INT2
| INT2VECTOR
| INT4
| REGPROC
| TEXT
| OID
| TID
| XID
| CID
| OIDVECTOR
| JSON
| POINT
| LSEG
| PATH
| BOX
| POLYGON
| LINE
| FLOAT4
| FLOAT8
| ABSTIME
| RELTIME
| TINTERVAL
| UNKNOWN
| CIRCLE
| CASH
| MACADDR
| INET
| CIDR
| ACLITEM
| BPCHAR
| VARCHAR
| DATE
| TIME
| TIMESTAMP
| TIMESTAMPTZ
| INTERVAL
| TIMETZ
| BIT
| VARBIT
| NUMERIC
| REFCURSOR
| REGPROCEDURE
| REGOPER
| REGOPERATOR
| REGCLASS
| REGTYPE
| RECORD
| CSTRING
| ANY
| ANYARRAY
| VOID
| TRIGGER
| LANGUAGE_HANDLER
| INTERNAL
| OPAQUE
| ANYELEMENT
| JSONB
Type of fields
type result_status = 
| Empty_query (*
String sent to the backend was empty
*)
| Command_ok (*
Successful completion of a command returning no data
*)
| Tuples_ok (*
The query successfully executed
*)
| Copy_out (*
Copy Out (from server) data transfer started
*)
| Copy_in (*
Copy In (to server) data transfer started
*)
| Bad_response (*
The server's response was not understood
*)
| Nonfatal_error
| Fatal_error
| Copy_both
| Single_tuple (*
One tuple of a result set (set_single_row_mode)
*)
Status of command/query results
type getline_result = 
| EOF (*
End of input reached
*)
| LineRead (*
Entire line has been read
*)
| BufFull (*
Buffer full but terminating newline not encountered
*)
Result of getline
type getline_async_result = 
| EndOfData (*
End-of-copy-data marker recognized
*)
| NoData (*
No data available
*)
| DataRead of int (*
DataRead n indicates n bytes of read data
*)
| PartDataRead of int (*
Like DataRead, but data only partially read
*)
Result of getline_async
type seek_cmd = 
| SEEK_SET (*
Seek from start of large object
*)
| SEEK_CUR (*
Seek from current read/write position of large object
*)
| SEEK_END (*
Seek from end of large object
*)
Seek command ("whence")

Exceptions and error handling

type error = 
| Field_out_of_range of int * int
| Tuple_out_of_range of int * int
| Binary
| Connection_failure of string
| Unexpected_status of result_status * string * result_status list
| Cancel_failure of string
Kinds of exceptions:

Field_out_of_range (i, n) - access to field i not within range n Tuple_out_of_range (i, n) - access to tuple i not within range n Binary - result consists of binary tuple data Connection_failure msg - connection failed due to reason msg Unexpected_status (stat, msg, expected) - result status stat was not in expected due to error msg

exception Error of error
Error error indicates an error
val string_of_error : error -> string
string_of_error error convert error to a human-readable message
exception Oid of oid
Oid oid conversion from an oid to an ftype encountered an unknown oid

Utility functions

val unescape_bytea : string -> string
unescape_bytea str unescapes binary string str. This function supports the new hex format for encoding bytea strings (introduced in Postgresql 9.0) even if the local libpq library is from an older version.
val ftype_of_oid : oid -> ftype
ftype_of_oid oid converts oid to an ftype.
val oid_of_ftype : ftype -> oid
oid_of_ftype ftype converts ftype to an oid.
val string_of_ftype : ftype -> string
string_of_ftype ftype converts ftype to a string.
val ftype_of_string : string -> ftype
string_of_ftype ftype converts ftype to a string.

Handling results of commands and queries

val result_status : result_status -> string
result_status stat convert status stat to a human-readable message
val invalid_oid : oid
invalid_oid invalid Oid.

Query parameters

val null : string
null can be used as an element of the optional argument parameters passed to the exec or send_query method to indicate a NULL value.
class type result = object .. end
Class type of query results.

Handling database connections

type connection_status = 
| Ok
| Bad
| Connection_started
| Connection_made
| Connection_awaiting_response
| Connection_auth_ok
| Connection_setenv
| Connection_ssl_startup
Status of a connection
type polling_status = 
| Polling_failed
| Polling_reading
| Polling_writing
| Polling_ok
Polling status used while establishing a connection asynchronously.
type flush_status = 
| Successful
| Data_left_to_send
Result of a call to flush on nonblocking connections.
type conninfo_option = {
   cio_keyword : string; (*
Keyword of option
*)
   cio_envvar : string option; (*
Fallback environment variable name
*)
   cio_compiled : string option; (*
Fallback compiled in default value
*)
   cio_val : string option; (*
Current value of option, or NULL
*)
   cio_label : string; (*
Label for field in connect dialog
*)
   cio_dispchar : string; (*
Character to display for this field in dialog
*)
   cio_dispsize : int; (*
Field size in characters for dialog
*)
}
Record of connection options
module Notification: sig .. end
Type of asynchronous notifications
val conndefaults : unit -> conninfo_option array
conndefaults ()
Returns array of all records of type conninfo_option
class connection : ?host:string -> ?hostaddr:string -> ?port:string -> ?dbname:string -> ?user:string -> ?password:string -> ?options:string -> ?tty:string -> ?requiressl:string -> ?conninfo:string -> ?startonly:bool -> unit -> object .. end
Class of connections.