aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/preproc/variable.c
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2003-07-07 12:15:33 +0000
committerMichael Meskes <meskes@postgresql.org>2003-07-07 12:15:33 +0000
commit91d60637cfe2fd8311f8507ffee30663101163a4 (patch)
treeefa7dc4c44e1b619b15745512ea934db2b796e84 /src/interfaces/ecpg/preproc/variable.c
parent841b4a2d5552fcee2333dff53e66052fbee7bd22 (diff)
downloadpostgresql-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.c9
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;