From: Michael Meskes Date: Thu, 9 Jan 2014 14:41:51 +0000 (+0100) Subject: Fix descriptor output in ECPG. X-Git-Tag: REL9_4_BETA1~713 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d685e2424967509f004d9eb6d005dfb58e21d837;p=postgresql Fix descriptor output in ECPG. While working on most platforms the old way sometimes created alignment problems. This should fix it. Also the regresion tests were updated to test for the reported case. Report and fix by MauMau --- diff --git a/src/interfaces/ecpg/preproc/type.c b/src/interfaces/ecpg/preproc/type.c index 28184b9f44..c24b4c2fbc 100644 --- a/src/interfaces/ecpg/preproc/type.c +++ b/src/interfaces/ecpg/preproc/type.c @@ -368,7 +368,7 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type, fprintf(o, "\n\tECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, "); else if (type == ECPGt_descriptor) /* remember that name here already contains quotes (if needed) */ - fprintf(o, "\n\tECPGt_descriptor, %s, 0L, 0L, 0L, ", name); + fprintf(o, "\n\tECPGt_descriptor, %s, 1L, 1L, 1L, ", name); else if (type == ECPGt_sqlda) fprintf(o, "\n\tECPGt_sqlda, &%s, 0L, 0L, 0L, ", name); else diff --git a/src/interfaces/ecpg/test/expected/compat_informix-describe.c b/src/interfaces/ecpg/test/expected/compat_informix-describe.c index b4e1b47066..59002fbde6 100644 --- a/src/interfaces/ecpg/test/expected/compat_informix-describe.c +++ b/src/interfaces/ecpg/test/expected/compat_informix-describe.c @@ -174,12 +174,12 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "describe"); { ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1", - ECPGt_descriptor, "desc1", 0L, 0L, 0L, + ECPGt_descriptor, "desc1", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 60 "describe.pgc" { ECPGdescribe(__LINE__, 1, 0, NULL, "st_id1", - ECPGt_descriptor, "desc2", 0L, 0L, 0L, + ECPGt_descriptor, "desc2", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 61 "describe.pgc" @@ -336,12 +336,12 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "describe"); { ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2", - ECPGt_descriptor, "desc1", 0L, 0L, 0L, + ECPGt_descriptor, "desc1", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 146 "describe.pgc" { ECPGdescribe(__LINE__, 1, 0, NULL, "st_id2", - ECPGt_descriptor, "desc2", 0L, 0L, 0L, + ECPGt_descriptor, "desc2", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 147 "describe.pgc" diff --git a/src/interfaces/ecpg/test/expected/sql-desc.c b/src/interfaces/ecpg/test/expected/sql-desc.c index 8fc527a364..7a384acd0d 100644 --- a/src/interfaces/ecpg/test/expected/sql-desc.c +++ b/src/interfaces/ecpg/test/expected/sql-desc.c @@ -134,7 +134,7 @@ if (sqlca.sqlcode < 0) sqlprint();} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1", - ECPGt_descriptor, "indesc", 0L, 0L, 0L, + ECPGt_descriptor, "indesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); #line 35 "desc.pgc" @@ -161,7 +161,7 @@ if (sqlca.sqlcode < 0) sqlprint();} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo1", - ECPGt_descriptor, "indesc", 0L, 0L, 0L, + ECPGt_descriptor, "indesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); #line 40 "desc.pgc" @@ -188,7 +188,7 @@ if (sqlca.sqlcode < 0) sqlprint();} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "Foo-1", - ECPGt_descriptor, "indesc", 0L, 0L, 0L, + ECPGt_descriptor, "indesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); #line 45 "desc.pgc" @@ -222,9 +222,9 @@ if (sqlca.sqlcode < 0) sqlprint();} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_execute, "foo2", - ECPGt_descriptor, "indesc", 0L, 0L, 0L, + ECPGt_descriptor, "indesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, - ECPGt_descriptor, "outdesc", 0L, 0L, 0L, + ECPGt_descriptor, "outdesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); #line 52 "desc.pgc" @@ -248,7 +248,7 @@ if (sqlca.sqlcode < 0) sqlprint();} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c1 cursor for $1", ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo2", __LINE__)),(long)1,(long)1,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, - ECPGt_descriptor, "indesc", 0L, 0L, 0L, + ECPGt_descriptor, "indesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); #line 58 "desc.pgc" @@ -298,7 +298,7 @@ if (sqlca.sqlcode < 0) sqlprint();} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare c2 cursor for $1", ECPGt_char_variable,(ECPGprepared_statement(NULL, "foo3", __LINE__)),(long)1,(long)1,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, - ECPGt_descriptor, "indesc", 0L, 0L, 0L, + ECPGt_descriptor, "indesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); #line 70 "desc.pgc" diff --git a/src/interfaces/ecpg/test/expected/sql-describe.c b/src/interfaces/ecpg/test/expected/sql-describe.c index fd46a29245..11aadb4e05 100644 --- a/src/interfaces/ecpg/test/expected/sql-describe.c +++ b/src/interfaces/ecpg/test/expected/sql-describe.c @@ -172,12 +172,12 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "describe"); { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1", - ECPGt_descriptor, "desc1", 0L, 0L, 0L, + ECPGt_descriptor, "desc1", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 60 "describe.pgc" { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id1", - ECPGt_descriptor, "desc2", 0L, 0L, 0L, + ECPGt_descriptor, "desc2", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 61 "describe.pgc" @@ -334,12 +334,12 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "describe"); { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2", - ECPGt_descriptor, "desc1", 0L, 0L, 0L, + ECPGt_descriptor, "desc1", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 146 "describe.pgc" { ECPGdescribe(__LINE__, 0, 0, NULL, "st_id2", - ECPGt_descriptor, "desc2", 0L, 0L, 0L, + ECPGt_descriptor, "desc2", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT);} #line 147 "describe.pgc" diff --git a/src/interfaces/ecpg/test/expected/sql-dynalloc.c b/src/interfaces/ecpg/test/expected/sql-dynalloc.c index ff04922fa7..ccc337168e 100644 --- a/src/interfaces/ecpg/test/expected/sql-dynalloc.c +++ b/src/interfaces/ecpg/test/expected/sql-dynalloc.c @@ -210,7 +210,7 @@ if (sqlca.sqlcode < 0) sqlprint ( ); #line 41 "dynalloc.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select a , b , c , d , e , f , g , h , i from test order by a", ECPGt_EOIT, - ECPGt_descriptor, "mydesc", 0L, 0L, 0L, + ECPGt_descriptor, "mydesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); #line 42 "dynalloc.pgc" diff --git a/src/interfaces/ecpg/test/expected/sql-dynalloc2.c b/src/interfaces/ecpg/test/expected/sql-dynalloc2.c index 3f200ff6ea..e85189214b 100644 --- a/src/interfaces/ecpg/test/expected/sql-dynalloc2.c +++ b/src/interfaces/ecpg/test/expected/sql-dynalloc2.c @@ -188,7 +188,7 @@ if (sqlca.sqlcode < 0) sqlprint ( ); #line 32 "dynalloc2.pgc" { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select * from test", ECPGt_EOIT, - ECPGt_descriptor, "mydesc", 0L, 0L, 0L, + ECPGt_descriptor, "mydesc", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); #line 33 "dynalloc2.pgc" diff --git a/src/interfaces/ecpg/test/expected/sql-dyntest.c b/src/interfaces/ecpg/test/expected/sql-dyntest.c index 1871e1338f..537d9ff63a 100644 --- a/src/interfaces/ecpg/test/expected/sql-dyntest.c +++ b/src/interfaces/ecpg/test/expected/sql-dyntest.c @@ -273,7 +273,7 @@ if (sqlca.sqlcode < 0) error ( );} while (1) { { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch in MYCURS", ECPGt_EOIT, - ECPGt_descriptor, "MYDESC", 0L, 0L, 0L, + ECPGt_descriptor, "MYDESC", 1L, 1L, 1L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); #line 64 "dyntest.pgc"