SPI_IS_CURSOR_PLAN(3)

πŸ“¦ version 16.15, in opensuse-leap 16.0

πŸ’… NAME β€” SPI_IS_CURSOR_PLAN(3)

SPI_is_cursor_plan β€” returns true if a statement prepared by SPI_prepare can be used with SPI_cursor_open. ✨


✨ SYNOPSIS

bool SPI_is_cursor_plan(SPIPlanPtr plan)

πŸ¦‹ DESCRIPTION

okay so bestie, SPI_is_cursor_plan returns true if a statement prepared by SPI_prepare can be passed as an argument to SPI_cursor_open, or false if that is not the case. πŸ’–

The criteria are that the plan represents one single command and that this command returns tuples to the caller; for example, SELECT is allowed unless it contains an INTO clause, and UPDATE is allowed only if it contains a RETURNING clause. Lowkey that's the whole vibe check. πŸ‘‘


πŸŽ€ ARGUMENTS

  • SPIPlanPtr plan β€” prepared statement (returned by SPI_prepare). That's your plan, bestie. 🫢

🌸 RETURN VALUE

Returns true or false to indicate if the plan can produce a cursor or not, with SPI_result set to zero. ✨

If it is not possible to determine the answer (for example, if the plan is NULL or invalid, or if called when not connected to SPI), then SPI_result is set to a suitable error code and false is returned. 😭 No cap, that's the error path.


okay that's the whole page, bestie. This one comes from PostgreSQL 16.15, dated 2026, and it's the SPI_IS_CURSOR_PLAN(3) manual page. mwah πŸ’‹πŸ«Ά

πŸ“¦ where this page comes from