]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Remove p_is_insert from struct ParseState.
authorDean Rasheed <dean.a.rasheed@gmail.com>
Thu, 12 Feb 2026 09:01:42 +0000 (09:01 +0000)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Thu, 12 Feb 2026 09:01:42 +0000 (09:01 +0000)
commit706cadde3239842a41a3375d50dda8b33325c008
tree074ade3b6d41c274ed8de34f20df59c16b62df80
parentcf74558feb8f41b2bc459f59ed3f991024d04893
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 <v@viktorh.net>
Reviewed-by: Dean Rasheed <dean.a.rasheed@gmail.com>
Discussion: https://postgr.es/m/badc3b4c-da73-4000-b8d3-638a6f53a769@Spark
src/backend/parser/analyze.c
src/backend/parser/parse_merge.c
src/backend/parser/parse_target.c
src/include/parser/parse_node.h