Thread: SearchSysCache

SearchSysCache

From
uwcssa
Date:
My program (indirectly) calls the following function twice,

tuple = SearchSysCache(STATRELATT, ObjectIdGetDatum(relid),

Int16GetDatum(colnum),  0, 0);

The first time it assigns NULL to tuple, while the second time it
assigns a valid pointer. Why is it like that?  BTW, my program only
optimize query plan without executing it.

Thanks.


Re: SearchSysCache

From
Tom Lane
Date:
uwcssa <uwcssa@gmail.com> writes:
> My program (indirectly) calls the following function twice,
> tuple = SearchSysCache(STATRELATT, ObjectIdGetDatum(relid),
> Int16GetDatum(colnum),  0, 0);
> The first time it assigns NULL to tuple, while the second time it
> assigns a valid pointer. Why is it like that?

You did an ANALYZE in between, perhaps?  That's the only operation
that puts new rows in pg_statistic.
        regards, tom lane