diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c index 80bca79cd0..eb47dea960 100644 --- a/src/backend/commands/copyfrom.c +++ b/src/backend/commands/copyfrom.c @@ -1494,6 +1494,7 @@ BeginCopyFrom(ParseState *pstate, cstate->cur_attname = NULL; cstate->cur_attval = NULL; cstate->relname_only = false; + cstate->defaults = (bool *) palloc0(tupDesc->natts * sizeof(bool)); /* * Allocate buffers for the input pipeline. diff --git a/src/backend/commands/copyfromparse.c b/src/backend/commands/copyfromparse.c index d2e8c74402..232768a6e1 100644 --- a/src/backend/commands/copyfromparse.c +++ b/src/backend/commands/copyfromparse.c @@ -871,7 +871,7 @@ NextCopyFrom(CopyFromState cstate, ExprContext *econtext, /* Initialize all values for row to NULL */ MemSet(values, 0, num_phys_attrs * sizeof(Datum)); MemSet(nulls, true, num_phys_attrs * sizeof(bool)); - cstate->defaults = (bool *) palloc0(num_phys_attrs * sizeof(bool)); + MemSet(cstate->defaults, false, num_phys_attrs * sizeof(bool)); if (!cstate->opts.binary) { @@ -1040,8 +1040,6 @@ NextCopyFrom(CopyFromState cstate, ExprContext *econtext, &nulls[defmap[i]]); } - pfree(cstate->defaults); - return true; }