mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-13 09:57:02 +08:00
about whether it is applied before or after eval_const_expressions(). I believe there were some corner cases where the system would fail to recognize that a partial index is applicable because of the previous inconsistency. Store normal rather than 'implicit AND' representations of constraints and index predicates in the catalogs. initdb forced due to representation change of constraints/predicates.
63 lines
1.7 KiB
C
63 lines
1.7 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* prep.h
|
|
* prototypes for files in optimizer/prep/
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/optimizer/prep.h,v 1.43 2003/12/28 21:57:37 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PREP_H
|
|
#define PREP_H
|
|
|
|
#include "nodes/parsenodes.h"
|
|
#include "nodes/plannodes.h"
|
|
#include "nodes/relation.h"
|
|
|
|
|
|
/*
|
|
* prototypes for prepjointree.c
|
|
*/
|
|
extern int from_collapse_limit;
|
|
extern int join_collapse_limit;
|
|
|
|
extern Node *pull_up_IN_clauses(Query *parse, Node *node);
|
|
extern Node *pull_up_subqueries(Query *parse, Node *jtnode,
|
|
bool below_outer_join);
|
|
extern void reduce_outer_joins(Query *parse);
|
|
extern Node *simplify_jointree(Query *parse, Node *jtnode);
|
|
extern Relids get_relids_in_jointree(Node *jtnode);
|
|
extern Relids get_relids_for_join(Query *parse, int joinrelid);
|
|
|
|
/*
|
|
* prototypes for prepqual.c
|
|
*/
|
|
extern Expr *canonicalize_qual(Expr *qual);
|
|
extern Node *flatten_andors(Node *node);
|
|
|
|
/*
|
|
* prototypes for preptlist.c
|
|
*/
|
|
extern List *preprocess_targetlist(List *tlist, int command_type,
|
|
Index result_relation, List *range_table);
|
|
|
|
/*
|
|
* prototypes for prepunion.c
|
|
*/
|
|
extern Plan *plan_set_operations(Query *parse);
|
|
|
|
extern List *find_all_inheritors(Oid parentrel);
|
|
|
|
extern List *expand_inherited_rtentry(Query *parse, Index rti,
|
|
bool dup_parent);
|
|
|
|
extern Node *adjust_inherited_attrs(Node *node,
|
|
Index old_rt_index, Oid old_relid,
|
|
Index new_rt_index, Oid new_relid);
|
|
|
|
#endif /* PREP_H */
|