Hi,
+       if (querymode == QUERY_SIMPLE)
+       {
+           commandFailed(st, "startpipeline", "cannot use pipeline mode
with the simple query protocol");
+           st->state = CSTATE_ABORTED;
+           return CSTATE_ABORTED;

I wonder why the st->state is only assigned for this if block. The state is
not set for other cases where CSTATE_ABORTED is returned.

Should PQ_PIPELINE_OFF be returned for the following case ?

+PQpipelineStatus(const PGconn *conn)
+{
+   if (!conn)
+       return false;

Cheers

On Tue, Feb 16, 2021 at 3:14 PM Alvaro Herrera <alvhe...@alvh.no-ip.org>
wrote:

> Here's a new version, where I've renamed everything to "pipeline".  I
> think the docs could use some additional tweaks now in order to make a
> coherent story on pipeline mode, how it can be used in a batched
> fashion, etc.
>
> Here's the renames I applied.  It's mostly mechanical, except
> PQbatchSendQueue is now PQsendPipeline:
>
>         PQBatchStatus -> PGpipelineStatus (enum)
>         PQBATCH_MODE_OFF -> PQ_PIPELINE_OFF
>         PQBATCH_MODE_ON -> PQ_PIPELINE_ON
>         PQBATCH_MODE_ABORTED -> PQ_PIPELINE_ABORTED
>         PQbatchStatus -> PQpipelineStatus (function)
>         PQenterBatchMode -> PQenterPipelineMode
>         PQexitBatchMode -> PQexitPipelineMode
>         PQbatchSendQueue -> PQsendPipeline
>         PGRES_BATCH_END -> PGRES_PIPELINE_END
>         PGRES_BATCH_ABORTED -> PGRES_PIPELINE_ABORTED
>
> Also, PQbatchStatus(conn) returns enum PGpipelineStatus (it previously
> returned int).
>
> I'm tempted to rename PGASYNC_QUEUED to PGASYNC_PIPELINE_IDLE (not sure
> if PGASYNC_PIPELINE_READY fits better with the existing one).
>
>
> In pgbench, I changed the metacommands to be \startpipeline and
> \endpipeline.  There's a failing Assert() there which I commented out;
> needs fixed.
>
> --
> Álvaro Herrera                            39°49'30"S 73°17'W
>

Reply via email to