mirror of
https://github.com/postgres/postgres.git
synced 2025-07-23 03:21:12 +03:00
First stage of reclaiming memory in executor by resetting short-term
memory contexts. Currently, only leaks in expressions executed as quals or projections are handled. Clean up some old dead cruft in executor while at it --- unused fields in state nodes, that sort of thing.
This commit is contained in:
@ -19,7 +19,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.115 2000/06/29 07:35:56 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.116 2000/07/12 02:37:04 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -578,7 +578,7 @@ _copySubPlan(SubPlan *from)
|
||||
Node_Copy(from, newnode, sublink);
|
||||
|
||||
/* do not copy execution state */
|
||||
newnode->shutdown = false;
|
||||
newnode->needShutdown = false;
|
||||
newnode->curTuple = NULL;
|
||||
|
||||
return newnode;
|
||||
|
@ -24,7 +24,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.67 2000/06/29 07:35:56 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.68 2000/07/12 02:37:04 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -184,8 +184,8 @@ _equalConst(Const *a, Const *b)
|
||||
*/
|
||||
if (a->constisnull)
|
||||
return true;
|
||||
return (datumIsEqual(a->constvalue, b->constvalue,
|
||||
a->consttype, a->constbyval, a->constlen));
|
||||
return datumIsEqual(a->constvalue, b->constvalue,
|
||||
a->constbyval, a->constlen);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.120 2000/06/18 22:44:05 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.121 2000/07/12 02:37:06 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Every (plan) node in POSTGRES has an associated "out" routine which
|
||||
@ -1155,10 +1155,10 @@ _outJoinInfo(StringInfo str, JoinInfo *node)
|
||||
static void
|
||||
_outDatum(StringInfo str, Datum value, Oid type)
|
||||
{
|
||||
char *s;
|
||||
Size length,
|
||||
typeLength;
|
||||
bool byValue;
|
||||
int typeLength;
|
||||
Size length;
|
||||
char *s;
|
||||
int i;
|
||||
|
||||
/*
|
||||
@ -1167,12 +1167,12 @@ _outDatum(StringInfo str, Datum value, Oid type)
|
||||
*/
|
||||
byValue = get_typbyval(type);
|
||||
typeLength = get_typlen(type);
|
||||
length = datumGetSize(value, type, byValue, typeLength);
|
||||
length = datumGetSize(value, byValue, typeLength);
|
||||
|
||||
if (byValue)
|
||||
{
|
||||
s = (char *) (&value);
|
||||
appendStringInfo(str, " %d [ ", length);
|
||||
appendStringInfo(str, " %u [ ", (unsigned int) length);
|
||||
for (i = 0; i < (int) sizeof(Datum); i++)
|
||||
appendStringInfo(str, "%d ", (int) (s[i]));
|
||||
appendStringInfo(str, "] ");
|
||||
@ -1184,14 +1184,7 @@ _outDatum(StringInfo str, Datum value, Oid type)
|
||||
appendStringInfo(str, " 0 [ ] ");
|
||||
else
|
||||
{
|
||||
|
||||
/*
|
||||
* length is unsigned - very bad to do < comparison to -1
|
||||
* without casting it to int first!! -mer 8 Jan 1991
|
||||
*/
|
||||
if (((int) length) <= -1)
|
||||
length = VARSIZE(s);
|
||||
appendStringInfo(str, " %d [ ", length);
|
||||
appendStringInfo(str, " %u [ ", (unsigned int) length);
|
||||
for (i = 0; i < (int) length; i++)
|
||||
appendStringInfo(str, "%d ", (int) (s[i]));
|
||||
appendStringInfo(str, "] ");
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.91 2000/06/18 22:44:05 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.92 2000/07/12 02:37:06 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Most of the read functions for plan nodes are tested. (In fact, they
|
||||
@ -608,7 +608,7 @@ _readHash()
|
||||
_getPlan((Plan *) local_node);
|
||||
|
||||
token = lsptok(NULL, &length); /* eat :hashkey */
|
||||
local_node->hashkey = (Var *) nodeRead(true);
|
||||
local_node->hashkey = nodeRead(true);
|
||||
|
||||
return local_node;
|
||||
}
|
||||
|
Reference in New Issue
Block a user