]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
For 11 only, put back heap_expand_tuple to GetTupleForTrigger().
authorAndres Freund <andres@anarazel.de>
Sat, 9 Feb 2019 10:44:10 +0000 (02:44 -0800)
committerAndres Freund <andres@anarazel.de>
Sat, 9 Feb 2019 10:44:10 +0000 (02:44 -0800)
This is not necessary anymore after 297d627e, but extensions that have
not been recompiled after the fix will not use the new definition of
heap_getattr(). While recompiling those extensions is obviously the
suggested course, it's cheap enough to retain the expansion in
GetTupleForTrigger().

Per suggestion from Andrew Gierth.

Discussion: 87va1x43ot.fsf@news-spur.riddles.org.uk

src/backend/commands/trigger.c

index d7ffc9c3e2bbf826f6a1a28414013c400c475b34..f6c7a3fefc59ca9f1cad9a4fa595bb594623e2b5 100644 (file)
@@ -3396,7 +3396,15 @@ ltrmark:;
                LockBuffer(buffer, BUFFER_LOCK_UNLOCK);
        }
 
-       result = heap_copytuple(&tuple);
+       /*
+        * While this is not necessary anymore after 297d627e, as a defense
+        * against C code that has not recompiled for minor releases after the
+        * fix, continue to expand the tuple.
+        */
+       if (HeapTupleHeaderGetNatts(tuple.t_data) < relation->rd_att->natts)
+               result = heap_expand_tuple(&tuple, relation->rd_att);
+       else
+               result = heap_copytuple(&tuple);
        ReleaseBuffer(buffer);
 
        return result;