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