diff options
-rw-r--r-- | src/backend/utils/adt/rowtypes.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c index fa2a1c4773e..00e361f016e 100644 --- a/src/backend/utils/adt/rowtypes.c +++ b/src/backend/utils/adt/rowtypes.c @@ -19,6 +19,7 @@ #include "catalog/pg_type.h" #include "funcapi.h" #include "libpq/pqformat.h" +#include "miscadmin.h" #include "utils/builtins.h" #include "utils/lsyscache.h" #include "utils/typcache.h" @@ -88,6 +89,8 @@ record_in(PG_FUNCTION_ARGS) bool *nulls; StringInfoData buf; + check_stack_depth(); /* recurses for record-type columns */ + /* * Use the passed type unless it's RECORD; we can't support input of * anonymous types, mainly because there's no good way to figure out which @@ -310,6 +313,8 @@ record_out(PG_FUNCTION_ARGS) bool *nulls; StringInfoData buf; + check_stack_depth(); /* recurses for record-type columns */ + /* Extract type info from the tuple itself */ tupType = HeapTupleHeaderGetTypeId(rec); tupTypmod = HeapTupleHeaderGetTypMod(rec); @@ -477,6 +482,8 @@ record_recv(PG_FUNCTION_ARGS) Datum *values; bool *nulls; + check_stack_depth(); /* recurses for record-type columns */ + /* * Use the passed type unless it's RECORD; we can't support input of * anonymous types, mainly because there's no good way to figure out which @@ -667,6 +674,8 @@ record_send(PG_FUNCTION_ARGS) bool *nulls; StringInfoData buf; + check_stack_depth(); /* recurses for record-type columns */ + /* Extract type info from the tuple itself */ tupType = HeapTupleHeaderGetTypeId(rec); tupTypmod = HeapTupleHeaderGetTypMod(rec); @@ -826,6 +835,8 @@ record_cmp(FunctionCallInfo fcinfo) int i2; int j; + check_stack_depth(); /* recurses for record-type columns */ + /* Extract type info from the tuples */ tupType1 = HeapTupleHeaderGetTypeId(record1); tupTypmod1 = HeapTupleHeaderGetTypMod(record1); @@ -1052,6 +1063,8 @@ record_eq(PG_FUNCTION_ARGS) int i2; int j; + check_stack_depth(); /* recurses for record-type columns */ + /* Extract type info from the tuples */ tupType1 = HeapTupleHeaderGetTypeId(record1); tupTypmod1 = HeapTupleHeaderGetTypMod(record1); |