diff options
author | Michael Meskes <meskes@postgresql.org> | 2003-07-07 12:15:33 +0000 |
---|---|---|
committer | Michael Meskes <meskes@postgresql.org> | 2003-07-07 12:15:33 +0000 |
commit | 91d60637cfe2fd8311f8507ffee30663101163a4 (patch) | |
tree | efa7dc4c44e1b619b15745512ea934db2b796e84 /src/interfaces/ecpg/preproc/variable.c | |
parent | 841b4a2d5552fcee2333dff53e66052fbee7bd22 (diff) | |
download | postgresql-91d60637cfe2fd8311f8507ffee30663101163a4.tar.gz postgresql-91d60637cfe2fd8311f8507ffee30663101163a4.zip |
"char *" of course is not the same as "char []". So I had to fix the way ecpg treated the second one.
Diffstat (limited to 'src/interfaces/ecpg/preproc/variable.c')
-rw-r--r-- | src/interfaces/ecpg/preproc/variable.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/interfaces/ecpg/preproc/variable.c b/src/interfaces/ecpg/preproc/variable.c index 9fa2ec8a6c9..f295d177d9c 100644 --- a/src/interfaces/ecpg/preproc/variable.c +++ b/src/interfaces/ecpg/preproc/variable.c @@ -512,7 +512,14 @@ adjust_array(enum ECPGttype type_enum, char **dimension, char **length, char *ty /* one index is the string length */ if (atoi(*length) < 0) { - *length = (atoi(*dimension) < 0) ? make_str("1") : *dimension; + /* make sure we return length = -1 for arrays without given bounds */ + if (atoi(*dimension) < 0) + *length = make_str("1"); + else if (atoi(*dimension) == 0) + *length = make_str("-1"); + else + *length = *dimension; + *dimension = make_str("-1"); } break; |