From: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
---|---|
To: | Stephen Frost <sfrost(at)snowman(dot)net> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Strange assertion using VACOPT_FREEZE in vacuum.c |
Date: | 2015-03-01 11:58:00 |
Message-ID: | CAB7nPqR0GHpmX6ahC2eWESGfOJf4VbuZX3yHaCju54SWMLmeUg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Feb 28, 2015 at 10:09 PM, Stephen Frost <sfrost(at)snowman(dot)net> wrote:
>> [nitpicking]We could improve things on both sides, aka change gram.y
>> to set VACOPT_FREEZE correctly, and add some assertions with the
>> params freeze_* at the beginning of vacuum().[/]
>
> The other issue that I have with this is that most production operations
> don't run with Asserts enabled, so if there is an actual issue here, we
> shouldn't be using Asserts to check but regular conditionals and
> throwing ereport()'s.
The only reason why I think they should be improved is for extension
developers, a simple example being a bgworker that directly calls
vacuum with a custom VacuumStmt, at least with those assertions we
could get some directions to the developer that what he is doing is
not consistent with what the code expects.
> Another approach might be to change VACOPT_FREEZE to actually be used by
> vacuum() instead of having to set 4 variables when it's not passed in.
> Perhaps we would actually take those parameters out of VacuumStmt, add a
> new argument to vacuum() for autovacuum to use which is a struct
> containing those options, and remove all of nonsense of setting those
> variables inside gram.y. At least in my head, that'd be a lot cleaner-
> have the grammar worry about options that are actually coming from the
> grammar and give other callers a way to specify more options if they've
> got them.
Hm, why not. That would remove all inconsistencies between the parser
and the autovacuum code path. Perhaps something like the attached
makes sense then?
--
Michael
Attachment | Content-Type | Size |
---|---|---|
0001-Move-freeze-parameters-of-VacuumStmt-into-a-separate.patch | application/x-patch | 15.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2015-03-01 13:11:13 | Re: Bug in pg_dump |
Previous Message | Michael Paquier | 2015-03-01 10:49:54 | Re: Enforce creation of destination folders for source files in pg_regress (Was: pg_regress writes into source tree) |