1996-07-09 08:22:35 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
1999-02-14 00:22:53 +01:00
|
|
|
* nodes.c
|
1997-09-07 07:04:48 +02:00
|
|
|
* support code for nodes (now that we get rid of the home-brew
|
|
|
|
* inheritance system, our support code for nodes get much simpler)
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
* Copyright (c) 1994, Regents of the University of California
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* IDENTIFICATION
|
1999-08-16 04:17:58 +02:00
|
|
|
* $Header: /cvsroot/pgsql/src/backend/nodes/nodes.c,v 1.11 1999/08/16 02:17:42 tgl Exp $
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
* HISTORY
|
1997-09-07 07:04:48 +02:00
|
|
|
* Andrew Yu Oct 20, 1994 file creation
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
|
|
|
#include "postgres.h"
|
1999-07-14 03:20:30 +02:00
|
|
|
#include "nodes/nodes.h"
|
1996-07-09 08:22:35 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
* newNode -
|
1997-09-07 07:04:48 +02:00
|
|
|
* create a new node of the specified size and tag the node with the
|
|
|
|
* specified tag.
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
* !WARNING!: Avoid using newNode directly. You should be using the
|
1997-09-07 07:04:48 +02:00
|
|
|
* macro makeNode. eg. to create a Resdom node, use makeNode(Resdom)
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*/
|
1998-02-26 05:46:47 +01:00
|
|
|
Node *
|
1996-07-09 08:22:35 +02:00
|
|
|
newNode(Size size, NodeTag tag)
|
|
|
|
{
|
1997-09-08 04:41:22 +02:00
|
|
|
Node *newNode;
|
1997-09-07 07:04:48 +02:00
|
|
|
|
1999-08-16 04:17:58 +02:00
|
|
|
Assert(size >= sizeof(Node)); /* need the tag, at least */
|
1996-07-09 08:22:35 +02:00
|
|
|
|
1997-09-07 07:04:48 +02:00
|
|
|
newNode = (Node *) palloc(size);
|
1997-09-18 22:22:58 +02:00
|
|
|
MemSet((char *) newNode, 0, size);
|
1997-09-07 07:04:48 +02:00
|
|
|
newNode->type = tag;
|
1998-09-01 05:29:17 +02:00
|
|
|
return newNode;
|
1997-09-07 07:04:48 +02:00
|
|
|
}
|