diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/utils/selfuncs.h | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/include/utils/selfuncs.h b/src/include/utils/selfuncs.h index 087b56f917e..8829889f9f5 100644 --- a/src/include/utils/selfuncs.h +++ b/src/include/utils/selfuncs.h @@ -15,7 +15,6 @@ #ifndef SELFUNCS_H #define SELFUNCS_H -#include "fmgr.h" #include "access/htup.h" #include "nodes/pathnodes.h" @@ -85,20 +84,6 @@ typedef struct VariableStatData } while(0) -typedef enum -{ - Pattern_Type_Like, - Pattern_Type_Like_IC, - Pattern_Type_Regex, - Pattern_Type_Regex_IC, - Pattern_Type_Prefix -} Pattern_Type; - -typedef enum -{ - Pattern_Prefix_None, Pattern_Prefix_Partial, Pattern_Prefix_Exact -} Pattern_Prefix_Status; - /* * deconstruct_indexquals is a simple function to examine the indexquals * attached to a proposed IndexPath. It returns a list of IndexQualInfo @@ -175,14 +160,16 @@ extern double histogram_selectivity(VariableStatData *vardata, FmgrInfo *opproc, Datum constval, bool varonleft, int min_hist_size, int n_skip, int *hist_size); - -extern Pattern_Prefix_Status pattern_fixed_prefix(Const *patt, - Pattern_Type ptype, - Oid collation, - Const **prefix, - Selectivity *rest_selec); -extern Const *make_greater_string(const Const *str_const, FmgrInfo *ltproc, - Oid collation); +extern double ineq_histogram_selectivity(PlannerInfo *root, + VariableStatData *vardata, + FmgrInfo *opproc, bool isgt, bool iseq, + Datum constval, Oid consttype); +extern double var_eq_const(VariableStatData *vardata, Oid oproid, + Datum constval, bool constisnull, + bool varonleft, bool negate); +extern double var_eq_non_const(VariableStatData *vardata, Oid oproid, + Node *other, + bool varonleft, bool negate); extern Selectivity boolvarsel(PlannerInfo *root, Node *arg, int varRelid); extern Selectivity booltestsel(PlannerInfo *root, BoolTestType booltesttype, |