@ -21,6 +21,7 @@
# include "catalog/pg_type.h"
# include "catalog/pg_type.h"
# include "funcapi.h"
# include "funcapi.h"
# include "libpq/pqformat.h"
# include "libpq/pqformat.h"
# include "miscadmin.h"
# include "utils/builtins.h"
# include "utils/builtins.h"
# include "utils/lsyscache.h"
# include "utils/lsyscache.h"
# include "utils/typcache.h"
# include "utils/typcache.h"
@ -86,6 +87,8 @@ record_in(PG_FUNCTION_ARGS)
bool * nulls ;
bool * nulls ;
StringInfoData buf ;
StringInfoData buf ;
check_stack_depth ( ) ; /* recurses for record-type columns */
/*
/*
* Give a friendly error message if we did not get enough info to identify
* Give a friendly error message if we did not get enough info to identify
* the target record type . ( lookup_rowtype_tupdesc would fail anyway , but
* the target record type . ( lookup_rowtype_tupdesc would fail anyway , but
@ -309,6 +312,8 @@ record_out(PG_FUNCTION_ARGS)
bool * nulls ;
bool * nulls ;
StringInfoData buf ;
StringInfoData buf ;
check_stack_depth ( ) ; /* recurses for record-type columns */
/* Extract type info from the tuple itself */
/* Extract type info from the tuple itself */
tupType = HeapTupleHeaderGetTypeId ( rec ) ;
tupType = HeapTupleHeaderGetTypeId ( rec ) ;
tupTypmod = HeapTupleHeaderGetTypMod ( rec ) ;
tupTypmod = HeapTupleHeaderGetTypMod ( rec ) ;
@ -458,6 +463,8 @@ record_recv(PG_FUNCTION_ARGS)
Datum * values ;
Datum * values ;
bool * nulls ;
bool * nulls ;
check_stack_depth ( ) ; /* recurses for record-type columns */
/*
/*
* Give a friendly error message if we did not get enough info to identify
* Give a friendly error message if we did not get enough info to identify
* the target record type . ( lookup_rowtype_tupdesc would fail anyway , but
* the target record type . ( lookup_rowtype_tupdesc would fail anyway , but
@ -650,6 +657,8 @@ record_send(PG_FUNCTION_ARGS)
bool * nulls ;
bool * nulls ;
StringInfoData buf ;
StringInfoData buf ;
check_stack_depth ( ) ; /* recurses for record-type columns */
/* Extract type info from the tuple itself */
/* Extract type info from the tuple itself */
tupType = HeapTupleHeaderGetTypeId ( rec ) ;
tupType = HeapTupleHeaderGetTypeId ( rec ) ;
tupTypmod = HeapTupleHeaderGetTypMod ( rec ) ;
tupTypmod = HeapTupleHeaderGetTypMod ( rec ) ;
@ -793,6 +802,8 @@ record_cmp(FunctionCallInfo fcinfo)
int i2 ;
int i2 ;
int j ;
int j ;
check_stack_depth ( ) ; /* recurses for record-type columns */
/* Extract type info from the tuples */
/* Extract type info from the tuples */
tupType1 = HeapTupleHeaderGetTypeId ( record1 ) ;
tupType1 = HeapTupleHeaderGetTypeId ( record1 ) ;
tupTypmod1 = HeapTupleHeaderGetTypMod ( record1 ) ;
tupTypmod1 = HeapTupleHeaderGetTypMod ( record1 ) ;
@ -1029,6 +1040,8 @@ record_eq(PG_FUNCTION_ARGS)
int i2 ;
int i2 ;
int j ;
int j ;
check_stack_depth ( ) ; /* recurses for record-type columns */
/* Extract type info from the tuples */
/* Extract type info from the tuples */
tupType1 = HeapTupleHeaderGetTypeId ( record1 ) ;
tupType1 = HeapTupleHeaderGetTypeId ( record1 ) ;
tupTypmod1 = HeapTupleHeaderGetTypMod ( record1 ) ;
tupTypmod1 = HeapTupleHeaderGetTypMod ( record1 ) ;