LISTEN(l)                                               LISTEN(l)

       LISTEN - Listen for a response on a notify condition

       LISTEN name

       name   Name of notify condition.

       LISTEN Message returned upon successful completion of reg-

       NOTICE Async_Listen: We are already listening on name
              If this backend  is  already  registered  for  that
              notify condition.

       LISTEN  registers  the  current Postgres backend as a lis-
       tener on the notify condition name.

       Whenever the command NOTIFY name  is  invoked,  either  by
       this   backend  or  another  one  connected  to  the  same
       database, all the backends  currently  listening  on  that
       notify  condition  are  notified,  and  each  will in turn
       notify its connected frontend application. See the discus-
       sion of NOTIFY for more information.

       A backend can be unregistered for a given notify condition
       with the UNLISTEN command. Also, a backend's listen regis-
       trations  are  automatically cleared when the backend pro-
       cess exits.

       The method a  frontend  application  must  use  to  detect
       notify  events  depends on which Postgres application pro-
       gramming interface it uses. With the basic libpq  library,
       the  application issues LISTEN as an ordinary SQL command,
       and then must periodically call the routine PQnotifies  to
       find  out  whether  any  notify events have been received.
       Other interfaces such  as  libpgtcl  provide  higher-level
       methods  for handling notify events; indeed, with libpgtcl
       the application programmer should not even issue LISTEN or
       UNLISTEN  directly.  See the documentation for the library
       you are using for more details.

       notify(l) contains a more extensive discussion of the  use
       of LISTEN and NOTIFY.

       name can be any string valid as a name; it need not corre-
       spond to the name of any actual table.  If  notifyname  is
       enclosed in double-quotes, it need not even be a syntacti-
       cally valid name, but can be any string up to  31  charac-
       ters long.

       In  some  previous  releases  of  Postgres, name had to be
       enclosed in double-quotes when it did  not  correspond  to
       any  existing table name, even if syntactically valid as a
       name. That is no longer required.

       Configure and execute a listen/notify sequence from psql:

       LISTEN virtual;
       NOTIFY virtual;

       ASYNC NOTIFY of 'virtual' from backend pid '11239' received

       There is no LISTEN in SQL92.

SQL - Language Statements 15 August 1999                        1