Re: Add support for DEFAULT specification in COPY FROM

Zhihong Yu <zyu@yugabyte.com>

From: Zhihong Yu <zyu@yugabyte.com>
To: Israel Barth Rubio <barthisrael@gmail.com>
Cc: Andrew Dunstan <andrew@dunslane.net>, pgsql-hackers@lists.postgresql.org
Date: 2022-10-07T19:16:22Z
Lists: pgsql-hackers
On Fri, Oct 7, 2022 at 12:09 PM Israel Barth Rubio <barthisrael@gmail.com>
wrote:

> Hello Zhihong,
>
> > +               /* attribute is NOT to be copied from input */
> >
> > I think saying `is NOT copied from input` should suffice.
> >
> > +           /* fieldno is 0-index and attnum is 1-index */
> >
> > 0-index -> 0-indexed
>
> I have applied both suggestions, thanks! I'll submit a 4th version
> of the patch soon.
>
> > +   defaults = (bool *) palloc0(num_phys_attrs * sizeof(bool));
> > +   MemSet(defaults, false, num_phys_attrs * sizeof(bool));
> >
> > Is the MemSet() call necessary ?
>
> I would say it is, so it initializes the array with all flags set to false.
> Later, if it detects attributes that should evaluate their default
> expression,
> it would set the flag to true.
>
> Am I missing something?
>
> Regards,
> Israel.
>
Hi,
For the last question, please take a look at:

#define MemSetAligned(start, val, len) \

which is called by palloc0().

Commits

  1. Add a DEFAULT option to COPY FROM