From 23e4fc18a77a2b509302808d97c8fb6fc101ce4b Mon Sep 17 00:00:00 2001 From: Michael Meskes <meskes@postgresql.org> Date: Fri, 4 Jul 2003 11:30:48 +0000 Subject: [PATCH] Fixed informix behaviour for select without into. --- src/interfaces/ecpg/ChangeLog | 5 +++++ src/interfaces/ecpg/ecpglib/execute.c | 13 +++++++------ src/interfaces/ecpg/test/test_informix.pgc | 6 ++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog index ad428b5da01..fff7d1301ad 100644 --- a/src/interfaces/ecpg/ChangeLog +++ b/src/interfaces/ecpg/ChangeLog @@ -1541,6 +1541,11 @@ Tue Jul 1 11:57:56 CEST 2003 - Added a new data type "decimal" which is mostly the same as our "numeric" but uses a fixed length array to store the digits. This is for compatibility with Informix and maybe others. + +Wed Jul 2 09:45:59 CEST 2003 + + - Fixed initialization bug in compatlib. + - Added postgres_fe.h to all files in pgtypeslib. - Set ecpg version to 3.0.0 - Set ecpg library to 4.0.0 - Set pgtypes library to 1.0.0 diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c index bc945a442c1..87d528533de 100644 --- a/src/interfaces/ecpg/ecpglib/execute.c +++ b/src/interfaces/ecpg/ecpglib/execute.c @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.14 2003/07/01 12:40:51 meskes Exp $ */ +/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.15 2003/07/04 11:30:48 meskes Exp $ */ /* * The aim is to get a simpler inteface to the database routines. @@ -1173,15 +1173,16 @@ ECPGexecute(struct statement * stmt) else for (act_field = 0; act_field < nfields && status; act_field++) { - if (var == NULL) + if (var != NULL) + { + status = ECPGstore_result(results, act_field, stmt, var); + var = var->next; + } + else if (!INFORMIX_MODE(stmt->compat)) { ECPGraise(stmt->lineno, ECPG_TOO_FEW_ARGUMENTS, NULL); return (false); } - - status = ECPGstore_result(results, act_field, stmt, var); - - var = var->next; } if (status && var != NULL) diff --git a/src/interfaces/ecpg/test/test_informix.pgc b/src/interfaces/ecpg/test/test_informix.pgc index fa0de6eb6ef..71d804a3c4d 100644 --- a/src/interfaces/ecpg/test/test_informix.pgc +++ b/src/interfaces/ecpg/test/test_informix.pgc @@ -47,6 +47,12 @@ int main() $delete from test where i=:n; printf("delete: %ld\n", sqlca.sqlcode); + $select 1 from test where i=14; + printf("Exists: %ld\n", sqlca.sqlcode); + + $select 1 from test where i=147; + printf("Does not exist: %ld\n", sqlca.sqlcode); + $commit; $drop table test; $commit; -- GitLab