Hi, A patch by Lukas Fittl [1] introduces the pg_stat_plans extension, which exposes execution plans along with execution statistics. As part of this work, a new infrastructure is being proposed to compute a plan identifier (planId), which is exposed in both pg_stat_plans and pg_stat_activity.
Exposing planId in pg_stat_activity enables users to identify long-running or high-load plans and correlate them with plan text from the extension. One of open question in [1] is which components of a plan tree should be considered when computing planId. Lukas has created a wiki [2] for discussion, but reaching a consensus may take time—possibly in time for v19, but it's uncertain. Meanwhile, existing extensions like pg_stat_monitor [3] compute a planId and store the plan text, but they lack a way to expose planId in pg_stat_activity. This limits their usefulness, as identifying top or long-running plans from pg_stat_activity is critical for monitoring. To address this, I propose leveraging work from [1] and allow extensions to set a planId This could be implemented sooner than an in-core computed planId. Proposal Overview: 1/ Add a planId field to PgBackendStatus. 2/ Add a planId field to PlannedStmt. 3/ Create APIs for extensions to set the current planId. Storing planId in PlannedStmt ensures it is available with cached plans. One consideration is whether reserving a 64-bit integer in PgBackendStatus and PlannedStmt is acceptable, given that planId may not always be used. However, this is already the case for queryId when compute_query_id is disabled and no extension sets it, so it may not be a concern. Looking forward to feedback on this approach. If there is agreement, I will work on preparing the patches. Regards, Sami Imseih Amazon Web Services (AWS) [1] https://www.postgresql.org/message-id/flat/CAP53Pkyow59ajFMHGpmb1BK9WHDypaWtUsS_5DoYUEfsa_Hktg%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAP53PkxocbNr%2BeRag3FEJp3-7S1U80FspOg8UQjO902TWMG%3D6A%40mail.gmail.com [3] https://github.com/percona/pg_stat_monitor