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

Copyright(c) 2011-2012 Leon P Smith
LicenseBSD3
Maintainerleon@melding-monads.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell98

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

getNotification :: Connection -> IO Notification Source

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 CPid Source

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!