diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-04-11 23:06:57 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-04-11 23:06:57 +0000 |
| commit | addc42c339208d6a7a1d652fbf388e8aea7f80b9 (patch) | |
| tree | e349d31f2ae1006ed4078b811dae8d842e00d969 /src/backend/optimizer/path/indxpath.c | |
| parent | c3294f1cbfe02293b4a7c6b2e58ca4c09a7e541f (diff) | |
Create the planner mechanism for optimizing simple MIN and MAX queries
into indexscans on matching indexes. For the moment, it only handles
int4 and text datatypes; next step is to add a column to pg_aggregate
so that all MIN/MAX aggregates can be handled. Per my recent proposal.
Diffstat (limited to 'src/backend/optimizer/path/indxpath.c')
| -rw-r--r-- | src/backend/optimizer/path/indxpath.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index e1328c0f9b8..21cf27745a4 100644 --- a/src/backend/optimizer/path/indxpath.c +++ b/src/backend/optimizer/path/indxpath.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.172 2005/03/28 00:58:22 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.173 2005/04/11 23:06:55 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -54,7 +54,6 @@ ((opclass) == BOOL_BTREE_OPS_OID || (opclass) == BOOL_HASH_OPS_OID) -static List *group_clauses_by_indexkey(IndexOptInfo *index); static List *group_clauses_by_indexkey_for_join(Query *root, IndexOptInfo *index, Relids outer_relids, @@ -72,8 +71,6 @@ static bool pred_test_simple_clause(Expr *predicate, Node *clause); static Relids indexable_outerrelids(IndexOptInfo *index); static Path *make_innerjoin_index_path(Query *root, IndexOptInfo *index, List *clausegroups); -static bool match_index_to_operand(Node *operand, int indexcol, - IndexOptInfo *index); static bool match_boolean_index_clause(Node *clause, int indexcol, IndexOptInfo *index); static bool match_special_index_operator(Expr *clause, Oid opclass, @@ -234,7 +231,7 @@ create_index_paths(Query *root, RelOptInfo *rel) * clauses matching column C, because the executor couldn't use them anyway. * Therefore, there are no empty sublists in the result. */ -static List * +List * group_clauses_by_indexkey(IndexOptInfo *index) { List *clausegroup_list = NIL; @@ -1774,7 +1771,7 @@ make_expr_from_indexclauses(List *indexclauses) * indexcol: the column number of the index (counting from 0) * index: the index of interest */ -static bool +bool match_index_to_operand(Node *operand, int indexcol, IndexOptInfo *index) |
