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

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: vignesh C <vignesh21(at)gmail(dot)com>
Cc: Justin Pryzby <pryzby(at)telsasoft(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: proposal: possibility to read dumped table's name from file
Date: 2020-07-13 08:20:42
Message-ID: CAFj8pRDU-CsvKjxEZ=SvuVjymFSEdS1pgLzxB7RTWSWnnqcLAA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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

> On Mon, Jul 6, 2020 at 10:05 AM Pavel Stehule <pavel(dot)stehule(at)gmail(dot)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
>

Attachment Content-Type Size
pg_dump-filter-20200713-2.patch text/x-patch 9.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Khandekar 2020-07-13 08:57:19 Re: Auto-vectorization speeds up multiplication of large-precision numerics
Previous Message Daniel Gustafsson 2020-07-13 08:12:54 Re: Don't choke on files that are removed while pg_rewind runs.