mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
- Only use typedefs inside their scope.
- Variables that are out of scope, were not removed all the time. - Make a varchar NULL set everything to 0 when not using indicators. - Synced parser.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.23 2004/05/05 15:03:04 meskes Exp $ */
|
||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/data.c,v 1.24 2004/06/27 12:28:39 meskes Exp $ */
|
||||
|
||||
#define POSTGRES_ECPG_INTERNAL
|
||||
#include "postgres_fe.h"
|
||||
@@ -76,7 +76,10 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
||||
* and 0 if not
|
||||
*/
|
||||
if (PQgetisnull(results, act_tuple, act_field))
|
||||
{
|
||||
printf("MM NULL\n");
|
||||
value_for_indicator = -1;
|
||||
}
|
||||
|
||||
switch (ind_type)
|
||||
{
|
||||
@@ -107,7 +110,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
||||
* Informix has an additional way to specify NULLs
|
||||
* note that this uses special values to denote NULL
|
||||
*/
|
||||
ECPGset_informix_null(type, var + offset * act_tuple);
|
||||
ECPGset_noind_null(type, var + offset * act_tuple);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -411,7 +414,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
||||
if (INFORMIX_MODE(compat))
|
||||
{
|
||||
/* Informix wants its own NULL value here instead of an error */
|
||||
ECPGset_informix_null(ECPGt_numeric, nres);
|
||||
ECPGset_noind_null(ECPGt_numeric, nres);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -454,7 +457,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
||||
if (INFORMIX_MODE(compat))
|
||||
{
|
||||
/* Informix wants its own NULL value here instead of an error */
|
||||
ECPGset_informix_null(ECPGt_interval, ires);
|
||||
ECPGset_noind_null(ECPGt_interval, ires);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -493,7 +496,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
||||
if (INFORMIX_MODE(compat))
|
||||
{
|
||||
/* Informix wants its own NULL value here instead of an error */
|
||||
ECPGset_informix_null(ECPGt_date, &ddres);
|
||||
ECPGset_noind_null(ECPGt_date, &ddres);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -531,7 +534,7 @@ ECPGget_data(const PGresult *results, int act_tuple, int act_field, int lineno,
|
||||
if (INFORMIX_MODE(compat))
|
||||
{
|
||||
/* Informix wants its own NULL value here instead of an error */
|
||||
ECPGset_informix_null(ECPGt_timestamp, &tres);
|
||||
ECPGset_noind_null(ECPGt_timestamp, &tres);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.33 2004/05/05 15:03:04 meskes Exp $ */
|
||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.34 2004/06/27 12:28:40 meskes Exp $ */
|
||||
|
||||
/*
|
||||
* The aim is to get a simpler inteface to the database routines.
|
||||
@@ -532,7 +532,7 @@ ECPGstore_input(const struct statement * stmt, const struct variable * var,
|
||||
case ECPGt_NO_INDICATOR:
|
||||
if (stmt->force_indicator == false)
|
||||
{
|
||||
if (ECPGis_informix_null(var->type, var->value))
|
||||
if (ECPGis_noind_null(var->type, var->value))
|
||||
*tobeinserted_p = "null";
|
||||
}
|
||||
break;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.20 2004/03/14 14:47:33 momjian Exp $ */
|
||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.21 2004/06/27 12:28:40 meskes Exp $ */
|
||||
|
||||
#define POSTGRES_ECPG_INTERNAL
|
||||
#include "postgres_fe.h"
|
||||
@@ -266,7 +266,7 @@ ECPGlog(const char *format,...)
|
||||
}
|
||||
|
||||
void
|
||||
ECPGset_informix_null(enum ECPGttype type, void *ptr)
|
||||
ECPGset_noind_null(enum ECPGttype type, void *ptr)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -301,6 +301,7 @@ ECPGset_informix_null(enum ECPGttype type, void *ptr)
|
||||
break;
|
||||
case ECPGt_varchar:
|
||||
*(((struct ECPGgeneric_varchar *) ptr)->arr) = 0x00;
|
||||
((struct ECPGgeneric_varchar *) ptr)->len = 0;
|
||||
break;
|
||||
case ECPGt_decimal:
|
||||
memset((char *) ptr, 0, sizeof(decimal));
|
||||
@@ -331,7 +332,7 @@ _check(unsigned char *ptr, int length)
|
||||
}
|
||||
|
||||
bool
|
||||
ECPGis_informix_null(enum ECPGttype type, void *ptr)
|
||||
ECPGis_noind_null(enum ECPGttype type, void *ptr)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
|
Reference in New Issue
Block a user