Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 7a9c074

Browse files
author
Michael Meskes
committed
- Added some Informix error codes in Informix mode.
- Added just another pgtypeslib function.
1 parent 83f62e9 commit 7a9c074

File tree

20 files changed

+934
-232
lines changed

20 files changed

+934
-232
lines changed

src/interfaces/ecpg/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1595,6 +1595,11 @@ Thu Jul 24 10:33:51 CEST 2003
15951595
Fri Jul 25 18:08:18 CEST 2003
15961596

15971597
- Added explicit casts for date/timestamp/interval.
1598+
1599+
Fri Aug 1 08:54:02 CEST 2003
1600+
1601+
- Added some Informix error codes in Informix mode.
1602+
- Added just another pgtypeslib function.
15981603
- Set ecpg version to 3.0.0
15991604
- Set ecpg library to 4.0.0
16001605
- Set pgtypes library to 1.0.0

src/interfaces/ecpg/compatlib/informix.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ rtypwidth(int sqltype, int sqllen)
823823
int
824824
dtcvfmtasc (char *inbuf, char *fmtstr, dtime_t *dtvalue)
825825
{
826-
return 0;
826+
return PGTYPEStimestamp_defmt_asc(inbuf, fmtstr, dtvalue);
827827
}
828828

829829
static struct var_list

src/interfaces/ecpg/ecpglib/connect.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.12 2003/07/15 12:38:38 meskes Exp $ */
1+
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/connect.c,v 1.13 2003/08/01 08:21:04 meskes Exp $ */
22

33
#define POSTGRES_ECPG_INTERNAL
44
#include "postgres_fe.h"
@@ -116,7 +116,7 @@ ECPGsetcommit(int lineno, const char *mode, const char *connection_name)
116116
{
117117
if ((results = PQexec(con->connection, "begin transaction")) == NULL)
118118
{
119-
ECPGraise(lineno, ECPG_TRANS, NULL);
119+
ECPGraise(lineno, ECPG_TRANS, NULL, ECPG_COMPAT_PGSQL);
120120
return false;
121121
}
122122
PQclear(results);
@@ -130,7 +130,7 @@ ECPGsetcommit(int lineno, const char *mode, const char *connection_name)
130130
{
131131
if ((results = PQexec(con->connection, "commit")) == NULL)
132132
{
133-
ECPGraise(lineno, ECPG_TRANS, NULL);
133+
ECPGraise(lineno, ECPG_TRANS, NULL, ECPG_COMPAT_PGSQL);
134134
return false;
135135
}
136136
PQclear(results);
@@ -406,7 +406,7 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
406406
if (strncmp(dbname, "unix:", 5) != 0)
407407
{
408408
ECPGlog("connect: socketname %s given for TCP connection in line %d\n", host, lineno);
409-
ECPGraise(lineno, ECPG_CONNECT, realname ? realname : "<DEFAULT>");
409+
ECPGraise(lineno, ECPG_CONNECT, realname ? realname : "<DEFAULT>", ECPG_COMPAT_PGSQL);
410410
if (host)
411411
ECPGfree(host);
412412
if (port)
@@ -429,7 +429,7 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
429429
if (strcmp(dbname + offset, "localhost") != 0 && strcmp(dbname + offset, "127.0.0.1") != 0)
430430
{
431431
ECPGlog("connect: non-localhost access via sockets in line %d\n", lineno);
432-
ECPGraise(lineno, ECPG_CONNECT, realname ? realname : "<DEFAULT>");
432+
ECPGraise(lineno, ECPG_CONNECT, realname ? realname : "<DEFAULT>", ECPG_COMPAT_PGSQL);
433433
if (host)
434434
ECPGfree(host);
435435
if (port)
@@ -497,7 +497,7 @@ ECPGconnect(int lineno, int c, const char *name, const char *user, const char *p
497497
user ? "for user " : "", user ? user : "",
498498
lineno, errmsg);
499499

500-
ECPGraise(lineno, ECPG_CONNECT, db);
500+
ECPGraise(lineno, ECPG_CONNECT, db, ECPG_COMPAT_PGSQL);
501501
if (host)
502502
ECPGfree(host);
503503
if (port)

src/interfaces/ecpg/ecpglib/data.c

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.13 2003/07/18 14:32:56 meskes Exp $ */
1+
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.14 2003/08/01 08:21:04 meskes Exp $ */
22

33
#define POSTGRES_ECPG_INTERNAL
44
#include "postgres_fe.h"
@@ -34,7 +34,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
3434
{
3535
if (*pval != '{')
3636
{
37-
ECPGraise(lineno, ECPG_DATA_NOT_ARRAY, NULL);
37+
ECPGraise(lineno, ECPG_DATA_NOT_ARRAY, NULL, compat);
3838
return (false);
3939
}
4040

@@ -90,13 +90,13 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
9090
}
9191
else
9292
{
93-
ECPGraise(lineno, ECPG_MISSING_INDICATOR, NULL);
93+
ECPGraise(lineno, ECPG_MISSING_INDICATOR, NULL, compat);
9494
return (false);
9595
}
9696
}
9797
break;
9898
default:
99-
ECPGraise(lineno, ECPG_UNSUPPORTED, ECPGtype_name(ind_type));
99+
ECPGraise(lineno, ECPG_UNSUPPORTED, ECPGtype_name(ind_type), compat);
100100
return (false);
101101
break;
102102
}
@@ -126,7 +126,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
126126
if ((isarray && *scan_length != ',' && *scan_length != '}')
127127
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
128128
{
129-
ECPGraise(lineno, ECPG_INT_FORMAT, pval);
129+
ECPGraise(lineno, ECPG_INT_FORMAT, pval, compat);
130130
return (false);
131131
}
132132
}
@@ -159,7 +159,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
159159
if ((isarray && *scan_length != ',' && *scan_length != '}')
160160
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
161161
{
162-
ECPGraise(lineno, ECPG_UINT_FORMAT, pval);
162+
ECPGraise(lineno, ECPG_UINT_FORMAT, pval, compat);
163163
return (false);
164164
}
165165
}
@@ -192,7 +192,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
192192
if ((isarray && *scan_length != ',' && *scan_length != '}')
193193
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
194194
{
195-
ECPGraise(lineno, ECPG_INT_FORMAT, pval);
195+
ECPGraise(lineno, ECPG_INT_FORMAT, pval, compat);
196196
return (false);
197197
}
198198
}
@@ -209,7 +209,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
209209
if ((isarray && *scan_length != ',' && *scan_length != '}')
210210
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
211211
{
212-
ECPGraise(lineno, ECPG_UINT_FORMAT, pval);
212+
ECPGraise(lineno, ECPG_UINT_FORMAT, pval, compat);
213213
return (false);
214214
}
215215
}
@@ -235,7 +235,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
235235
if ((isarray && *scan_length != ',' && *scan_length != '}')
236236
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
237237
{
238-
ECPGraise(lineno, ECPG_FLOAT_FORMAT, pval);
238+
ECPGraise(lineno, ECPG_FLOAT_FORMAT, pval, compat);
239239
return (false);
240240
}
241241
}
@@ -266,7 +266,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
266266
else if (offset == sizeof(int))
267267
*((int *) (var + offset * act_tuple)) = false;
268268
else
269-
ECPGraise(lineno, ECPG_CONVERT_BOOL, "different size");
269+
ECPGraise(lineno, ECPG_CONVERT_BOOL, "different size", compat);
270270
break;
271271
}
272272
else if (pval[0] == 't' && pval[1] == '\0')
@@ -276,7 +276,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
276276
else if (offset == sizeof(int))
277277
*((int *) (var + offset * act_tuple)) = true;
278278
else
279-
ECPGraise(lineno, ECPG_CONVERT_BOOL, "different size");
279+
ECPGraise(lineno, ECPG_CONVERT_BOOL, "different size", compat);
280280
break;
281281
}
282282
else if (pval[0] == '\0' && PQgetisnull(results, act_tuple, act_field))
@@ -286,7 +286,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
286286
}
287287
}
288288

289-
ECPGraise(lineno, ECPG_CONVERT_BOOL, pval);
289+
ECPGraise(lineno, ECPG_CONVERT_BOOL, pval, compat);
290290
return (false);
291291
break;
292292

@@ -396,7 +396,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
396396
if ((isarray && *scan_length != ',' && *scan_length != '}')
397397
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
398398
{
399-
ECPGraise(lineno, ECPG_NUMERIC_FORMAT, pval);
399+
ECPGraise(lineno, ECPG_NUMERIC_FORMAT, pval, compat);
400400
return (false);
401401
}
402402
}
@@ -423,7 +423,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
423423
if ((isarray && *scan_length != ',' && *scan_length != '}')
424424
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
425425
{
426-
ECPGraise(lineno, ECPG_INTERVAL_FORMAT, pval);
426+
ECPGraise(lineno, ECPG_INTERVAL_FORMAT, pval, compat);
427427
return (false);
428428
}
429429
}
@@ -446,7 +446,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
446446
if ((isarray && *scan_length != ',' && *scan_length != '}')
447447
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
448448
{
449-
ECPGraise(lineno, ECPG_DATE_FORMAT, pval);
449+
ECPGraise(lineno, ECPG_DATE_FORMAT, pval, compat);
450450
return (false);
451451
}
452452

@@ -468,7 +468,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
468468
if ((isarray && *scan_length != ',' && *scan_length != '}')
469469
|| (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
470470
{
471-
ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT, pval);
471+
ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT, pval, compat);
472472
return (false);
473473
}
474474

@@ -477,7 +477,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
477477
break;
478478

479479
default:
480-
ECPGraise(lineno, ECPG_UNSUPPORTED, ECPGtype_name(type));
480+
ECPGraise(lineno, ECPG_UNSUPPORTED, ECPGtype_name(type), compat);
481481
return (false);
482482
break;
483483
}

src/interfaces/ecpg/ecpglib/descriptor.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* dynamic SQL support routines
22
*
3-
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.3 2003/06/15 04:07:58 momjian Exp $
3+
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.4 2003/08/01 08:21:04 meskes Exp $
44
*/
55

66
#define POSTGRES_ECPG_INTERNAL
@@ -103,7 +103,7 @@ get_int_item(int lineno, void *var, enum ECPGttype vartype, int value)
103103
*(double *) var = (double) value;
104104
break;
105105
default:
106-
ECPGraise(lineno, ECPG_VAR_NOT_NUMERIC, NULL);
106+
ECPGraise(lineno, ECPG_VAR_NOT_NUMERIC, NULL, ECPG_COMPAT_PGSQL);
107107
return (false);
108108
}
109109

@@ -135,7 +135,7 @@ get_char_item(int lineno, void *var, enum ECPGttype vartype, char *value, int va
135135
}
136136
break;
137137
default:
138-
ECPGraise(lineno, ECPG_VAR_NOT_CHAR, NULL);
138+
ECPGraise(lineno, ECPG_VAR_NOT_CHAR, NULL, ECPG_COMPAT_PGSQL);
139139
return (false);
140140
}
141141

@@ -162,13 +162,13 @@ ECPGget_desc(int lineno, char *desc_name, int index,...)
162162
ntuples = PQntuples(ECPGresult);
163163
if (ntuples < 1)
164164
{
165-
ECPGraise(lineno, ECPG_NOT_FOUND, NULL);
165+
ECPGraise(lineno, ECPG_NOT_FOUND, NULL, ECPG_COMPAT_PGSQL);
166166
return (false);
167167
}
168168

169169
if (index < 1 || index > PQnfields(ECPGresult))
170170
{
171-
ECPGraise(lineno, ECPG_INVALID_DESCRIPTOR_INDEX, NULL);
171+
ECPGraise(lineno, ECPG_INVALID_DESCRIPTOR_INDEX, NULL, ECPG_COMPAT_PGSQL);
172172
return (false);
173173
}
174174

@@ -300,7 +300,7 @@ ECPGget_desc(int lineno, char *desc_name, int index,...)
300300
{
301301
ECPGlog("ECPGget_desc line %d: Incorrect number of matches: %d don't fit into array of %d\n",
302302
lineno, ntuples, arrsize);
303-
ECPGraise(lineno, ECPG_TOO_MANY_MATCHES, NULL);
303+
ECPGraise(lineno, ECPG_TOO_MANY_MATCHES, NULL, ECPG_COMPAT_PGSQL);
304304
return false;
305305
}
306306
/* allocate storage if needed */
@@ -324,7 +324,7 @@ ECPGget_desc(int lineno, char *desc_name, int index,...)
324324

325325
default:
326326
snprintf(type_str, sizeof(type_str), "%d", type);
327-
ECPGraise(lineno, ECPG_UNKNOWN_DESCRIPTOR_ITEM, type_str);
327+
ECPGraise(lineno, ECPG_UNKNOWN_DESCRIPTOR_ITEM, type_str, ECPG_COMPAT_PGSQL);
328328
return (false);
329329
}
330330

@@ -361,7 +361,7 @@ ECPGget_desc(int lineno, char *desc_name, int index,...)
361361
{
362362
ECPGlog("ECPGget_desc line %d: Incorrect number of matches (indicator): %d don't fit into array of %d\n",
363363
lineno, ntuples, data_var.ind_arrsize);
364-
ECPGraise(lineno, ECPG_TOO_MANY_MATCHES, NULL);
364+
ECPGraise(lineno, ECPG_TOO_MANY_MATCHES, NULL, ECPG_COMPAT_PGSQL);
365365
return false;
366366
}
367367
/* allocate storage if needed */
@@ -404,7 +404,7 @@ ECPGdeallocate_desc(int line, const char *name)
404404
return true;
405405
}
406406
}
407-
ECPGraise(line, ECPG_UNKNOWN_DESCRIPTOR, name);
407+
ECPGraise(line, ECPG_UNKNOWN_DESCRIPTOR, name, ECPG_COMPAT_PGSQL);
408408
return false;
409409
}
410410

@@ -430,7 +430,7 @@ ECPGallocate_desc(int line, const char *name)
430430
{
431431
ECPGfree(new->name);
432432
ECPGfree(new);
433-
ECPGraise(line, ECPG_OUT_OF_MEMORY, NULL);
433+
ECPGraise(line, ECPG_OUT_OF_MEMORY, NULL, ECPG_COMPAT_PGSQL);
434434
return false;
435435
}
436436
strcpy(new->name, name);
@@ -449,7 +449,7 @@ ECPGdescriptor_lvalue(int line, const char *descriptor)
449449
return &i->result;
450450
}
451451

452-
ECPGraise(line, ECPG_UNKNOWN_DESCRIPTOR, (char *) descriptor);
452+
ECPGraise(line, ECPG_UNKNOWN_DESCRIPTOR, (char *) descriptor, ECPG_COMPAT_PGSQL);
453453
return NULL;
454454
}
455455

src/interfaces/ecpg/ecpglib/error.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.3 2003/07/15 12:38:38 meskes Exp $ */
1+
/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.4 2003/08/01 08:21:04 meskes Exp $ */
22

33
#define POSTGRES_ECPG_INTERNAL
44
#include "postgres_fe.h"
@@ -12,7 +12,7 @@
1212
#include "sqlca.h"
1313

1414
void
15-
ECPGraise(int line, int code, const char *str)
15+
ECPGraise(int line, int code, const char *str, int compat)
1616
{
1717
struct sqlca_t *sqlca = ECPGget_sqlca();
1818
sqlca->sqlcode = code;
@@ -139,9 +139,9 @@ ECPGraise(int line, int code, const char *str)
139139
snprintf(sqlca->sqlerrm.sqlerrmc, sizeof(sqlca->sqlerrm.sqlerrmc),
140140
"'%.*s' in line %d.", slen, str, line);
141141
if (strncmp(str, "ERROR: Cannot insert a duplicate key", strlen("ERROR: Cannot insert a duplicate key")) == 0)
142-
sqlca->sqlcode = ECPG_DUPLICATE_KEY;
142+
sqlca->sqlcode = INFORMIX_MODE(compat) ? ECPG_INFORMIX_DUPLICATE_KEY : ECPG_DUPLICATE_KEY;
143143
else if (strncmp(str, "ERROR: More than one tuple returned by a subselect", strlen("ERROR: More than one tuple returned by a subselect")) == 0)
144-
sqlca->sqlcode = ECPG_SUBSELECT_NOT_ONE;
144+
sqlca->sqlcode = INFORMIX_MODE(compat) ? ECPG_INFORMIX_SUBSELECT_NOT_ONE : ECPG_SUBSELECT_NOT_ONE;
145145

146146
break;
147147
}

0 commit comments

Comments
 (0)