| From: | Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com> |
|---|---|
| To: | Mat Arye <mat(at)timescale(dot)com> |
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Additional Statistics Hooks |
| Date: | 2018-03-15 05:00:27 |
| Message-ID: | CAFjFpRcwcAtMvFXpdL6chMS7Q-+-n8xiznSeenm4C_xug8zyFg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Mar 13, 2018 at 8:55 PM, Mat Arye <mat(at)timescale(dot)com> wrote:
>>
>> Like cost associated with a function, we may associate mapping
>> cardinality with a function. It tells how many distinct input values
>> map to 1 output value. By input value, I mean input argument tuple. In
>> Mat's case the mapping cardinality will be 12. The number of distinct
>> values that function may output is estimated as number of estimated
>> rows / mapping cardinality of that function.
>
>
> I think this is complicated by the fact that the mapping cardinality is not
> a constant per function
> but depends on the constant given as the first argument to the function and
> the granularity of the
> underlying data (do you have a second-granularity or microsecond
> granularity). I actually think the logic for the
> estimate here should be the (max(time)-min(time))/interval. I think to be
> general you need to allow functions on statistics to determine the estimate.
>
I think my solution was quite short-sighted. You are right. We need a
function taking statistics about the input argument as input and
output the statistics about the output. The planner can then use this
statistics to arrive at various estimates.
--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kyotaro HORIGUCHI | 2018-03-15 05:03:15 | Re: pg_get_functiondef forgets about most GUC_LIST_INPUT GUCs |
| Previous Message | Jeff Janes | 2018-03-15 04:50:26 | Re: INOUT parameters in procedures |