Here is the comments in process_matched_tle() in rewriteHandler.c.
883 * such nodes; consider
884 * UPDATE tab SET col.fld1.subfld1 = x, col.fld2.subfld2 = y
885 * The two expressions produced by the parser will look like
886 * FieldStore(col, fld1, FieldStore(placeholder, subfld1, x))
887 * FieldStore(col, fld2, FieldStore(placeholder, subfld2, x))
I think the second one is not correct and should be
FieldStore(col, fld2, FieldStore(placeholder, subfld2, y))
Just like this,
891 * FieldStore(FieldStore(col, fld1,
892 * FieldStore(placeholder, subfld1, x)),
893 * fld2, FieldStore(placeholder, subfld2, x))
should be
FieldStore(FieldStore(col, fld1,
FieldStore(placeholder, subfld1, x)),
fld2, FieldStore(placeholder, subfld2, y))
Patch attached.
Thanks,
Best regards,
Etsuro Fujita