]> granicus.if.org Git - postgresql/blob - src/interfaces/ecpg/test/expected/sql-describe.c
11aadb4e053d2083534e60531000a503cf8a82f6
[postgresql] / src / interfaces / ecpg / test / expected / sql-describe.c
1 /* Processed by ecpg (regression mode) */
2 /* These include files are added by the preprocessor */
3 #include <ecpglib.h>
4 #include <ecpgerrno.h>
5 #include <sqlca.h>
6 /* End of automatic include section */
7 #define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
8
9 #line 1 "describe.pgc"
10 #include <stdlib.h>
11 #include <string.h>
12
13
14 #line 1 "regression.h"
15
16
17
18
19
20
21 #line 4 "describe.pgc"
22
23
24 #line 1 "sqlda.h"
25 #ifndef ECPG_SQLDA_H
26 #define ECPG_SQLDA_H
27
28 #ifdef _ECPG_INFORMIX_H
29
30 #include "sqlda-compat.h"
31 typedef struct sqlvar_compat    sqlvar_t;
32 typedef struct sqlda_compat     sqlda_t;
33
34 #else
35
36 #include "sqlda-native.h"
37 typedef struct sqlvar_struct    sqlvar_t;
38 typedef struct sqlda_struct     sqlda_t;
39
40 #endif
41
42 #endif /* ECPG_SQLDA_H */
43
44 #line 5 "describe.pgc"
45
46
47 /* exec sql whenever sqlerror  stop ; */
48 #line 7 "describe.pgc"
49
50
51 sqlda_t *sqlda1, *sqlda2, *sqlda3;
52
53 int
54 main (void)
55 {
56 /* exec sql begin declare section */
57                   
58                   
59                   
60                   
61                   
62
63 #line 15 "describe.pgc"
64  char * stmt1 = "SELECT id, t FROM descr_t2" ;
65  
66 #line 16 "describe.pgc"
67  char * stmt2 = "SELECT id, t FROM descr_t2 WHERE id = -1" ;
68  
69 #line 17 "describe.pgc"
70  int i , count1 , count2 ;
71  
72 #line 18 "describe.pgc"
73  char field_name1 [ 30 ] = "not set" ;
74  
75 #line 19 "describe.pgc"
76  char field_name2 [ 30 ] = "not set" ;
77 /* exec sql end declare section */
78 #line 20 "describe.pgc"
79
80
81         char msg[128];
82
83         ECPGdebug(1, stderr);
84
85         strcpy(msg, "connect");
86         { ECPGconnect(__LINE__, 0, "regress1" , NULL, NULL , NULL, 0); 
87 #line 27 "describe.pgc"
88
89 if (sqlca.sqlcode < 0) exit (1);}
90 #line 27 "describe.pgc"
91
92
93         strcpy(msg, "set");
94         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
95 #line 30 "describe.pgc"
96
97 if (sqlca.sqlcode < 0) exit (1);}
98 #line 30 "describe.pgc"
99
100
101         strcpy(msg, "create");
102         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table descr_t2 ( id serial primary key , t text )", ECPGt_EOIT, ECPGt_EORT);
103 #line 33 "describe.pgc"
104
105 if (sqlca.sqlcode < 0) exit (1);}
106 #line 33 "describe.pgc"
107
108
109         strcpy(msg, "insert");
110         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'a' )", ECPGt_EOIT, ECPGt_EORT);
111 #line 36 "describe.pgc"
112
113 if (sqlca.sqlcode < 0) exit (1);}
114 #line 36 "describe.pgc"
115
116         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'b' )", ECPGt_EOIT, ECPGt_EORT);
117 #line 37 "describe.pgc"
118
119 if (sqlca.sqlcode < 0) exit (1);}
120 #line 37 "describe.pgc"
121
122         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'c' )", ECPGt_EOIT, ECPGt_EORT);
123 #line 38 "describe.pgc"
124
125 if (sqlca.sqlcode < 0) exit (1);}
126 #line 38 "describe.pgc"
127
128         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'd' )", ECPGt_EOIT, ECPGt_EORT);
129 #line 39 "describe.pgc"
130
131 if (sqlca.sqlcode < 0) exit (1);}
132 #line 39 "describe.pgc"
133
134
135         strcpy(msg, "commit");
136         { ECPGtrans(__LINE__, NULL, "commit");
137 #line 42 "describe.pgc"
138
139 if (sqlca.sqlcode < 0) exit (1);}
140 #line 42 "describe.pgc"
141
142
143         /*
144          * Test DESCRIBE with a query producing tuples.
145          * DESCRIPTOR and SQL DESCRIPTOR are NOT the same in
146          * Informix-compat mode.
147          */
148
149         strcpy(msg, "allocate");
150         ECPGallocate_desc(__LINE__, "desc1");
151 #line 51 "describe.pgc"
152
153 if (sqlca.sqlcode < 0) exit (1);
154 #line 51 "describe.pgc"
155
156         ECPGallocate_desc(__LINE__, "desc2");
157 #line 52 "describe.pgc"
158
159 if (sqlca.sqlcode < 0) exit (1);
160 #line 52 "describe.pgc"
161
162
163         strcpy(msg, "prepare");
164         { ECPGprepare(__LINE__, NULL, 0, "st_id1", stmt1);
165 #line 55 "describe.pgc"
166
167 if (sqlca.sqlcode < 0) exit (1);}
168 #line 55 "describe.pgc"
169
170
171         sqlda1 = sqlda2 = sqlda3 = NULL;
172
173         strcpy(msg, "describe");
174         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
175         ECPGt_descriptor, "desc1", 1L, 1L, 1L, 
176         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
177 #line 60 "describe.pgc"
178
179         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
180         ECPGt_descriptor, "desc2", 1L, 1L, 1L, 
181         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
182 #line 61 "describe.pgc"
183
184
185         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
186         ECPGt_sqlda, &sqlda1, 0L, 0L, 0L, 
187         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
188 #line 63 "describe.pgc"
189
190         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
191         ECPGt_sqlda, &sqlda2, 0L, 0L, 0L, 
192         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
193 #line 64 "describe.pgc"
194
195         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1",
196         ECPGt_sqlda, &sqlda3, 0L, 0L, 0L, 
197         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
198 #line 65 "describe.pgc"
199
200
201         if (sqlda1 == NULL)
202         {
203                 printf("sqlda1 NULL\n");
204                 exit(1);
205         }
206
207         if (sqlda2 == NULL)
208         {
209                 printf("sqlda2 NULL\n");
210                 exit(1);
211         }
212
213         if (sqlda3 == NULL)
214         {
215                 printf("sqlda3 NULL\n");
216                 exit(1);
217         }
218
219         strcpy(msg, "get descriptor");
220         { ECPGget_desc_header(__LINE__, "desc1", &(count1));
221
222 #line 86 "describe.pgc"
223
224 if (sqlca.sqlcode < 0) exit (1);}
225 #line 86 "describe.pgc"
226
227         { ECPGget_desc_header(__LINE__, "desc1", &(count2));
228
229 #line 87 "describe.pgc"
230
231 if (sqlca.sqlcode < 0) exit (1);}
232 #line 87 "describe.pgc"
233
234
235         if (count1 != count2)
236         {
237                 printf("count1 (%d) != count2 (%d)\n", count1, count2);
238                 exit(1);
239         }
240
241         if (count1 != sqlda1->sqld)
242         {
243                 printf("count1 (%d) != sqlda1->sqld (%d)\n", count1, sqlda1->sqld);
244                 exit(1);
245         }
246
247         if (count1 != sqlda2->sqld)
248         {
249                 printf("count1 (%d) != sqlda2->sqld (%d)\n", count1, sqlda2->sqld);
250                 exit(1);
251         }
252
253         if (count1 != sqlda3->sqld)
254         {
255                 printf("count1 (%d) != sqlda3->sqld (%d)\n", count1, sqlda3->sqld);
256                 exit(1);
257         }
258
259         for (i = 1; i <= count1; i++)
260         {
261                 { ECPGget_desc(__LINE__, "desc1", i,ECPGd_name,
262         ECPGt_char,(field_name1),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
263
264 #line 115 "describe.pgc"
265
266 if (sqlca.sqlcode < 0) exit (1);}
267 #line 115 "describe.pgc"
268
269                 { ECPGget_desc(__LINE__, "desc2", i,ECPGd_name,
270         ECPGt_char,(field_name2),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
271
272 #line 116 "describe.pgc"
273
274 if (sqlca.sqlcode < 0) exit (1);}
275 #line 116 "describe.pgc"
276
277                 printf("%d\n\tfield_name1 '%s'\n\tfield_name2 '%s'\n\t"
278                         "sqlda1 '%s'\n\tsqlda2 '%s'\n\tsqlda3 '%s'\n",
279                         i, field_name1, field_name2,
280                         sqlda1->sqlvar[i-1].sqlname.data,
281                         sqlda2->sqlvar[i-1].sqlname.data,
282                         sqlda3->sqlvar[i-1].sqlname.data);
283         }
284
285         strcpy(msg, "deallocate");
286         ECPGdeallocate_desc(__LINE__, "desc1");
287 #line 126 "describe.pgc"
288
289 if (sqlca.sqlcode < 0) exit (1);
290 #line 126 "describe.pgc"
291
292         ECPGdeallocate_desc(__LINE__, "desc2");
293 #line 127 "describe.pgc"
294
295 if (sqlca.sqlcode < 0) exit (1);
296 #line 127 "describe.pgc"
297
298         free(sqlda1);
299         free(sqlda2);
300         free(sqlda3);
301
302         { ECPGdeallocate(__LINE__, 0, NULL, "st_id1");
303 #line 132 "describe.pgc"
304
305 if (sqlca.sqlcode < 0) exit (1);}
306 #line 132 "describe.pgc"
307
308
309         /* Test DESCRIBE with a query not producing tuples */
310
311         strcpy(msg, "allocate");
312         ECPGallocate_desc(__LINE__, "desc1");
313 #line 137 "describe.pgc"
314
315 if (sqlca.sqlcode < 0) exit (1);
316 #line 137 "describe.pgc"
317
318         ECPGallocate_desc(__LINE__, "desc2");
319 #line 138 "describe.pgc"
320
321 if (sqlca.sqlcode < 0) exit (1);
322 #line 138 "describe.pgc"
323
324
325         strcpy(msg, "prepare");
326         { ECPGprepare(__LINE__, NULL, 0, "st_id2", stmt2);
327 #line 141 "describe.pgc"
328
329 if (sqlca.sqlcode < 0) exit (1);}
330 #line 141 "describe.pgc"
331
332
333         sqlda1 = sqlda2 = sqlda3 = NULL;
334
335         strcpy(msg, "describe");
336         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
337         ECPGt_descriptor, "desc1", 1L, 1L, 1L, 
338         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
339 #line 146 "describe.pgc"
340
341         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
342         ECPGt_descriptor, "desc2", 1L, 1L, 1L, 
343         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
344 #line 147 "describe.pgc"
345
346
347         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
348         ECPGt_sqlda, &sqlda1, 0L, 0L, 0L, 
349         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
350 #line 149 "describe.pgc"
351
352         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
353         ECPGt_sqlda, &sqlda2, 0L, 0L, 0L, 
354         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
355 #line 150 "describe.pgc"
356
357         { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2",
358         ECPGt_sqlda, &sqlda3, 0L, 0L, 0L, 
359         ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);}
360 #line 151 "describe.pgc"
361
362
363         if (sqlda1 == NULL || sqlda1 == NULL || sqlda2 == NULL)
364                 exit(1);
365
366         strcpy(msg, "get descriptor");
367         { ECPGget_desc_header(__LINE__, "desc1", &(count1));
368
369 #line 157 "describe.pgc"
370
371 if (sqlca.sqlcode < 0) exit (1);}
372 #line 157 "describe.pgc"
373
374         { ECPGget_desc_header(__LINE__, "desc1", &(count2));
375
376 #line 158 "describe.pgc"
377
378 if (sqlca.sqlcode < 0) exit (1);}
379 #line 158 "describe.pgc"
380
381
382         if (!(  count1 == count2 &&
383                 count1 == sqlda1->sqld &&
384                 count1 == sqlda2->sqld &&
385                 count1 == sqlda3->sqld))
386                 exit(1);
387
388         for (i = 1; i <= count1; i++)
389         {
390                 { ECPGget_desc(__LINE__, "desc1", i,ECPGd_name,
391         ECPGt_char,(field_name1),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
392
393 #line 168 "describe.pgc"
394
395 if (sqlca.sqlcode < 0) exit (1);}
396 #line 168 "describe.pgc"
397
398                 { ECPGget_desc(__LINE__, "desc2", i,ECPGd_name,
399         ECPGt_char,(field_name2),(long)30,(long)1,(30)*sizeof(char), ECPGd_EODT);
400
401 #line 169 "describe.pgc"
402
403 if (sqlca.sqlcode < 0) exit (1);}
404 #line 169 "describe.pgc"
405
406                 printf("%d\n\tfield_name1 '%s'\n\tfield_name2 '%s'\n\t"
407                         "sqlda1 '%s'\n\tsqlda2 '%s'\n\tsqlda3 '%s'\n",
408                         i, field_name1, field_name2,
409                         sqlda1->sqlvar[i-1].sqlname.data,
410                         sqlda2->sqlvar[i-1].sqlname.data,
411                         sqlda3->sqlvar[i-1].sqlname.data);
412         }
413
414         strcpy(msg, "deallocate");
415         ECPGdeallocate_desc(__LINE__, "desc1");
416 #line 179 "describe.pgc"
417
418 if (sqlca.sqlcode < 0) exit (1);
419 #line 179 "describe.pgc"
420
421         ECPGdeallocate_desc(__LINE__, "desc2");
422 #line 180 "describe.pgc"
423
424 if (sqlca.sqlcode < 0) exit (1);
425 #line 180 "describe.pgc"
426
427         free(sqlda1);
428         free(sqlda2);
429         free(sqlda3);
430
431         { ECPGdeallocate(__LINE__, 0, NULL, "st_id2");
432 #line 185 "describe.pgc"
433
434 if (sqlca.sqlcode < 0) exit (1);}
435 #line 185 "describe.pgc"
436
437
438         /* End test */
439
440         strcpy(msg, "drop");
441         { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table descr_t2", ECPGt_EOIT, ECPGt_EORT);
442 #line 190 "describe.pgc"
443
444 if (sqlca.sqlcode < 0) exit (1);}
445 #line 190 "describe.pgc"
446
447
448         strcpy(msg, "commit");
449         { ECPGtrans(__LINE__, NULL, "commit");
450 #line 193 "describe.pgc"
451
452 if (sqlca.sqlcode < 0) exit (1);}
453 #line 193 "describe.pgc"
454
455
456         strcpy(msg, "disconnect");
457         { ECPGdisconnect(__LINE__, "CURRENT");
458 #line 196 "describe.pgc"
459
460 if (sqlca.sqlcode < 0) exit (1);}
461 #line 196 "describe.pgc"
462
463
464         return (0);
465 }