Re: [HACKERS] psql - add special variable to reflect the last query status

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: [HACKERS] psql - add special variable to reflect the last query status
Дата
Msg-id CAFj8pRAxpGCscu0k6h9t6U_9vDK7Se=LVLMzKhhaSvTDToW4vA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] psql - add special variable to reflect the last querystatus  (Fabien COELHO <coelho@cri.ensmp.fr>)
Ответы Re: [HACKERS] psql - add special variable to reflect the last query status  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers


2017-06-28 10:04 GMT+02:00 Fabien COELHO <coelho@cri.ensmp.fr>:

Hello Pavel,

+ if (success)
+ {
+ char   *ntuples = PQcmdTuples(results);
+ SetVariable(pset.vars, "ROW_COUNT", *ntuples ? ntuples : "0");
+ SetVariable(pset.vars, "ERROR", "FALSE");
+ }
+ else
+ {
+ SetVariable(pset.vars, "ROW_COUNT", "0");
+ SetVariable(pset.vars, "ERROR", "TRUE");
+ }
+}

It can be simplified

SetVariable(pset.vars, "ROW_COUNT", success ? PQcmdTuples(results) : 0);

According to the documentation, PQcmdTuples returns "" in some cases and ISTM we want "0" instead for consistency, so that it is always a number. I rejected calling PQcmdTuples twice:

  ..., success && *PQcmdTuples(results) ? PQcmdTuples(results) : "0")

Thus it makes the "if (success)" necessary for ROW_COUNT, and then it looked simpler to handle ERROR the same way.

Now if the semantics is changed to put as row count whatever comes out of the function, even if not a count, then the code could indeed be simplified as you suggest.

Understand

Pavel
 


--
Fabien.

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Fabien COELHO
Дата:
Сообщение: Re: [HACKERS] psql - add special variable to reflect the last querystatus
Следующее
От: Beena Emerson
Дата:
Сообщение: Re: [HACKERS] Default Partition for Range