Remove p_is_insert from struct ParseState. The only place that used p_is_insert was transformAssignedExpr(), which used it to distinguish INSERT from UPDATE when handling indirection on assignment target columns -- see commit c1ca3a19df3. However, this information is already available to transformAssignedExpr() via its exprKind parameter, which is always either EXPR_KIND_INSERT_TARGET or EXPR_KIND_UPDATE_TARGET.
As noted in the commit message for c1ca3a19df3, this use of p_is_insert isn't particularly pretty, so have transformAssignedExpr() use the exprKind parameter instead. This then allows p_is_insert to be removed entirely, which simplifies state management in a few other places across the parser. Author: Viktor Holmberg <[email protected]> Reviewed-by: Dean Rasheed <[email protected]> Discussion: https://postgr.es/m/badc3b4c-da73-4000-b8d3-638a6f53a769@Spark Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/706cadde3239842a41a3375d50dda8b33325c008 Modified Files -------------- src/backend/parser/analyze.c | 9 --------- src/backend/parser/parse_merge.c | 11 +++-------- src/backend/parser/parse_target.c | 6 ++++-- src/include/parser/parse_node.h | 5 ----- 4 files changed, 7 insertions(+), 24 deletions(-)
