Re: Indexing on JSONB field not working

Zhihong Zhang <[email protected]> Thu, 26 Dec 2019 14:22:30 -0500
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <[email protected]>
I simply ran ‘analyze;’ without table name and I assume that analyzes everything. I just ran ‘analyze assets;’ again but still no stats on indexes.

I looked at pg_stats for all our databases. None of them have stats on indexes. Are there any settings disabling this?


Thanks!

Zhihong


> On Dec 26, 2019, at 1:58 PM, Tom Lane <[email protected]> wrote:
> 
> Zhihong Zhang <[email protected]> writes:
>> The index name is correct and I ran ‘analyze' multiple times since the index is created. I have dozen indexes, some are created when table is created. None of them is in pg_stats.
> 
> You still haven't shown us exactly what you're doing, only asserted that
> you're doing the right thing, which seems somewhat unlikely given that
> nobody has been able to reproduce this behavior based on what you've
> told us so far.
> 
> One possible gotcha is indicated by this comment in analyze.c:
> 
>     * Open all indexes of the relation, and see if there are any analyzable
>     * columns in the indexes.  We do not analyze index columns if there was
>     * an explicit column list in the ANALYZE command, however.  If we are
> 
> that is, if you did something like "ANALYZE assets(_doc);" it would
> not result in creation of stats for any expression indexes.
> 
>> The database is on AWS RDS. Does that make any difference?
> 
> Wouldn't have thought that their version of Postgres deviates much
> from community Postgres.  If you were talking about Aurora or Redshift,
> I can't speak to what those do.
> 
> 			regards, tom lane