postgres/src/backend/nodes/nodeFuncs.c
PostgreSQL Daemon 2ff501590b Tag appropriate files for rc3
Also performed an initial run through of upgrading our Copyright date to
extend to 2005 ... first run here was very simple ... change everything
where: grep 1996-2004 && the word 'Copyright' ... scanned through the
generated list with 'less' first, and after, to make sure that I only
picked up the right entries ...
2004-12-31 22:04:05 +00:00

75 lines
1.6 KiB
C

/*-------------------------------------------------------------------------
*
* nodeFuncs.c
* All node routines more complicated than simple access/modification
*
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/nodes/nodeFuncs.c,v 1.26 2004/12/31 21:59:55 pgsql Exp $
*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
#include "nodes/nodeFuncs.h"
static bool var_is_inner(Var *var);
/*
* single_node -
* Returns t if node corresponds to a single-noded expression
*/
bool
single_node(Node *node)
{
if (IsA(node, Const) ||
IsA(node, Var) ||
IsA(node, Param))
return true;
else
return false;
}
/*****************************************************************************
* VAR nodes
*****************************************************************************/
/*
* var_is_outer
* var_is_inner
* var_is_mat
* var_is_rel
*
* Returns t iff the var node corresponds to (respectively):
* the outer relation in a join
* the inner relation of a join
* a materialized relation
* a base relation (i.e., not an attribute reference, a variable from
* some lower join level, or a sort result)
* var node is an array reference
*
*/
bool
var_is_outer(Var *var)
{
return (bool) (var->varno == OUTER);
}
static bool
var_is_inner(Var *var)
{
return (bool) (var->varno == INNER);
}
bool
var_is_rel(Var *var)
{
return (bool)
!(var_is_inner(var) || var_is_outer(var));
}