/* Switch into its memory context */
MemoryContextSwitchTo(GetPerTupleMemoryContext(estate));
+ if (copy_hack > 1)
+ {
+ if (!CopyReadLine(cstate))
+ break;
+ continue;
+ }
+
if (!NextCopyFrom(cstate, econtext, values, nulls, &loaded_oid))
break;
+ if (copy_hack > 0)
+ continue;
+
/* And now we can form the input tuple. */
tuple = heap_form_tuple(tupDesc, values, nulls);
#endif
static int GUC_check_errcode_value;
+int copy_hack;
/* global variables for check hook support */
char *GUC_check_errmsg_string;
NULL, NULL, NULL
},
+ {
+ {"copy_hack", PGC_USERSET, DEVELOPER_OPTIONS,
+ gettext_noop("Hacks COPY."),
+ NULL
+ },
+ ©_hack,
+ 0, 0, INT_MAX,
+ NULL, NULL, NULL
+ },
+
/* End-of-list marker */
{
{NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL, NULL