1 /*-------------------------------------------------------------------------
4 * prototypes for optimizer/util/var.c.
7 * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
12 *-------------------------------------------------------------------------
17 #include "nodes/relation.h"
21 PVC_REJECT_PLACEHOLDERS
, /* throw error if PlaceHolderVar found */
22 PVC_INCLUDE_PLACEHOLDERS
, /* include PlaceHolderVars in output list */
23 PVC_RECURSE_PLACEHOLDERS
/* recurse into PlaceHolderVar argument */
24 } PVCPlaceHolderBehavior
;
26 extern Relids
pull_varnos(Node
*node
);
27 extern void pull_varattnos(Node
*node
, Bitmapset
**varattnos
);
28 extern bool contain_var_clause(Node
*node
);
29 extern bool contain_vars_of_level(Node
*node
, int levelsup
);
30 extern int locate_var_of_level(Node
*node
, int levelsup
);
31 extern int locate_var_of_relation(Node
*node
, int relid
, int levelsup
);
32 extern int find_minimum_var_level(Node
*node
);
33 extern List
*pull_var_clause(Node
*node
, PVCPlaceHolderBehavior behavior
);
34 extern Node
*flatten_join_alias_vars(PlannerInfo
*root
, Node
*node
);