Re: [PATCH][HOTFIX] vacuum_cost_delay type change from int to real have not been done everywhere

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Nikolay Shaplov <dhyan(at)nataraj(dot)su>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Julien Rouhaud <rjuju123(at)gmail(dot)com>, Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Jeremy Schneider <schnjere(at)amazon(dot)com>, Joe Conway <mail(at)joeconway(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>
Subject: Re: [PATCH][HOTFIX] vacuum_cost_delay type change from int to real have not been done everywhere
Date: 2019-03-26 17:38:00
Message-ID: 21345.1553621880@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Nikolay Shaplov <dhyan(at)nataraj(dot)su> writes:
> In caf626b2 type of vacuum_cost_delay have been switched from int to real,
> everywhere, but not in *RelOpts[] arrays.

Ugh.

> For some reason it continued to build and work.

I'm not quite sure why it worked either; apparently, the type of that
array entry doesn't have anything to do with the variable's storage
format. The bounds-check code must think it's dealing with an integer,
but that doesn't matter either for the values we need.

> PS. As you can see current reloption code is error-prone.

Yeah, that was pretty obvious already :-(. Having more than one place
defining the type of an option is clearly bogus. I missed that this
entry was type-specific because you'd really have to go up to the top
of the array to notice that; and since the type information *is* contained
in another entry, my bogometer failed to trigger.

Fix pushed, thanks for the report!

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2019-03-26 18:00:10 Re: pgsql: Get rid of backtracking in jsonpath_scan.l
Previous Message Andres Freund 2019-03-26 17:30:40 Re: [Patch] Base backups and random or zero pageheaders (was: Online verification of checksums)