diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-01-24 07:16:52 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-01-24 07:16:52 +0000 |
commit | 0dbffa704ab3235431b4caef675d9179109d4a0c (patch) | |
tree | e00f27de3b6a2faec151f4d2d6aa924ba05d5e5d /src/include/utils/builtins.h | |
parent | 8bcac56086ec1aa1eae04879bfb22275b9396522 (diff) |
First cut at making useful selectivity estimates for range queries
(ie, WHERE x > lowbound AND x < highbound). It's not very bright yet
but it does something useful. Also, rename intltsel/intgtsel to
scalarltsel/scalargtsel to reflect usage better. Extend convert_to_scalar
to do something a little bit useful with string data types. Still need
to make it do something with date/time datatypes, but I'll wait for
Thomas's datetime unification dust to settle first. Eventually the
routine ought not have any type-specific knowledge at all; it ought to
be calling a type-dependent routine found via a pg_type column; but
that's a task for another day.
Diffstat (limited to 'src/include/utils/builtins.h')
-rw-r--r-- | src/include/utils/builtins.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index ae6e3daf62d..27289d39b75 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: builtins.h,v 1.97 2000/01/22 23:50:27 tgl Exp $ + * $Id: builtins.h,v 1.98 2000/01/24 07:16:47 tgl Exp $ * * NOTES * This should normally only be included by fmgr.h. @@ -389,12 +389,13 @@ extern char *deparse_expression(Node *expr, List *rangetables, /* selfuncs.c */ extern float64 eqsel(Oid opid, Oid relid, AttrNumber attno, Datum value, int32 flag); extern float64 neqsel(Oid opid, Oid relid, AttrNumber attno, Datum value, int32 flag); -extern float64 intltsel(Oid opid, Oid relid, AttrNumber attno, Datum value, int32 flag); -extern float64 intgtsel(Oid opid, Oid relid, AttrNumber attno, Datum value, int32 flag); +extern float64 scalarltsel(Oid opid, Oid relid, AttrNumber attno, Datum value, int32 flag); +extern float64 scalargtsel(Oid opid, Oid relid, AttrNumber attno, Datum value, int32 flag); extern float64 eqjoinsel(Oid opid, Oid relid1, AttrNumber attno1, Oid relid2, AttrNumber attno2); extern float64 neqjoinsel(Oid opid, Oid relid1, AttrNumber attno1, Oid relid2, AttrNumber attno2); -extern float64 intltjoinsel(Oid opid, Oid relid1, AttrNumber attno1, Oid relid2, AttrNumber attno2); -extern float64 intgtjoinsel(Oid opid, Oid relid1, AttrNumber attno1, Oid relid2, AttrNumber attno2); +extern float64 scalarltjoinsel(Oid opid, Oid relid1, AttrNumber attno1, Oid relid2, AttrNumber attno2); +extern float64 scalargtjoinsel(Oid opid, Oid relid1, AttrNumber attno1, Oid relid2, AttrNumber attno2); +extern bool convert_to_scalar(Datum value, Oid typid, double *scaleval); extern void btcostestimate(Query *root, RelOptInfo *rel, IndexOptInfo *index, List *indexQuals, |