- Added patch by SAKAIDA Masaaki <sakaida@psn.co.jp> to fix segfault.
- Set ecpg version to 2.7.1.
+Wed May 17 07:52:59 CEST 2000
+
+ - Added patch by SAKAIDA Masaaki <sakaida@psn.co.jp> to fix array
+ handling.
+ - Set library version to 3.1.1.
# Copyright (c) 1994, Regents of the University of California
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.65 2000/03/30 11:41:34 meskes Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.66 2000/05/17 06:03:13 meskes Exp $
#
#-------------------------------------------------------------------------
NAME= ecpg
SO_MAJOR_VERSION= 3
-SO_MINOR_VERSION= 1.0
+SO_MINOR_VERSION= 1.1
SRCDIR= @top_srcdir@
include $(SRCDIR)/Makefile.global
#include <stdlib.h>
+#include <string.h>
#include <ecpgtype.h>
#include <ecpglib.h>
ECPGraise(lineno, ECPG_DATA_NOT_ARRAY, NULL);
return (false);
}
- else
- ++pval;
+
+ switch (type)
+ {
+ case ECPGt_char:
+ case ECPGt_unsigned_char:
+ case ECPGt_varchar:
+ break;
+
+ default:
+ pval++;
+ break;
+ }
}
/* We will have to decode the value */
case ECPGt_double:
if (pval)
{
- dres = strtod(pval, &scan_length);
+ if (isarray && *pval == '"')
+ dres = strtod(pval + 1, &scan_length);
+ else
+ dres = strtod(pval, &scan_length);
+
+ if (isarray && *scan_length == '"')
+ scan_length++;
+
if ((isarray && *scan_length != ',' && *scan_length != '}')
|| (!isarray && *scan_length != '\0')) /* Garbage left */
{
LDFLAGS=-g -I /usr/local/pgsql/include -L/usr/local/pgsql/lib -lecpg -lpq
-ECPG=../preproc/ecpg -I../include
+ECPG=/usr/local/pgsql/bin/ecpg -I../include
+#ECPG=../preproc/ecpg -I../include
.SUFFIXES: .pgc .c
$(ECPG) $?
clean:
- rm -f test1 test2 test3 test4 perftest *.c *.o log dyntest dyntest2
+ rm -f test1 test2 test3 test4 perftest *.c log dyntest dyntest2
-
-
exec sql include sqlca;
exec sql whenever sqlerror do PrintAndStop(msg);
strcpy(msg, "commit");
exec sql commit;
- /* Stop automatic transactioning for connection pm. */
- exec sql at pm set autocommit to off;
+ /* Start automatic transactioning for connection pm. */
+ exec sql at pm set autocommit to on;
+ exec sql at pm begin transaction;
strcpy(msg, "select");
exec sql select name, amount, letter into :name, :amount, :letter from "Test";
for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, name[i], i, amount[i],i, letter[i][0]);
- strcpy(msg, "drop");
- exec sql drop table "Test";
- exec sql at pm drop table "Test";
-
strcpy(msg, "commit");
exec sql commit;
exec sql at pm commit;
+ /* Start automatic transactioning for connection main. */
+ exec sql set autocommit to on;
+
+ strcpy(msg, "drop");
+ exec sql drop table "Test";
+ exec sql at pm drop table "Test";
+
strcpy(msg, "disconnect");
exec sql disconnect main;
exec sql disconnect pm;
main ()
{
EXEC SQL BEGIN DECLARE SECTION;
- int i = 3;
+ int i = 1;
int *did = &i;
int a[10] = {9,8,7,6,5,4,3,2,1,0};
char text[10] = "klmnopqrst";
EXEC SQL CREATE TABLE test (f float, i int, a int[10], text char(10), b bool);
- EXEC SQL INSERT INTO test(f,i,a,text,b) VALUES(404.90,1,'{0,1,2,3,4,5,6,7,8,9}','abcdefghij', 'f');
+ EXEC SQL INSERT INTO test(f,i,a,text,b) VALUES(404.90,3,'{0,1,2,3,4,5,6,7,8,9}','abcdefghij', 'f');
EXEC SQL INSERT INTO test(f,i,a,text,b) VALUES(140787.0,2,:a,:text,'t');
printf("Found f=%f text=%10.10s b=%d\n", f, text, b);
- f=14.07;
+ f=140787;
EXEC SQL SELECT a,text
INTO :a,:t
FROM test