EV-Pg

 view release on metacpan or  search on metacpan

Pg.xs  view on Meta::CPAN

                    }
                    if (st == PGRES_COPY_IN || st == PGRES_COPY_BOTH) {
                        int ce = PQputCopyEnd(self->conn, "skipped");
                        if (ce == -1) {
                            if (last_res) PQclear(last_res);
                            handle_conn_loss(self);
                            return;
                        }
                        /* ce == 0: END queued, flush pending; ce > 0: END sent.
                         * asyncStatus is already PGASYNC_BUSY — fall through to
                         * drain COMMAND_OK (or set draining_single_row if busy). */
                        check_flush(self);
                        if (self->magic != EV_PG_MAGIC || !self->conn) {
                            if (last_res) PQclear(last_res);
                            return;
                        }
                    }
                    /* Drain COMMAND_OK + NULL */
                    while (self->conn && !PQisBusy(self->conn)) {
                        PGresult *r = PQgetResult(self->conn);
                        if (NULL == r) { drained = 1; break; }



( run in 0.709 second using v1.01-cache-2.11-cpan-39bf76dae61 )