int ret = 0;
numeric *result;
+ rsetnull(CDECIMALTYPE, (char *) np);
if (risnull(CSTRINGTYPE, cp))
- {
- rsetnull(CDECIMALTYPE, (char *) np);
return 0;
- }
if (!str)
ret = -1201;
numeric *nres = PGTYPESnumeric_new();
int result = 1;
+ rsetnull(CDECIMALTYPE, (char *) np);
if (risnull(CDOUBLETYPE, (char *) &dbl))
- {
- rsetnull(CDECIMALTYPE, (char *) np);
return 0;
- }
if (nres == NULL)
return -1211;
numeric *nres = PGTYPESnumeric_new();
int result = 1;
+ rsetnull(CDECIMALTYPE, (char *) np);
if (risnull(CINTTYPE, (char *) &in))
- {
- rsetnull(CDECIMALTYPE, (char *) np);
return 0;
- }
if (nres == NULL)
return -1211;
numeric *nres = PGTYPESnumeric_new();
int result = 1;
+ rsetnull(CDECIMALTYPE, (char *) np);
if (risnull(CLONGTYPE, (char *) &lng))
- {
- rsetnull(CDECIMALTYPE, (char *) np);
return 0;
- }
if (nres == NULL)
return -1211;
if (nres == NULL)
return -1211;
+ rsetnull(CSTRINGTYPE, (char *) cp);
if (risnull(CDECIMALTYPE, (char *) np))
- {
- rsetnull(CSTRINGTYPE, (char *) cp);
return 0;
- }
if (PGTYPESnumeric_from_decimal(np, nres) != 0)
return -1211;
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.18 2003/09/18 13:12:23 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.19 2003/09/19 14:06:21 meskes Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
{
/* Informix wants its own NULL value here instead of an error */
ECPGset_informix_null(ECPGt_numeric, &nres);
- return (true);
}
else
{
return (false);
}
}
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if ((isarray && *scan_length != ',' && *scan_length != '}')
- || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ else
{
- ECPGraise(lineno, ECPG_NUMERIC_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
+ if ((isarray && *scan_length != ',' && *scan_length != '}')
+ || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ {
+ ECPGraise(lineno, ECPG_NUMERIC_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
}
}
else
{
/* Informix wants its own NULL value here instead of an error */
ECPGset_informix_null(ECPGt_interval, &ires);
- return (true);
}
else
{
return (false);
}
}
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if ((isarray && *scan_length != ',' && *scan_length != '}')
- || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ else
{
- ECPGraise(lineno, ECPG_INTERVAL_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
+ if ((isarray && *scan_length != ',' && *scan_length != '}')
+ || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ {
+ ECPGraise(lineno, ECPG_INTERVAL_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
}
}
else
{
/* Informix wants its own NULL value here instead of an error */
ECPGset_informix_null(ECPGt_date, &ddres);
- return (true);
}
else
{
return (false);
}
}
-
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if ((isarray && *scan_length != ',' && *scan_length != '}')
- || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ else
{
- ECPGraise(lineno, ECPG_DATE_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
+ if ((isarray && *scan_length != ',' && *scan_length != '}')
+ || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ {
+ ECPGraise(lineno, ECPG_DATE_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
}
*((date *) (var + offset * act_tuple)) = ddres;
{
/* Informix wants its own NULL value here instead of an error */
ECPGset_informix_null(ECPGt_timestamp, &tres);
- return (true);
}
else
{
return (false);
}
}
- if (isarray && *scan_length == '"')
- scan_length++;
-
- if ((isarray && *scan_length != ',' && *scan_length != '}')
- || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ else
{
- ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
- return (false);
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
+ if ((isarray && *scan_length != ',' && *scan_length != '}')
+ || (!isarray && *scan_length != '\0' && *scan_length != ' ')) /* Garbage left */
+ {
+ ECPGraise(lineno, ECPG_TIMESTAMP_FORMAT, ECPG_SQLSTATE_DATATYPE_MISMATCH, pval);
+ return (false);
+ }
}
*((timestamp *) (var + offset * act_tuple)) = tres;
#include <pgtypes_timestamp.h>
#include <pgtypes_interval.h>
-#ifndef dtime_t
-#define dtime_t timestamp
-#endif /* dtime_t */
-
-#ifndef intrvl_t
-#define intrvl_t interval
-#endif /* intrvl_t */
+typedef timestamp dtime_t;
+typedef interval intrvl_t;
extern void dtcurrent(dtime_t *);
extern int dtcvasc(char *, dtime_t *);
#include <pgtypes_numeric.h>
-#ifndef dec_t
-#define dec_t decimal
-#endif /* dec_t */
+typedef decimal dec_t;
int decadd(dec_t *, dec_t *, dec_t *);
int deccmp(dec_t *, dec_t *);
#include <decimal.h>
#include <datetime.h>
#include <ecpglib.h>
+#include <pgtypes_date.h>
#define SQLNOTFOUND 100
-#ifndef date
-#define date long
-#endif /* ! date */
-
extern int rdatestr(date, char *);
-extern void rtoday(date *);
+extern void rtoday(date *);
extern int rjulmdy(date, short *);
extern int rdefmtdate(date *, char *, char *);
extern int rfmtdate(date, char *, char *);
#include <pgtypes_timestamp.h>
-#define date long
+typedef long date;
extern date PGTYPESdate_from_asc(char *, char **);
extern char *PGTYPESdate_to_asc(date);
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.255 2003/09/18 13:12:23 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.256 2003/09/19 14:06:21 meskes Exp $ */
/* Copyright comment */
%{
original_var = ptr->variable->name;
sprintf(temp, "%d))", ecpg_informix_var);
- /* create call to "ECPG_informix_set_var(<counter>, <pointer>. <linen number>)" */
if (atoi(ptr->variable->type->size) > 1)
{
ptr->variable = new_variable(cat_str(4, make_str("("), mm_strdup(ECPGtype_name(ptr->variable->type->type)), make_str(" *)(ECPG_informix_get_var("), mm_strdup(temp)), ECPGmake_simple_type(ptr->variable->type->type, ptr->variable->type->size), 0);
ptr->variable = new_variable(cat_str(4, make_str("*("), mm_strdup(ECPGtype_name(ptr->variable->type->type)), make_str(" *)(ECPG_informix_get_var("), mm_strdup(temp)), ECPGmake_simple_type(ptr->variable->type->type, ptr->variable->type->size), 0);
sprintf(temp, "%d, &(", ecpg_informix_var++);
}
+
+ /* create call to "ECPG_informix_set_var(<counter>, <pointer>. <linen number>)" */
result = cat_str(5, result, make_str("ECPG_informix_set_var("), mm_strdup(temp), mm_strdup(original_var), make_str("), __LINE__);\n"));
/* now the indicator if there is one */