Search Postgresql Archives

Re: Exclude pg_largeobject form pg_dump

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>:
On Tue, Mar 8, 2016 at 9:45 AM, Andreas Joseph Krogh <andreas@xxxxxxxxxx> wrote:
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.5
 
David 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux