]> granicus.if.org Git - postgresql/commitdiff
In ecpg preprocessor, don't try to look up constants in the test for
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 11 Mar 2011 13:44:40 +0000 (15:44 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 11 Mar 2011 15:27:57 +0000 (17:27 +0200)
variable hiding. A constant is not a variable. It worked in most cases by
accident, because we add constants to the global list of variables (why?),
but float constants like 1.23 were interpreted as struct field references,
and not found.

Backpatch to 9.0, where the test for variable hiding was added.

src/interfaces/ecpg/preproc/type.c

index b0ad60e7a08c96066de207086e2282e9e5758a52..f467a7f9c908fcf8c7389de6c6f1d797bdac2dbc 100644 (file)
@@ -245,7 +245,7 @@ ECPGdump_a_type(FILE *o, const char *name, struct ECPGtype * type, const int bra
        struct variable *var;
 
        if (type->type != ECPGt_descriptor && type->type != ECPGt_sqlda &&
-               type->type != ECPGt_char_variable &&
+               type->type != ECPGt_char_variable && type->type != ECPGt_const &&
                brace_level >= 0)
        {
                char       *str;