postgresql-simple-0.4.7.0: Mid-Level PostgreSQL client library

Stabilityexperimental
Maintainerleon@melding-monads.com
Safe HaskellNone

Database.PostgreSQL.Simple.Notification

Description

Support for receiving asynchronous notifications via PostgreSQL's Listen/Notify mechanism. See http://www.postgresql.org/docs/9.1/static/sql-notify.html for more information.

Note that on Windows, getNotification currently uses a polling loop of 1 second to check for more notifications, due to some inadequacies in GHC's IO implementation and interface on that platform. See GHC issue #7353 for more information. While this workaround is less than ideal, notifications are still better than polling the database directly. Notifications do not create any extra work for the backend, and are likely cheaper on the client side as well.

http://hackage.haskell.org/trac/ghc/ticket/7353

Synopsis

Documentation

data Notification Source

Constructors

Notification 

Fields

notificationPid :: !CPid
 
notificationChannel :: !ByteString
 
notificationData :: !ByteString
 

getNotification :: Connection -> IO NotificationSource

Returns a single notification. If no notifications are available, getNotification blocks until one arrives.

getNotificationNonBlocking :: Connection -> IO (Maybe Notification)Source

Non-blocking variant of getNotification. Returns a single notification, if available. If no notifications are available, returns Nothing.

getBackendPID :: Connection -> IO CPidSource

Returns the process CPid of the backend server process handling this connection.

The backend PID is useful for debugging purposes and for comparison to NOTIFY messages (which include the PID of the notifying backend process). Note that the PID belongs to a process executing on the database server host, not the local host!