mirror of
https://github.com/postgres/postgres.git
synced 2025-12-18 05:01:01 +03:00
First phase of memory management rewrite (see backend/utils/mmgr/README
for details). It doesn't really do that much yet, since there are no short-term memory contexts in the executor, but the infrastructure is in place and long-term contexts are handled reasonably. A few long- standing bugs have been fixed, such as 'VACUUM; anything' in a single query string crashing. Also, out-of-memory is now considered a recoverable ERROR, not FATAL. Eliminate a large amount of crufty, now-dead code in and around memory management. Fix problem with holding off SIGTRAP, SIGSEGV, etc in postmaster and backend startup.
This commit is contained in:
@@ -1,115 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* fstack.h
|
||||
* Fixed format stack definitions.
|
||||
*
|
||||
*
|
||||
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: fstack.h,v 1.9 2000/01/26 05:58:09 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
/*
|
||||
* Note:
|
||||
* Fixed format stacks assist in the construction of FIFO stacks of
|
||||
* fixed format structures. Structures which are to be stackable
|
||||
* should contain a FixedItemData component. A stack is initilized
|
||||
* with the offset of the FixedItemData component of the structure
|
||||
* it will hold. By doing so, push and pop operations are simplified
|
||||
* for the callers. All references to stackable items are pointers
|
||||
* to the base of the structure instead of pointers to the
|
||||
* FixedItemData component.
|
||||
*
|
||||
*/
|
||||
#ifndef FSTACK_H
|
||||
#define FSTACK_H
|
||||
|
||||
|
||||
/*
|
||||
* FixedItem
|
||||
* Fixed format stackable item chain component.
|
||||
*
|
||||
* Note:
|
||||
* Structures must contain one FixedItemData component per stack in
|
||||
* which it will be an item.
|
||||
*/
|
||||
typedef struct FixedItemData FixedItemData;
|
||||
typedef FixedItemData *FixedItem;
|
||||
|
||||
struct FixedItemData
|
||||
{
|
||||
FixedItem next; /* next item or NULL */
|
||||
};
|
||||
|
||||
/*
|
||||
* FixedStack
|
||||
* Fixed format stack.
|
||||
*/
|
||||
typedef struct FixedStackData
|
||||
{
|
||||
FixedItem top; /* Top item on the stack or NULL */
|
||||
Offset offset; /* Offset from struct base to item */
|
||||
/* this could be signed short int! */
|
||||
} FixedStackData;
|
||||
|
||||
typedef FixedStackData *FixedStack;
|
||||
|
||||
/*
|
||||
* FixedStackInit
|
||||
* Iniitializes stack for structures with given fixed component offset.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid pointer.
|
||||
*/
|
||||
extern void FixedStackInit(FixedStack stack, Offset offset);
|
||||
|
||||
/*
|
||||
* FixedStackPop
|
||||
* Returns pointer to top structure on stack or NULL if empty stack.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
*/
|
||||
Pointer FixedStackPop(FixedStack stack);
|
||||
|
||||
/*
|
||||
* FixedStackPush
|
||||
* Places structure associated with pointer onto top of stack.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
* BadArg if pointer is invalid.
|
||||
*/
|
||||
extern void FixedStackPush(FixedStack stack, Pointer pointer);
|
||||
|
||||
/*
|
||||
* FixedStackGetTop
|
||||
* Returns pointer to top structure of a stack. This item is not poped.
|
||||
*
|
||||
* Note:
|
||||
* This is not part of the normal stack interface. It is intended for
|
||||
* debugging use only.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
*/
|
||||
extern Pointer FixedStackGetTop(FixedStack stack);
|
||||
|
||||
/*
|
||||
* FixedStackGetNext
|
||||
* Returns pointer to next structure after pointer of a stack.
|
||||
*
|
||||
* Note:
|
||||
* This is not part of the normal stack interface. It is intended for
|
||||
* debugging use only.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
* BadArg if pointer is invalid.
|
||||
* BadArg if stack does not contain pointer.
|
||||
*/
|
||||
extern Pointer FixedStackGetNext(FixedStack stack, Pointer pointer);
|
||||
|
||||
#endif /* FSTACK_H */
|
||||
Reference in New Issue
Block a user