Re: \if, \elseif, \else, \endif (was Re: PSQL commands:\quit_if, \quit_unless) - Mailing list pgsql-hackers

From Corey Huinker
Subject Re: \if, \elseif, \else, \endif (was Re: PSQL commands:\quit_if, \quit_unless)
Date
Msg-id CADkLM=dZt6eJQD1pQ7GXUeP83Ut_N+RaRsCgDj+Cpx_bV=LLsg@mail.gmail.com
Whole thread Raw
In response to Re: \if, \elseif, \else, \endif (was Re: PSQL commands:\quit_if, \quit_unless)  (Fabien COELHO <coelho@cri.ensmp.fr>)
List pgsql-hackers
Patches do not apply cleanly.
Part 1 gets:
 error: patch failed: src/test/regress/parallel_schedule:89
 error: src/test/regress/parallel_schedule: patch does not apply

There is still the useless file, ok it is removed by part2. Could have been just one patch...

parallel_schedule failed because I hadn't rebased recently enough.

git format-patch did us no favors there. New patch is redone as one commit.

ISTM that PQExpBuffer is partially a memory leak. Something should need to be freed?

I copied that pattern from somewhere else, so yeah, I duplicated whatever leak was there. Fixed.
 
I think that you should use appendPQExpBufferChar and Str instead of relying on the format variant which is probably expensive. Something like:

  if (num_options > 0)
    append...Char(buf, ' ');
  append...Str(buf, ...);

All flavors of appendPQExpBuffer*() I can find have a const *char format string, so no way to append a naked string. If you know differently, I'm listening. Not fixed.
 

is_true_boolean_expression: "return (success) ? tf : false;"
Is this simply: "return success && tf;"?

Neat. Done.
 

Some functions have opt1, opt2, but some start at opt0. This does not look too consistent, although the inconsistency may be preexisting from your patch. Basically, there is a need for some more restructuring in "command.c".

It is pre-existing. Maybe this patch will inspire someone else to make the other more consistent.

v26 attached
Attachment

pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: Valgrind failures caused by multivariate stats patch
Next
From: Andres Freund
Date:
Subject: Re: WIP: [[Parallel] Shared] Hash