5
5
6
6
7
7
#include <pthread.h>
8
+ #include <stdlib.h>
8
9
9
10
void ins1(void);
10
11
void ins2(void);
11
12
12
13
EXEC SQL BEGIN DECLARE SECTION;
13
14
char *dbname;
15
+ int iterations = 10;
14
16
EXEC SQL END DECLARE SECTION;
15
17
16
18
int
@@ -22,13 +24,21 @@ EXEC SQL BEGIN DECLARE SECTION;
22
24
int rows;
23
25
EXEC SQL END DECLARE SECTION;
24
26
25
- if (argc != 2 )
27
+ if (argc < 2 || argc > 3 )
26
28
{
27
- fprintf(stderr, "Usage: %s dbname\n", argv[0]);
29
+ fprintf(stderr, "Usage: %s dbname [iterations] \n", argv[0]);
28
30
return 1;
29
31
}
30
32
dbname = argv[1];
31
33
34
+ if (argc == 3)
35
+ iterations = atoi(argv[2]);
36
+ if (iterations % 2 != 0)
37
+ {
38
+ fprintf(stderr, "iterations must be an even number\n");
39
+ return 1;
40
+ }
41
+
32
42
EXEC SQL CONNECT TO:dbname AS test0;
33
43
34
44
/* DROP might fail */
@@ -47,7 +57,7 @@ EXEC SQL END DECLARE SECTION;
47
57
EXEC SQL AT test3 COMMIT WORK;
48
58
EXEC SQL DISCONNECT test3;
49
59
50
- if (rows == 10 )
60
+ if (rows == iterations )
51
61
printf("Success.\n");
52
62
else
53
63
printf("Failure.\n");
@@ -61,7 +71,7 @@ ins1(void)
61
71
EXEC SQL WHENEVER sqlerror sqlprint;
62
72
EXEC SQL CONNECT TO:dbname AS test1;
63
73
64
- for (i = 0; i < 5 ; i++)
74
+ for (i = 0; i < iterations / 2 ; i++)
65
75
{
66
76
printf("thread 1 : inserting\n");
67
77
EXEC SQL AT test1 INSERT INTO test_thread VALUES('thread1');
@@ -82,7 +92,7 @@ ins2(void)
82
92
EXEC SQL WHENEVER sqlerror sqlprint;
83
93
EXEC SQL CONNECT TO:dbname AS test2;
84
94
85
- for (i = 0; i < 5 ; i++)
95
+ for (i = 0; i < iterations / 2 ; i++)
86
96
{
87
97
printf("thread 2: inserting\n");
88
98
EXEC SQL AT test2 INSERT INTO test_thread VALUES('thread2');
0 commit comments