mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Allow the planner to collapse explicit inner JOINs together, rather than
necessarily following the JOIN syntax to develop the query plan. The old behavior is still available by setting GUC variable JOIN_COLLAPSE_LIMIT to 1. Also create a GUC variable FROM_COLLAPSE_LIMIT to control the similar decision about when to collapse sub-SELECT lists into their parent lists. (This behavior existed already, but the limit was always GEQO_THRESHOLD/2; now it's separately adjustable.)
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: paths.h,v 1.64 2003/01/24 03:58:43 tgl Exp $
|
||||
* $Id: paths.h,v 1.65 2003/01/25 23:10:30 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -18,16 +18,11 @@
|
||||
#include "nodes/relation.h"
|
||||
|
||||
|
||||
/* default GEQO threshold (default value for geqo_rels) */
|
||||
/* If you change this, update backend/utils/misc/postgresql.sample.conf */
|
||||
#define DEFAULT_GEQO_RELS 11
|
||||
|
||||
|
||||
/*
|
||||
* allpaths.c
|
||||
*/
|
||||
extern bool enable_geqo;
|
||||
extern int geqo_rels;
|
||||
extern int geqo_threshold;
|
||||
|
||||
extern RelOptInfo *make_one_rel(Query *root);
|
||||
extern RelOptInfo *make_fromexpr_rel(Query *root, FromExpr *from);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: prep.h,v 1.34 2003/01/20 18:55:05 tgl Exp $
|
||||
* $Id: prep.h,v 1.35 2003/01/25 23:10:30 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -20,6 +20,9 @@
|
||||
/*
|
||||
* 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);
|
||||
|
||||
Reference in New Issue
Block a user