Re: no notnull values, invalid stats?

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Markus Schaber <schabi(at)logix-tt(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, PostgreSQL SQL List <pgsql-sql(at)postgresql(dot)org>
Subject: Re: no notnull values, invalid stats?
Date: 2006-02-06 17:35:24
Message-ID: 20060206173523.GA16445@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Mon, Feb 06, 2006 at 03:32:32PM +0100, Markus Schaber wrote:
> Alvaro Herrera wrote:
> >>The following message occasionally appears in my postgresql log - from
> >>temporal corellation, it might be caused by autovacuum.
> >>
> >>NOTICE: no notnull values, invalid stats
> >
> > I see no such message in 8.1 sources. Is this verbatim or did you
> > translate it?
>
> It is verbatim from /var/log/postgresql/postgresql-8.1-main.log.
>
> But I have PostGIS installed in some of the databases, so it might be
> from there.

That is indeed a PostGIS message; it's in compute_geometry_stats()
in lwgeom/lwgeom_estimate.c. I think it means that during an
analyze, all of the sampled rows had NULL values in their geometry
columns (i.e., no not-NULL values were found); that would explain
the correlation with autovacuum. Here's an example that elicits
the notice:

postgis=> CREATE TABLE foo ();
CREATE TABLE
postgis=> SELECT AddGeometryColumn('foo', 'geom', -1, 'GEOMETRY', 2);
addgeometrycolumn
------------------------------------------------
public.foo.geom SRID:-1 TYPE:GEOMETRY DIMS:2

(1 row)

postgis=> INSERT INTO foo VALUES (NULL);
INSERT 0 1
postgis=> ANALYZE foo;
NOTICE: no notnull values, invalid stats
ANALYZE
postgis=> UPDATE foo SET geom = GeomFromText('POINT(0 0)');
UPDATE 1
postgis=> ANALYZE foo;
ANALYZE

--
Michael Fuhr

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message superboy143 (sent by Nabble.com) 2006-02-07 09:45:50 query
Previous Message Craig Servin 2006-02-06 15:14:41 Re: Trigger efficiency