On Sun, Jan 20, 2013 at 10:33:37AM +0000, emes...@redhat.com wrote:
> The following bug has been logged on the website:
> 
> Bug reference:      7817
> Logged by:          Eli Mesika
> Email address:      emes...@redhat.com
> PostgreSQL version: 9.1.7
> Operating system:   Fedora 16
> Description:        
> 
> psql does not relate to footer settings in extended mode
> Sometimes we need to run a sql command withot generating header and footer.
> This can be done using the -t flag and --pset=footer=off
> The problem is that the footer is still diaplyed even if it was set to off
> if we use the extended mode for the query (-x flag)
> 
> Steps to Reproduce:
> 1) create a table without any data
> for example
> create table text(i int);
> 2) run
> psql -U <user> -t --pset=footer=off <db>
> 3) No output is generated
> 4) run
> psql -U <user> -t --pset=footer=off -x <db>
> 5) Output generated : "(No Rows)"
> 
> Actual results:
> psql does not honour the footer settings when output is defined to be in
> Extended Mode
> 
> Expected results:
> psql should not generate any output is query has no results and -t and 
> --pset=footer=off were given

This has been fixed in PG 9.3 (released today) for the specific options
you supplied:

        $ psql -t --pset=footer=off test
        Default footer is off.
        psql (9.4devel)
        Type "help" for help.
        
        CREATE TABLE test (x INT);
        CREATE TABLE
        SELECT * FROM test;
        
        \x
        Expanded display is on.
        SELECT * FROM test;
        
Unfortunately, this did not fix the more simple case where
--pset=footer=off is specified, but not -t:

        $ psql  --pset=footer=off test
        Default footer is off.
        psql (9.4devel)
        Type "help" for help.
        
        CREATE TABLE test (x INT);
        CREATE TABLE
        SELECT * FROM test;
         x
        ---
        
        \x
        Expanded display is on.
        SELECT * FROM test;
-->     (No rows)

The attached patch fixes this, and makes it match the rest of the output
formats, which do honor --pset=footer=off alone for footers.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
new file mode 100644
index 5589cea..736225c
*** a/src/bin/psql/print.c
--- b/src/bin/psql/print.c
*************** print_aligned_vertical(const printTableC
*** 1171,1177 ****
  	if (cont->cells[0] == NULL && cont->opt->start_table &&
  		cont->opt->stop_table)
  	{
! 		if (!opt_tuples_only)
  			fprintf(fout, _("(No rows)\n"));
  		return;
  	}
--- 1171,1177 ----
  	if (cont->cells[0] == NULL && cont->opt->start_table &&
  		cont->opt->stop_table)
  	{
! 		if (!opt_tuples_only && cont->opt->default_footer)
  			fprintf(fout, _("(No rows)\n"));
  		return;
  	}
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to