Re: Avoid unused value (src/fe_utils/print.c) - Mailing list pgsql-hackers

From Karina Litskevich
Subject Re: Avoid unused value (src/fe_utils/print.c)
Date
Msg-id CACiT8iacMGXjmP6XePCOpFkLhhphNjBgPTpVvVqZ_JrQCzPCig@mail.gmail.com
Whole thread Raw
In response to Re: Avoid unused value (src/fe_utils/print.c)  (Alexander Lakhin <exclusion@gmail.com>)
Responses Re: Avoid unused value (src/fe_utils/print.c)
Re: Avoid unused value (src/fe_utils/print.c)
List pgsql-hackers
Hi,

Alexander wrote:

> It also aligns the code with print_unaligned_vertical(), but I can't see why
> need_recordsep = true;
> is a no-op here (scan-build dislikes only need_recordsep = false;).
> I suspect that removing that line will change the behaviour in cases when
> need_recordsep = false after the loop "print cells" and the loop
> "for (footers)" is executed.

As I understand cont->cells is supoused to have all cont->ncolumns * cont->nrows
entries filled so the loop "print cells" always assigns need_recordsep = true,
except when there are no cells at all or cancel_pressed == true.
If cancel_pressed == true then footers are not printed. So to have
need_recordsep == false before the loop "for (footers)" table should be empty,
and need_recordsep should be false before the loop "print cells". It can only
be false there when cont->opt->start_table == true and opt_tuples_only == true
so that headers are not printed. But when opt_tuples_only == true footers are
not printed either.

So technically removing "need_recordsep = true;" won't change the outcome. But
it's not obvious, so I also have doubts about removing this line. If someday
print options are changed, for example to support printing footers and not
printing headers, or anything else changes in this function, the output might
be unexpected with this line removed.

Best regards,
Karina Litskevich
Postgres Professional: http://postgrespro.com/



pgsql-hackers by date:

Previous
From: Seino Yuki
Date:
Subject: SPI isolation changes
Next
From: Heikki Linnakangas
Date:
Subject: Re: SPI isolation changes