Skip to content
Snippets Groups Projects
Commit abfa8ae5 authored by Michael Meskes's avatar Michael Meskes
Browse files

Fixed some Informix compat functions so they handle NULL resp. indicators better.

parent 4afcba05
No related branches found
No related tags found
No related merge requests found
...@@ -1563,6 +1563,12 @@ Tue Jul 8 12:34:00 CEST 2003 ...@@ -1563,6 +1563,12 @@ Tue Jul 8 12:34:00 CEST 2003
- Made Informix decimal-ascii conversion honor Informix NULLs. - Made Informix decimal-ascii conversion honor Informix NULLs.
- Informix variable handling didn't cope well with arrays. - Informix variable handling didn't cope well with arrays.
Wed Jul 9 11:45:02 CEST 2003
- Made all Informix functions honor Informix NULLs.
- Extended compatibility functions for INFORMIX handling of DECLARE
statement to work with indicators.
- Set ecpg version to 3.0.0 - Set ecpg version to 3.0.0
- Set ecpg library to 4.0.0 - Set ecpg library to 4.0.0
- Set pgtypes library to 1.0.0 - Set pgtypes library to 1.0.0
......
...@@ -55,6 +55,12 @@ deccall3(Decimal *arg1, Decimal *arg2, Decimal *result, int (*ptr)(Numeric *, Nu ...@@ -55,6 +55,12 @@ deccall3(Decimal *arg1, Decimal *arg2, Decimal *result, int (*ptr)(Numeric *, Nu
Numeric *a1, *a2, *nres; Numeric *a1, *a2, *nres;
int i; int i;
if (risnull(CDECIMALTYPE, (char *)arg1) || risnull(CDECIMALTYPE, (char *)arg2))
{
rsetnull(CDECIMALTYPE, (char *)result);
return 0;
}
if ((a1 = PGTYPESnumeric_new()) == NULL) if ((a1 = PGTYPESnumeric_new()) == NULL)
return -1211; return -1211;
...@@ -191,6 +197,12 @@ deccvdbl(double dbl, Decimal *np) ...@@ -191,6 +197,12 @@ deccvdbl(double dbl, Decimal *np)
Numeric *nres = PGTYPESnumeric_new(); Numeric *nres = PGTYPESnumeric_new();
int result = 1; int result = 1;
if (risnull(CDOUBLETYPE, (char *)&dbl))
{
rsetnull(CDECIMALTYPE, (char *)np);
return 0;
}
if (nres == NULL) if (nres == NULL)
return -1211; return -1211;
...@@ -208,6 +220,12 @@ deccvint(int in, Decimal *np) ...@@ -208,6 +220,12 @@ deccvint(int in, Decimal *np)
Numeric *nres = PGTYPESnumeric_new(); Numeric *nres = PGTYPESnumeric_new();
int result = 1; int result = 1;
if (risnull(CINTTYPE, (char *)&in))
{
rsetnull(CDECIMALTYPE, (char *)np);
return 0;
}
if (nres == NULL) if (nres == NULL)
return -1211; return -1211;
...@@ -225,6 +243,12 @@ deccvlong(long lng, Decimal *np) ...@@ -225,6 +243,12 @@ deccvlong(long lng, Decimal *np)
Numeric *nres = PGTYPESnumeric_new(); Numeric *nres = PGTYPESnumeric_new();
int result = 1; int result = 1;
if (risnull(CLONGTYPE, (char *)&lng))
{
rsetnull(CDECIMALTYPE, (char *)np);
return 0;
}
if (nres == NULL) if (nres == NULL)
return -1211; return -1211;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment