Age Owner TLA Line data Source code
1 : #include <stdlib.h>
2 :
3 : exec sql include ../regression;
4 :
5 : exec sql whenever sqlerror sqlprint;
6 :
1986 peter_e 7 CBC 1 : static void print(const char *msg)
8 : {
6057 meskes 9 1 : fprintf(stderr, "Error in statement '%s':\n", msg);
10 1 : sqlprint();
11 1 : }
12 :
13 1 : static void print2(void)
14 : {
15 1 : fprintf(stderr, "Found another error\n");
16 1 : sqlprint();
17 1 : }
18 :
19 1 : static void warn(void)
20 : {
21 1 : fprintf(stderr, "Warning: At least one column was truncated\n");
22 1 : }
23 :
24 1 : int main(void)
25 : {
26 : exec sql int i;
27 : exec sql char c[6];
28 :
29 1 : ECPGdebug(1, stderr);
30 :
31 1 : exec sql connect to REGRESSDB1;
32 1 : exec sql create table test(i int, c char(10));
33 1 : exec sql insert into test values(1, 'abcdefghij');
34 1 :
35 : exec sql whenever sqlwarning do warn();
36 1 : exec sql select * into :i, :c from test;
37 1 : exec sql rollback;
38 1 :
1401 noah 39 1 : exec sql select * into :i from nonexistent;
6057 meskes 40 1 : exec sql rollback;
41 1 :
42 : exec sql whenever sqlerror do print("select");
1401 noah 43 1 : exec sql select * into :i from nonexistent;
6057 meskes 44 1 : exec sql rollback;
45 1 :
46 : exec sql whenever sqlerror call print2();
1401 noah 47 1 : exec sql select * into :i from nonexistent;
6057 meskes 48 1 : exec sql rollback;
49 1 :
50 : exec sql whenever sqlerror continue;
1401 noah 51 1 : exec sql select * into :i from nonexistent;
6057 meskes 52 1 : exec sql rollback;
53 1 :
54 : exec sql whenever sqlerror goto error;
1401 noah 55 1 : exec sql select * into :i from nonexistent;
6057 meskes 56 1 : printf("Should not be reachable\n");
57 :
58 1 : error:
59 1 : exec sql rollback;
60 1 :
61 : exec sql whenever sqlerror stop;
62 : /* This cannot fail, thus we don't get an exit value not equal 0. */
63 : /* However, it still test the precompiler output. */
5437 64 1 : exec sql select 1 into :i;
6057 65 1 : exec sql rollback;
66 1 : exit (0);
67 : }
|