Обсуждение: pg_dump superflous warning message
If I do: pg_dump -a --disable-triggers I get a warning message: pg_dump: NOTICE: there are circular foreign-key constraints among these table(s): pg_dump: directory pg_dump: You may not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints. pg_dump: Consider using a full dump instead of a --data-only dump to avoid this problem. Of course, this was confusing as hell -- we spent a good bit of time trying to figure out why pg_dump wasn't honoring --disable-triggers. It turns out that it is, it's just that it prints the warning even when it's not applicable. At least from my perspective, I don't think this warning should be printed if the proper command line switches have been given. Is there a good reason to print it anyway? This is with pg 8.4.2 (both client and server). -- Bill Moran http://www.potentialtech.com http://people.collaborativefusion.com/~wmoran/
On Thu, Feb 11, 2010 at 10:08 AM, Bill Moran <wmoran@potentialtech.com> wrote: > > If I do: > pg_dump -a --disable-triggers > > I get a warning message: > pg_dump: NOTICE: there are circular foreign-key constraints among these table(s): > pg_dump: directory > pg_dump: You may not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints. > pg_dump: Consider using a full dump instead of a --data-only dump to avoid this problem. > > Of course, this was confusing as hell -- we spent a good bit of time > trying to figure out why pg_dump wasn't honoring --disable-triggers. > > It turns out that it is, it's just that it prints the warning even > when it's not applicable. But it's not a warning, it's a NOTICE.
Bill Moran <wmoran@potentialtech.com> writes: > If I do: > pg_dump -a --disable-triggers > I get a warning message: > pg_dump: NOTICE: there are circular foreign-key constraints among these table(s): > pg_dump: directory > pg_dump: You may not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints. > pg_dump: Consider using a full dump instead of a --data-only dump to avoid this problem. > Of course, this was confusing as hell -- we spent a good bit of time > trying to figure out why pg_dump wasn't honoring --disable-triggers. > It turns out that it is, it's just that it prints the warning even > when it's not applicable. Yeah, the low-level routine that prints the warning doesn't have ready access to knowledge of whether that switch has been given. I'm not sure it's worth doing anything about it, considering all the different corner cases involved (in particular text vs archive output). It'd be way too easy to suppress the message in cases where it was actually relevant :-( regards, tom lane
In response to Scott Marlowe <scott.marlowe@gmail.com>: > On Thu, Feb 11, 2010 at 10:08 AM, Bill Moran <wmoran@potentialtech.com> wrote: > > > > If I do: > > pg_dump -a --disable-triggers > > > > I get a warning message: > > pg_dump: NOTICE: there are circular foreign-key constraints among these table(s): > > pg_dump: directory > > pg_dump: You may not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints. > > pg_dump: Consider using a full dump instead of a --data-only dump to avoid this problem. > > > > Of course, this was confusing as hell -- we spent a good bit of time > > trying to figure out why pg_dump wasn't honoring --disable-triggers. > > > > It turns out that it is, it's just that it prints the warning even > > when it's not applicable. > > But it's not a warning, it's a NOTICE. Point taken. However, it's still a message that pops up and confuses the user by making him think he did something wrong. Based on Tom's response, it's probably not worth changing, but it would be nice if there was a reasonable way to detect when it was necessary and when it wasn't. -- Bill Moran http://www.potentialtech.com http://people.collaborativefusion.com/~wmoran/