Hi! Nice feature.
Few comments:
> + When a positive integer value is specified, <command>COPY</command> limits
> + the maximum tolerable number of errors while converting a column's input
> + value into its data type.
If nothing is specified, then the maximum tolerable number of errors
is one, right? Should we state this explicitly in the documentation?
> +COPY x from stdin with (on_error ignore, reject_limit 0);
How about a test where reject_limit is a string, but not
(case-intensively) 'infinity'?
> + CopyRejectLimits reject_limits; /* thresholds of reject_limit */
Why are there multiple thresholds? Can we have only one?
Other places look good to me.