Re: COPY as a set returning function - Mailing list pgsql-hackers

From Merlin Moncure
Subject Re: COPY as a set returning function
Date
Msg-id CAHyXU0wYKwx0p=oXDDrb7ni_PNK4934KobqmxzBuERqdhHzHNw@mail.gmail.com
Whole thread Raw
In response to Re: COPY as a set returning function  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: COPY as a set returning function  (Corey Huinker <corey.huinker@gmail.com>)
List pgsql-hackers
On Fri, Sep 30, 2016 at 9:56 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Craig Ringer <craig.ringer@2ndquadrant.com> writes:
>> On 1 Oct. 2016 05:20, "Tom Lane" <tgl@sss.pgh.pa.us> wrote:
>>> I think the last of those suggestions has come up before.  It has the
>>> large advantage that you don't have to remember a different syntax for
>>> copy-as-a-function.
>
>> That sounds fantastic. It'd help this copy variant retain festure parity
>> with normal copy. And it'd bring us closer to being able to FETCH in non
>> queries.
>
> On second thought, though, this couldn't exactly duplicate the existing
> COPY syntax, because COPY relies heavily on the rowtype of the named
> target table to tell it what it's copying.  You'd need some new syntax
> to provide the list of column names and types, which puts a bit of
> a hole in the "syntax we already know" argument.  A SRF-returning-record
> would have a leg up on that, because we do have existing syntax for
> defining the concrete rowtype that any particular call returns.

One big disadvantage of SRF-returning-record syntax is that functions
are basically unwrappable with generic wrappers sans major gymnastics
such as dynamically generating the query and executing it.  This is a
major disadvantage relative to the null::type hack we use in the
populate_record style functions and perhaps ought to make this
(SRF-returning-record syntax) style of use discouraged for useful
library functions.  If there were a way to handle wrapping I'd
withdraw this minor objection -- this has come up in dblink
discussions a few times).

merlin



pgsql-hackers by date:

Previous
From: "Daniel Verite"
Date:
Subject: Re: [PATCH] Better logging of COPY queries if log_statement='all'
Next
From: Merlin Moncure
Date:
Subject: Re: emergency outage requiring database restart