PostgreSQL Source Code: src/interfaces/ecpg/preproc/descriptor.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
11
13
14
15
16
17
19
20void
22{
24
27 new->value = value;
29}
30
31static void
33{
35 {
37
40 free(old_head);
41 }
42}
43
44static void
46{
48
49 switch (v->type->type)
50 {
61 break;
62 default:
64 break;
65 }
66}
67
68
69
70
71
73
74void
76{
78
79 if (name[0] != '"')
80 return;
81
83
88 else
89 new->connection = NULL;
91}
92
93void
95{
98
99 if (name[0] != '"')
100 return;
101
103 {
104 if (strcmp(name, i->name) == 0)
105 {
108 && strcmp(connection, i->connection) == 0))
109 {
110 *lastptr = i->next;
114 return;
115 }
116 }
117 }
120 else
122}
123
126{
128
129 if (name[0] != '"')
130 return NULL;
131
133 {
134 if (strcmp(name, i->name) == 0)
135 {
138 && strcmp(connection, i->connection) == 0))
139 return i;
141 {
142
144 return i;
145 }
146 }
147 }
150 else
152 return NULL;
153}
154
155void
157{
159
160 fprintf(base_yyout, "{ ECPGget_desc_header(__LINE__, %s, &(", desc_name);
161 for (results = assignments; results != NULL; results = results->next)
162 {
165 else
167 }
168
172}
173
174void
176{
178
180 for (results = assignments; results != NULL; results = results->next)
181 {
184
185 switch (results->value)
186 {
189 break;
192 break;
193 default:
194 break;
195 }
198 NULL, NULL, -1, NULL, NULL, str_zero, NULL, NULL);
199 free(str_zero);
200 }
203
205}
206
207void
209{
211
212 fprintf(base_yyout, "{ ECPGset_desc_header(__LINE__, %s, (int)(", desc_name);
213 for (results = assignments; results != NULL; results = results->next)
214 {
217 else
219 }
220
224}
225
226static const char *
228{
229 switch (itemcode)
230 {
232 return "CARDINALITY";
234 return "COUNT";
236 return "DATA";
238 return "DATETIME_INTERVAL_CODE";
240 return "DATETIME_INTERVAL_PRECISION";
242 return "INDICATOR";
244 return "KEY_MEMBER";
246 return "LENGTH";
248 return "NAME";
250 return "NULLABLE";
252 return "OCTET_LENGTH";
254 return "PRECISION";
256 return "RETURNED_LENGTH";
258 return "RETURNED_OCTET_LENGTH";
260 return "SCALE";
262 return "TYPE";
263 default:
264 return NULL;
265 }
266}
267
268void
270{
272
274 for (results = assignments; results != NULL; results = results->next)
275 {
277
278 switch (results->value)
279 {
287 break;
288
297 break;
298
303 {
305
308 NULL, NULL, -1, NULL, NULL, str_zero, NULL, NULL);
309 free(str_zero);
310 }
311 break;
312
313 default:
314 ;
315 }
316 }
319
321}
322
323
324
325
326
327
328
329#define MAX_DESCRIPTOR_NAMELEN 128
332{
335 static struct variable varspace[2] = {
336 {descriptor_names[0], &descriptor_type, 0, NULL},
337 {descriptor_names[1], &descriptor_type, 0, NULL}
338 };
339
341 return &varspace[input];
342}
343
346{
347
348
349
350
351
353
357 p->type->type_name = NULL;
358 p->type->size = NULL;
359 p->type->struct_sizeof = NULL;
360 p->type->u.element = NULL;
361 p->type->counter = 0;
363 p->next = NULL;
364
365 return p;
366}
#define fprintf(file, fmt, msg)
@ ECPGt_unsigned_long_long
void whenever_action(int mode)
size_t strlcpy(char *dst, const char *src, size_t siz)
struct descriptor * lookup_descriptor(const char *name, const char *connection)
static const char * descriptor_item_name(enum ECPGdtype itemcode)
struct variable * sqlda_variable(const char *name)
void output_set_descr(const char *desc_name, const char *index)
void add_descriptor(const char *name, const char *connection)
static struct descriptor * descriptors
static struct assignment * assignments
void push_assignment(const char *var, enum ECPGdtype value)
void output_get_descr_header(const char *desc_name)
static void ECPGnumeric_lvalue(char *name)
void drop_descriptor(const char *name, const char *connection)
void output_get_descr(const char *desc_name, const char *index)
struct variable * descriptor_variable(const char *name, int input)
void output_set_descr_header(const char *desc_name)
static void drop_assignments(void)
#define MAX_DESCRIPTOR_NAMELEN
void * loc_alloc(size_t size)
char * mm_strdup(const char *string)
void pg_noreturn void mmfatal(int error_code, const char *error,...) pg_attribute_printf(2
const char * get_dtype(enum ECPGdtype)
void mmerror(int error_code, enum errortype type, const char *error,...) pg_attribute_printf(3
void * mm_alloc(size_t size)
struct variable * find_variable(const char *name)
char * loc_strdup(const char *string)
void ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype *type, const int brace_level, const char *ind_name, struct ECPGtype *ind_type, const int ind_brace_level, const char *prefix, const char *ind_prefix, char *arr_str_size, const char *struct_sizeof, const char *ind_struct_sizeof)