PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
sql-desc.c File Reference
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
Include dependency graph for sql-desc.c:

Go to the source code of this file.

Macros

#define ECPGdebug(X, Y)   ECPGdebug((X)+100,(Y))
 

Functions

int main (void)
 

Macro Definition Documentation

◆ ECPGdebug

#define ECPGdebug (   X,
 
)    ECPGdebug((X)+100,(Y))

Definition at line 7 of file sql-desc.c.

Function Documentation

◆ main()

int main ( void  )

Definition at line 25 of file sql-desc.c.

26{
27 /* exec sql begin declare section */
28
29
30
31
32
33
34
35
36
37
38
39#line 8 "desc.pgc"
40 char * stmt1 = "INSERT INTO test1 VALUES ($1, $2)" ;
41
42#line 9 "desc.pgc"
43 char * stmt2 = "SELECT * from test1 where a = $1 and b = $2" ;
44
45#line 10 "desc.pgc"
46 char * stmt3 = "SELECT * from test1 where :var = a" ;
47
48#line 12 "desc.pgc"
49 int val1 = 1 ;
50
51#line 13 "desc.pgc"
52 char val2 [ 4 ] = "one" , val2output [] = "AAA" ;
53
54#line 14 "desc.pgc"
55 int val1output = 2 , val2i = 0 ;
56
57#line 15 "desc.pgc"
58 int val2null = - 1 ;
59
60#line 16 "desc.pgc"
61 int ind1 , ind2 ;
62
63#line 17 "desc.pgc"
64 char desc1 [ 8 ] = "outdesc" ;
65/* exec sql end declare section */
66#line 18 "desc.pgc"
67
68
69 ECPGdebug(1, stderr);
70
71 ECPGallocate_desc(__LINE__, "indesc");
72#line 22 "desc.pgc"
73
74if (sqlca.sqlcode < 0) sqlprint();
75#line 22 "desc.pgc"
76
77 ECPGallocate_desc(__LINE__, (desc1));
78#line 23 "desc.pgc"
79
80if (sqlca.sqlcode < 0) sqlprint();
81#line 23 "desc.pgc"
82
83
84 { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
85 ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
86
87#line 25 "desc.pgc"
88
89if (sqlca.sqlcode < 0) sqlprint();}
90#line 25 "desc.pgc"
91
92 { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
93 ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
94 ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
95
96#line 26 "desc.pgc"
97
98if (sqlca.sqlcode < 0) sqlprint();}
99#line 26 "desc.pgc"
100
101
102 { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , NULL, 0);
103#line 28 "desc.pgc"
104
105if (sqlca.sqlcode < 0) sqlprint();}
106#line 28 "desc.pgc"
107
108
109 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table test1 ( a int , b text )", ECPGt_EOIT, ECPGt_EORT);
110#line 30 "desc.pgc"
111
112if (sqlca.sqlcode < 0) sqlprint();}
113#line 30 "desc.pgc"
114
115 { ECPGprepare(__LINE__, NULL, 0, "foo1", stmt1);
116#line 31 "desc.pgc"
117
118if (sqlca.sqlcode < 0) sqlprint();}
119#line 31 "desc.pgc"
120
121 { ECPGprepare(__LINE__, NULL, 0, "Foo-1", stmt1);
122#line 32 "desc.pgc"
123
124if (sqlca.sqlcode < 0) sqlprint();}
125#line 32 "desc.pgc"
126
127 { ECPGprepare(__LINE__, NULL, 0, "foo2", stmt2);
128#line 33 "desc.pgc"
129
130if (sqlca.sqlcode < 0) sqlprint();}
131#line 33 "desc.pgc"
132
133 { ECPGprepare(__LINE__, NULL, 0, "foo3", stmt3);
134#line 34 "desc.pgc"
135
136if (sqlca.sqlcode < 0) sqlprint();}
137#line 34 "desc.pgc"
138
139
140 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1",
141 ECPGt_descriptor, "indesc", 1L, 1L, 1L,
142 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
143#line 36 "desc.pgc"
144
145if (sqlca.sqlcode < 0) sqlprint();}
146#line 36 "desc.pgc"
147
148
149 { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
150 ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
151
152#line 38 "desc.pgc"
153
154if (sqlca.sqlcode < 0) sqlprint();}
155#line 38 "desc.pgc"
156
157 { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
158 ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
159 ECPGt_int,&(val2null),(long)1,(long)1,sizeof(int), ECPGd_EODT);
160
161#line 39 "desc.pgc"
162
163if (sqlca.sqlcode < 0) sqlprint();}
164#line 39 "desc.pgc"
165
166
167 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1",
168 ECPGt_descriptor, "indesc", 1L, 1L, 1L,
169 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
170#line 41 "desc.pgc"
171
172if (sqlca.sqlcode < 0) sqlprint();}
173#line 41 "desc.pgc"
174
175
176 { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
177 ECPGt_const,"3",(long)1,(long)1,strlen("3"), ECPGd_EODT);
178
179#line 43 "desc.pgc"
180
181if (sqlca.sqlcode < 0) sqlprint();}
182#line 43 "desc.pgc"
183
184 { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
185 ECPGt_const,"this is a long test",(long)19,(long)1,strlen("this is a long test"), ECPGd_indicator,
186 ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
187
188#line 44 "desc.pgc"
189
190if (sqlca.sqlcode < 0) sqlprint();}
191#line 44 "desc.pgc"
192
193
194 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "Foo-1",
195 ECPGt_descriptor, "indesc", 1L, 1L, 1L,
196 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
197#line 46 "desc.pgc"
198
199if (sqlca.sqlcode < 0) sqlprint();}
200#line 46 "desc.pgc"
201
202
203 { ECPGdeallocate(__LINE__, 0, NULL, "Foo-1");
204#line 48 "desc.pgc"
205
206if (sqlca.sqlcode < 0) sqlprint();}
207#line 48 "desc.pgc"
208
209
210 { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
211 ECPGt_int,&(val1),(long)1,(long)1,sizeof(int), ECPGd_EODT);
212
213#line 50 "desc.pgc"
214
215if (sqlca.sqlcode < 0) sqlprint();}
216#line 50 "desc.pgc"
217
218 { ECPGset_desc(__LINE__, "indesc", 2,ECPGd_data,
219 ECPGt_char,(val2),(long)4,(long)1,(4)*sizeof(char), ECPGd_indicator,
220 ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGd_EODT);
221
222#line 51 "desc.pgc"
223
224if (sqlca.sqlcode < 0) sqlprint();}
225#line 51 "desc.pgc"
226
227
228 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo2",
229 ECPGt_descriptor, "indesc", 1L, 1L, 1L,
230 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT,
231 ECPGt_descriptor, (desc1), 1L, 1L, 1L,
232 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);
233#line 53 "desc.pgc"
234
235if (sqlca.sqlcode < 0) sqlprint();}
236#line 53 "desc.pgc"
237
238
239 { ECPGget_desc(__LINE__, (desc1), 1,ECPGd_data,
240 ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char), ECPGd_EODT);
241
242#line 55 "desc.pgc"
243
244if (sqlca.sqlcode < 0) sqlprint();}
245#line 55 "desc.pgc"
246
247 printf("output = %s\n", val2output);
248
249 /* declare c1 cursor for $1 */
250#line 58 "desc.pgc"
251
252 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c1 cursor for $1",
253 ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo2", __LINE__)),(long)1,(long)1,(1)*sizeof(char),
254 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
255 ECPGt_descriptor, "indesc", 1L, 1L, 1L,
256 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
257#line 59 "desc.pgc"
258
259if (sqlca.sqlcode < 0) sqlprint();}
260#line 59 "desc.pgc"
261
262
263 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch next from c1", ECPGt_EOIT,
264 ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
265 ECPGt_int,&(ind1),(long)1,(long)1,sizeof(int),
266 ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
267 ECPGt_int,&(ind2),(long)1,(long)1,sizeof(int), ECPGt_EORT);
268#line 61 "desc.pgc"
269
270if (sqlca.sqlcode < 0) sqlprint();}
271#line 61 "desc.pgc"
272
273 printf("val1=%d (ind1: %d) val2=%s (ind2: %d)\n",
274 val1output, ind1, val2output, ind2);
275
276 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close c1", ECPGt_EOIT, ECPGt_EORT);
277#line 65 "desc.pgc"
278
279if (sqlca.sqlcode < 0) sqlprint();}
280#line 65 "desc.pgc"
281
282
283 { ECPGset_desc_header(__LINE__, "indesc", (int)(1));
284
285#line 67 "desc.pgc"
286
287if (sqlca.sqlcode < 0) sqlprint();}
288#line 67 "desc.pgc"
289
290 { ECPGset_desc(__LINE__, "indesc", 1,ECPGd_data,
291 ECPGt_const,"2",(long)1,(long)1,strlen("2"), ECPGd_EODT);
292
293#line 68 "desc.pgc"
294
295if (sqlca.sqlcode < 0) sqlprint();}
296#line 68 "desc.pgc"
297
298
299 /* declare c2 cursor for $1 */
300#line 70 "desc.pgc"
301
302 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c2 cursor for $1",
303 ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo3", __LINE__)),(long)1,(long)1,(1)*sizeof(char),
304 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
305 ECPGt_descriptor, "indesc", 1L, 1L, 1L,
306 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT);
307#line 71 "desc.pgc"
308
309if (sqlca.sqlcode < 0) sqlprint();}
310#line 71 "desc.pgc"
311
312
313 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch next from c2", ECPGt_EOIT,
314 ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
315 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
316 ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
317 ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
318#line 73 "desc.pgc"
319
320if (sqlca.sqlcode < 0) sqlprint();}
321#line 73 "desc.pgc"
322
323 printf("val1=%d val2=%s\n", val1output, val2i ? "null" : val2output);
324
325 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close c2", ECPGt_EOIT, ECPGt_EORT);
326#line 76 "desc.pgc"
327
328if (sqlca.sqlcode < 0) sqlprint();}
329#line 76 "desc.pgc"
330
331
332 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from test1 where a = 3", ECPGt_EOIT,
333 ECPGt_int,&(val1output),(long)1,(long)1,sizeof(int),
334 ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L,
335 ECPGt_char,(val2output),(long)sizeof("AAA"),(long)1,(sizeof("AAA"))*sizeof(char),
336 ECPGt_int,&(val2i),(long)1,(long)1,sizeof(int), ECPGt_EORT);
337#line 78 "desc.pgc"
338
339if (sqlca.sqlcode < 0) sqlprint();}
340#line 78 "desc.pgc"
341
342 printf("val1=%d val2=%c%c%c%c warn=%c truncate=%d\n", val1output, val2output[0], val2output[1], val2output[2], val2output[3], sqlca.sqlwarn[0], val2i);
343
344 { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table test1", ECPGt_EOIT, ECPGt_EORT);
345#line 81 "desc.pgc"
346
347if (sqlca.sqlcode < 0) sqlprint();}
348#line 81 "desc.pgc"
349
350 { ECPGdeallocate_all(__LINE__, 0, NULL);
351#line 82 "desc.pgc"
352
353if (sqlca.sqlcode < 0) sqlprint();}
354#line 82 "desc.pgc"
355
356 { ECPGdisconnect(__LINE__, "CURRENT");
357#line 83 "desc.pgc"
358
359if (sqlca.sqlcode < 0) sqlprint();}
360#line 83 "desc.pgc"
361
362
363 ECPGdeallocate_desc(__LINE__, "indesc");
364#line 85 "desc.pgc"
365
366if (sqlca.sqlcode < 0) sqlprint();
367#line 85 "desc.pgc"
368
369 ECPGdeallocate_desc(__LINE__, (desc1));
370#line 86 "desc.pgc"
371
372if (sqlca.sqlcode < 0) sqlprint();
373#line 86 "desc.pgc"
374
375
376 return 0;
377}
bool ECPGdisconnect(int lineno, const char *connection_name)
Definition: connect.c:676
bool ECPGconnect(int lineno, int c, const char *name, const char *user, const char *passwd, const char *connection_name, int autocommit)
Definition: connect.c:255
bool ECPGdeallocate_desc(int line, const char *name)
Definition: descriptor.c:748
bool ECPGget_desc(int lineno, const char *desc_name, int index,...)
Definition: descriptor.c:234
bool ECPGallocate_desc(int line, const char *name)
Definition: descriptor.c:792
bool ECPGset_desc_header(int lineno, const char *desc_name, int count)
Definition: descriptor.c:573
bool ECPGset_desc(int lineno, const char *desc_name, int index,...)
Definition: descriptor.c:605
@ ECPGst_normal
Definition: ecpgtype.h:97
@ ECPGst_execute
Definition: ecpgtype.h:98
@ ECPGt_EOIT
Definition: ecpgtype.h:62
@ ECPGt_char_variable
Definition: ecpgtype.h:60
@ ECPGt_int
Definition: ecpgtype.h:44
@ ECPGt_NO_INDICATOR
Definition: ecpgtype.h:64
@ ECPGt_EORT
Definition: ecpgtype.h:63
@ ECPGt_const
Definition: ecpgtype.h:61
@ ECPGt_descriptor
Definition: ecpgtype.h:59
@ ECPGt_char
Definition: ecpgtype.h:43
@ ECPGd_indicator
Definition: ecpgtype.h:77
@ ECPGd_EODT
Definition: ecpgtype.h:88
@ ECPGd_data
Definition: ecpgtype.h:74
void sqlprint(void)
Definition: error.c:334
bool ECPGdo(const int lineno, const int compat, const int force_indicator, const char *connection_name, const bool questionmarks, const int st, const char *query,...)
Definition: execute.c:2275
bool ECPGdeallocate_all(int lineno, int compat, const char *connection_name)
Definition: prepare.c:350
char * ECPGprepared_statement(const char *connection_name, const char *name, int lineno)
Definition: prepare.c:368
bool ECPGprepare(int lineno, const char *connection_name, const bool questionmarks, const char *name, const char *variable)
Definition: prepare.c:217
bool ECPGdeallocate(int lineno, int c, const char *connection_name, const char *name)
Definition: prepare.c:315
#define printf(...)
Definition: port.h:244
#define ECPGdebug(X, Y)
Definition: sql-desc.c:7
#define sqlca
Definition: sqlca.h:59

References ECPGallocate_desc(), ECPGconnect(), ECPGd_data, ECPGd_EODT, ECPGd_indicator, ECPGdeallocate(), ECPGdeallocate_all(), ECPGdeallocate_desc(), ECPGdebug, ECPGdisconnect(), ECPGdo(), ECPGget_desc(), ECPGprepare(), ECPGprepared_statement(), ECPGset_desc(), ECPGset_desc_header(), ECPGst_execute, ECPGst_normal, ECPGt_char, ECPGt_char_variable, ECPGt_const, ECPGt_descriptor, ECPGt_EOIT, ECPGt_EORT, ECPGt_int, ECPGt_NO_INDICATOR, printf, sqlca, and sqlprint().