aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2024-08-17 10:36:23 +1200
committerDavid Rowley <drowley@postgresql.org>2024-08-17 10:36:23 +1200
commitbd8fe12ef3f727ed3658daf9b26beaf2b891e9bc (patch)
tree3345b562bb0dadd11c1d9ecd71993b0d862f8506
parent1d80d6b50e6401828fc445151375f9bde3f99ac6 (diff)
downloadpostgresql-bd8fe12ef3f727ed3658daf9b26beaf2b891e9bc.tar.gz
postgresql-bd8fe12ef3f727ed3658daf9b26beaf2b891e9bc.zip
Relocate a badly placed Assert in COPY FROM code
There's not much point in asserting a pointer isn't NULL after some code has already dereferenced that pointer. Adjust the code so that the Assert occurs before the pointer dereference. The Assert probably has questionable value in the first place, but it seems worth keeping around to document the contract between CopyMultiInsertInfoNextFreeSlot() and its callers. Author: Amul Sul <sulamul@gmail.com> Discussion: https://postgr.es/m/CAAJ_b94hXQzXaJxTLShkxQUgezf_SUxhzX9TH2f-g6gP7bne7g@mail.gmail.com
-rw-r--r--src/backend/commands/copyfrom.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c
index ca85270be6d..2d3462913e1 100644
--- a/src/backend/commands/copyfrom.c
+++ b/src/backend/commands/copyfrom.c
@@ -597,10 +597,12 @@ CopyMultiInsertInfoNextFreeSlot(CopyMultiInsertInfo *miinfo,
ResultRelInfo *rri)
{
CopyMultiInsertBuffer *buffer = rri->ri_CopyMultiInsertBuffer;
- int nused = buffer->nused;
+ int nused;
Assert(buffer != NULL);
- Assert(nused < MAX_BUFFERED_TUPLES);
+ Assert(buffer->nused < MAX_BUFFERED_TUPLES);
+
+ nused = buffer->nused;
if (buffer->slots[nused] == NULL)
buffer->slots[nused] = table_slot_create(rri->ri_RelationDesc, NULL);