1996-07-09 08:22:35 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
1999-02-14 00:22:53 +01:00
|
|
|
* rewriteManip.h
|
2001-06-13 20:56:30 +02:00
|
|
|
* Querytree manipulation subroutines for query rewriter.
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*
|
2003-08-04 04:40:20 +02:00
|
|
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
2000-01-26 06:58:53 +01:00
|
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
2003-11-29 23:41:33 +01:00
|
|
|
* $PostgreSQL: pgsql/src/include/rewrite/rewriteManip.h,v 1.34 2003/11/29 22:41:11 pgsql Exp $
|
1996-07-09 08:22:35 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
1997-09-07 07:04:48 +02:00
|
|
|
#ifndef REWRITEMANIP_H
|
|
|
|
#define REWRITEMANIP_H
|
1996-07-09 08:22:35 +02:00
|
|
|
|
2001-06-13 20:56:30 +02:00
|
|
|
#include "nodes/parsenodes.h"
|
|
|
|
|
1997-11-26 02:14:33 +01:00
|
|
|
|
1999-10-01 06:08:24 +02:00
|
|
|
extern void OffsetVarNodes(Node *node, int offset, int sublevels_up);
|
|
|
|
extern void ChangeVarNodes(Node *node, int old_varno, int new_varno,
|
2000-04-12 19:17:23 +02:00
|
|
|
int sublevels_up);
|
2000-03-16 04:23:18 +01:00
|
|
|
extern void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up,
|
2000-04-12 19:17:23 +02:00
|
|
|
int min_sublevels_up);
|
2000-09-12 23:07:18 +02:00
|
|
|
|
|
|
|
extern bool rangeTableEntry_used(Node *node, int rt_index,
|
2001-03-22 05:01:46 +01:00
|
|
|
int sublevels_up);
|
2000-09-12 23:07:18 +02:00
|
|
|
extern bool attribute_used(Node *node, int rt_index, int attno,
|
2001-03-22 05:01:46 +01:00
|
|
|
int sublevels_up);
|
2000-09-12 23:07:18 +02:00
|
|
|
|
2000-12-05 20:15:10 +01:00
|
|
|
extern Query *getInsertSelectQuery(Query *parsetree, Query ***subquery_ptr);
|
|
|
|
|
1999-10-01 06:08:24 +02:00
|
|
|
extern void AddQual(Query *parsetree, Node *qual);
|
|
|
|
extern void AddHavingQual(Query *parsetree, Node *havingQual);
|
2002-10-20 02:58:55 +02:00
|
|
|
extern void AddInvertedQual(Query *parsetree, Node *qual);
|
1998-07-19 07:49:26 +02:00
|
|
|
|
2000-03-16 04:23:18 +01:00
|
|
|
extern bool checkExprHasAggs(Node *node);
|
|
|
|
extern bool checkExprHasSubLink(Node *node);
|
|
|
|
|
2000-09-29 20:21:41 +02:00
|
|
|
extern Node *ResolveNew(Node *node, int target_varno, int sublevels_up,
|
2001-03-22 05:01:46 +01:00
|
|
|
List *targetlist, int event, int update_varno);
|
2001-10-28 07:26:15 +01:00
|
|
|
|
2001-11-05 18:46:40 +01:00
|
|
|
#endif /* REWRITEMANIP_H */
|