I have my original changes + Tom's recommended changes applied to 7.4.1
if you're interested.


On Wed, 2004-02-11 at 15:57, Matthew T. O'Connor wrote:
> Yeah, I'll take a look at it and submit a patch.  Sorry I didn't see it
> sooner, but I don't read the bugs mailing list.
> 
> On Wed, 2004-02-11 at 17:29, Bruce Momjian wrote:
> > Would someone review these problems and submit a patch?  Thanks.
> > 
> > ---------------------------------------------------------------------------
> > 
> > Tom Lane wrote:
> > > Cott Lang <[EMAIL PROTECTED]> writes:
> > > > If the number of tuples is sufficiently high, pg reports 'reltuples'
> > > > back in TABLE_STATS_QUERY in scientific notation instead of an integer.
> > > 
> > > Right, because that column is actually a float4.
> > > 
> > > > Changing from atoi() to atof() solves the problem completely.
> > > 
> > > > new_tbl->reltuples = 
> > > >   atof(PQgetvalue(res, row, PQfnumber(res, "reltuples")));
> > > 
> > > > new_tbl->relpages = 
> > > >   atof(PQgetvalue(res, row, PQfnumber(res, "relpages")));
> > > 
> > > I should think this would break in different ways once reltuples exceeds
> > > INT_MAX.  A full fix would require changing new_tbl->reltuples to be
> > > float or double, and coping with any downstream changes that implies.
> > > 
> > > Also, relpages *is* an integer, though it's best interpreted as an
> > > unsigned one.  (Ditto for relid.)  Looks like this code is 0-for-3 on
> > > getting the datatypes right :-(
> > > 
> > >                   regards, tom lane
> > > 
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 4: Don't 'kill -9' the postmaster
> > > 
> 


---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to