@ -39,25 +39,25 @@
static Selectivity calc_arraycontsel ( VariableStatData * vardata , Datum constval ,
Oid elemtype , Oid operator ) ;
static Selectivity mcelem_array_selec ( ArrayType * array ,
static Selectivity mcelem_array_selec ( const ArrayType * array ,
TypeCacheEntry * typentry ,
Datum * mcelem , int nmcelem ,
float4 * numbers , int nnumbers ,
float4 * hist , int nhist ,
const Datum * mcelem , int nmcelem ,
const float4 * numbers , int nnumbers ,
const float4 * hist , int nhist ,
Oid operator ) ;
static Selectivity mcelem_array_contain_overlap_selec ( Datum * mcelem , int nmcelem ,
float4 * numbers , int nnumbers ,
Datum * array_data , int nitems ,
static Selectivity mcelem_array_contain_overlap_selec ( const Datum * mcelem , int nmcelem ,
const float4 * numbers , int nnumbers ,
const Datum * array_data , int nitems ,
Oid operator , TypeCacheEntry * typentry ) ;
static Selectivity mcelem_array_contained_selec ( Datum * mcelem , int nmcelem ,
float4 * numbers , int nnumbers ,
Datum * array_data , int nitems ,
float4 * hist , int nhist ,
static Selectivity mcelem_array_contained_selec ( const Datum * mcelem , int nmcelem ,
const float4 * numbers , int nnumbers ,
const Datum * array_data , int nitems ,
const float4 * hist , int nhist ,
Oid operator , TypeCacheEntry * typentry ) ;
static float * calc_hist ( const float4 * hist , int nhist , int n ) ;
static float * calc_distr ( const float * p , int n , int m , float rest ) ;
static int floor_log2 ( uint32 n ) ;
static bool find_next_mcelem ( Datum * mcelem , int nmcelem , Datum value ,
static bool find_next_mcelem ( const Datum * mcelem , int nmcelem , Datum value ,
int * index , TypeCacheEntry * typentry ) ;
static int element_compare ( const void * key1 , const void * key2 , void * arg ) ;
static int float_compare_desc ( const void * key1 , const void * key2 ) ;
@ -425,10 +425,10 @@ calc_arraycontsel(VariableStatData *vardata, Datum constval,
* mcelem_array_contained_selec depending on the operator .
*/
static Selectivity
mcelem_array_selec ( ArrayType * array , TypeCacheEntry * typentry ,
Datum * mcelem , int nmcelem ,
float4 * numbers , int nnumbers ,
float4 * hist , int nhist ,
mcelem_array_selec ( const ArrayType * array , TypeCacheEntry * typentry ,
const Datum * mcelem , int nmcelem ,
const float4 * numbers , int nnumbers ,
const float4 * hist , int nhist ,
Oid operator )
{
Selectivity selec ;
@ -518,9 +518,9 @@ mcelem_array_selec(ArrayType *array, TypeCacheEntry *typentry,
* fraction of nonempty arrays in the column .
*/
static Selectivity
mcelem_array_contain_overlap_selec ( Datum * mcelem , int nmcelem ,
float4 * numbers , int nnumbers ,
Datum * array_data , int nitems ,
mcelem_array_contain_overlap_selec ( const Datum * mcelem , int nmcelem ,
const float4 * numbers , int nnumbers ,
const Datum * array_data , int nitems ,
Oid operator , TypeCacheEntry * typentry )
{
Selectivity selec ,
@ -699,10 +699,10 @@ mcelem_array_contain_overlap_selec(Datum *mcelem, int nmcelem,
* . . . * fn ^ on * ( 1 - fn ) ^ ( 1 - on ) , o1 , o2 , . . . , on ) | o1 + o2 + . . on = m
*/
static Selectivity
mcelem_array_contained_selec ( Datum * mcelem , int nmcelem ,
float4 * numbers , int nnumbers ,
Datum * array_data , int nitems ,
float4 * hist , int nhist ,
mcelem_array_contained_selec ( const Datum * mcelem , int nmcelem ,
const float4 * numbers , int nnumbers ,
const Datum * array_data , int nitems ,
const float4 * hist , int nhist ,
Oid operator , TypeCacheEntry * typentry )
{
int mcelem_index ,
@ -1136,7 +1136,7 @@ floor_log2(uint32 n)
* exact match . )
*/
static bool
find_next_mcelem ( Datum * mcelem , int nmcelem , Datum value , int * index ,
find_next_mcelem ( const Datum * mcelem , int nmcelem , Datum value , int * index ,
TypeCacheEntry * typentry )
{
int l = * index ,