aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/test2.pgc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/test/test2.pgc')
-rw-r--r--src/interfaces/ecpg/test/test2.pgc23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/interfaces/ecpg/test/test2.pgc b/src/interfaces/ecpg/test/test2.pgc
index ed06f179bc4..568add14634 100644
--- a/src/interfaces/ecpg/test/test2.pgc
+++ b/src/interfaces/ecpg/test/test2.pgc
@@ -5,6 +5,9 @@ exec sql include header_test;
exec sql type c is char reference;
typedef char* c;
+exec sql type ind is union { int integer; short smallinteger; };
+typedef union { int integer; short smallinteger; } ind;
+
int
main ()
{
@@ -18,15 +21,17 @@ exec sql begin declare section;
birthinfo ind_birth;
} ind_personal;
int ind_married;
+ ind children;
+ ind ind_children;
char married[9];
c testname="Petra";
- char *query="select name, born, age, married from meskes where name = :var1";
+ char *query="select name, born, age, married, children from meskes where name = :var1";
exec sql end declare section;
exec sql var ind_married is long;
exec sql declare cur cursor for
- select name, born, age, married from meskes;
+ select name, born, age, married, children from meskes;
char msg[128], command[128];
FILE *dbgs;
@@ -38,11 +43,11 @@ exec sql end declare section;
exec sql connect to unix:postgresql://localhost:5432/mm;
strcpy(msg, "create");
- exec sql create table meskes(name char(8), born integer, age smallint, married char(8));
+ exec sql create table meskes(name char(8), born integer, age smallint, married char(8), children integer);
strcpy(msg, "insert");
- exec sql insert into meskes(name, married) values ('Petra', '19900404');
- exec sql insert into meskes(name, born, age, married) values ('Michael', 19660117, 33, '19900404');
+ exec sql insert into meskes(name, married, children) values ('Petra', '19900404', 3);
+ exec sql insert into meskes(name, born, age, married, children) values ('Michael', 19660117, 33, '19900404', 3);
exec sql insert into meskes(name, born, age) values ('Carsten', 19910103, 8);
exec sql insert into meskes(name, born, age) values ('Marc', 19930907, 5);
exec sql insert into meskes(name, born, age) values ('Chris', 19970923, 1);
@@ -57,7 +62,7 @@ exec sql end declare section;
while (1) {
strcpy(msg, "fetch");
- exec sql fetch in cur into :personal:ind_personal, :married:ind_married;
+ exec sql fetch in cur into :personal:ind_personal, :married:ind_married, :children.integer:ind_children.smallinteger;
printf("%8.8s", personal.name.arr);
if (!ind_personal.ind_birth.born)
printf(", born %d", personal.birth.born);
@@ -65,6 +70,8 @@ exec sql end declare section;
printf(", age = %d", personal.birth.age);
if (!ind_married)
printf(", married %s", married);
+ if (!ind_children.smallinteger)
+ printf(", children = %d", children.integer);
putchar('\n');
}
@@ -82,7 +89,7 @@ exec sql end declare section;
while (1) {
strcpy(msg, "fetch");
- exec sql fetch in prep into :personal:ind_personal, :married:ind_married;
+ exec sql fetch in prep into :personal:ind_personal, :married:ind_married, :children.integer:ind_children.smallinteger;
printf("%8.8s", personal.name.arr);
if (!ind_personal.ind_birth.born)
printf(", born %d", personal.birth.born);
@@ -90,6 +97,8 @@ exec sql end declare section;
printf(", age = %d", personal.birth.age);
if (!ind_married)
printf(", married %s", married);
+ if (!ind_children.smallinteger)
+ printf(", children = %d", children.integer);
putchar('\n');
}