/
balmaster
/
postgres
Обзор
Документация
Войти
/
balmaster
/
postgres
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/interfaces/ecpg/test/sql/define.pgc
83 строки
2 KB
Tom Lane
Fix assorted bugs in ecpg's macro mechanism.
16 апр 2024, 19:31
16 апр 2024, 19:31
6f0cef9
Код
Авторство
О чём код?
exec sql include sqlca; exec sql include ../regression; exec sql define STR 'abcdef'; exec sql define INSERTNULL 1; exec sql define NUMBER 29; int main(void) { exec sql begin declare section; int i; char s[200]; exec sql end declare section; ECPGdebug(1, stderr); exec sql whenever sqlerror do sqlprint(); exec sql connect to REGRESSDB1; exec sql create table test (a int, b text); exec sql insert into test values (NUMBER, STR); exec sql ifdef INSERTNULL; exec sql insert into test values (NULL, 'defined'); exec sql endif; exec sql ifndef INSERTNULL; exec sql insert into test values (NULL, 'not defined'); exec sql elif SOMEOTHERVAR; exec sql insert into test values (NULL, 'someothervar defined'); exec sql else; exec sql insert into test values (NULL, 'someothervar not defined'); exec sql endif; exec sql define NUMBER 29; exec sql select INSERTNULL, NUMBER::text || '-' || STR INTO :i, :s; printf("i: %d, s: %s\n", i, s); exec sql undef STR; exec sql ifndef STR; exec sql insert into test values (NUMBER, 'no string'); exec sql endif; exec sql define TZVAR; /* no value */ exec sql define TZVAR 'UTC'; exec sql ifndef TZVAR; exec sql SET TIMEZONE TO 'GMT'; exec sql elif TZNAME; exec sql SET TIMEZONE TO TZNAME; exec sql else; exec sql SET TIMEZONE TO TZVAR; exec sql endif; /* test handling of a macro defined on the command line */ exec sql select CMDLINESYM INTO :i; printf("original CMDLINESYM: %d\n", i); exec sql define CMDLINESYM 42; exec sql select CMDLINESYM INTO :i; printf("redefined CMDLINESYM: %d\n", i); exec sql define CMDLINESYM 43; exec sql select CMDLINESYM INTO :i; printf("redefined CMDLINESYM: %d\n", i); exec sql undef CMDLINESYM; exec sql ifdef CMDLINESYM; exec sql insert into test values (NUMBER, 'no string'); exec sql endif; /* this macro should not have carried over from define_prelim.pgc */ exec sql ifdef NONCMDLINESYM; exec sql insert into test values (NUMBER, 'no string'); exec sql endif; exec sql disconnect; return 0; }