get_notify (PGconn)

    /*
     * call-seq:
     *    conn.get_notify()
     *
     * Returns an array of the unprocessed notifiers.
     * If there is no unprocessed notifier, it returns +nil+.
     */
    static VALUE
    pgconn_get_notify(obj)
        VALUE obj;
    {
        PGconn* conn = get_pgconn(obj);
        PGnotify *notify;
        VALUE ary;

        if (PQconsumeInput(conn) == 0) {
            rb_raise(rb_ePGError, PQerrorMessage(conn));
        }
        /* gets notify and builds result */
        notify = PQnotifies(conn);
        if (notify == NULL) {
            /* there are no unhandled notifications */
            return Qnil;
        }
        ary = rb_ary_new3(2, rb_tainted_str_new2(notify->relname), INT2NUM(notify->be_pid));
        PQfreemem(notify);

        /* returns result */
        return ary;
    }