postgresql/src/backend/nodes/nodes.c

46 lines
1.2 KiB
C
Raw Normal View History

/*-------------------------------------------------------------------------
*
* nodes.c
* support code for nodes (now that we get rid of the home-brew
* inheritance system, our support code for nodes get much simpler)
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/nodes/nodes.c,v 1.7 1999/02/13 23:15:59 momjian Exp $
*
* HISTORY
* Andrew Yu Oct 20, 1994 file creation
*
*-------------------------------------------------------------------------
*/
#include <string.h>
#include "postgres.h"
#include "utils/palloc.h"
#include "utils/elog.h"
#include "nodes/nodes.h" /* where func declarations of this file
* goes */
/*
* newNode -
* create a new node of the specified size and tag the node with the
* specified tag.
*
* !WARNING!: Avoid using newNode directly. You should be using the
* macro makeNode. eg. to create a Resdom node, use makeNode(Resdom)
*
*/
Node *
newNode(Size size, NodeTag tag)
{
Node *newNode;
Assert(size >= 4); /* need the tag, at least */
newNode = (Node *) palloc(size);
1997-09-18 22:22:58 +02:00
MemSet((char *) newNode, 0, size);
newNode->type = tag;
1998-09-01 05:29:17 +02:00
return newNode;
}