Re: proposal: possibility to read dumped table's name from file

Pavel Stehule <pavel.stehule@gmail.com>

From: Pavel Stehule <pavel.stehule@gmail.com>
To: vignesh C <vignesh21@gmail.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2020-07-13T08:20:42Z
Lists: pgsql-hackers

Attachments

ne 12. 7. 2020 v 3:43 odesílatel vignesh C <vignesh21@gmail.com> napsal:

> On Mon, Jul 6, 2020 at 10:05 AM Pavel Stehule <pavel.stehule@gmail.com>
> wrote:
> >
> > here is support for comment's line - first char should be #
> >
>
> Few comments:
> +               str = fgets(*lineptr + total_chars,
> +                                       *n - total_chars,
> +                                       fp);
> +
> +               if (ferror(fp))
> +                       return -1;
>
> Should we include any error message in the above case.
>
> +               else
> +                       break;
> +       }
> +
> +       if (ferror(fp))
> +               return -1;
>
> Similar to above.
>

it should be ok, both variant finishing by

<-->if (ferror(fp))
<--><-->fatal("could not read from file \"%s\": %m", filename);

%m should to print related error message


>
> +                       /* check, if there is good enough space for
> next content */
> +                       if (*n - total_chars < 2)
> +                       {
> +                               *n += 1024;
> +                               *lineptr = pg_realloc(*lineptr, *n);
> +                       }
> We could use a macro in place of 1024.
>

done


> +                                               if (objecttype == 't')
> +                                               {
> +                                                       if (is_include)
> +                                                       {
> +
> simple_string_list_append(&table_include_patterns,
> +
>                                            objectname);
> +
> dopt.include_everything = false;
> +                                                       }
> +                                                       else
> +
> simple_string_list_append(&table_exclude_patterns,
> +
>                                            objectname);
> +                                               }
> +                                               else if (objecttype == 'n')
> +                                               {
> +                                                       if (is_include)
> +                                                       {
> +
> simple_string_list_append(&schema_include_patterns,
> +
>                                            objectname);
> +
> dopt.include_everything = false;
> +                                                       }
> +                                                       else
> +
> simple_string_list_append(&schema_exclude_patterns,
> +
>                                            objectname);
> +                                               }
> Some of the above code is repetitive in above, can the common code be
> made into a macro and called?
>

There are two same fragments and two different fragments. In this case I
don't think so using macro or auxiliary function can help with readability.
Current code is well structured and well readable.


>
>         printf(_("  --extra-float-digits=NUM     override default
> setting for extra_float_digits\n"));
> +       printf(_("  --filter=FILENAME            read object name
> filter expressions from file\n"));
>         printf(_("  --if-exists                  use IF EXISTS when
> dropping objects\n"));
> Can this be changed to dump objects and data based on the filter
> expressions from the filter file.
>

I am sorry, I don't understand. This should work for data from specified by
filter without any modification.

attached updated patch

Regards

Pavel


> Regards,
> Vignesh
> EnterpriseDB: http://www.enterprisedb.com
>

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix array subscript warnings

  2. Read include/exclude commands for dump/restore from file

  3. Allow records to span multiple lines in pg_hba.conf and pg_ident.conf.