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
- pg_dump-filter-20200713-2.patch (text/x-patch) patch
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 →
-
Fix array subscript warnings
- 17935e1fdf0a 17.0 landed
-
Read include/exclude commands for dump/restore from file
- a5cf808be55b 17.0 landed
-
Allow records to span multiple lines in pg_hba.conf and pg_ident.conf.
- 8f8154a503c7 14.0 cited