Line data Source code
1 : exec sql include sqlca;
2 : exec sql include ../regression;
3 : exec sql define STR 'abcdef';
4 : exec sql define INSERTNULL 1;
5 : exec sql define NUMBER 29;
6 :
7 2 : int main(void)
8 : {
9 : exec sql begin declare section;
10 : int i;
11 : char s[200];
12 : exec sql end declare section;
13 :
14 2 : ECPGdebug(1, stderr);
15 :
16 : exec sql whenever sqlerror do sqlprint();
17 2 : exec sql connect to REGRESSDB1;
18 2 :
19 2 : exec sql create table test (a int, b text);
20 2 : exec sql insert into test values (NUMBER, STR);
21 2 :
22 : exec sql ifdef INSERTNULL;
23 2 : exec sql insert into test values (NULL, 'defined');
24 2 : exec sql endif;
25 :
26 : exec sql ifndef INSERTNULL;
27 : exec sql insert into test values (NULL, 'not defined');
28 : exec sql elif SOMEOTHERVAR;
29 : exec sql insert into test values (NULL, 'someothervar defined');
30 : exec sql else;
31 2 : exec sql insert into test values (NULL, 'someothervar not defined');
32 2 : exec sql endif;
33 :
34 : exec sql define NUMBER 29;
35 :
36 2 : exec sql select INSERTNULL, NUMBER::text || '-' || STR INTO :i, :s;
37 2 :
38 2 : printf("i: %d, s: %s\n", i, s);
39 :
40 : exec sql undef STR;
41 : exec sql ifndef STR;
42 2 : exec sql insert into test values (NUMBER, 'no string');
43 2 : exec sql endif;
44 :
45 : exec sql define TZVAR; /* no value */
46 : exec sql define TZVAR 'UTC';
47 :
48 : exec sql ifndef TZVAR;
49 : exec sql SET TIMEZONE TO 'GMT';
50 : exec sql elif TZNAME;
51 : exec sql SET TIMEZONE TO TZNAME;
52 : exec sql else;
53 2 : exec sql SET TIMEZONE TO TZVAR;
54 2 : exec sql endif;
55 :
56 : /* test handling of a macro defined on the command line */
57 2 : exec sql select CMDLINESYM INTO :i;
58 2 : printf("original CMDLINESYM: %d\n", i);
59 :
60 : exec sql define CMDLINESYM 42;
61 :
62 2 : exec sql select CMDLINESYM INTO :i;
63 2 : printf("redefined CMDLINESYM: %d\n", i);
64 :
65 : exec sql define CMDLINESYM 43;
66 :
67 2 : exec sql select CMDLINESYM INTO :i;
68 2 : printf("redefined CMDLINESYM: %d\n", i);
69 :
70 : exec sql undef CMDLINESYM;
71 :
72 : exec sql ifdef CMDLINESYM;
73 : exec sql insert into test values (NUMBER, 'no string');
74 : exec sql endif;
75 :
76 : /* this macro should not have carried over from define_prelim.pgc */
77 : exec sql ifdef NONCMDLINESYM;
78 : exec sql insert into test values (NUMBER, 'no string');
79 : exec sql endif;
80 :
81 2 : exec sql disconnect;
82 2 : return 0;
83 : }
|