From 61ea5cc6a61ff9eb8b3d7b055e507a726e5856c7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 26 May 2026 11:58:25 -0400 Subject: [PATCH] Add stack depth check to QueueFKConstraintValidation(). QueueFKConstraintValidation() recurses through the partition hierarchy to queue child constraint validations and to mark child rows as validated. With a sufficiently deep partition tree, this can result in a stack-overflow crash. Defend against that as we do elsewhere. Bug: #19482 Reported-by: Alexander Lakhin Author: Ayush Tiwari Reviewed-by: Tom Lane Discussion: https://postgr.es/m/19482-4cc37cbf52d55235@postgresql.org Backpatch-through: 18 --- src/backend/commands/tablecmds.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 1e0bacf85fc..a1845240a98 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -13281,6 +13281,9 @@ QueueFKConstraintValidation(List **wqueue, Relation conrel, Relation fkrel, HeapTuple copyTuple; Form_pg_constraint copy_con; + /* since this function recurses, it could be driven to stack overflow */ + check_stack_depth(); + con = (Form_pg_constraint) GETSTRUCT(contuple); Assert(con->contype == CONSTRAINT_FOREIGN); Assert(!con->convalidated);