@ -1,5 +1,5 @@
/*
/*
* $ PostgreSQL : pgsql / contrib / pgstattuple / pgstattuple . c , v 1.20 2005 / 10 / 15 02 : 49 : 06 momjian Exp $
* $ PostgreSQL : pgsql / contrib / pgstattuple / pgstattuple . c , v 1.20 .2 .1 2009 / 03 / 31 22 : 56 : 05 tgl Exp $
*
*
* Copyright ( c ) 2001 , 2002 Tatsuo Ishii
* Copyright ( c ) 2001 , 2002 Tatsuo Ishii
*
*
@ -115,6 +115,16 @@ pgstattuple_real(Relation rel, FunctionCallInfo fcinfo)
int i ;
int i ;
Datum result ;
Datum result ;
/*
* Reject attempts to read non - local temporary relations ; we would
* be likely to get wrong data since we have no visibility into the
* owning session ' s local buffers .
*/
if ( isOtherTempNamespace ( RelationGetNamespace ( rel ) ) )
ereport ( ERROR ,
( errcode ( ERRCODE_FEATURE_NOT_SUPPORTED ) ,
errmsg ( " cannot access temporary tables of other sessions " ) ) ) ;
/* Build a tuple descriptor for our result type */
/* Build a tuple descriptor for our result type */
if ( get_call_result_type ( fcinfo , NULL , & tupdesc ) ! = TYPEFUNC_COMPOSITE )
if ( get_call_result_type ( fcinfo , NULL , & tupdesc ) ! = TYPEFUNC_COMPOSITE )
elog ( ERROR , " return type must be a row type " ) ;
elog ( ERROR , " return type must be a row type " ) ;