The newly introduced check_cursor_name() implements the logic to reject empty 
cursor names, which matches the existing checks in PerformCursorOpen() and 
PerformPortalFetch().

However, this helper function is not a good fit for PerformPortalClose(). At 
the start of this function(PerformPortalClose), there is a check for name == 
NULL — a NULL name corresponds to the CLOSE ALL command — and this check runs 
prior to validating whether the name is an empty string.

While calling check_cursor_name() inside PerformPortalClose() would keep the 
current behavior intact, it could confuse future readers. This approach also 
fails to achieve truly consistent cursor name validation across all three 
functions, and may add extra maintenance burdens in the long term.

On the other hand, if we only refactor PerformCursorOpen() and 
PerformPortalFetch(), the change would end up being rather minimal.

Considering all these factors, I'd suggest leaving the code as it is and 
skipping this refactoring.

Reply via email to