- Fixed port number setting in regression suite.
- Added some interval checks to regression suite.
- Started to cleanup complex tests.
+
+Th 14. Sep 09:47:03 CEST 2006
+
+ - Completely removed complex tests.
+ - Added missing constuctor/destructor for interval and date.
- Set ecpg library version to 5.2.
- Set ecpg version to 4.2.1.
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_date.h,v 1.9 2006/03/11 04:38:39 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_date.h,v 1.10 2006/09/14 08:02:38 meskes Exp $ */
#ifndef PGTYPES_DATETIME
#define PGTYPES_DATETIME
{
#endif
+extern date *PGTYPESdate_new(void);
+extern void PGTYPESdate_free(date *);
extern date PGTYPESdate_from_asc(char *, char **);
extern char *PGTYPESdate_to_asc(date);
extern date PGTYPESdate_from_timestamp(timestamp);
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_interval.h,v 1.11 2006/08/24 10:48:21 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/include/pgtypes_interval.h,v 1.12 2006/09/14 08:02:38 meskes Exp $ */
#ifndef PGTYPES_INTERVAL
#define PGTYPES_INTERVAL
{
#endif
+extern interval *PGTYPESinterval_new(void);
+extern void PGTYPESinterval_free(interval *);
extern interval *PGTYPESinterval_from_asc(char *, char **);
extern char *PGTYPESinterval_to_asc(interval *);
extern int PGTYPESinterval_copy(interval *, interval *);
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/datetime.c,v 1.30 2006/08/15 06:40:19 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/datetime.c,v 1.31 2006/09/14 08:02:38 meskes Exp $ */
#include "postgres_fe.h"
#include "pgtypes_error.h"
#include "pgtypes_date.h"
+date *
+PGTYPESdate_new(void)
+{
+ date *result;
+ result = (date *) pgtypes_alloc(sizeof(date));
+ /* result can be NULL if we run out of memory */
+ return result;
+}
+
+void
+PGTYPESdate_free(date *d)
+{
+ free(d);
+}
+
date
PGTYPESdate_from_timestamp(timestamp dt)
{
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/interval.c,v 1.34 2006/09/05 12:17:09 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/pgtypeslib/interval.c,v 1.35 2006/09/14 08:02:38 meskes Exp $ */
#include "postgres_fe.h"
#include <time.h>
return 0;
} /* tm2interval() */
+interval *
+PGTYPESinterval_new(void)
+{
+ interval *result;
+ result = (interval *) pgtypes_alloc(sizeof(interval));
+ /* result can be NULL if we run out of memory */
+ return result;
+}
+
+void
+PGTYPESinterval_free(interval *intvl)
+{
+ free(intvl);
+}
+
interval *
PGTYPESinterval_from_asc(char *str, char **endptr)
{
+
#line 51 "dt_test2.pgc"
date date1 ;
#line 54 "dt_test2.pgc"
interval * i1 ;
-/* exec sql end declare section */
+
#line 55 "dt_test2.pgc"
+ date * dc ;
+/* exec sql end declare section */
+#line 56 "dt_test2.pgc"
int i, j;
free(text);
date1 = PGTYPESdate_from_timestamp(ts1);
- text = PGTYPESdate_to_asc(date1);
+ dc = PGTYPESdate_new();
+ *dc = date1;
+ text = PGTYPESdate_to_asc(*dc);
printf("Date of timestamp: %s\n", text);
free(text);
+ PGTYPESdate_free(dc);
for (i = 0; dates[i]; i++)
{
for (i = 0; intervals[i]; i++)
{
+ interval *ic;
i1 = PGTYPESinterval_from_asc(intervals[i], &endptr);
if (*endptr)
printf("endptr set to %s\n", endptr);
text = PGTYPESinterval_to_asc(i1);
printf("interval[%d]: %s\n", i, text ? text : "-");
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);
+ PGTYPESinterval_free(ic);
}
return (0);
TS[19,1]: 0099-01-08 01:59:00 BC
TS[19,2]: 0099-01-08 13:24:40 BC
interval[0]: @ 1 min
+interval_copy[0]: @ 1 min
interval[1]: @ 1 day 12 hours 59 mins 10 secs
+interval_copy[1]: @ 1 day 12 hours 59 mins 10 secs
interval[2]: @ 2 days 12 hours 59 mins 10 secs
+interval_copy[2]: @ 2 days 12 hours 59 mins 10 secs
interval[3]: @ 1 day 12 hours 59 mins 10 secs
+interval_copy[3]: @ 1 day 12 hours 59 mins 10 secs
interval[4]: @ 1 day 1 hour 1 min 1 sec
+interval_copy[4]: @ 1 day 1 hour 1 min 1 sec
interval[5]: @ 1 year 59 mins
+interval_copy[5]: @ 1 year 59 mins
Error parsing interval 6
timestamp ts1, ts2;
char *text;
interval *i1;
+ date *dc;
exec sql end declare section;
int i, j;
free(text);
date1 = PGTYPESdate_from_timestamp(ts1);
- text = PGTYPESdate_to_asc(date1);
+ dc = PGTYPESdate_new();
+ *dc = date1;
+ text = PGTYPESdate_to_asc(*dc);
printf("Date of timestamp: %s\n", text);
free(text);
+ PGTYPESdate_free(dc);
for (i = 0; dates[i]; i++)
{
for (i = 0; intervals[i]; i++)
{
+ interval *ic;
i1 = PGTYPESinterval_from_asc(intervals[i], &endptr);
if (*endptr)
printf("endptr set to %s\n", endptr);
text = PGTYPESinterval_to_asc(i1);
printf("interval[%d]: %s\n", i, text ? text : "-");
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);
+ PGTYPESinterval_free(ic);
}
return (0);