summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2001-12-23 12:17:41 +0000
committerMichael Meskes <meskes@postgresql.org>2001-12-23 12:17:41 +0000
commit988fdce5d1dcb1d5b7381f378079e76127b30882 (patch)
treea2632c4dcab7c2fad7a960d384ef79da6f43ef8d /src/interfaces/ecpg/test
parentaed0c29f7e4626032669ebc3150e5121f36a9b4d (diff)
downloadpostgresql-988fdce5d1dcb1d5b7381f378079e76127b30882.tar.gz
- Removed space_or_nl and line_end from pgc.l.
- Fixed several bugs concerning arrays of structs including a memory allocation bug.
Diffstat (limited to 'src/interfaces/ecpg/test')
-rw-r--r--src/interfaces/ecpg/test/Makefile4
-rw-r--r--src/interfaces/ecpg/test/test1.pgc32
-rw-r--r--src/interfaces/ecpg/test/test2.pgc4
3 files changed, 32 insertions, 8 deletions
diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile
index 5ce77ef9b7..c5b50c6e0f 100644
--- a/src/interfaces/ecpg/test/Makefile
+++ b/src/interfaces/ecpg/test/Makefile
@@ -1,10 +1,10 @@
-# $Header: /cvsroot/pgsql/src/interfaces/ecpg/test/Makefile,v 1.32 2001/11/14 11:11:49 meskes Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/ecpg/test/Makefile,v 1.33 2001/12/23 12:17:41 meskes Exp $
subdir = src/interfaces/ecpg/test
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global
-override CPPFLAGS := -I$(srcdir)/../include $(CPPFLAGS)
+override CPPFLAGS := -I$(srcdir)/../include $(CPPFLAGS) -g
ECPG = ../preproc/ecpg -I$(srcdir)/../include
diff --git a/src/interfaces/ecpg/test/test1.pgc b/src/interfaces/ecpg/test/test1.pgc
index d29b21df43..c0b55b24b0 100644
--- a/src/interfaces/ecpg/test/test1.pgc
+++ b/src/interfaces/ecpg/test/test1.pgc
@@ -1,4 +1,4 @@
-#include <stdlib.h>
+
#include <string.h>
exec sql include sqlca;
@@ -34,6 +34,18 @@ exec sql begin declare section;
int increment=100;
char name[AMOUNT][8];
char letter[AMOUNT][1];
+ struct name_letter_struct
+ {
+ char name[8];
+ int amount;
+ char letter;
+ } name_letter[AMOUNT];
+ struct ind_struct
+ {
+ short a;
+ short b;
+ short c;
+ } ind[AMOUNT];
char command[128];
char *connection="pm";
exec sql end declare section;
@@ -113,16 +125,28 @@ exec sql end declare section;
exec sql at pm insert into "Test" (name, amount, letter) values (:n, :a, :l);
}
+ strcpy(msg, "commit");
+ exec sql at pm commit;
+
strcpy(msg, "select");
exec sql at :connection select name, amount, letter into :name, :amount, :letter from "Test";
- printf("Database: pm\n");
+ printf("Database: %s\n", connection);
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, "select");
+ exec sql at pm select name, amount, letter into :name_letter from "Test";
+
strcpy(msg, "commit");
exec sql commit;
- exec sql at pm commit;
+
+ strcpy(msg, "select");
+ exec sql at pm select name, amount, letter into :name_letter:ind from "Test";
+
+ printf("Database: pm\n");
+ for (i=0, j=sqlca.sqlerrd[2]; i<j; i++)
+ printf("name[%d]=%8.8s\tamount[%d]=%d\tletter[%d]=%c\n", i, name_letter[i].name, i, name_letter[i].amount,i, name_letter[i].letter);
/* Start automatic transactioning for connection main. */
exec sql set autocommit to on;
diff --git a/src/interfaces/ecpg/test/test2.pgc b/src/interfaces/ecpg/test/test2.pgc
index 299250dfa5..c624de2625 100644
--- a/src/interfaces/ecpg/test/test2.pgc
+++ b/src/interfaces/ecpg/test/test2.pgc
@@ -69,9 +69,9 @@ exec sql end declare section;
strcpy(msg, "fetch");
exec sql fetch cur into :p:i, :married:ind_married, :children.integer:ind_children.smallint;
printf("%8.8s", personal.name.arr);
- if (ind_personal.ind_birth.born >= 0)
+ if (i->ind_birth.born >= 0)
printf(", born %ld", personal.birth.born);
- if (ind_personal.ind_birth.age >= 0)
+ if (i->ind_birth.age >= 0)
printf(", age = %d", personal.birth.age);
if ((long)ind_married >= 0)
printf(", married %s", married);