Обсуждение: BUG #7817: psql does not relate to footer settings in extended mode

Поиск
Список
Период
Сортировка

BUG #7817: psql does not relate to footer settings in extended mode

От
emesika@redhat.com
Дата:
The following bug has been logged on the website:

Bug reference:      7817
Logged by:          Eli Mesika
Email address:      emesika@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=3Dfooter=3Doff
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=3Dfooter=3Doff <db>
3) No output is generated
4) run
psql -U <user> -t --pset=3Dfooter=3Doff -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=3Dfooter=3Doff were given

Re: BUG #7817: psql does not relate to footer settings in extended mode

От
Bruce Momjian
Дата:
On Sun, Jan 20, 2013 at 10:33:37AM +0000, emesika@redhat.com wrote:
> The following bug has been logged on the website:
>
> Bug reference:      7817
> Logged by:          Eli Mesika
> Email address:      emesika@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  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +

Вложения

Re: BUG #7817: psql does not relate to footer settings in extended mode

От
Bruce Momjian
Дата:
Applied.

---------------------------------------------------------------------------

On Mon, Sep  9, 2013 at 09:16:05PM -0400, Bruce Momjian wrote:
> On Sun, Jan 20, 2013 at 10:33:37AM +0000, emesika@redhat.com wrote:
> > The following bug has been logged on the website:
> >
> > Bug reference:      7817
> > Logged by:          Eli Mesika
> > Email address:      emesika@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  <bruce@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


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

  + It's impossible for everything to be true. +