]> granicus.if.org Git - postgresql/commitdiff
When processing nested structure pointer variables ecpg always expected an
authorMichael Meskes <meskes@postgresql.org>
Thu, 29 Nov 2012 16:12:00 +0000 (17:12 +0100)
committerMichael Meskes <meskes@postgresql.org>
Thu, 29 Nov 2012 16:15:02 +0000 (17:15 +0100)
array datatype which of course is wrong.

Applied patch by Muhammad Usama <m.usama@gmail.com> to fix this.

src/interfaces/ecpg/preproc/variable.c

index 3ea438709abfa204afb02791e4a66e9d00cd0669..c4ccabd2a69bfce28d2a83b798679a88fd192275 100644 (file)
@@ -100,7 +100,11 @@ find_struct_member(char *name, char *str, struct ECPGstruct_member * members, in
                                                }
                                                break;
                                        case '-':
-                                               return (find_struct_member(name, end, members->type->u.element->u.members, brace_level));
+                                               if (members->type->type == ECPGt_array)
+                                                       return (find_struct_member(name, ++end, members->type->u.element->u.members, brace_level));
+                                               else
+                                                       return (find_struct_member(name, ++end, members->type->u.members, brace_level));
+                                               break;
                                                break;
                                        case '.':
                                                if (members->type->type == ECPGt_array)