OPTIONAL
SYNOPSIS
        int pg_pending()
        int pg_pending(object obj)

DESCRIPTION
        Return the number of pending queries for the connection on the given
        object <obj> (default is the current object). The object has no
        database connection, return -1.

        The function is available only if the driver is compiled with
        PostgreSQL support. In that case, __PGSQL__ is defined.

        The efun triggers a privilege violation ("pgsql", "pg_pending").

HISTORY
        Added in 3.3.445.
        LDMud 3.3.640 added the privilege violation.

SEE ALSO
        pgsql(C), pg_connect(E), pg_conv_string(E), pg_query(E), pg_close(E),
        privilege_violation(M)
