Tom Lane wrote:
I looked at this but did not actually see the code path that requires
forcing creation of the per-DB entry right at this spot.  The HASH_FIND
calls for this hashtable seem to all happen on the backend side not the
collector side.  Can you explain why we need this?

Yeah, I missed this when making the original change (this code is rather opaque :-\). The problem is that if we don't initialize the dbentry for the database we connect to, it won't get written out to the statsfile in pgstat_write_statsfile(). So the database won't be counted as having any backends connected to it in pgstat_read_statsfile() (see line 2558 of pgstat.c in HEAD).

BTW, the comment at line 2210 of pgstat.c is misleading: the n_backends in the entries of the dbentry hash table are explicitly ignored when reading in the stats file -- the value is instead derived from the number of beentries that are seen.


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
   (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to