Включить параметры в сообщение asgresql assert - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли способ включить параметры в сообщения PostgreSQL ASSERT.

Пример:

do $$ 
declare
    c integer;
begin
    c := (select count(*) from pg_database);
    assert c = 7, 'not 7!';
    assert c = 8, 'not 8!';
    assert c = 5, ('% not 5!' , c);
end;$$;

Это работает:

assert c = 8, 'not 8!';

Это утверждение:

assert c = 5, ('% not 5!' , c);

показать сообщение об ошибке в следующем порядке:

SQL Error [P0004]: ERROR: ("% not 5!",7)
Where: PL/pgSQL function inline_code_block line 7 at ASSERT
ERROR: ("% not 5!",7)
Where: PL/pgSQL function inline_code_block line 7 at ASSERT
ERROR: ("% not 5!",7)
Where: PL/pgSQL function inline_code_block line 7 at ASSERT

, но переменная не заменяет% в тексте.

1 Ответ

0 голосов
/ 04 декабря 2018

Использование ФОРМАТ :

ASSERT c = 5, FORMAT('%s not 5!', c);
...