2016-10-23 20:44 GMT+02:00 Guillaume Lelarge <guillaume@xxxxxxxxxxxx>:
2016-10-23 20:37 GMT+02:00 Andreas Joseph Krogh <andreas@xxxxxxxxxx>:På søndag 23. oktober 2016 kl. 19:15:17, skrev Andreas Joseph Krogh <andreas@xxxxxxxxxx>:På søndag 23. oktober 2016 kl. 17:06:57, skrev Guillaume Lelarge <guillaume@xxxxxxxxxxxx>:2016-03-08 21:06 GMT+01:00 Andreas Joseph Krogh <andreas@xxxxxxxxxx>:På tirsdag 08. mars 2016 kl. 21:03:01, skrev David G. Johnston <david.g.johnston@xxxxxxxxx>:På tirsdag 08. mars 2016 kl. 17:38:04, skrev Joshua D. Drake <jd@xxxxxxxxxxxxxxxxx>:On 03/08/2016 08:02 AM, Andreas Joseph Krogh wrote:
> På tirsdag 08. mars 2016 kl. 16:57:01, skrev Tom Lane <tgl@xxxxxxxxxxxxx
> <mailto:tgl@xxxxxxxxxxxxx>>:
>
> Andreas Joseph Krogh <andreas@xxxxxxxxxx> writes:
> > What I'm looking for is "inverse -b" in an otherwise complete
> dump. Any plans
> > to add that?
>
> [ shrug... ] Nobody ever asked for it before.
>
> regards, tom lane
>
> It surely helps testing production-datasets which contain lots of BLOBs
> where one wants to dump the production-data into a test-env. We have
> >1TB databases containing > 95% blobs so it would help us tremendously
> to have this option.
I have quite a few customers that would benefit from the ability to not
have blobs present in dumps.Great! So how do we proceed to get "--no-blobs" added to pg_dump?Maybe CommandPrompt and Visena should co-fund development of such an addition, if it's accepted by -hackers?We'd be willing to pay for such an addition for the 9.5 branch, as a patch.Unfortunately this doesn't qualify as a bug fix - it is a new feature and thus is ineligible for inclusion in official 9.5David J.Of course. That's why I mentioned that, if possible, an unofficial patch to 9.5 could be developed, funded partly by Visena (my company). Given that someone is willing to do this of course.That probably should look like the patch attached. It applies cleanly on HEAD, and works AFAICT. If this patch seems interesting enough, I'll add it to the next commit fest (note for myself, update the ref/pg_dump.sgml documentation file).
For Andreas' information, it also applies on 9.5, though I didn't check if it worked afterwards.+1 for adding it to the commitfest.It's almost scary how simple this patch is and noone ever got around to implement it.Nobody had the time (like me, till now) or the motivation.
Thanks, I'll test it on 9.5 soon.It's totally OK for me to use 9.6 (now that it's released) to dump 9.5 DBs, so I'm all good with this patch, thanks!Remember that, if it gets commited, it'll be for next release (aka 10), and not 9.6 and earlier.
New patch, this time with the documentation.
--
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml index 371a614..83dc52f 100644 --- a/doc/src/sgml/ref/pg_dump.sgml +++ b/doc/src/sgml/ref/pg_dump.sgml @@ -145,6 +145,16 @@ PostgreSQL documentation </varlistentry> <varlistentry> + <term><option>-B</></term> + <term><option>--no-blobs</></term> + <listitem> + <para> + Exclude large objects in the dump. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>-c</option></term> <term><option>--clean</option></term> <listitem> diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 4da297f..dd93789 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -379,7 +379,7 @@ main(int argc, char **argv) InitDumpOptions(&dopt); - while ((c = getopt_long(argc, argv, "abcCd:E:f:F:h:j:n:N:oOp:RsS:t:T:U:vwWxZ:", + while ((c = getopt_long(argc, argv, "abBcCd:E:f:F:h:j:n:N:oOp:RsS:t:T:U:vwWxZ:", long_options, &optindex)) != -1) { switch (c) @@ -392,6 +392,10 @@ main(int argc, char **argv) dopt.outputBlobs = true; break; + case 'B': /* Don't dump blobs */ + dopt.include_everything = false; + break; + case 'c': /* clean (i.e., drop) schema prior to create */ dopt.outputClean = 1; break; @@ -864,6 +868,7 @@ help(const char *progname) printf(_("\nOptions controlling the output content:\n")); printf(_(" -a, --data-only dump only the data, not the schema\n")); printf(_(" -b, --blobs include large objects in dump\n")); + printf(_(" -B, --no-blobs exclude large objects in dump\n")); printf(_(" -c, --clean clean (drop) database objects before recreating\n")); printf(_(" -C, --create include commands to create database in dump\n")); printf(_(" -E, --encoding=ENCODING dump the data in encoding ENCODING\n"));
-- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general