Re: proposal: possibility to read dumped table's name from file - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: proposal: possibility to read dumped table's name from file
Date
Msg-id CAFj8pRBB_9jdr8LoL9r-gQ9O1aRdPXXO0iH-HrYkC3jPgxY5Aw@mail.gmail.com
Whole thread Raw
In response to Re: proposal: possibility to read dumped table's name from file  (Julien Rouhaud <rjuju123@gmail.com>)
Responses Re: proposal: possibility to read dumped table's name from file
List pgsql-hackers
Hi

pá 4. 11. 2022 v 14:28 odesílatel Julien Rouhaud <rjuju123@gmail.com> napsal:
On Fri, Nov 04, 2022 at 07:19:27AM -0500, Justin Pryzby wrote:
> On Fri, Nov 04, 2022 at 07:59:01PM +0800, Julien Rouhaud wrote:
> > On Thu, Nov 03, 2022 at 10:22:15PM +0100, Pavel Stehule wrote:
> > > čt 3. 11. 2022 v 5:09 odesílatel Julien Rouhaud <rjuju123@gmail.com> napsal:
> > > updated patch attached
> > >
> > > big thanks for these comments and tips
> >
> > Thanks for the updated patch!  As far as I'm concerned the patch is in a good
> > shape, passes the CI and I don't have anything more to say so I'm marking it as
> > Ready for Committer!
>
> +1
>
> I started looking to see if it's possible to simplify the patch at all,
> but nothing to show yet.
>
> But one thing I noticed is that "optarg" looks wrong here:
>
> simple_string_list_append(&opts->triggerNames, optarg);

Ah indeed, good catch!  Maybe there should be an explicit test for every
(include|exclude) / objtype combination?  It would be a bit verbose (and
possibly hard to maintain).

yes - pg_restore is not well covered by  tests, fixed

I found another issue. The pg_restore requires a full signature of the function and it is pretty sensitive on white spaces (pg_restore). I made a mistake when I partially parsed patterns like SQL identifiers. It can work for simple cases, but when I parse the function's signature it stops working. So I rewrote the parsing pattern part. Now, I just read an input string and I try to reduce spaces. Still multiline identifiers are supported. Against the previous method of pattern parsing, I needed to change just one regress test - now I am not able to detect garbage after pattern :-/. It is possible to enter types like "double precision" or "timestamp with time zone", without needing to check it on the server side.

When I wroted regress tests I found some  issues of pg_restore filtering options (not related to this patch)

* function's filtering doesn't support schema - when the name of function is specified with schema, then the function is not found

* the function has to be specified with an argument type list - the separator has to be exactly ", " string. Without space or with one space more, the filtering doesn't work (new implementation of pattern parsing reduces white spaces sensitivity). This is not a bug, but it is not well documented.

* the trigger filtering is probably broken (on pg_restore side). The name should be entered in form "tablename triggername"

attached updated patch

Regards

Pavel
Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Check SubPlan clause for nonnullable rels/Vars
Next
From: Tom Lane
Date:
Subject: Re: Do we need to pass down nonnullable_vars when reducing outer joins?