diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 98148eba9e..e0879293e6 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -1919,11 +1919,23 @@ EXEC SQL SELECT started, duration INTO :ts1, :iv1 FROM datetbl WHERE d=:date1; PGTYPEStimestamp_add_interval(&ts1, &iv1, &tsout); out = PGTYPEStimestamp_to_asc(&tsout); printf("Started + duration: %s\n", out); -free(out); +PGTYPESchar_free(out); ]]> + + Character Strings + + Some functions such as PGTYPESnumeric_to_asc return + a pointer to a freshly allocated character string. These results should be + freed with PGTYPESchar_free instead of + free. (This is important only on Windows, where + memory allocation and release sometimes need to be done by the same + library.) + + + The numeric Type @@ -1997,6 +2009,7 @@ char *PGTYPESnumeric_to_asc(numeric *num, int dscale); The numeric value will be printed with dscale decimal digits, with rounding applied if necessary. + The result must be freed with PGTYPESchar_free(). @@ -2384,9 +2397,10 @@ date PGTYPESdate_from_asc(char *str, char **endptr); char *PGTYPESdate_to_asc(date dDate); - The function receives the date dDate as its only parameter. - It will output the date in the form 1999-01-18, i.e., in the - YYYY-MM-DD format. + The function receives the date dDate as its only parameter. + It will output the date in the form 1999-01-18, i.e., in the + YYYY-MM-DD format. + The result must be freed with PGTYPESchar_free(). @@ -2809,6 +2823,7 @@ char *PGTYPEStimestamp_to_asc(timestamp tstamp); The function receives the timestamp tstamp as its only argument and returns an allocated string that contains the textual representation of the timestamp. + The result must be freed with PGTYPESchar_free(). @@ -3317,6 +3332,7 @@ char *PGTYPESinterval_to_asc(interval *span); The function converts the interval variable that span points to into a C char*. The output looks like this example: @ 1 day 12 hours 59 mins 10 secs. + The result must be freed with PGTYPESchar_free(). diff --git a/src/interfaces/ecpg/include/Makefile b/src/interfaces/ecpg/include/Makefile index e92e56f26f..9c68bf3c47 100644 --- a/src/interfaces/ecpg/include/Makefile +++ b/src/interfaces/ecpg/include/Makefile @@ -14,7 +14,7 @@ install: all installdirs install-headers .PHONY: install-headers ecpg_headers = ecpgerrno.h ecpglib.h ecpgtype.h sqlca.h sql3types.h ecpg_informix.h \ - pgtypes_error.h pgtypes_numeric.h pgtypes_timestamp.h pgtypes_date.h pgtypes_interval.h \ + pgtypes_error.h pgtypes_numeric.h pgtypes_timestamp.h pgtypes_date.h pgtypes_interval.h pgtypes.h \ sqlda.h sqlda-compat.h sqlda-native.h informix_headers = datetime.h decimal.h sqltypes.h diff --git a/src/interfaces/ecpg/include/pgtypes.h b/src/interfaces/ecpg/include/pgtypes.h new file mode 100644 index 0000000000..dbf759b45f --- /dev/null +++ b/src/interfaces/ecpg/include/pgtypes.h @@ -0,0 +1,17 @@ +/* src/interfaces/ecpg/include/pgtypes.h */ + +#ifndef PGTYPES_H +#define PGTYPES_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +extern void PGTYPESchar_free(char *ptr); + +#ifdef __cplusplus +} +#endif + +#endif /* PGTYPES_H */ diff --git a/src/interfaces/ecpg/include/pgtypes_date.h b/src/interfaces/ecpg/include/pgtypes_date.h index b8990bb072..80629e1952 100644 --- a/src/interfaces/ecpg/include/pgtypes_date.h +++ b/src/interfaces/ecpg/include/pgtypes_date.h @@ -3,6 +3,7 @@ #ifndef PGTYPES_DATETIME #define PGTYPES_DATETIME +#include #include typedef long date; diff --git a/src/interfaces/ecpg/include/pgtypes_interval.h b/src/interfaces/ecpg/include/pgtypes_interval.h index deac6a2e01..517fc335b4 100644 --- a/src/interfaces/ecpg/include/pgtypes_interval.h +++ b/src/interfaces/ecpg/include/pgtypes_interval.h @@ -4,6 +4,7 @@ #define PGTYPES_INTERVAL #include +#include #ifndef C_H diff --git a/src/interfaces/ecpg/include/pgtypes_numeric.h b/src/interfaces/ecpg/include/pgtypes_numeric.h index 1b9e4c35e4..03c8a7c5e4 100644 --- a/src/interfaces/ecpg/include/pgtypes_numeric.h +++ b/src/interfaces/ecpg/include/pgtypes_numeric.h @@ -1,6 +1,8 @@ #ifndef PGTYPES_NUMERIC #define PGTYPES_NUMERIC +#include + #define NUMERIC_POS 0x0000 #define NUMERIC_NEG 0x4000 #define NUMERIC_NAN 0xC000 diff --git a/src/interfaces/ecpg/include/pgtypes_timestamp.h b/src/interfaces/ecpg/include/pgtypes_timestamp.h index 537585ce21..f418d19dcb 100644 --- a/src/interfaces/ecpg/include/pgtypes_timestamp.h +++ b/src/interfaces/ecpg/include/pgtypes_timestamp.h @@ -3,6 +3,7 @@ #ifndef PGTYPES_TIMESTAMP #define PGTYPES_TIMESTAMP +#include /* pgtypes_interval.h includes ecpg_config.h */ #include diff --git a/src/interfaces/ecpg/pgtypeslib/common.c b/src/interfaces/ecpg/pgtypeslib/common.c index fd29e30a3b..7adca66618 100644 --- a/src/interfaces/ecpg/pgtypeslib/common.c +++ b/src/interfaces/ecpg/pgtypeslib/common.c @@ -3,6 +3,7 @@ #include "postgres_fe.h" #include "extern.h" +#include "pgtypes.h" /* Return value is zero-filled. */ char * @@ -136,3 +137,12 @@ pgtypes_fmt_replace(union un_fmt_comb replace_val, int replace_type, char **outp } return 0; } + +/* Functions declared in pgtypes.h. */ + +/* Just frees memory (mostly needed for Windows) */ +void +PGTYPESchar_free(char *ptr) +{ + free(ptr); +} diff --git a/src/interfaces/ecpg/pgtypeslib/exports.txt b/src/interfaces/ecpg/pgtypeslib/exports.txt index 70ef01a8a7..2d5ec17656 100644 --- a/src/interfaces/ecpg/pgtypeslib/exports.txt +++ b/src/interfaces/ecpg/pgtypeslib/exports.txt @@ -45,3 +45,4 @@ PGTYPEStimestamp_from_asc 42 PGTYPEStimestamp_sub 43 PGTYPEStimestamp_sub_interval 44 PGTYPEStimestamp_to_asc 45 +PGTYPESchar_free 46 diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c index 00d43915b2..e7953b3131 100644 --- a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c +++ b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test.c @@ -113,18 +113,18 @@ if (sqlca.sqlcode < 0) sqlprint ( );} text = PGTYPESdate_to_asc(date1); printf ("Date: %s\n", text); - free(text); + PGTYPESchar_free(text); text = PGTYPEStimestamp_to_asc(ts1); printf ("timestamp: %s\n", text); - free(text); + PGTYPESchar_free(text); iv1 = PGTYPESinterval_from_asc("13556 days 12 hours 34 minutes 14 seconds ", NULL); PGTYPESinterval_copy(iv1, &iv2); text = PGTYPESinterval_to_asc(&iv2); printf ("interval: %s\n", text); PGTYPESinterval_free(iv1); - free(text); + PGTYPESchar_free(text); PGTYPESdate_mdyjul(mdy, &date2); printf("m: %d, d: %d, y: %d\n", mdy[0], mdy[1], mdy[2]); @@ -144,7 +144,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_fmt_asc(date1, fmt, out); printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(date1)); printf("Above date in format \"%s\" is \"%s\"\n", fmt, out); - free(text); + PGTYPESchar_free(text); free(out); out = (char*) malloc(48); @@ -164,7 +164,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc1: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmmm. dd. yyyy"; @@ -172,7 +172,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc2: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "yy/mm/dd"; @@ -180,7 +180,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc3: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "yy/mm/dd"; @@ -188,7 +188,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc4: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "dd-mm-yy"; @@ -196,7 +196,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc5: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmddyy"; @@ -204,7 +204,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc6: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmm. dd. yyyy"; @@ -212,7 +212,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc7: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmm. dd. yyyy"; @@ -220,7 +220,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc8: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mm yy dd."; @@ -228,7 +228,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc9: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "yyyy fierj mm dd."; @@ -236,7 +236,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc10: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mm/dd/yy"; @@ -244,28 +244,28 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc12: %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPEStimestamp_current(&ts1); text = PGTYPEStimestamp_to_asc(ts1); /* can't output this in regression mode */ /* printf("timestamp_current: Now: %s\n", text); */ - free(text); + PGTYPESchar_free(text); ts1 = PGTYPEStimestamp_from_asc("96-02-29", NULL); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_to_asc1: %s\n", text); - free(text); + PGTYPESchar_free(text); ts1 = PGTYPEStimestamp_from_asc("1994-02-11 3:10:35", NULL); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_to_asc2: %s\n", text); - free(text); + PGTYPESchar_free(text); ts1 = PGTYPEStimestamp_from_asc("1994-02-11 26:10:35", NULL); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_to_asc3: %s\n", text); - free(text); + PGTYPESchar_free(text); /* abc-03:10:35-def-02/11/94-gh */ /* 12345678901234567890123456789 */ @@ -280,161 +280,161 @@ if (sqlca.sqlcode < 0) sqlprint ( );} i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Jul 22 17:28:44 +0200 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 2000"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 1900"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 1996"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%b %d %H:%M:%S %z %Y"; in = " Jul 31 17:28:44 +0200 1996"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%b %d %H:%M:%S %z %Y"; in = " Jul 32 17:28:44 +0200 1996"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 1997"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%"; in = "Tue Jul 22 17:28:44 +0200 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "a %"; in = "Tue Jul 22 17:28:44 +0200 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%b, %d %H_%M`%S %z %Y"; in = " Jul, 22 17_28 `44 +0200 2003 "; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %%%d %H:%M:%S %Z %Y"; in = "Tue Jul %22 17:28:44 CEST 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %%%d %H:%M:%S %Z %Y"; in = "Tue Jul %22 17:28:44 CEST 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "abc%n %C %B %%%d %H:%M:%S %Z %Y"; in = "abc\n 19 October %22 17:28:44 CEST 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "abc%n %C %B %%%d %H:%M:%S %Z %y"; in = "abc\n 18 October %34 17:28:44 CEST 80"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = ""; in = "abc\n 18 October %34 17:28:44 CEST 80"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = NULL; in = "1980-04-12 3:49:44 "; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, NULL) = %s, error: %d\n", in, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%B %d, %Y. Time: %I:%M%p"; in = "July 14, 1988. Time: 9:15am"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = "September 6 at 01:30 pm in the year 1983"; fmt = "%B %d at %I:%M %p in the year %Y"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = " 1976, July 14. Time: 9:15am"; fmt = "%Y, %B %d. Time: %I:%M %p"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = " 1976, July 14. Time: 9:15 am"; fmt = "%Y, %B %d. Time: %I:%M%p"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = " 1976, P.M. July 14. Time: 9:15"; fmt = "%Y, %P %B %d. Time: %I:%M"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = "1234567890"; fmt = "%s"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); { ECPGtrans(__LINE__, NULL, "rollback"); #line 365 "dt_test.pgc" diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c index 4277c2615d..a90d199128 100644 --- a/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c +++ b/src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c @@ -110,14 +110,14 @@ main(void) text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = PGTYPESdate_from_timestamp(ts1); dc = PGTYPESdate_new(); *dc = date1; text = PGTYPESdate_to_asc(*dc); printf("Date of timestamp: %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESdate_free(dc); for (i = 0; dates[i]; i++) @@ -132,7 +132,7 @@ main(void) i, err ? "-" : text, endptr ? 'N' : 'Y', err ? 'T' : 'F'); - free(text); + PGTYPESchar_free(text); if (!err) { for (j = 0; times[j]; j++) @@ -149,7 +149,7 @@ main(void) if (i != 19 || (j != 3 && j != 4)) printf("TS[%d,%d]: %s\n", i, j, errno ? "-" : text); - free(text); + PGTYPESchar_free(text); free(t); } } @@ -173,13 +173,13 @@ main(void) continue; text = PGTYPESinterval_to_asc(i1); printf("interval[%d]: %s\n", i, text ? text : "-"); - free(text); + PGTYPESchar_free(text); ic = PGTYPESinterval_new(); PGTYPESinterval_copy(i1, ic); text = PGTYPESinterval_to_asc(i1); printf("interval_copy[%d]: %s\n", i, text ? text : "-"); - free(text); + PGTYPESchar_free(text); PGTYPESinterval_free(ic); PGTYPESinterval_free(i1); } diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c index 8019a8f63e..6dad1dc4e4 100644 --- a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c +++ b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test.c @@ -78,7 +78,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESnumeric_from_int(1407, value1); text = PGTYPESnumeric_to_asc(value1, -1); printf("from int = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(value1); value1 = PGTYPESnumeric_from_asc("2369.7", NULL); @@ -87,12 +87,12 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESnumeric_add(value1, value2, res); text = PGTYPESnumeric_to_asc(res, -1); printf("add = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_sub(res, value2, res); text = PGTYPESnumeric_to_asc(res, -1); printf("sub = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(value2); des = PGTYPESnumeric_new(); @@ -122,7 +122,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} PGTYPESnumeric_mul(res, des, res); text = PGTYPESnumeric_to_asc(res, -1); printf("mul = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(des); value2 = PGTYPESnumeric_from_asc("10000", NULL); @@ -139,7 +139,7 @@ if (sqlca.sqlcode < 0) sqlprint ( );} i = PGTYPESnumeric_to_long(value1, &l1) | PGTYPESnumeric_to_long(value2, &l2); printf("to long(%d) = %ld %ld\n", i, l1, l2); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(value1); PGTYPESnumeric_free(value2); PGTYPESnumeric_free(res); diff --git a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c index 83636ad880..d47997c3c9 100644 --- a/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c +++ b/src/interfaces/ecpg/test/expected/pgtypeslib-num_test2.c @@ -77,21 +77,21 @@ main(void) text = PGTYPESnumeric_to_asc(num, -1); if (!text) check_errno(); - printf("num[%d,1]: %s\n", i, text); free(text); + printf("num[%d,1]: %s\n", i, text); PGTYPESchar_free(text); text = PGTYPESnumeric_to_asc(num, 0); if (!text) check_errno(); - printf("num[%d,2]: %s\n", i, text); free(text); + printf("num[%d,2]: %s\n", i, text); PGTYPESchar_free(text); text = PGTYPESnumeric_to_asc(num, 1); if (!text) check_errno(); - printf("num[%d,3]: %s\n", i, text); free(text); + printf("num[%d,3]: %s\n", i, text); PGTYPESchar_free(text); text = PGTYPESnumeric_to_asc(num, 2); if (!text) check_errno(); - printf("num[%d,4]: %s\n", i, text); free(text); + printf("num[%d,4]: %s\n", i, text); PGTYPESchar_free(text); nin = PGTYPESnumeric_new(); text = PGTYPESnumeric_to_asc(nin, 2); if (!text) check_errno(); - printf("num[%d,5]: %s\n", i, text); free(text); + printf("num[%d,5]: %s\n", i, text); PGTYPESchar_free(text); r = PGTYPESnumeric_to_long(num, &l); if (r) check_errno(); @@ -103,7 +103,7 @@ main(void) text = PGTYPESnumeric_to_asc(nin, 2); q = PGTYPESnumeric_cmp(num, nin); printf("num[%d,7]: %s (r: %d - cmp: %d)\n", i, text, r, q); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_to_int(num, &k); @@ -116,7 +116,7 @@ main(void) text = PGTYPESnumeric_to_asc(nin, 2); q = PGTYPESnumeric_cmp(num, nin); printf("num[%d,9]: %s (r: %d - cmp: %d)\n", i, text, r, q); - free(text); + PGTYPESchar_free(text); } if (i != 6) @@ -147,7 +147,7 @@ main(void) text = PGTYPESnumeric_to_asc(nin, 2); q = PGTYPESnumeric_cmp(num, nin); printf("num[%d,12]: %s (r: %d - cmp: %d)\n", i, text, r, q); - free(text); + PGTYPESchar_free(text); } PGTYPESdecimal_free(dec); @@ -173,7 +173,7 @@ main(void) { text = PGTYPESnumeric_to_asc(a, 10); printf("num[a,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_sub(numarr[i], numarr[j], s); if (r) @@ -185,7 +185,7 @@ main(void) { text = PGTYPESnumeric_to_asc(s, 10); printf("num[s,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_mul(numarr[i], numarr[j], m); if (r) @@ -197,7 +197,7 @@ main(void) { text = PGTYPESnumeric_to_asc(m, 10); printf("num[m,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_div(numarr[i], numarr[j], d); if (r) @@ -209,7 +209,7 @@ main(void) { text = PGTYPESnumeric_to_asc(d, 10); printf("num[d,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } PGTYPESnumeric_free(a); @@ -223,7 +223,7 @@ main(void) { text = PGTYPESnumeric_to_asc(numarr[i], -1); printf("%d: %s\n", i, text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(numarr[i]); } free(numarr); diff --git a/src/interfaces/ecpg/test/expected/preproc-outofscope.c b/src/interfaces/ecpg/test/expected/preproc-outofscope.c index fc7043bcdc..1a5e594831 100644 --- a/src/interfaces/ecpg/test/expected/preproc-outofscope.c +++ b/src/interfaces/ecpg/test/expected/preproc-outofscope.c @@ -28,6 +28,8 @@ #ifndef PGTYPES_NUMERIC #define PGTYPES_NUMERIC +#include + #define NUMERIC_POS 0x0000 #define NUMERIC_NEG 0x4000 #define NUMERIC_NAN 0xC000 diff --git a/src/interfaces/ecpg/test/expected/sql-sqlda.c b/src/interfaces/ecpg/test/expected/sql-sqlda.c index c203e56c4e..15cb1d2a90 100644 --- a/src/interfaces/ecpg/test/expected/sql-sqlda.c +++ b/src/interfaces/ecpg/test/expected/sql-sqlda.c @@ -50,6 +50,8 @@ typedef struct sqlda_struct sqlda_t; #ifndef PGTYPES_NUMERIC #define PGTYPES_NUMERIC +#include + #define NUMERIC_POS 0x0000 #define NUMERIC_NEG 0x4000 #define NUMERIC_NAN 0xC000 @@ -166,7 +168,7 @@ dump_sqlda(sqlda_t *sqlda) val = PGTYPESnumeric_to_asc((numeric*)sqlda->sqlvar[i].sqldata, -1); printf("name sqlda descriptor: '%s' value NUMERIC '%s'\n", sqlda->sqlvar[i].sqlname.data, val); - free(val); + PGTYPESchar_free(val); break; } } diff --git a/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc b/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc index 768cbd5e6f..6cc2983c3b 100644 --- a/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc +++ b/src/interfaces/ecpg/test/pgtypeslib/dt_test.pgc @@ -39,18 +39,18 @@ main(void) text = PGTYPESdate_to_asc(date1); printf ("Date: %s\n", text); - free(text); + PGTYPESchar_free(text); text = PGTYPEStimestamp_to_asc(ts1); printf ("timestamp: %s\n", text); - free(text); + PGTYPESchar_free(text); iv1 = PGTYPESinterval_from_asc("13556 days 12 hours 34 minutes 14 seconds ", NULL); PGTYPESinterval_copy(iv1, &iv2); text = PGTYPESinterval_to_asc(&iv2); printf ("interval: %s\n", text); PGTYPESinterval_free(iv1); - free(text); + PGTYPESchar_free(text); PGTYPESdate_mdyjul(mdy, &date2); printf("m: %d, d: %d, y: %d\n", mdy[0], mdy[1], mdy[2]); @@ -70,7 +70,7 @@ main(void) PGTYPESdate_fmt_asc(date1, fmt, out); printf("date_day of %s is %d\n", text, PGTYPESdate_dayofweek(date1)); printf("Above date in format \"%s\" is \"%s\"\n", fmt, out); - free(text); + PGTYPESchar_free(text); free(out); out = (char*) malloc(48); @@ -90,7 +90,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc1: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmmm. dd. yyyy"; @@ -98,7 +98,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc2: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "yy/mm/dd"; @@ -106,7 +106,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc3: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "yy/mm/dd"; @@ -114,7 +114,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc4: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "dd-mm-yy"; @@ -122,7 +122,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc5: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmddyy"; @@ -130,7 +130,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc6: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmm. dd. yyyy"; @@ -138,7 +138,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc7: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mmm. dd. yyyy"; @@ -146,7 +146,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc8: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mm yy dd."; @@ -154,7 +154,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc9: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "yyyy fierj mm dd."; @@ -162,7 +162,7 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc10: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = 0; text = ""; fmt = "mm/dd/yy"; @@ -170,28 +170,28 @@ main(void) PGTYPESdate_defmt_asc(&date1, fmt, in); text = PGTYPESdate_to_asc(date1); printf("date_defmt_asc12: %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPEStimestamp_current(&ts1); text = PGTYPEStimestamp_to_asc(ts1); /* can't output this in regression mode */ /* printf("timestamp_current: Now: %s\n", text); */ - free(text); + PGTYPESchar_free(text); ts1 = PGTYPEStimestamp_from_asc("96-02-29", NULL); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_to_asc1: %s\n", text); - free(text); + PGTYPESchar_free(text); ts1 = PGTYPEStimestamp_from_asc("1994-02-11 3:10:35", NULL); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_to_asc2: %s\n", text); - free(text); + PGTYPESchar_free(text); ts1 = PGTYPEStimestamp_from_asc("1994-02-11 26:10:35", NULL); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_to_asc3: %s\n", text); - free(text); + PGTYPESchar_free(text); /* abc-03:10:35-def-02/11/94-gh */ /* 12345678901234567890123456789 */ @@ -206,161 +206,161 @@ main(void) i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Jul 22 17:28:44 +0200 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 2000"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 1900"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 1996"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%b %d %H:%M:%S %z %Y"; in = " Jul 31 17:28:44 +0200 1996"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%b %d %H:%M:%S %z %Y"; in = " Jul 32 17:28:44 +0200 1996"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %d %H:%M:%S %z %Y"; in = "Tue Feb 29 17:28:44 +0200 1997"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%"; in = "Tue Jul 22 17:28:44 +0200 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "a %"; in = "Tue Jul 22 17:28:44 +0200 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%b, %d %H_%M`%S %z %Y"; in = " Jul, 22 17_28 `44 +0200 2003 "; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %%%d %H:%M:%S %Z %Y"; in = "Tue Jul %22 17:28:44 CEST 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%a %b %%%d %H:%M:%S %Z %Y"; in = "Tue Jul %22 17:28:44 CEST 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "abc%n %C %B %%%d %H:%M:%S %Z %Y"; in = "abc\n 19 October %22 17:28:44 CEST 2003"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = "abc%n %C %B %%%d %H:%M:%S %Z %y"; in = "abc\n 18 October %34 17:28:44 CEST 80"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = ""; in = "abc\n 18 October %34 17:28:44 CEST 80"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error (should be error!): %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); fmt = NULL; in = "1980-04-12 3:49:44 "; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, NULL) = %s, error: %d\n", in, text, i); - free(text); + PGTYPESchar_free(text); fmt = "%B %d, %Y. Time: %I:%M%p"; in = "July 14, 1988. Time: 9:15am"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = "September 6 at 01:30 pm in the year 1983"; fmt = "%B %d at %I:%M %p in the year %Y"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = " 1976, July 14. Time: 9:15am"; fmt = "%Y, %B %d. Time: %I:%M %p"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = " 1976, July 14. Time: 9:15 am"; fmt = "%Y, %B %d. Time: %I:%M%p"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = " 1976, P.M. July 14. Time: 9:15"; fmt = "%Y, %P %B %d. Time: %I:%M"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); in = "1234567890"; fmt = "%s"; i = PGTYPEStimestamp_defmt_asc(in, fmt, &ts1); text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp_defmt_asc(%s, %s) = %s, error: %d\n", in, fmt, text, i); - free(text); + PGTYPESchar_free(text); exec sql rollback; exec sql disconnect; diff --git a/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc b/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc index 0bd1fec109..ebdd7caa1e 100644 --- a/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc +++ b/src/interfaces/ecpg/test/pgtypeslib/dt_test2.pgc @@ -75,14 +75,14 @@ main(void) text = PGTYPEStimestamp_to_asc(ts1); printf("timestamp: %s\n", text); - free(text); + PGTYPESchar_free(text); date1 = PGTYPESdate_from_timestamp(ts1); dc = PGTYPESdate_new(); *dc = date1; text = PGTYPESdate_to_asc(*dc); printf("Date of timestamp: %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESdate_free(dc); for (i = 0; dates[i]; i++) @@ -97,7 +97,7 @@ main(void) i, err ? "-" : text, endptr ? 'N' : 'Y', err ? 'T' : 'F'); - free(text); + PGTYPESchar_free(text); if (!err) { for (j = 0; times[j]; j++) @@ -114,7 +114,7 @@ main(void) if (i != 19 || (j != 3 && j != 4)) printf("TS[%d,%d]: %s\n", i, j, errno ? "-" : text); - free(text); + PGTYPESchar_free(text); free(t); } } @@ -138,13 +138,13 @@ main(void) continue; text = PGTYPESinterval_to_asc(i1); printf("interval[%d]: %s\n", i, text ? text : "-"); - free(text); + PGTYPESchar_free(text); ic = PGTYPESinterval_new(); PGTYPESinterval_copy(i1, ic); text = PGTYPESinterval_to_asc(i1); printf("interval_copy[%d]: %s\n", i, text ? text : "-"); - free(text); + PGTYPESchar_free(text); PGTYPESinterval_free(ic); PGTYPESinterval_free(i1); } diff --git a/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc b/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc index a024c8702f..0b5de558eb 100644 --- a/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc +++ b/src/interfaces/ecpg/test/pgtypeslib/num_test.pgc @@ -38,7 +38,7 @@ main(void) PGTYPESnumeric_from_int(1407, value1); text = PGTYPESnumeric_to_asc(value1, -1); printf("from int = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(value1); value1 = PGTYPESnumeric_from_asc("2369.7", NULL); @@ -47,12 +47,12 @@ main(void) PGTYPESnumeric_add(value1, value2, res); text = PGTYPESnumeric_to_asc(res, -1); printf("add = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_sub(res, value2, res); text = PGTYPESnumeric_to_asc(res, -1); printf("sub = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(value2); des = PGTYPESnumeric_new(); @@ -68,7 +68,7 @@ main(void) PGTYPESnumeric_mul(res, des, res); text = PGTYPESnumeric_to_asc(res, -1); printf("mul = %s\n", text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(des); value2 = PGTYPESnumeric_from_asc("10000", NULL); @@ -85,7 +85,7 @@ main(void) i = PGTYPESnumeric_to_long(value1, &l1) | PGTYPESnumeric_to_long(value2, &l2); printf("to long(%d) = %ld %ld\n", i, l1, l2); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(value1); PGTYPESnumeric_free(value2); PGTYPESnumeric_free(res); diff --git a/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc b/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc index 2ac666f7c0..adcc8b9140 100644 --- a/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc +++ b/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc @@ -59,21 +59,21 @@ main(void) text = PGTYPESnumeric_to_asc(num, -1); if (!text) check_errno(); - printf("num[%d,1]: %s\n", i, text); free(text); + printf("num[%d,1]: %s\n", i, text); PGTYPESchar_free(text); text = PGTYPESnumeric_to_asc(num, 0); if (!text) check_errno(); - printf("num[%d,2]: %s\n", i, text); free(text); + printf("num[%d,2]: %s\n", i, text); PGTYPESchar_free(text); text = PGTYPESnumeric_to_asc(num, 1); if (!text) check_errno(); - printf("num[%d,3]: %s\n", i, text); free(text); + printf("num[%d,3]: %s\n", i, text); PGTYPESchar_free(text); text = PGTYPESnumeric_to_asc(num, 2); if (!text) check_errno(); - printf("num[%d,4]: %s\n", i, text); free(text); + printf("num[%d,4]: %s\n", i, text); PGTYPESchar_free(text); nin = PGTYPESnumeric_new(); text = PGTYPESnumeric_to_asc(nin, 2); if (!text) check_errno(); - printf("num[%d,5]: %s\n", i, text); free(text); + printf("num[%d,5]: %s\n", i, text); PGTYPESchar_free(text); r = PGTYPESnumeric_to_long(num, &l); if (r) check_errno(); @@ -85,7 +85,7 @@ main(void) text = PGTYPESnumeric_to_asc(nin, 2); q = PGTYPESnumeric_cmp(num, nin); printf("num[%d,7]: %s (r: %d - cmp: %d)\n", i, text, r, q); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_to_int(num, &k); @@ -98,7 +98,7 @@ main(void) text = PGTYPESnumeric_to_asc(nin, 2); q = PGTYPESnumeric_cmp(num, nin); printf("num[%d,9]: %s (r: %d - cmp: %d)\n", i, text, r, q); - free(text); + PGTYPESchar_free(text); } if (i != 6) @@ -129,7 +129,7 @@ main(void) text = PGTYPESnumeric_to_asc(nin, 2); q = PGTYPESnumeric_cmp(num, nin); printf("num[%d,12]: %s (r: %d - cmp: %d)\n", i, text, r, q); - free(text); + PGTYPESchar_free(text); } PGTYPESdecimal_free(dec); @@ -155,7 +155,7 @@ main(void) { text = PGTYPESnumeric_to_asc(a, 10); printf("num[a,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_sub(numarr[i], numarr[j], s); if (r) @@ -167,7 +167,7 @@ main(void) { text = PGTYPESnumeric_to_asc(s, 10); printf("num[s,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_mul(numarr[i], numarr[j], m); if (r) @@ -179,7 +179,7 @@ main(void) { text = PGTYPESnumeric_to_asc(m, 10); printf("num[m,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } r = PGTYPESnumeric_div(numarr[i], numarr[j], d); if (r) @@ -191,7 +191,7 @@ main(void) { text = PGTYPESnumeric_to_asc(d, 10); printf("num[d,%d,%d]: %s\n", i, j, text); - free(text); + PGTYPESchar_free(text); } PGTYPESnumeric_free(a); @@ -205,7 +205,7 @@ main(void) { text = PGTYPESnumeric_to_asc(numarr[i], -1); printf("%d: %s\n", i, text); - free(text); + PGTYPESchar_free(text); PGTYPESnumeric_free(numarr[i]); } free(numarr); diff --git a/src/interfaces/ecpg/test/sql/sqlda.pgc b/src/interfaces/ecpg/test/sql/sqlda.pgc index 67f14d6ccb..8e3feaeb19 100644 --- a/src/interfaces/ecpg/test/sql/sqlda.pgc +++ b/src/interfaces/ecpg/test/sql/sqlda.pgc @@ -53,7 +53,7 @@ dump_sqlda(sqlda_t *sqlda) val = PGTYPESnumeric_to_asc((numeric*)sqlda->sqlvar[i].sqldata, -1); printf("name sqlda descriptor: '%s' value NUMERIC '%s'\n", sqlda->sqlvar[i].sqlname.data, val); - free(val); + PGTYPESchar_free(val); break; } }