]> granicus.if.org Git - postgresql/commitdiff
*** empty log message ***
authorMichael Meskes <meskes@postgresql.org>
Wed, 17 May 2000 06:03:14 +0000 (06:03 +0000)
committerMichael Meskes <meskes@postgresql.org>
Wed, 17 May 2000 06:03:14 +0000 (06:03 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/lib/Makefile.in
src/interfaces/ecpg/lib/data.c
src/interfaces/ecpg/test/Makefile
src/interfaces/ecpg/test/test1.pgc
src/interfaces/ecpg/test/test4.pgc

index 29a59fa320767b21843dafd710515bb915731a08..6f292eeb4c3558dd6213b7fb429b3074a5119b77 100644 (file)
@@ -919,4 +919,9 @@ Mon May 15 10:51:31 CEST 2000
        - 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.
 
index 20f5c314dd1ed5e7569f763566ceb5bb02423cb9..d48c75ea2308b658ed8321c06ed62d6e299caadc 100644 (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.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
index 29675a8972830f42c420e64a1231a03e9f34ae3d..18ac49805bdb16d8ad61606984caf0998a8fcbd8 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdlib.h>
+#include <string.h>
 
 #include <ecpgtype.h>
 #include <ecpglib.h>
@@ -26,8 +27,18 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno,
                        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 */
@@ -144,7 +155,14 @@ get_data(PGresult *results, int act_tuple, int act_field, int lineno,
                        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 */
                                        {
index 72f38035d3ab9be247e19fad034e038233a0e6bb..0b9135a5afbc5a773a6e4a6ec0f192062c237aee 100644 (file)
@@ -2,7 +2,8 @@ all: test1 test2 test3 test4 perftest dyntest dyntest2
 
 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
 
@@ -18,4 +19,4 @@ dyntest2: dyntest2.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
index 67c1aa847fcfd40433d487ec8a6f87625f89bd7d..f98719d56f8ea6dd7fa997e3cec94f277bac3418 100644 (file)
@@ -1,5 +1,3 @@
-
-
 exec sql include sqlca;
 
 exec sql whenever sqlerror do PrintAndStop(msg);
@@ -88,8 +86,9 @@ exec sql end declare section;
        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";
@@ -117,14 +116,17 @@ exec sql end declare section;
         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;
index 0ac00008e495cc122ae006d6a75565fdd61f0854..a45abc1ae6a348d2a2a639494c49de22c31d775e 100644 (file)
@@ -8,7 +8,7 @@ int
 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";
@@ -31,7 +31,7 @@ EXEC SQL END DECLARE SECTION;
 
        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');
        
@@ -48,7 +48,7 @@ EXEC SQL END DECLARE SECTION;
 
        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