Mark Stosberg wrote:
> Bruce Momjian wrote:
> > Mark Stosberg wrote:
> >> It woud also be nice to document that the full names "custom" and "tar" are
> >> supported. Longer names can be nice for clarity.
> >>
> >> ( Unfortunately, wrong formats like "txx" also work instead of throwing
> >> an error. )
> > 
> > I don't see that with current CVS:
> > 
> >     $ pg_dump --format=x test
> >     pg_dump: invalid output format "x" specified
> 
> Bruce,
> 
> I think the specific test case would have to start with a valid letter,
> like "t", and then include invalid characters. Try this instead:
> 
>  pg_dump --format=tx test

Thanks for the report.  I have corrected this and the fix will be in
PostgreSQL 8.3.  Interestingly, we support non-documented option
"append" and "file" too.

Patch attached and applied.

-- 
  Bruce Momjian  <[EMAIL PROTECTED]>          http://momjian.us
  EnterpriseDB                               http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/bin/pg_dump/pg_dump.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v
retrieving revision 1.461
diff -c -c -r1.461 pg_dump.c
*** src/bin/pg_dump/pg_dump.c	19 Mar 2007 23:38:30 -0000	1.461
--- src/bin/pg_dump/pg_dump.c	22 Mar 2007 18:39:53 -0000
***************
*** 476,513 ****
  	}
  
  	/* open the output file */
! 	switch (format[0])
  	{
! 		case 'a':
! 		case 'A':
! 			plainText = 1;
! 			g_fout = CreateArchive(filename, archNull, 0, archModeAppend);
! 			break;
! 			
! 		case 'c':
! 		case 'C':
! 			g_fout = CreateArchive(filename, archCustom, compressLevel, archModeWrite);
! 			break;
! 
! 		case 'f':
! 		case 'F':
! 			g_fout = CreateArchive(filename, archFiles, compressLevel, archModeWrite);
! 			break;
! 
! 		case 'p':
! 		case 'P':
! 			plainText = 1;
! 			g_fout = CreateArchive(filename, archNull, 0, archModeWrite);
! 			break;
! 
! 		case 't':
! 		case 'T':
! 			g_fout = CreateArchive(filename, archTar, compressLevel, archModeWrite);
! 			break;
! 
! 		default:
! 			write_msg(NULL, "invalid output format \"%s\" specified\n", format);
! 			exit(1);
  	}
  
  	if (g_fout == NULL)
--- 476,508 ----
  	}
  
  	/* open the output file */
! 	if (strcasecmp(format, "a") == 0 || strcasecmp(format, "append") == 0)
  	{
! 		/* not documented */
! 		plainText = 1;
! 		g_fout = CreateArchive(filename, archNull, 0, archModeAppend);
! 	}
! 	else if (strcasecmp(format, "c") == 0 || strcasecmp(format, "custom") == 0)
! 		g_fout = CreateArchive(filename, archCustom, compressLevel, archModeWrite);
! 	else if (strcasecmp(format, "f") == 0 || strcasecmp(format, "file") == 0)
! 	{
! 		/*
! 		 *	Dump files into the current directory; for demonstration only, not
! 		 *	documented.
! 		 */
! 		g_fout = CreateArchive(filename, archFiles, compressLevel, archModeWrite);
! 	}
! 	else if (strcasecmp(format, "p") == 0 || strcasecmp(format, "plain") == 0)
! 	{
! 		plainText = 1;
! 		g_fout = CreateArchive(filename, archNull, 0, archModeWrite);
! 	}
! 	else if (strcasecmp(format, "t") == 0 || strcasecmp(format, "tar") == 0)
! 		g_fout = CreateArchive(filename, archTar, compressLevel, archModeWrite);
! 	else
! 	{
! 		write_msg(NULL, "invalid output format \"%s\" specified\n", format);
! 		exit(1);
  	}
  
  	if (g_fout == NULL)
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to