1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-22 12:22:45 +03:00

*** empty log message ***

This commit is contained in:
Michael Meskes
2000-02-16 11:52:25 +00:00
parent 68be513f8b
commit 5933f1857f
7 changed files with 131 additions and 31 deletions

View File

@@ -6,13 +6,13 @@
# Copyright (c) 1994, Regents of the University of California
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.56 2000/01/18 13:03:47 meskes Exp $
# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.57 2000/02/16 11:52:24 meskes Exp $
#
#-------------------------------------------------------------------------
NAME= ecpg
SO_MAJOR_VERSION= 3
SO_MINOR_VERSION= 0.10
SO_MINOR_VERSION= 1.0
SRCDIR= @top_srcdir@
include $(SRCDIR)/Makefile.global

View File

@@ -414,7 +414,7 @@ ECPGexecute(struct statement * stmt)
char *mallocedval = NULL;
char *tobeinserted = NULL;
char *p;
char buff[20];
char buff[20];
/*
* Some special treatment is needed for records since we want
@@ -450,49 +450,132 @@ ECPGexecute(struct statement * stmt)
{
switch (var->type)
{
int element;
case ECPGt_short:
sprintf(buff, "%d", *(short *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%d,", ((short *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_int:
sprintf(buff, "%d", *(int *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%d,", ((int *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_unsigned_short:
sprintf(buff, "%d", *(unsigned short *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%d,", ((unsigned short *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_unsigned_int:
sprintf(buff, "%d", *(unsigned int *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%d,", ((unsigned int *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_long:
sprintf(buff, "%ld", *(long *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%ld,", ((long *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_unsigned_long:
sprintf(buff, "%ld", *(unsigned long *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%ld,", ((unsigned long *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_float:
sprintf(buff, "%.14g", *(float *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%.14g,", ((float *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_double:
sprintf(buff, "%.14g", *(double *) var->value);
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%.14g,", ((double *) var->value)[element]);
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_bool:
sprintf(buff, "'%c'", (*(char *) var->value ? 't' : 'f'));
tobeinserted = buff;
if (!(mallocedval = ecpg_alloc(var->arrsize * 20, stmt->lineno)))
return false;
sprintf(mallocedval, "%s", (var->arrsize > 1) ? "'{" : "");
for (element = 0; element < var->arrsize; element++)
sprintf(mallocedval + strlen(mallocedval), "%c,", (((char *) var->value)[element]) ? 't' : 'f');
sprintf(mallocedval + strlen(mallocedval) - 1, "%s", (var->arrsize > 1) ? "}'" : "");
tobeinserted = mallocedval;
break;
case ECPGt_char: