aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/nodes.c
blob: 82845cca15c4cef419c752ee227a375502cd0e4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*-------------------------------------------------------------------------
 *
 * 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.1.1.1 1996/07/09 06:21:33 scrappy 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);
    memset((char *)newNode, 0, size);
    newNode->type = tag;
    return(newNode);
}