7
7
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
8
8
* Portions Copyright (c) 1994, Regents of the University of California
9
9
*
10
- * $Id: nodes.h,v 1.119 2002/10/11 04:12:14 momjian Exp $
10
+ * $Id: nodes.h,v 1.120 2002/10/11 04:16:44 momjian Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -261,24 +261,6 @@ typedef struct Node
261
261
262
262
#define nodeTag (nodeptr )(((Node*)(nodeptr))->type)
263
263
264
- /*
265
- *There is no way to dereference the palloc'ed pointer to assign the
266
- *tag, and return the pointer itself, so we need a holder variable.
267
- *Fortunately, this function isn't recursive so we just define
268
- *a global variable for this purpose.
269
- */
270
- extern Node * newNodeMacroHolder ;
271
-
272
- #define newNode (size ,tag ) \
273
- ( \
274
- AssertMacro((size) >= sizeof(Node)),/* need the tag, at least */ \
275
- \
276
- newNodeMacroHolder = (Node *) palloc0(size), \
277
- newNodeMacroHolder->type = (tag), \
278
- newNodeMacroHolder \
279
- )
280
-
281
-
282
264
#define makeNode (_type_ )((_type_ *) newNode(sizeof(_type_),T_##_type_))
283
265
#define NodeSetTag (nodeptr ,t )(((Node*)(nodeptr))->type = (t))
284
266
@@ -300,6 +282,11 @@ extern Node *newNodeMacroHolder;
300
282
* ----------------------------------------------------------------
301
283
*/
302
284
285
+ /*
286
+ * nodes/nodes.c
287
+ */
288
+ extern Node * newNode (Size size ,NodeTag tag );
289
+
303
290
/*
304
291
* nodes/{outfuncs.c,print.c}
305
292
*/