> > \portal name [max_rows]
> >
> > -- prepare the statements
> > select from mytab limit $1 \parse p1
> >
> > -- bind/execute the statement, optionally to a portal
> > \bind_named p1 10 \portal portalname \g
> > \bind_named p1 50 \portal portalname \g
> >
> > -- bind/execute the statement, optionally to a portal, with max_rows
> > \bind_named p1 50 \portal portalname 50 \g
> > \bind_named p1 50 \portal portalname 40 \g
> > ```
> >
> > The syntax may seem awkward, but we already do this with \bind,
> > where the meta command is not at the start.
> >
> > ```
> > select $ \bind 1 \g
> > ```
>
> The separate "\portal" command is the design I actually find
> surprisingly simple and pretty. So, that's what I have implemented in
> v1-0002.
cool!
> I am now posting some WIP versions of changes. v1-0001 still needs
> some comprehensive changes to the doc, but I decided to already post
> something to this thread.
> Another concern is changing the ABI of libpq. v1-0001 changes the
> number of `PQsendQueryPrepared` parameters, and this is something that
> has not been changed for 20+ years... Maybe the better choice would be
> a new, separate function (which will still be just a proxy-function to
> PQsendQueryGuts)?
We will need a new function called `PQsendQueryPreparedPortal` or something
like that, which takes in a portal name. `PQsendQueryGuts` will need
to be modified
to take in a portal name, but being a local function, that will not
break libpq ABI.
> Also, I think that we need to support closing destination portals
> using psql meta-commands. The current design in my head is a separate
> "'\close_cursor <name>" command. Since we still can cancel a portal
> using SQL-level command (CLOSE), I think this should be separate
> patches to the series. WHYT?
I think it will be good to have a \close_cursor. I think \close_portal will
be better since a SQL-level cursor is just one way to create a named
portal.
It will be good, IMO, to roll this out with everything else to have
feature parity
with \close_prepared.
--
Sami Imseih
Amazon Web Services (AWS)