Skip to content

Commit fc19744

Browse files
author
Michael Meskes
committed
Added another test
1 parent 84844ba commit fc19744

File tree

5 files changed

+491
-0
lines changed

5 files changed

+491
-0
lines changed

src/interfaces/ecpg/test/compat_informix/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ TESTS = test_informix test_informix.c \
1414
dec_test dec_test.c \
1515
rfmtdate rfmtdate.c \
1616
rfmtlong rfmtlong.c \
17+
rnull rnull.c \
1718
charfuncs charfuncs.c
1819

1920
all: $(TESTS)
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
#include "sqltypes.h"
2+
#include <stdlib.h>
3+
#
4+
$include ../regression;
5+
$define NUMBER 12;
6+
7+
static void
8+
test_null(int type, char *ptr)
9+
{
10+
printf("null: %d\n", risnull(type, ptr));
11+
}
12+
13+
int main(void)
14+
{
15+
$char c[] = "abc ";
16+
$short s = 17;
17+
$int i = -74874;
18+
$bool b = 1;
19+
$float f = 3.71;
20+
$long l = 487444;
21+
$double dbl = 404.404;
22+
$decimal dec;
23+
$date dat;
24+
$timestamp tmp;
25+
26+
ECPGdebug(1, stderr);
27+
$whenever sqlerror do sqlprint();
28+
29+
$connect to REGRESSDB1;
30+
31+
$create table test(id int, c char(10), s smallint, i int, b bool,
32+
f float, l bigint, dbl double precision,
33+
dec decimal, dat date, tmp timestamptz);
34+
$commit;
35+
36+
$insert into test (id, c, s, i, b, f, l, dbl) values (
37+
1, :c, :s, :i, :b, :f, :l, :dbl
38+
);
39+
$commit;
40+
41+
rsetnull(CCHARTYPE, (char *) c);
42+
rsetnull(CSHORTTYPE, (char *) &s);
43+
rsetnull(CINTTYPE, (char *) &i);
44+
rsetnull(CBOOLTYPE, (char *) &b);
45+
rsetnull(CFLOATTYPE, (char *) &f);
46+
rsetnull(CLONGTYPE, (char *) &l);
47+
rsetnull(CDOUBLETYPE, (char *) &dbl);
48+
rsetnull(CDECIMALTYPE, (char *) &dec);
49+
rsetnull(CDATETYPE, (char *) &dat);
50+
rsetnull(CDTIMETYPE, (char *) &tmp);
51+
52+
$insert into test (id, c, s, i, b, f, l, dbl, dec, dat, tmp) values (
53+
2, :c, :s, :i, :b, :f, :l, :dbl, :dec, :dat, :tmp
54+
);
55+
$commit;
56+
57+
printf("first select\n");
58+
59+
$select c, s, i, b, f, l, dbl, dec, dat, tmp
60+
into :c, :s, :i, :b, :f, :l, :dbl, :dec, :dat, :tmp
61+
from test where id = 1;
62+
63+
test_null(CCHARTYPE, (char *) c);
64+
test_null(CSHORTTYPE, (char *) &s);
65+
test_null(CINTTYPE, (char *) &i);
66+
test_null(CBOOLTYPE, (char *) &b);
67+
test_null(CFLOATTYPE, (char *) &f);
68+
test_null(CLONGTYPE, (char *) &l);
69+
test_null(CDOUBLETYPE, (char *) &dbl);
70+
test_null(CDECIMALTYPE, (char *) &dec);
71+
test_null(CDATETYPE, (char *) &dat);
72+
test_null(CDTIMETYPE, (char *) &tmp);
73+
74+
printf("second select\n");
75+
76+
$select c, s, i, b, f, l, dbl, dec, dat, tmp
77+
into :c, :s, :i, :b, :f, :l, :dbl, :dec, :dat, :tmp
78+
from test where id = 2;
79+
80+
test_null(CCHARTYPE, (char *) c);
81+
test_null(CSHORTTYPE, (char *) &s);
82+
test_null(CINTTYPE, (char *) &i);
83+
test_null(CBOOLTYPE, (char *) &b);
84+
test_null(CFLOATTYPE, (char *) &f);
85+
test_null(CLONGTYPE, (char *) &l);
86+
test_null(CDOUBLETYPE, (char *) &dbl);
87+
test_null(CDECIMALTYPE, (char *) &dec);
88+
test_null(CDATETYPE, (char *) &dat);
89+
test_null(CDTIMETYPE, (char *) &tmp);
90+
91+
$drop table test;
92+
$commit;
93+
94+
$close database;
95+
96+
return 0;
97+
}
Lines changed: 293 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,293 @@
1+
/* Processed by ecpg (4.2.1) */
2+
/* These include files are added by the preprocessor */
3+
#include <ecpgtype.h>
4+
#include <ecpglib.h>
5+
#include <ecpgerrno.h>
6+
#include <sqlca.h>
7+
/* Needed for informix compatibility */
8+
#include <ecpg_informix.h>
9+
/* End of automatic include section */
10+
11+
#line 1 "rnull.pgc"
12+
#include "sqltypes.h"
13+
#include <stdlib.h>
14+
#
15+
16+
#line 1 "./../regression.h"
17+
18+
19+
20+
21+
22+
23+
#line 4 "rnull.pgc"
24+
25+
26+
27+
static void
28+
test_null(int type, char *ptr)
29+
{
30+
printf("null: %d\n", risnull(type, ptr));
31+
}
32+
33+
int main(void)
34+
{
35+
36+
#line 15 "rnull.pgc"
37+
char c [] = "abc " ;
38+
39+
#line 15 "rnull.pgc"
40+
41+
42+
#line 16 "rnull.pgc"
43+
short s = 17 ;
44+
45+
#line 16 "rnull.pgc"
46+
47+
48+
#line 17 "rnull.pgc"
49+
int i = - 74874 ;
50+
51+
#line 17 "rnull.pgc"
52+
53+
54+
#line 18 "rnull.pgc"
55+
bool b = 1 ;
56+
57+
#line 18 "rnull.pgc"
58+
59+
60+
#line 19 "rnull.pgc"
61+
float f = 3.71 ;
62+
63+
#line 19 "rnull.pgc"
64+
65+
66+
#line 20 "rnull.pgc"
67+
long l = 487444 ;
68+
69+
#line 20 "rnull.pgc"
70+
71+
72+
#line 21 "rnull.pgc"
73+
double dbl = 404.404 ;
74+
75+
#line 21 "rnull.pgc"
76+
77+
78+
#line 22 "rnull.pgc"
79+
decimal dec ;
80+
81+
#line 22 "rnull.pgc"
82+
83+
84+
#line 23 "rnull.pgc"
85+
date dat ;
86+
87+
#line 23 "rnull.pgc"
88+
89+
90+
#line 24 "rnull.pgc"
91+
timestamp tmp ;
92+
93+
#line 24 "rnull.pgc"
94+
95+
96+
ECPGdebug(1, stderr);
97+
/* exec sql whenever sqlerror do sqlprint ( ) ; */
98+
#line 27 "rnull.pgc"
99+
100+
101+
{ ECPGconnect(__LINE__, 1, "regress1" , NULL,NULL , NULL, 0);
102+
#line 29 "rnull.pgc"
103+
104+
if (sqlca.sqlcode < 0) sqlprint ( );}
105+
#line 29 "rnull.pgc"
106+
107+
108+
{ ECPGdo(__LINE__, 1, 0, NULL, "create table test ( id int , c char ( 10 ) , s smallint , i int , b bool , f float , l bigint , dbl double precision , dec decimal , dat date , tmp timestamptz ) ", ECPGt_EOIT, ECPGt_EORT);
109+
#line 33 "rnull.pgc"
110+
111+
if (sqlca.sqlcode < 0) sqlprint ( );}
112+
#line 33 "rnull.pgc"
113+
114+
{ ECPGtrans(__LINE__, NULL, "commit");
115+
#line 34 "rnull.pgc"
116+
117+
if (sqlca.sqlcode < 0) sqlprint ( );}
118+
#line 34 "rnull.pgc"
119+
120+
121+
{ ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl ) values( 1 , ? , ? , ? , ? , ? , ? , ? ) ",
122+
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
123+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
124+
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
125+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
126+
ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
127+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
128+
ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
129+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
130+
ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
131+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
132+
ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
133+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
134+
ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
135+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
136+
#line 38 "rnull.pgc"
137+
138+
if (sqlca.sqlcode < 0) sqlprint ( );}
139+
#line 38 "rnull.pgc"
140+
141+
{ ECPGtrans(__LINE__, NULL, "commit");
142+
#line 39 "rnull.pgc"
143+
144+
if (sqlca.sqlcode < 0) sqlprint ( );}
145+
#line 39 "rnull.pgc"
146+
147+
148+
rsetnull(CCHARTYPE, (char *) c);
149+
rsetnull(CSHORTTYPE, (char *) &s);
150+
rsetnull(CINTTYPE, (char *) &i);
151+
rsetnull(CBOOLTYPE, (char *) &b);
152+
rsetnull(CFLOATTYPE, (char *) &f);
153+
rsetnull(CLONGTYPE, (char *) &l);
154+
rsetnull(CDOUBLETYPE, (char *) &dbl);
155+
rsetnull(CDECIMALTYPE, (char *) &dec);
156+
rsetnull(CDATETYPE, (char *) &dat);
157+
rsetnull(CDTIMETYPE, (char *) &tmp);
158+
159+
{ ECPGdo(__LINE__, 1, 0, NULL, "insert into test ( id , c , s , i , b , f , l , dbl , dec , dat , tmp ) values( 2 , ? , ? , ? , ? , ? , ? , ? , ? , ? , ? ) ",
160+
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
161+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
162+
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
163+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
164+
ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
165+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
166+
ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
167+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
168+
ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
169+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
170+
ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
171+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
172+
ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
173+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
174+
ECPGt_decimal,&(dec),(long)1,(long)1,sizeof(decimal),
175+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
176+
ECPGt_date,&(dat),(long)1,(long)1,sizeof(date),
177+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
178+
ECPGt_timestamp,&(tmp),(long)1,(long)1,sizeof(timestamp),
179+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
180+
#line 54 "rnull.pgc"
181+
182+
if (sqlca.sqlcode < 0) sqlprint ( );}
183+
#line 54 "rnull.pgc"
184+
185+
{ ECPGtrans(__LINE__, NULL, "commit");
186+
#line 55 "rnull.pgc"
187+
188+
if (sqlca.sqlcode < 0) sqlprint ( );}
189+
#line 55 "rnull.pgc"
190+
191+
192+
printf("first select\n");
193+
194+
{ ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 1 ", ECPGt_EOIT,
195+
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
196+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
197+
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
198+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
199+
ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
200+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
201+
ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
202+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
203+
ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
204+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
205+
ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
206+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
207+
ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
208+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
209+
ECPGt_decimal,&(dec),(long)1,(long)1,sizeof(decimal),
210+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
211+
ECPGt_date,&(dat),(long)1,(long)1,sizeof(date),
212+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
213+
ECPGt_timestamp,&(tmp),(long)1,(long)1,sizeof(timestamp),
214+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
215+
#line 61 "rnull.pgc"
216+
217+
if (sqlca.sqlcode < 0) sqlprint ( );}
218+
#line 61 "rnull.pgc"
219+
220+
221+
test_null(CCHARTYPE, (char *) c);
222+
test_null(CSHORTTYPE, (char *) &s);
223+
test_null(CINTTYPE, (char *) &i);
224+
test_null(CBOOLTYPE, (char *) &b);
225+
test_null(CFLOATTYPE, (char *) &f);
226+
test_null(CLONGTYPE, (char *) &l);
227+
test_null(CDOUBLETYPE, (char *) &dbl);
228+
test_null(CDECIMALTYPE, (char *) &dec);
229+
test_null(CDATETYPE, (char *) &dat);
230+
test_null(CDTIMETYPE, (char *) &tmp);
231+
232+
printf("second select\n");
233+
234+
{ ECPGdo(__LINE__, 1, 0, NULL, "select c , s , i , b , f , l , dbl , dec , dat , tmp from test where id = 2 ", ECPGt_EOIT,
235+
ECPGt_char,&(c),(long)-1,(long)1,(-1)*sizeof(char),
236+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
237+
ECPGt_short,&(s),(long)1,(long)1,sizeof(short),
238+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
239+
ECPGt_int,&(i),(long)1,(long)1,sizeof(int),
240+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
241+
ECPGt_bool,&(b),(long)1,(long)1,sizeof(bool),
242+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
243+
ECPGt_float,&(f),(long)1,(long)1,sizeof(float),
244+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
245+
ECPGt_long,&(l),(long)1,(long)1,sizeof(long),
246+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
247+
ECPGt_double,&(dbl),(long)1,(long)1,sizeof(double),
248+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
249+
ECPGt_decimal,&(dec),(long)1,(long)1,sizeof(decimal),
250+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
251+
ECPGt_date,&(dat),(long)1,(long)1,sizeof(date),
252+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
253+
ECPGt_timestamp,&(tmp),(long)1,(long)1,sizeof(timestamp),
254+
ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
255+
#line 78 "rnull.pgc"
256+
257+
if (sqlca.sqlcode < 0) sqlprint ( );}
258+
#line 78 "rnull.pgc"
259+
260+
261+
test_null(CCHARTYPE, (char *) c);
262+
test_null(CSHORTTYPE, (char *) &s);
263+
test_null(CINTTYPE, (char *) &i);
264+
test_null(CBOOLTYPE, (char *) &b);
265+
test_null(CFLOATTYPE, (char *) &f);
266+
test_null(CLONGTYPE, (char *) &l);
267+
test_null(CDOUBLETYPE, (char *) &dbl);
268+
test_null(CDECIMALTYPE, (char *) &dec);
269+
test_null(CDATETYPE, (char *) &dat);
270+
test_null(CDTIMETYPE, (char *) &tmp);
271+
272+
{ ECPGdo(__LINE__, 1, 0, NULL, "drop table test ", ECPGt_EOIT, ECPGt_EORT);
273+
#line 91 "rnull.pgc"
274+
275+
if (sqlca.sqlcode < 0) sqlprint ( );}
276+
#line 91 "rnull.pgc"
277+
278+
{ ECPGtrans(__LINE__, NULL, "commit");
279+
#line 92 "rnull.pgc"
280+
281+
if (sqlca.sqlcode < 0) sqlprint ( );}
282+
#line 92 "rnull.pgc"
283+
284+
285+
{ ECPGdisconnect(__LINE__, "CURRENT");
286+
#line 94 "rnull.pgc"
287+
288+
if (sqlca.sqlcode < 0) sqlprint ( );}
289+
#line 94 "rnull.pgc"
290+
291+
292+
return 0;
293+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy