diff options
Diffstat (limited to 'src/include/utils/builtins.h')
-rw-r--r-- | src/include/utils/builtins.h | 68 |
1 files changed, 58 insertions, 10 deletions
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index 80d91aba75a..16bff65054d 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: builtins.h,v 1.110 2000/04/12 17:16:54 momjian Exp $ + * $Id: builtins.h,v 1.111 2000/04/16 04:41:03 tgl Exp $ * * NOTES * This should normally only be included by fmgr.h. @@ -371,15 +371,47 @@ extern char *deparse_expression(Node *expr, List *rangetables, bool forceprefix); /* 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 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 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 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 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 regexeqsel(Oid opid, Oid relid, AttrNumber attno, + Datum value, int32 flag); +extern float64 likesel(Oid opid, Oid relid, AttrNumber attno, + Datum value, int32 flag); +extern float64 icregexeqsel(Oid opid, Oid relid, AttrNumber attno, + Datum value, int32 flag); +extern float64 regexnesel(Oid opid, Oid relid, AttrNumber attno, + Datum value, int32 flag); +extern float64 nlikesel(Oid opid, Oid relid, AttrNumber attno, + Datum value, int32 flag); +extern float64 icregexnesel(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 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 float64 regexeqjoinsel(Oid opid, Oid relid1, AttrNumber attno1, + Oid relid2, AttrNumber attno2); +extern float64 likejoinsel(Oid opid, Oid relid1, AttrNumber attno1, + Oid relid2, AttrNumber attno2); +extern float64 icregexeqjoinsel(Oid opid, Oid relid1, AttrNumber attno1, + Oid relid2, AttrNumber attno2); +extern float64 regexnejoinsel(Oid opid, Oid relid1, AttrNumber attno1, + Oid relid2, AttrNumber attno2); +extern float64 nlikejoinsel(Oid opid, Oid relid1, AttrNumber attno1, + Oid relid2, AttrNumber attno2); +extern float64 icregexnejoinsel(Oid opid, Oid relid1, AttrNumber attno1, + Oid relid2, AttrNumber attno2); extern void btcostestimate(Query *root, RelOptInfo *rel, IndexOptInfo *index, List *indexQuals, @@ -402,6 +434,22 @@ extern void gistcostestimate(Query *root, RelOptInfo *rel, Cost *indexTotalCost, Selectivity *indexSelectivity); +typedef enum +{ + Pattern_Type_Like, Pattern_Type_Regex, Pattern_Type_Regex_IC +} Pattern_Type; + +typedef enum +{ + Pattern_Prefix_None, Pattern_Prefix_Partial, Pattern_Prefix_Exact +} Pattern_Prefix_Status; + +extern Pattern_Prefix_Status pattern_fixed_prefix(char *patt, + Pattern_Type ptype, + char **prefix, + char **rest); +extern char *make_greater_string(const char *str, Oid datatype); + /* tid.c */ extern ItemPointer tidin(const char *str); extern char *tidout(ItemPointer itemPtr); |