mirror of
https://github.com/postgres/postgres.git
synced 2025-11-13 16:22:44 +03:00
Used modified version of indent that understands over 100 typedefs.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.14 1997/09/08 20:56:10 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.15 1997/09/08 21:45:13 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -44,47 +44,47 @@
|
||||
#define TEMP_SORT 1
|
||||
#define TEMP_MATERIAL 2
|
||||
|
||||
static List *switch_outer(List * clauses);
|
||||
static Scan *create_scan_node(Path * best_path, List * tlist);
|
||||
static Join *create_join_node(JoinPath * best_path, List * tlist);
|
||||
static List *switch_outer(List *clauses);
|
||||
static Scan *create_scan_node(Path *best_path, List *tlist);
|
||||
static Join *create_join_node(JoinPath *best_path, List *tlist);
|
||||
static SeqScan *
|
||||
create_seqscan_node(Path * best_path, List * tlist,
|
||||
List * scan_clauses);
|
||||
create_seqscan_node(Path *best_path, List *tlist,
|
||||
List *scan_clauses);
|
||||
static IndexScan *
|
||||
create_indexscan_node(IndexPath * best_path, List * tlist,
|
||||
List * scan_clauses);
|
||||
create_indexscan_node(IndexPath *best_path, List *tlist,
|
||||
List *scan_clauses);
|
||||
static NestLoop *
|
||||
create_nestloop_node(JoinPath * best_path, List * tlist,
|
||||
List * clauses, Plan * outer_node, List * outer_tlist,
|
||||
Plan * inner_node, List * inner_tlist);
|
||||
create_nestloop_node(JoinPath *best_path, List *tlist,
|
||||
List *clauses, Plan *outer_node, List *outer_tlist,
|
||||
Plan *inner_node, List *inner_tlist);
|
||||
static MergeJoin *
|
||||
create_mergejoin_node(MergePath * best_path, List * tlist,
|
||||
List * clauses, Plan * outer_node, List * outer_tlist,
|
||||
Plan * inner_node, List * inner_tlist);
|
||||
create_mergejoin_node(MergePath *best_path, List *tlist,
|
||||
List *clauses, Plan *outer_node, List *outer_tlist,
|
||||
Plan *inner_node, List *inner_tlist);
|
||||
static HashJoin *
|
||||
create_hashjoin_node(HashPath * best_path, List * tlist,
|
||||
List * clauses, Plan * outer_node, List * outer_tlist,
|
||||
Plan * inner_node, List * inner_tlist);
|
||||
static Node *fix_indxqual_references(Node * clause, Path * index_path);
|
||||
create_hashjoin_node(HashPath *best_path, List *tlist,
|
||||
List *clauses, Plan *outer_node, List *outer_tlist,
|
||||
Plan *inner_node, List *inner_tlist);
|
||||
static Node *fix_indxqual_references(Node *clause, Path *index_path);
|
||||
static Temp *
|
||||
make_temp(List * tlist, List * keys, Oid * operators,
|
||||
Plan * plan_node, int temptype);
|
||||
make_temp(List *tlist, List *keys, Oid *operators,
|
||||
Plan *plan_node, int temptype);
|
||||
static IndexScan *
|
||||
make_indexscan(List * qptlist, List * qpqual, Index scanrelid,
|
||||
List * indxid, List * indxqual);
|
||||
make_indexscan(List *qptlist, List *qpqual, Index scanrelid,
|
||||
List *indxid, List *indxqual);
|
||||
static NestLoop *
|
||||
make_nestloop(List * qptlist, List * qpqual, Plan * lefttree,
|
||||
Plan * righttree);
|
||||
make_nestloop(List *qptlist, List *qpqual, Plan *lefttree,
|
||||
Plan *righttree);
|
||||
static HashJoin *
|
||||
make_hashjoin(List * tlist, List * qpqual,
|
||||
List * hashclauses, Plan * lefttree, Plan * righttree);
|
||||
static Hash *make_hash(List * tlist, Var * hashkey, Plan * lefttree);
|
||||
make_hashjoin(List *tlist, List *qpqual,
|
||||
List *hashclauses, Plan *lefttree, Plan *righttree);
|
||||
static Hash *make_hash(List *tlist, Var *hashkey, Plan *lefttree);
|
||||
static MergeJoin *
|
||||
make_mergesort(List * tlist, List * qpqual,
|
||||
List * mergeclauses, Oid opcode, Oid * rightorder,
|
||||
Oid * leftorder, Plan * righttree, Plan * lefttree);
|
||||
make_mergesort(List *tlist, List *qpqual,
|
||||
List *mergeclauses, Oid opcode, Oid *rightorder,
|
||||
Oid *leftorder, Plan *righttree, Plan *lefttree);
|
||||
static Material *
|
||||
make_material(List * tlist, Oid tempid, Plan * lefttree,
|
||||
make_material(List *tlist, Oid tempid, Plan *lefttree,
|
||||
int keycount);
|
||||
|
||||
/*
|
||||
@@ -103,7 +103,7 @@ make_material(List * tlist, Oid tempid, Plan * lefttree,
|
||||
* Returns the optimal(?) access plan.
|
||||
*/
|
||||
Plan *
|
||||
create_plan(Path * best_path)
|
||||
create_plan(Path *best_path)
|
||||
{
|
||||
List *tlist;
|
||||
Plan *plan_node = (Plan *) NULL;
|
||||
@@ -167,7 +167,7 @@ create_plan(Path * best_path)
|
||||
* Returns the scan node.
|
||||
*/
|
||||
static Scan *
|
||||
create_scan_node(Path * best_path, List * tlist)
|
||||
create_scan_node(Path *best_path, List *tlist)
|
||||
{
|
||||
|
||||
Scan *node = NULL;
|
||||
@@ -216,7 +216,7 @@ create_scan_node(Path * best_path, List * tlist)
|
||||
* Returns the join node.
|
||||
*/
|
||||
static Join *
|
||||
create_join_node(JoinPath * best_path, List * tlist)
|
||||
create_join_node(JoinPath *best_path, List *tlist)
|
||||
{
|
||||
Plan *outer_node;
|
||||
List *outer_tlist;
|
||||
@@ -298,7 +298,7 @@ create_join_node(JoinPath * best_path, List * tlist)
|
||||
* with restriction clauses 'scan-clauses' and targetlist 'tlist'.
|
||||
*/
|
||||
static SeqScan *
|
||||
create_seqscan_node(Path * best_path, List * tlist, List * scan_clauses)
|
||||
create_seqscan_node(Path *best_path, List *tlist, List *scan_clauses)
|
||||
{
|
||||
SeqScan *scan_node = (SeqScan *) NULL;
|
||||
Index scan_relid = -1;
|
||||
@@ -326,9 +326,9 @@ create_seqscan_node(Path * best_path, List * tlist, List * scan_clauses)
|
||||
* with restriction clauses 'scan-clauses' and targetlist 'tlist'.
|
||||
*/
|
||||
static IndexScan *
|
||||
create_indexscan_node(IndexPath * best_path,
|
||||
List * tlist,
|
||||
List * scan_clauses)
|
||||
create_indexscan_node(IndexPath *best_path,
|
||||
List *tlist,
|
||||
List *scan_clauses)
|
||||
{
|
||||
|
||||
/*
|
||||
@@ -430,13 +430,13 @@ create_indexscan_node(IndexPath * best_path,
|
||||
*****************************************************************************/
|
||||
|
||||
static NestLoop *
|
||||
create_nestloop_node(JoinPath * best_path,
|
||||
List * tlist,
|
||||
List * clauses,
|
||||
Plan * outer_node,
|
||||
List * outer_tlist,
|
||||
Plan * inner_node,
|
||||
List * inner_tlist)
|
||||
create_nestloop_node(JoinPath *best_path,
|
||||
List *tlist,
|
||||
List *clauses,
|
||||
Plan *outer_node,
|
||||
List *outer_tlist,
|
||||
Plan *inner_node,
|
||||
List *inner_tlist)
|
||||
{
|
||||
NestLoop *join_node = (NestLoop *) NULL;
|
||||
|
||||
@@ -512,13 +512,13 @@ create_nestloop_node(JoinPath * best_path,
|
||||
}
|
||||
|
||||
static MergeJoin *
|
||||
create_mergejoin_node(MergePath * best_path,
|
||||
List * tlist,
|
||||
List * clauses,
|
||||
Plan * outer_node,
|
||||
List * outer_tlist,
|
||||
Plan * inner_node,
|
||||
List * inner_tlist)
|
||||
create_mergejoin_node(MergePath *best_path,
|
||||
List *tlist,
|
||||
List *clauses,
|
||||
Plan *outer_node,
|
||||
List *outer_tlist,
|
||||
Plan *inner_node,
|
||||
List *inner_tlist)
|
||||
{
|
||||
List *qpqual,
|
||||
*mergeclauses;
|
||||
@@ -609,13 +609,13 @@ create_mergejoin_node(MergePath * best_path,
|
||||
* these?? at runtime? what about a hash index?
|
||||
*/
|
||||
static HashJoin *
|
||||
create_hashjoin_node(HashPath * best_path,
|
||||
List * tlist,
|
||||
List * clauses,
|
||||
Plan * outer_node,
|
||||
List * outer_tlist,
|
||||
Plan * inner_node,
|
||||
List * inner_tlist)
|
||||
create_hashjoin_node(HashPath *best_path,
|
||||
List *tlist,
|
||||
List *clauses,
|
||||
Plan *outer_node,
|
||||
List *outer_tlist,
|
||||
Plan *inner_node,
|
||||
List *inner_tlist)
|
||||
{
|
||||
List *qpqual;
|
||||
List *hashclauses;
|
||||
@@ -663,7 +663,7 @@ create_hashjoin_node(HashPath * best_path,
|
||||
*****************************************************************************/
|
||||
|
||||
static Node *
|
||||
fix_indxqual_references(Node * clause, Path * index_path)
|
||||
fix_indxqual_references(Node *clause, Path *index_path)
|
||||
{
|
||||
Node *newclause;
|
||||
|
||||
@@ -800,7 +800,7 @@ fix_indxqual_references(Node * clause, Path * index_path)
|
||||
* XXX Shouldn't the operator be commuted?!
|
||||
*/
|
||||
static List *
|
||||
switch_outer(List * clauses)
|
||||
switch_outer(List *clauses)
|
||||
{
|
||||
List *t_list = NIL;
|
||||
Expr *temp = NULL;
|
||||
@@ -844,7 +844,7 @@ switch_outer(List * clauses)
|
||||
* Returns the modified target list.
|
||||
*/
|
||||
static List *
|
||||
set_temp_tlist_operators(List * tlist, List * pathkeys, Oid * operators)
|
||||
set_temp_tlist_operators(List *tlist, List *pathkeys, Oid *operators)
|
||||
{
|
||||
Node *keys = NULL;
|
||||
int keyno = 1;
|
||||
@@ -892,10 +892,10 @@ set_temp_tlist_operators(List * tlist, List * pathkeys, Oid * operators)
|
||||
* 'temptype' indicates which operation(sort or hash) to perform
|
||||
*/
|
||||
static Temp *
|
||||
make_temp(List * tlist,
|
||||
List * keys,
|
||||
Oid * operators,
|
||||
Plan * plan_node,
|
||||
make_temp(List *tlist,
|
||||
List *keys,
|
||||
Oid *operators,
|
||||
Plan *plan_node,
|
||||
int temptype)
|
||||
{
|
||||
List *temp_tlist;
|
||||
@@ -936,10 +936,10 @@ make_temp(List * tlist,
|
||||
|
||||
|
||||
SeqScan *
|
||||
make_seqscan(List * qptlist,
|
||||
List * qpqual,
|
||||
make_seqscan(List *qptlist,
|
||||
List *qpqual,
|
||||
Index scanrelid,
|
||||
Plan * lefttree)
|
||||
Plan *lefttree)
|
||||
{
|
||||
SeqScan *node = makeNode(SeqScan);
|
||||
Plan *plan = &node->plan;
|
||||
@@ -957,11 +957,11 @@ make_seqscan(List * qptlist,
|
||||
}
|
||||
|
||||
static IndexScan *
|
||||
make_indexscan(List * qptlist,
|
||||
List * qpqual,
|
||||
make_indexscan(List *qptlist,
|
||||
List *qpqual,
|
||||
Index scanrelid,
|
||||
List * indxid,
|
||||
List * indxqual)
|
||||
List *indxid,
|
||||
List *indxqual)
|
||||
{
|
||||
IndexScan *node = makeNode(IndexScan);
|
||||
Plan *plan = &node->scan.plan;
|
||||
@@ -982,10 +982,10 @@ make_indexscan(List * qptlist,
|
||||
|
||||
|
||||
static NestLoop *
|
||||
make_nestloop(List * qptlist,
|
||||
List * qpqual,
|
||||
Plan * lefttree,
|
||||
Plan * righttree)
|
||||
make_nestloop(List *qptlist,
|
||||
List *qpqual,
|
||||
Plan *lefttree,
|
||||
Plan *righttree)
|
||||
{
|
||||
NestLoop *node = makeNode(NestLoop);
|
||||
Plan *plan = &node->join;
|
||||
@@ -1002,11 +1002,11 @@ make_nestloop(List * qptlist,
|
||||
}
|
||||
|
||||
static HashJoin *
|
||||
make_hashjoin(List * tlist,
|
||||
List * qpqual,
|
||||
List * hashclauses,
|
||||
Plan * lefttree,
|
||||
Plan * righttree)
|
||||
make_hashjoin(List *tlist,
|
||||
List *qpqual,
|
||||
List *hashclauses,
|
||||
Plan *lefttree,
|
||||
Plan *righttree)
|
||||
{
|
||||
HashJoin *node = makeNode(HashJoin);
|
||||
Plan *plan = &node->join;
|
||||
@@ -1027,7 +1027,7 @@ make_hashjoin(List * tlist,
|
||||
}
|
||||
|
||||
static Hash *
|
||||
make_hash(List * tlist, Var * hashkey, Plan * lefttree)
|
||||
make_hash(List *tlist, Var *hashkey, Plan *lefttree)
|
||||
{
|
||||
Hash *node = makeNode(Hash);
|
||||
Plan *plan = &node->plan;
|
||||
@@ -1047,14 +1047,14 @@ make_hash(List * tlist, Var * hashkey, Plan * lefttree)
|
||||
}
|
||||
|
||||
static MergeJoin *
|
||||
make_mergesort(List * tlist,
|
||||
List * qpqual,
|
||||
List * mergeclauses,
|
||||
make_mergesort(List *tlist,
|
||||
List *qpqual,
|
||||
List *mergeclauses,
|
||||
Oid opcode,
|
||||
Oid * rightorder,
|
||||
Oid * leftorder,
|
||||
Plan * righttree,
|
||||
Plan * lefttree)
|
||||
Oid *rightorder,
|
||||
Oid *leftorder,
|
||||
Plan *righttree,
|
||||
Plan *lefttree)
|
||||
{
|
||||
MergeJoin *node = makeNode(MergeJoin);
|
||||
Plan *plan = &node->join;
|
||||
@@ -1074,7 +1074,7 @@ make_mergesort(List * tlist,
|
||||
}
|
||||
|
||||
Sort *
|
||||
make_sort(List * tlist, Oid tempid, Plan * lefttree, int keycount)
|
||||
make_sort(List *tlist, Oid tempid, Plan *lefttree, int keycount)
|
||||
{
|
||||
Sort *node = makeNode(Sort);
|
||||
Plan *plan = &node->plan;
|
||||
@@ -1092,9 +1092,9 @@ make_sort(List * tlist, Oid tempid, Plan * lefttree, int keycount)
|
||||
}
|
||||
|
||||
static Material *
|
||||
make_material(List * tlist,
|
||||
make_material(List *tlist,
|
||||
Oid tempid,
|
||||
Plan * lefttree,
|
||||
Plan *lefttree,
|
||||
int keycount)
|
||||
{
|
||||
Material *node = makeNode(Material);
|
||||
@@ -1113,7 +1113,7 @@ make_material(List * tlist,
|
||||
}
|
||||
|
||||
Agg *
|
||||
make_agg(List * tlist, int nagg, Aggreg **aggs)
|
||||
make_agg(List *tlist, int nagg, Aggreg **aggs)
|
||||
{
|
||||
Agg *node = makeNode(Agg);
|
||||
|
||||
@@ -1130,11 +1130,11 @@ make_agg(List * tlist, int nagg, Aggreg **aggs)
|
||||
}
|
||||
|
||||
Group *
|
||||
make_group(List * tlist,
|
||||
make_group(List *tlist,
|
||||
bool tuplePerGroup,
|
||||
int ngrp,
|
||||
AttrNumber *grpColIdx,
|
||||
Sort * lefttree)
|
||||
Sort *lefttree)
|
||||
{
|
||||
Group *node = makeNode(Group);
|
||||
|
||||
@@ -1160,7 +1160,7 @@ make_group(List * tlist,
|
||||
*/
|
||||
|
||||
Unique *
|
||||
make_unique(List * tlist, Plan * lefttree, char *uniqueAttr)
|
||||
make_unique(List *tlist, Plan *lefttree, char *uniqueAttr)
|
||||
{
|
||||
Unique *node = makeNode(Unique);
|
||||
Plan *plan = &node->plan;
|
||||
@@ -1183,7 +1183,7 @@ make_unique(List * tlist, Plan * lefttree, char *uniqueAttr)
|
||||
}
|
||||
|
||||
List *
|
||||
generate_fjoin(List * tlist)
|
||||
generate_fjoin(List *tlist)
|
||||
{
|
||||
#if 0
|
||||
List tlistP;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.7 1997/09/08 02:24:36 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.8 1997/09/08 21:45:19 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -35,14 +35,14 @@
|
||||
|
||||
extern int Quiet;
|
||||
|
||||
static void add_clause_to_rels(Query * root, List * clause);
|
||||
static void add_clause_to_rels(Query *root, List *clause);
|
||||
static void
|
||||
add_join_clause_info_to_rels(Query * root, CInfo * clauseinfo,
|
||||
List * join_relids);
|
||||
static void add_vars_to_rels(Query * root, List * vars, List * join_relids);
|
||||
add_join_clause_info_to_rels(Query *root, CInfo *clauseinfo,
|
||||
List *join_relids);
|
||||
static void add_vars_to_rels(Query *root, List *vars, List *join_relids);
|
||||
|
||||
static MergeOrder *mergesortop(Expr * clause);
|
||||
static Oid hashjoinop(Expr * clause);
|
||||
static MergeOrder *mergesortop(Expr *clause);
|
||||
static Oid hashjoinop(Expr *clause);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@@ -61,7 +61,7 @@ static Oid hashjoinop(Expr * clause);
|
||||
* Returns nothing.
|
||||
*/
|
||||
void
|
||||
initialize_base_rels_list(Query * root, List * tlist)
|
||||
initialize_base_rels_list(Query *root, List *tlist)
|
||||
{
|
||||
List *tlist_vars = NIL;
|
||||
List *l = NIL;
|
||||
@@ -98,7 +98,7 @@ initialize_base_rels_list(Query * root, List * tlist)
|
||||
* into a join.
|
||||
*/
|
||||
void
|
||||
add_missing_vars_to_base_rels(Query * root, List * tlist)
|
||||
add_missing_vars_to_base_rels(Query *root, List *tlist)
|
||||
{
|
||||
List *l;
|
||||
int varno;
|
||||
@@ -145,7 +145,7 @@ add_missing_vars_to_base_rels(Query * root, List * tlist)
|
||||
* Returns nothing of interest.
|
||||
*/
|
||||
void
|
||||
initialize_base_rels_jinfo(Query * root, List * clauses)
|
||||
initialize_base_rels_jinfo(Query *root, List *clauses)
|
||||
{
|
||||
List *clause;
|
||||
|
||||
@@ -166,7 +166,7 @@ initialize_base_rels_jinfo(Query * root, List * clauses)
|
||||
* Returns nothing of interest.
|
||||
*/
|
||||
static void
|
||||
add_clause_to_rels(Query * root, List * clause)
|
||||
add_clause_to_rels(Query *root, List *clause)
|
||||
{
|
||||
List *relids;
|
||||
List *vars;
|
||||
@@ -259,7 +259,7 @@ add_clause_to_rels(Query * root, List * clause)
|
||||
*
|
||||
*/
|
||||
static void
|
||||
add_join_clause_info_to_rels(Query * root, CInfo * clauseinfo, List * join_relids)
|
||||
add_join_clause_info_to_rels(Query *root, CInfo *clauseinfo, List *join_relids)
|
||||
{
|
||||
List *join_relid;
|
||||
|
||||
@@ -300,7 +300,7 @@ add_join_clause_info_to_rels(Query * root, CInfo * clauseinfo, List * join_relid
|
||||
* Returns nothing.
|
||||
*/
|
||||
static void
|
||||
add_vars_to_rels(Query * root, List * vars, List * join_relids)
|
||||
add_vars_to_rels(Query *root, List *vars, List *join_relids)
|
||||
{
|
||||
Var *var;
|
||||
List *temp = NIL;
|
||||
@@ -334,7 +334,7 @@ add_vars_to_rels(Query * root, List * vars, List * join_relids)
|
||||
* Returns nothing.
|
||||
*/
|
||||
void
|
||||
initialize_join_clause_info(List * rel_list)
|
||||
initialize_join_clause_info(List *rel_list)
|
||||
{
|
||||
List *x,
|
||||
*y,
|
||||
@@ -387,7 +387,7 @@ initialize_join_clause_info(List * rel_list)
|
||||
* a mergesortable operator.
|
||||
*/
|
||||
static MergeOrder *
|
||||
mergesortop(Expr * clause)
|
||||
mergesortop(Expr *clause)
|
||||
{
|
||||
Oid leftOp,
|
||||
rightOp;
|
||||
@@ -421,7 +421,7 @@ mergesortop(Expr * clause)
|
||||
* a hashjoinable operator.
|
||||
*/
|
||||
static Oid
|
||||
hashjoinop(Expr * clause)
|
||||
hashjoinop(Expr *clause)
|
||||
{
|
||||
return (op_hashjoinable(((Oper *) clause->oper)->opno,
|
||||
(get_leftop(clause))->vartype,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.6 1997/09/08 02:24:37 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.7 1997/09/08 21:45:24 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -38,12 +38,12 @@
|
||||
#include "utils/mcxt.h"
|
||||
#include "utils/lsyscache.h"
|
||||
|
||||
static Plan *subplanner(Query * root, List * flat_tlist, List * qual);
|
||||
static Result *make_result(List * tlist, Node * resconstantqual, Plan * subplan);
|
||||
static Plan *subplanner(Query *root, List *flat_tlist, List *qual);
|
||||
static Result *make_result(List *tlist, Node *resconstantqual, Plan *subplan);
|
||||
|
||||
static Plan *
|
||||
make_groupPlan(List ** tlist, bool tuplePerGroup,
|
||||
List * groupClause, Plan * subplan);
|
||||
make_groupPlan(List **tlist, bool tuplePerGroup,
|
||||
List *groupClause, Plan *subplan);
|
||||
|
||||
/*
|
||||
* query_planner--
|
||||
@@ -63,10 +63,10 @@ make_groupPlan(List ** tlist, bool tuplePerGroup,
|
||||
* Returns a query plan.
|
||||
*/
|
||||
Plan *
|
||||
query_planner(Query * root,
|
||||
query_planner(Query *root,
|
||||
int command_type,
|
||||
List * tlist,
|
||||
List * qual)
|
||||
List *tlist,
|
||||
List *qual)
|
||||
{
|
||||
List *constant_qual = NIL;
|
||||
List *flattened_tlist = NIL;
|
||||
@@ -278,9 +278,9 @@ query_planner(Query * root,
|
||||
*
|
||||
*/
|
||||
static Plan *
|
||||
subplanner(Query * root,
|
||||
List * flat_tlist,
|
||||
List * qual)
|
||||
subplanner(Query *root,
|
||||
List *flat_tlist,
|
||||
List *qual)
|
||||
{
|
||||
Rel *final_relation;
|
||||
List *final_relation_list;
|
||||
@@ -354,9 +354,9 @@ subplanner(Query * root,
|
||||
*****************************************************************************/
|
||||
|
||||
static Result *
|
||||
make_result(List * tlist,
|
||||
Node * resconstantqual,
|
||||
Plan * subplan)
|
||||
make_result(List *tlist,
|
||||
Node *resconstantqual,
|
||||
Plan *subplan)
|
||||
{
|
||||
Result *node = makeNode(Result);
|
||||
Plan *plan = &node->plan;
|
||||
@@ -378,10 +378,10 @@ make_result(List * tlist,
|
||||
*****************************************************************************/
|
||||
|
||||
static Plan *
|
||||
make_groupPlan(List ** tlist,
|
||||
make_groupPlan(List **tlist,
|
||||
bool tuplePerGroup,
|
||||
List * groupClause,
|
||||
Plan * subplan)
|
||||
List *groupClause,
|
||||
Plan *subplan)
|
||||
{
|
||||
List *sort_tlist;
|
||||
List *sl,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.8 1997/09/08 02:24:38 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.9 1997/09/08 21:45:27 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -47,9 +47,9 @@
|
||||
|
||||
#include "executor/executor.h"
|
||||
|
||||
static Plan *make_sortplan(List * tlist, List * sortcls, Plan * plannode);
|
||||
static Plan *init_query_planner(Query * parse);
|
||||
static Existential *make_existential(Plan * left, Plan * right);
|
||||
static Plan *make_sortplan(List *tlist, List *sortcls, Plan *plannode);
|
||||
static Plan *init_query_planner(Query *parse);
|
||||
static Existential *make_existential(Plan *left, Plan *right);
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@@ -69,7 +69,7 @@ static Existential *make_existential(Plan * left, Plan * right);
|
||||
*
|
||||
*/
|
||||
Plan *
|
||||
planner(Query * parse)
|
||||
planner(Query *parse)
|
||||
{
|
||||
List *tlist = parse->targetList;
|
||||
List *rangetable = parse->rtable;
|
||||
@@ -143,7 +143,7 @@ planner(Query * parse)
|
||||
* sortops: (sortop1 sortop2 sortop3 ...)
|
||||
*/
|
||||
static Plan *
|
||||
make_sortplan(List * tlist, List * sortcls, Plan * plannode)
|
||||
make_sortplan(List *tlist, List *sortcls, Plan *plannode)
|
||||
{
|
||||
Plan *sortplan = (Plan *) NULL;
|
||||
List *temp_tlist = NIL;
|
||||
@@ -204,7 +204,7 @@ make_sortplan(List * tlist, List * sortcls, Plan * plannode)
|
||||
*
|
||||
*/
|
||||
static Plan *
|
||||
init_query_planner(Query * root)
|
||||
init_query_planner(Query *root)
|
||||
{
|
||||
List *primary_qual;
|
||||
List *existential_qual;
|
||||
@@ -254,7 +254,7 @@ init_query_planner(Query * root)
|
||||
* the left and right subtree slots.
|
||||
*/
|
||||
static Existential *
|
||||
make_existential(Plan * left, Plan * right)
|
||||
make_existential(Plan *left, Plan *right)
|
||||
{
|
||||
Existential *node = makeNode(Existential);
|
||||
|
||||
@@ -273,7 +273,7 @@ make_existential(Plan * left, Plan * right)
|
||||
* type he claims.
|
||||
*/
|
||||
void
|
||||
pg_checkretval(Oid rettype, QueryTreeList * queryTreeList)
|
||||
pg_checkretval(Oid rettype, QueryTreeList *queryTreeList)
|
||||
{
|
||||
Query *parse;
|
||||
List *tlist;
|
||||
@@ -399,6 +399,7 @@ pg_checkretval(Oid rettype, QueryTreeList * queryTreeList)
|
||||
tletype = (Oid) ((Param *) thenode)->paramtype;
|
||||
else if (IsA(thenode, Expr))
|
||||
tletype = Expr;
|
||||
|
||||
else if (IsA(thenode, LispList))
|
||||
{
|
||||
thenode = lfirst(thenode);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.7 1997/09/08 20:56:16 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.8 1997/09/08 21:45:28 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -33,20 +33,20 @@
|
||||
#include "optimizer/var.h"
|
||||
#include "optimizer/tlist.h"
|
||||
|
||||
static void set_join_tlist_references(Join * join);
|
||||
static void set_tempscan_tlist_references(SeqScan * tempscan);
|
||||
static void set_temp_tlist_references(Temp * temp);
|
||||
static void set_join_tlist_references(Join *join);
|
||||
static void set_tempscan_tlist_references(SeqScan *tempscan);
|
||||
static void set_temp_tlist_references(Temp *temp);
|
||||
static List *
|
||||
replace_clause_joinvar_refs(Expr * clause,
|
||||
List * outer_tlist, List * inner_tlist);
|
||||
replace_clause_joinvar_refs(Expr *clause,
|
||||
List *outer_tlist, List *inner_tlist);
|
||||
static List *
|
||||
replace_subclause_joinvar_refs(List * clauses,
|
||||
List * outer_tlist, List * inner_tlist);
|
||||
static Var *replace_joinvar_refs(Var * var, List * outer_tlist, List * inner_tlist);
|
||||
static List *tlist_temp_references(Oid tempid, List * tlist);
|
||||
static void replace_result_clause(List * clause, List * subplanTargetList);
|
||||
static bool OperandIsInner(Node * opnd, int inner_relid);
|
||||
static void replace_agg_clause(Node * expr, List * targetlist);
|
||||
replace_subclause_joinvar_refs(List *clauses,
|
||||
List *outer_tlist, List *inner_tlist);
|
||||
static Var *replace_joinvar_refs(Var *var, List *outer_tlist, List *inner_tlist);
|
||||
static List *tlist_temp_references(Oid tempid, List *tlist);
|
||||
static void replace_result_clause(List *clause, List *subplanTargetList);
|
||||
static bool OperandIsInner(Node *opnd, int inner_relid);
|
||||
static void replace_agg_clause(Node *expr, List *targetlist);
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@@ -66,7 +66,7 @@ static void replace_agg_clause(Node * expr, List * targetlist);
|
||||
*
|
||||
*/
|
||||
void
|
||||
set_tlist_references(Plan * plan)
|
||||
set_tlist_references(Plan *plan)
|
||||
{
|
||||
if (plan == NULL)
|
||||
return;
|
||||
@@ -75,7 +75,7 @@ set_tlist_references(Plan * plan)
|
||||
{
|
||||
set_join_tlist_references((Join *) plan);
|
||||
}
|
||||
else if (IsA(plan, SeqScan) && plan->lefttree &&
|
||||
else if (IsA(plan, SeqScan) &&plan->lefttree &&
|
||||
IsA_Temp(plan->lefttree))
|
||||
{
|
||||
set_tempscan_tlist_references((SeqScan *) plan);
|
||||
@@ -120,7 +120,7 @@ set_tlist_references(Plan * plan)
|
||||
*
|
||||
*/
|
||||
static void
|
||||
set_join_tlist_references(Join * join)
|
||||
set_join_tlist_references(Join *join)
|
||||
{
|
||||
Plan *outer = ((Plan *) join)->lefttree;
|
||||
Plan *inner = ((Plan *) join)->righttree;
|
||||
@@ -165,7 +165,7 @@ set_join_tlist_references(Join * join)
|
||||
*
|
||||
*/
|
||||
static void
|
||||
set_tempscan_tlist_references(SeqScan * tempscan)
|
||||
set_tempscan_tlist_references(SeqScan *tempscan)
|
||||
{
|
||||
Temp *temp = (Temp *) ((Plan *) tempscan)->lefttree;
|
||||
|
||||
@@ -187,7 +187,7 @@ set_tempscan_tlist_references(SeqScan * tempscan)
|
||||
*
|
||||
*/
|
||||
static void
|
||||
set_temp_tlist_references(Temp * temp)
|
||||
set_temp_tlist_references(Temp *temp)
|
||||
{
|
||||
Plan *source = ((Plan *) temp)->lefttree;
|
||||
|
||||
@@ -218,9 +218,9 @@ set_temp_tlist_references(Temp * temp)
|
||||
*
|
||||
*/
|
||||
List *
|
||||
join_references(List * clauses,
|
||||
List * outer_tlist,
|
||||
List * inner_tlist)
|
||||
join_references(List *clauses,
|
||||
List *outer_tlist,
|
||||
List *inner_tlist)
|
||||
{
|
||||
return (replace_subclause_joinvar_refs(clauses,
|
||||
outer_tlist,
|
||||
@@ -244,8 +244,8 @@ join_references(List * clauses,
|
||||
*
|
||||
*/
|
||||
List *
|
||||
index_outerjoin_references(List * inner_indxqual,
|
||||
List * outer_tlist,
|
||||
index_outerjoin_references(List *inner_indxqual,
|
||||
List *outer_tlist,
|
||||
Index inner_relid)
|
||||
{
|
||||
List *t_list = NIL;
|
||||
@@ -307,9 +307,9 @@ index_outerjoin_references(List * inner_indxqual,
|
||||
*
|
||||
*/
|
||||
static List *
|
||||
replace_clause_joinvar_refs(Expr * clause,
|
||||
List * outer_tlist,
|
||||
List * inner_tlist)
|
||||
replace_clause_joinvar_refs(Expr *clause,
|
||||
List *outer_tlist,
|
||||
List *inner_tlist)
|
||||
{
|
||||
List *temp = NULL;
|
||||
|
||||
@@ -402,9 +402,9 @@ replace_clause_joinvar_refs(Expr * clause,
|
||||
}
|
||||
|
||||
static List *
|
||||
replace_subclause_joinvar_refs(List * clauses,
|
||||
List * outer_tlist,
|
||||
List * inner_tlist)
|
||||
replace_subclause_joinvar_refs(List *clauses,
|
||||
List *outer_tlist,
|
||||
List *inner_tlist)
|
||||
{
|
||||
List *t_list = NIL;
|
||||
List *temp = NIL;
|
||||
@@ -421,7 +421,7 @@ replace_subclause_joinvar_refs(List * clauses,
|
||||
}
|
||||
|
||||
static Var *
|
||||
replace_joinvar_refs(Var * var, List * outer_tlist, List * inner_tlist)
|
||||
replace_joinvar_refs(Var *var, List *outer_tlist, List *inner_tlist)
|
||||
{
|
||||
Resdom *outer_resdom = (Resdom *) NULL;
|
||||
|
||||
@@ -468,7 +468,7 @@ replace_joinvar_refs(Var * var, List * outer_tlist, List * inner_tlist)
|
||||
*/
|
||||
static List *
|
||||
tlist_temp_references(Oid tempid,
|
||||
List * tlist)
|
||||
List *tlist)
|
||||
{
|
||||
List *t_list = NIL;
|
||||
TargetEntry *temp = (TargetEntry *) NULL;
|
||||
@@ -511,7 +511,7 @@ tlist_temp_references(Oid tempid,
|
||||
* fields....
|
||||
*/
|
||||
void
|
||||
set_result_tlist_references(Result * resultNode)
|
||||
set_result_tlist_references(Result *resultNode)
|
||||
{
|
||||
Plan *subplan;
|
||||
List *resultTargetList;
|
||||
@@ -560,8 +560,8 @@ set_result_tlist_references(Result * resultNode)
|
||||
*
|
||||
*/
|
||||
static void
|
||||
replace_result_clause(List * clause,
|
||||
List * subplanTargetList) /* target list of the
|
||||
replace_result_clause(List *clause,
|
||||
List *subplanTargetList) /* target list of the
|
||||
* subplan */
|
||||
{
|
||||
List *t;
|
||||
@@ -631,7 +631,7 @@ replace_result_clause(List * clause,
|
||||
subClause = (List *) get_rightop((Expr *) clause);
|
||||
replace_result_clause(subClause, subplanTargetList);
|
||||
}
|
||||
else if (IsA(clause, Param) || IsA(clause, Const))
|
||||
else if (IsA(clause, Param) ||IsA(clause, Const))
|
||||
{
|
||||
/* do nothing! */
|
||||
}
|
||||
@@ -646,8 +646,8 @@ replace_result_clause(List * clause,
|
||||
}
|
||||
|
||||
static
|
||||
bool
|
||||
OperandIsInner(Node * opnd, int inner_relid)
|
||||
bool
|
||||
OperandIsInner(Node *opnd, int inner_relid)
|
||||
{
|
||||
|
||||
/*
|
||||
@@ -720,7 +720,7 @@ set_agg_agglist_references(Agg *aggNode)
|
||||
}
|
||||
|
||||
static void
|
||||
replace_agg_clause(Node * clause, List * subplanTargetList)
|
||||
replace_agg_clause(Node *clause, List *subplanTargetList)
|
||||
{
|
||||
List *t;
|
||||
TargetEntry *subplanVar;
|
||||
@@ -789,7 +789,7 @@ replace_agg_clause(Node * clause, List * subplanTargetList)
|
||||
if (right != (Node *) NULL)
|
||||
replace_agg_clause(right, subplanTargetList);
|
||||
}
|
||||
else if (IsA(clause, Param) || IsA(clause, Const))
|
||||
else if (IsA(clause, Param) ||IsA(clause, Const))
|
||||
{
|
||||
/* do nothing! */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user