postgresql-pure-0.1.2.0: pure Haskell PostgreSQL driver

Safe HaskellNone
LanguageHaskell2010

Database.PostgreSQL.Pure

Contents

Description

This is a client library for PostgreSQL Database which has following features.

Typical Example

Prepare a following table.

CREATE TABLE person (
  id serial PRIMARY KEY,
  name varchar(255) NOT NULL
);
INSERT INTO person (name) VALUES ('Ada');

You can run like following to get the record whose ID is 1.

>>> :set -XOverloadedStrings
>>> :set -XFlexibleContexts
>>> :set -XDataKinds
>>> :set -XTypeFamilies
>>> :set -XTypeApplications
>>> 
>>> import Database.PostgreSQL.Pure
>>> import Data.Default.Class (def)
>>> import Data.Int (Int32)
>>> import Data.ByteString (ByteString)
>>> import Data.Tuple.Only (Only (Only))
>>> import Data.Tuple.List.Only ()
>>> import Data.Tuple.Homotuple.Only ()
>>> 
>>> conn <- connect def
>>> preparedStatementProcedure = parse "" "SELECT id, name FROM person WHERE id = $1" Nothing
>>> portalProcedure <- bind @_ @2 @_ @_ "" BinaryFormat BinaryFormat (parameters conn) (const $ fail "") (Only (1 :: Int32)) preparedStatementProcedure
>>> executedProcedure = execute @_ @_ @(Int32, ByteString) 0 (const $ fail "") portalProcedure
>>> ((_, _, e, _), _) <- sync conn executedProcedure
>>> records e
[(1,"Ada")]

Hints for Type Errors

This module uses type level natural numbers as the number of columns of parameters and results.

If you have constranit errors about tuples, you may forget to import Data.Tuple.List, Data.Tuple.Homotuple and so on, because tuples are treated as vecters with typle level lengths. You can use list interfaces with Database.PostgreSQL.Pure.List, if these errors bother you.

Synopsis

Connection

data Config Source #

A configuration of a connection.

Default configuration is def, which is following.

Config
  { address = AddressResolved $ SockAddrInet 5432 $ tupleToHostAddress (127, 0, 0, 1)
  , user = "postgres"
  , password = ""
  , database = ""
  , sendingBufferSize = 2 ^ (12 :: Int)
  , receptionBufferSize = 2 ^ (12 :: Int)
  }

Constructors

Config 

Fields

Instances
Eq Config Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Methods

(==) :: Config -> Config -> Bool #

(/=) :: Config -> Config -> Bool #

Show Config Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Default Config Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Methods

def :: Config #

data Connection Source #

PostgreSQL connection.

$sel:pid:Connection :: Connection -> Pid Source #

The process ID of the server.

$sel:config:Connection :: Connection -> Config Source #

Configuration of this connection.

data Address Source #

IP address.

Constructors

AddressResolved SockAddr

Address which is DNS resolved.

AddressNotResolved HostName ServiceName

Address which is not DNS resolved.

Instances
Eq Address Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Methods

(==) :: Address -> Address -> Bool #

(/=) :: Address -> Address -> Bool #

Show Address Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

type Pid = Int32 Source #

Proccess ID

withConnection :: Config -> (Connection -> IO a) -> IO a Source #

Bracket function for a connection.

connect :: Config -> IO Connection Source #

To connect to the server.

disconnect :: Connection -> IO () Source #

To disconnect to the server.

Extended Query

parse Source #

Arguments

:: (KnownNat plen, KnownNat rlen, IsHomotupleItem plen Oid, IsHomotupleItem rlen ColumnInfo, IsHomotupleItem rlen Oid, IsHomolisttuple rlen Oid, IsHomolisttuple plen Oid, IsHomolisttuple rlen ColumnInfo) 
=> PreparedStatementName

A new name of prepared statement.

-> Query

SQL whose placeoholder style is dollar style.

-> Maybe (Homotuple plen Oid, Homotuple rlen Oid)

On Nothing an additional pair of a request and a resposne is necessary. If concrete OIDs are given, it will be pass over.

-> PreparedStatementProcedure plen rlen 

To get the procedure to build the message of parsing SQL query and to parse its response.

bind Source #

Arguments

:: (Bind ps, ToRecord param, KnownNat rlen, HasLength (Homotuple rlen ColumnInfo), MonadFail m) 
=> PortalName

A new name of portal.

-> FormatCode

Binary format or text format for the parameter.

-> FormatCode

Binary format or text format for the results.

-> BackendParameters

The set of the server parameters.

-> StringEncoder

How to encode strings.

-> param

Parameter for this query.

-> ps (Length param) rlen

Prepared statement.

-> m (PortalProcedure (Length param) rlen) 

To get the procedure to build the message of binding the parameter and to parse its response.

execute Source #

Arguments

:: (Execute p, FromRecord result, IsHomotupleItem (Length result) ColumnInfo, IsHomolisttuple (Length result) ColumnInfo) 
=> Word

How many records to get. “0” means unlimited.

-> StringDecoder

How to decode strings.

-> p plen (Length result)

Portal.

-> ExecutedProcedure plen (Length result) result 

To get the procedure to build the message of execution and to parse its response.

flush :: Message m => Connection -> m -> IO (MessageResult m) Source #

To build and send the given message and a “Flush” message and to receive and parse those responses.

sync :: Message m => Connection -> m -> IO (MessageResult m, TransactionState) Source #

To build and send the given message and a “Sync” message and to receive and parse those responses.

close :: Close p => p -> CloseProcedure Source #

To build and send the “Close” message and to receive and parse its response.

data PreparedStatement (parameterLength :: Nat) (resultLength :: Nat) Source #

This represents a prepared statement which is already processed by a server.

parameterLength is the number of columns of the parameter and resultLength is the number of columns of the results. This is the same with PreparedStatementProcedure, Portal, PortalProcedure, Executed and ExecutedProcedure.

Instances
Bind PreparedStatement Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

bind :: (ToRecord param, KnownNat rlen, HasLength (Homotuple rlen ColumnInfo), MonadFail m) => PortalName -> FormatCode -> FormatCode -> BackendParameters -> StringEncoder -> param -> PreparedStatement (Length param) rlen -> m (PortalProcedure (Length param) rlen) Source #

HasField "name" (PreparedStatement n m) PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

(oids ~ Homotuple n Oid, Item oids ~ Oid, IsList oids) => HasField "parameterOids" (PreparedStatement n m) oids Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

getField :: PreparedStatement n m -> oids #

Eq (PreparedStatement parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

(==) :: PreparedStatement parameterLength resultLength -> PreparedStatement parameterLength resultLength -> Bool #

(/=) :: PreparedStatement parameterLength resultLength -> PreparedStatement parameterLength resultLength -> Bool #

Show (PreparedStatement parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

showsPrec :: Int -> PreparedStatement parameterLength resultLength -> ShowS #

show :: PreparedStatement parameterLength resultLength -> String #

showList :: [PreparedStatement parameterLength resultLength] -> ShowS #

Close (PreparedStatement parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

close :: PreparedStatement parameterLength resultLength -> CloseProcedure Source #

HasName (PreparedStatement n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (PreparedStatement n m) :: Type Source #

(oids ~ Homotuple n Oid, Item oids ~ Oid, IsList oids) => HasParameterOids (PreparedStatement n m) oids Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

parameterOids :: PreparedStatement n m -> oids Source #

type Name (PreparedStatement n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

data PreparedStatementProcedure (parameterLength :: Nat) (resultLength :: Nat) Source #

This represents a prepared statemnt which is not yet processed by a server.

Instances
Bind PreparedStatementProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure

HasField "name" (PreparedStatementProcedure n m) PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

(oids ~ Homotuple n Oid, Item oids ~ Oid, IsList oids) => HasField "parameterOids" (PreparedStatementProcedure n m) (Maybe oids) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Show (PreparedStatementProcedure parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

showsPrec :: Int -> PreparedStatementProcedure parameterLength resultLength -> ShowS #

show :: PreparedStatementProcedure parameterLength resultLength -> String #

showList :: [PreparedStatementProcedure parameterLength resultLength] -> ShowS #

Message (PreparedStatementProcedure parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

builder :: PreparedStatementProcedure parameterLength resultLength -> Builder

parser :: PreparedStatementProcedure parameterLength resultLength -> Parser (MessageResult (PreparedStatementProcedure parameterLength resultLength))

HasName (PreparedStatementProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (PreparedStatementProcedure n m) :: Type Source #

(oids ~ Homotuple n Oid, Item oids ~ Oid, IsList oids) => HasParameterOids (PreparedStatementProcedure n m) (Maybe oids) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type MessageResult (PreparedStatementProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type Name (PreparedStatementProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

newtype PreparedStatementName Source #

Name of a prepared statement.

Instances
Eq PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Ord PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Read PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Show PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

IsString PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

HasField "name" (PreparedStatementProcedure n m) PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

HasField "name" (PreparedStatement n m) PreparedStatementName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

data Portal (parameterLength :: Nat) (resultLength :: Nat) Source #

This represents a portal which is already processed by a server.

Instances
Execute Portal Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

execute :: (FromRecord result, IsHomotupleItem (Length result) ColumnInfo, IsHomolisttuple (Length result) ColumnInfo) => Word -> StringDecoder -> Portal plen (Length result) -> ExecutedProcedure plen (Length result) result Source #

HasField "name" (Portal n m) PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

getField :: Portal n m -> PortalName #

Eq (Portal parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

(==) :: Portal parameterLength resultLength -> Portal parameterLength resultLength -> Bool #

(/=) :: Portal parameterLength resultLength -> Portal parameterLength resultLength -> Bool #

Show (Portal parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

showsPrec :: Int -> Portal parameterLength resultLength -> ShowS #

show :: Portal parameterLength resultLength -> String #

showList :: [Portal parameterLength resultLength] -> ShowS #

Close (Portal parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

close :: Portal parameterLength resultLength -> CloseProcedure Source #

HasName (Portal n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (Portal n m) :: Type Source #

Methods

name :: Portal n m -> Name (Portal n m) Source #

type Name (Portal n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type Name (Portal n m) = PortalName

data PortalProcedure (parameterLength :: Nat) (resultLength :: Nat) Source #

This represents a portal which is not yet processed by a server.

Instances
Execute PortalProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

execute :: (FromRecord result, IsHomotupleItem (Length result) ColumnInfo, IsHomolisttuple (Length result) ColumnInfo) => Word -> StringDecoder -> PortalProcedure plen (Length result) -> ExecutedProcedure plen (Length result) result Source #

HasField "name" (PortalProcedure n m) PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Show (PortalProcedure parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

showsPrec :: Int -> PortalProcedure parameterLength resultLength -> ShowS #

show :: PortalProcedure parameterLength resultLength -> String #

showList :: [PortalProcedure parameterLength resultLength] -> ShowS #

Message (PortalProcedure parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

builder :: PortalProcedure parameterLength resultLength -> Builder

parser :: PortalProcedure parameterLength resultLength -> Parser (MessageResult (PortalProcedure parameterLength resultLength))

HasName (PortalProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (PortalProcedure n m) :: Type Source #

type MessageResult (PortalProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type Name (PortalProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

newtype PortalName Source #

Name of a portal.

Constructors

PortalName ByteString 
Instances
Eq PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Ord PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Read PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Show PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

IsString PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

HasField "name" (PortalProcedure n m) PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

HasField "name" (Portal n m) PortalName Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

getField :: Portal n m -> PortalName #

data Executed (parameterLength :: Nat) (resultLength :: Nat) r Source #

This represents a result of a “Execute” message which is already processed by a server.

Instances
Eq r => Eq (Executed parameterLength resultLength r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

(==) :: Executed parameterLength resultLength r -> Executed parameterLength resultLength r -> Bool #

(/=) :: Executed parameterLength resultLength r -> Executed parameterLength resultLength r -> Bool #

Show r => Show (Executed parameterLength resultLength r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

showsPrec :: Int -> Executed parameterLength resultLength r -> ShowS #

show :: Executed parameterLength resultLength r -> String #

showList :: [Executed parameterLength resultLength r] -> ShowS #

data ExecutedProcedure (parameterLength :: Nat) (resultLength :: Nat) r Source #

This represents a result of a “Execute” message which is not yet processed by a server.

Instances
Show (ExecutedProcedure parameterLength resultLength r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

showsPrec :: Int -> ExecutedProcedure parameterLength resultLength r -> ShowS #

show :: ExecutedProcedure parameterLength resultLength r -> String #

showList :: [ExecutedProcedure parameterLength resultLength r] -> ShowS #

Message (ExecutedProcedure parameterLength resultLength r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

builder :: ExecutedProcedure parameterLength resultLength r -> Builder

parser :: ExecutedProcedure parameterLength resultLength r -> Parser (MessageResult (ExecutedProcedure parameterLength resultLength r))

type MessageResult (ExecutedProcedure n m r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

data CloseProcedure Source #

This represents a result of a “Close” message which is not yet processed by a server.

newtype Query Source #

SQL query.

This fromString counts only ASCII, becouse it is the same with ByteString.

Constructors

Query ByteString 

class Message m Source #

This means than r is a objective of flush and sync.

Instances
Message () Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Methods

builder :: () -> Builder

parser :: () -> Parser (MessageResult ())

Message CloseProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Message PortalProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Message PreparedStatementProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Message m => Message [m] Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Methods

builder :: [m] -> Builder

parser :: [m] -> Parser (MessageResult [m])

Message (ExecutedProcedure r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

(Message m0, Message m1) => Message (m0, m1) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Methods

builder :: (m0, m1) -> Builder

parser :: (m0, m1) -> Parser (MessageResult (m0, m1))

Message (PortalProcedure parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

builder :: PortalProcedure parameterLength resultLength -> Builder

parser :: PortalProcedure parameterLength resultLength -> Parser (MessageResult (PortalProcedure parameterLength resultLength))

Message (PreparedStatementProcedure parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

builder :: PreparedStatementProcedure parameterLength resultLength -> Builder

parser :: PreparedStatementProcedure parameterLength resultLength -> Parser (MessageResult (PreparedStatementProcedure parameterLength resultLength))

(Message m0, Message m1, Message m2) => Message (m0, m1, m2) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Methods

builder :: (m0, m1, m2) -> Builder

parser :: (m0, m1, m2) -> Parser (MessageResult (m0, m1, m2))

Message (ExecutedProcedure parameterLength resultLength r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

builder :: ExecutedProcedure parameterLength resultLength r -> Builder

parser :: ExecutedProcedure parameterLength resultLength r -> Parser (MessageResult (ExecutedProcedure parameterLength resultLength r))

(Message m0, Message m1, Message m2, Message m3) => Message (m0, m1, m2, m3) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Methods

builder :: (m0, m1, m2, m3) -> Builder

parser :: (m0, m1, m2, m3) -> Parser (MessageResult (m0, m1, m2, m3))

type family MessageResult m :: Type Source #

To convert a type which means that is is not prcessed by the server to a respective type which means that it is processed by the server.

Instances
type MessageResult () Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

type MessageResult () = ()
type MessageResult CloseProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

type MessageResult PortalProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

type MessageResult PreparedStatementProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

type MessageResult [m] Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

type MessageResult (ExecutedProcedure r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

type MessageResult (m0, m1) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

type MessageResult (m0, m1) = (MessageResult m0, MessageResult m1)
type MessageResult (PortalProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type MessageResult (PreparedStatementProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type MessageResult (m0, m1, m2) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

type MessageResult (m0, m1, m2) = (MessageResult m0, MessageResult m1, MessageResult m2)
type MessageResult (ExecutedProcedure n m r) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type MessageResult (m0, m1, m2, m3) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

type MessageResult (m0, m1, m2, m3) = (MessageResult m0, MessageResult m1, MessageResult m2, MessageResult m3)

class Bind ps Source #

This means that ps is a objective of bind.

Minimal complete definition

bind

class Execute p Source #

This means that p is a objective of execute.

Minimal complete definition

execute

Instances
Execute PortalProcedure Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

execute :: (FromRecord result, IsHomotupleItem (Length result) ColumnInfo, IsHomolisttuple (Length result) ColumnInfo) => Word -> StringDecoder -> PortalProcedure plen (Length result) -> ExecutedProcedure plen (Length result) result Source #

Execute Portal Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

execute :: (FromRecord result, IsHomotupleItem (Length result) ColumnInfo, IsHomolisttuple (Length result) ColumnInfo) => Word -> StringDecoder -> Portal plen (Length result) -> ExecutedProcedure plen (Length result) result Source #

class Close p Source #

This means that p is a objective of close.

Minimal complete definition

close

Instances
Close Portal Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Close PreparedStatement Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Query

Close (Portal parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

close :: Portal parameterLength resultLength -> CloseProcedure Source #

Close (PreparedStatement parameterLength resultLength) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

close :: PreparedStatement parameterLength resultLength -> CloseProcedure Source #

type StringEncoder = String -> Either String ByteString Source #

Encoder of strings which may fail.

type StringDecoder = ByteString -> Either String String Source #

Decoder of strings which may fail.

class HasName r Source #

This means that r has a name accesser.

Instances
HasName (PortalProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (PortalProcedure n m) :: Type Source #

HasName (Portal n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (Portal n m) :: Type Source #

Methods

name :: Portal n m -> Name (Portal n m) Source #

HasName (PreparedStatementProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (PreparedStatementProcedure n m) :: Type Source #

HasName (PreparedStatement n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Associated Types

type Name (PreparedStatement n m) :: Type Source #

type family Name r :: Type Source #

Type of name of r.

Instances
type Name (PortalProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type Name (Portal n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type Name (Portal n m) = PortalName
type Name (PreparedStatementProcedure n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

type Name (PreparedStatement n m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

class HasParameterOids r a Source #

This means that r has a parameterOids accesser.

Instances
(oids ~ Homotuple n Oid, Item oids ~ Oid, IsList oids) => HasParameterOids (PreparedStatement n m) oids Source # 
Instance details

Defined in Database.PostgreSQL.Pure

Methods

parameterOids :: PreparedStatement n m -> oids Source #

(oids ~ Homotuple n Oid, Item oids ~ Oid, IsList oids) => HasParameterOids (PreparedStatementProcedure n m) (Maybe oids) Source # 
Instance details

Defined in Database.PostgreSQL.Pure

name :: HasName r => r -> Name r Source #

To get a name of r.

parameterOids :: HasParameterOids r a => r -> a Source #

To get OIDs of a parameter.

resultInfos :: (IsHomolisttuple m ColumnInfo, IsHomotupleItem m ColumnInfo) => PreparedStatement n m -> Homotuple m ColumnInfo Source #

To get a list of column infos of the result record.

result :: Executed n m r -> ExecuteResult Source #

To get the result of Executed.

records :: Executed n m r -> [r] Source #

To get the records of Executed.

Transaction

begin :: ExecutedProcedure 0 0 () Source #

To send BEGIN SQL statement.

commit :: ExecutedProcedure 0 0 () Source #

To send COMMIT SQL statement.

rollback :: ExecutedProcedure 0 0 () Source #

To send ROLLBACK SQL statement.

Record

class FromField a where Source #

This means that a field can be decoded as a.

Methods

fromField :: MonadFail m => StringDecoder -> ColumnInfo -> Maybe ByteString -> m a Source #

Decoder of a field.

Instances
FromField Bool Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Char Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Double Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Float Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Int Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Int16 Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Int32 Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Int64 Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField SqlValue Source # 
Instance details

Defined in Database.HDBC.PostgreSQL.Pure

FromField ByteString Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Scientific Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField UTCTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Day Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField DiffTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField TimeOfDay Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField LocalTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField Raw Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField a => FromField (Maybe a) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField (TimeOfDay, TimeZone) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

class FromRecord a where Source #

This means that a record can be parsed as a.

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser a Source #

Decoder of a record.

Instances
FromRecord () Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

(FromField a, Single c, t ~ c a) => FromRecord t Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

FromField a => FromRecord [a] Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

(FromField a, FromField b) => FromRecord (a, b) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

(FromField a, FromField b, FromField c) => FromRecord (a, b, c) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c) Source #

(FromField a, FromField b, FromField c, FromField d) => FromRecord (a, b, c, d) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e) => FromRecord (a, b, c, d, e) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f) => FromRecord (a, b, c, d, e, f) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g) => FromRecord (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h) => FromRecord (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i) => FromRecord (a, b, c, d, e, f, g, h, i) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j) => FromRecord (a, b, c, d, e, f, g, h, i, j) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i, j) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j, FromField k) => FromRecord (a, b, c, d, e, f, g, h, i, j, k) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i, j, k) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j, FromField k, FromField l) => FromRecord (a, b, c, d, e, f, g, h, i, j, k, l) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i, j, k, l) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j, FromField k, FromField l, FromField m) => FromRecord (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j, FromField k, FromField l, FromField m, FromField n) => FromRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source #

(FromField a, FromField b, FromField c, FromField d, FromField e, FromField f, FromField g, FromField h, FromField i, FromField j, FromField k, FromField l, FromField m, FromField n, FromField o) => FromRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Methods

fromRecord :: StringDecoder -> [ColumnInfo] -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source #

class ToField a where Source #

This means that a can be encoded to a field.

Methods

toField :: MonadFail m => BackendParameters -> StringEncoder -> Maybe Oid -> FormatCode -> a -> m (Maybe ByteString) Source #

Encoder of a field.

Instances
ToField Bool Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Char Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Double Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Float Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Int Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Int16 Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Int32 Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Int64 Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Rational Source #

Security risk of DoS attack.

You should convert Rational to Scientific with fromRationalRepetend in the user side. If the rational value is computed to repeating decimals like 1/3 = 0.3333…, this consumes a lot of memories. This is provided because of the HDBC compatibility.

Instance details

Defined in Database.HDBC.PostgreSQL.Pure

ToField () Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField String Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField NominalDiffTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField SqlValue Source # 
Instance details

Defined in Database.HDBC.PostgreSQL.Pure

ToField ByteString Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Scientific Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField UTCTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Day Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField DiffTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField TimeOfDay Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField LocalTime Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

HasResolution a => ToField (Fixed a) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField (TimeOfDay, TimeZone) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

class ToRecord a where Source #

This means that a can be encoded to a record.

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> a -> m [Maybe ByteString] Source #

Encoder of a field.

Instances
ToRecord () Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

(ToField a, Single c, t ~ c a) => ToRecord t Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

ToField a => ToRecord [a] Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

(ToField a, ToField b) => ToRecord (a, b) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

(ToField a, ToField b, ToField c) => ToRecord (a, b, c) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d) => ToRecord (a, b, c, d) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e) => ToRecord (a, b, c, d, e) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f) => ToRecord (a, b, c, d, e, f) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g) => ToRecord (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h) => ToRecord (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i) => ToRecord (a, b, c, d, e, f, g, h, i) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j) => ToRecord (a, b, c, d, e, f, g, h, i, j) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i, j) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j, ToField k) => ToRecord (a, b, c, d, e, f, g, h, i, j, k) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i, j, k) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j, ToField k, ToField l) => ToRecord (a, b, c, d, e, f, g, h, i, j, k, l) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i, j, k, l) -> m [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j, ToField k, ToField l, ToField m) => ToRecord (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m0 => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i, j, k, l, m) -> m0 [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j, ToField k, ToField l, ToField m, ToField n) => ToRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m0 => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> m0 [Maybe ByteString] Source #

(ToField a, ToField b, ToField c, ToField d, ToField e, ToField f, ToField g, ToField h, ToField i, ToField j, ToField k, ToField l, ToField m, ToField n, ToField o) => ToRecord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

Methods

toRecord :: MonadFail m0 => BackendParameters -> StringEncoder -> Maybe [Oid] -> [FormatCode] -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> m0 [Maybe ByteString] Source #

data Raw where Source #

Data without encoding nor decoding of a field.

Bundled Patterns

pattern Value :: ByteString -> Raw

Not NULL.

pattern Null :: Raw

NULL.

Instances
Eq Raw Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Methods

(==) :: Raw -> Raw -> Bool #

(/=) :: Raw -> Raw -> Bool #

Ord Raw Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Methods

compare :: Raw -> Raw -> Ordering #

(<) :: Raw -> Raw -> Bool #

(<=) :: Raw -> Raw -> Bool #

(>) :: Raw -> Raw -> Bool #

(>=) :: Raw -> Raw -> Bool #

max :: Raw -> Raw -> Raw #

min :: Raw -> Raw -> Raw #

Read Raw Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Show Raw Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Data

Methods

showsPrec :: Int -> Raw -> ShowS #

show :: Raw -> String #

showList :: [Raw] -> ShowS #

FromField Raw Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Exception

OID

data Oid Source #

OID.

Constant values are listed in Database.PostgreSQL.Pure.Oid.

Instances
Eq Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Oid

Methods

(==) :: Oid -> Oid -> Bool #

(/=) :: Oid -> Oid -> Bool #

Num Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Oid

Methods

(+) :: Oid -> Oid -> Oid #

(-) :: Oid -> Oid -> Oid #

(*) :: Oid -> Oid -> Oid #

negate :: Oid -> Oid #

abs :: Oid -> Oid #

signum :: Oid -> Oid #

fromInteger :: Integer -> Oid #

Read Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Oid

Show Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Oid

Methods

showsPrec :: Int -> Oid -> ShowS #

show :: Oid -> String #

showList :: [Oid] -> ShowS #

ToField Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Builder

FromField Oid Source # 
Instance details

Defined in Database.PostgreSQL.Pure.Internal.Parser

Convertible Oid SqlTypeId Source # 
Instance details

Defined in Database.HDBC.PostgreSQL.Pure