@ -12,7 +12,7 @@
* Portions Copyright ( c ) 1994 , Regents of the University of California
* Portions Copyright ( c ) 1994 , Regents of the University of California
*
*
* IDENTIFICATION
* IDENTIFICATION
* $ PostgreSQL : pgsql / src / backend / utils / mmgr / portalmem . c , v 1.113 .2 .1 2009 / 12 / 29 17 : 41 : 09 heikki Exp $
* $ PostgreSQL : pgsql / src / backend / utils / mmgr / portalmem . c , v 1.113 .2 .2 2010 / 01 / 18 02 : 30 : 30 tgl Exp $
*
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
@ -328,6 +328,13 @@ PortalReleaseCachedPlan(Portal portal)
{
{
ReleaseCachedPlan ( portal - > cplan , false ) ;
ReleaseCachedPlan ( portal - > cplan , false ) ;
portal - > cplan = NULL ;
portal - > cplan = NULL ;
/*
* We must also clear portal - > stmts which is now a dangling
* reference to the cached plan ' s plan list . This protects any
* code that might try to examine the Portal later .
*/
portal - > stmts = NIL ;
}
}
}
}
@ -395,8 +402,7 @@ PortalDrop(Portal portal, bool isTopCommit)
( * portal - > cleanup ) ( portal ) ;
( * portal - > cleanup ) ( portal ) ;
/* drop cached plan reference, if any */
/* drop cached plan reference, if any */
if ( portal - > cplan )
PortalReleaseCachedPlan ( portal ) ;
PortalReleaseCachedPlan ( portal ) ;
/*
/*
* Release any resources still attached to the portal . There are several
* Release any resources still attached to the portal . There are several
@ -529,8 +535,7 @@ CommitHoldablePortals(void)
PersistHoldablePortal ( portal ) ;
PersistHoldablePortal ( portal ) ;
/* drop cached plan reference, if any */
/* drop cached plan reference, if any */
if ( portal - > cplan )
PortalReleaseCachedPlan ( portal ) ;
PortalReleaseCachedPlan ( portal ) ;
/*
/*
* Any resources belonging to the portal will be released in the
* Any resources belonging to the portal will be released in the
@ -680,8 +685,7 @@ AtAbort_Portals(void)
}
}
/* drop cached plan reference, if any */
/* drop cached plan reference, if any */
if ( portal - > cplan )
PortalReleaseCachedPlan ( portal ) ;
PortalReleaseCachedPlan ( portal ) ;
/*
/*
* Any resources belonging to the portal will be released in the
* Any resources belonging to the portal will be released in the
@ -823,8 +827,7 @@ AtSubAbort_Portals(SubTransactionId mySubid,
}
}
/* drop cached plan reference, if any */
/* drop cached plan reference, if any */
if ( portal - > cplan )
PortalReleaseCachedPlan ( portal ) ;
PortalReleaseCachedPlan ( portal ) ;
/*
/*
* Any resources belonging to the portal will be released in the
* Any resources belonging to the portal will be released in the