transaction_status (PGconn)

    /*
     * call-seq:
     *    conn.transaction_status()
     *
     * returns one of the following statuses:
     *   PQTRANS_IDLE    = 0 (connection idle)
     *   PQTRANS_ACTIVE  = 1 (command in progress)
     *   PQTRANS_INTRANS = 2 (idle, within transaction block)
     *   PQTRANS_INERROR = 3 (idle, within failed transaction)
     *   PQTRANS_UNKNOWN = 4 (cannot determine status)
     */
    static VALUE
    pgconn_transaction_status(VALUE self)
    {
            return INT2NUM(PQtransactionStatus(get_pgconn(self)));
    }