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
|
|
|
*
|
|
|
|
*
|
2001-01-24 20:43:33 +01:00
|
|
|
* Portions Copyright (c) 1996-2001, 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
|
|
|
*
|
2001-11-05 18:46:40 +01:00
|
|
|
* $Id: rewriteManip.h,v 1.30 2001/11/05 17:46:35 momjian 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);
|
|
|
|
extern void AddNotQual(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 */
|