On Tue, 16 Apr 2024 at 12:10, Michael Paquier <[email protected]> wrote:
> Not sure that this is an improvement in clarity. There are a few
> bullet points that treat about the instability of the query ID, and
> your patch is now mixing the query ID being different for two
> mostly-identical queries on the same host with larger conditions like
> the environment involved. Perhaps it would be better to move the last
> sentence of the first <para> ("Furthermore, it is not safe..") with
> the part you are adding about replication in this paragraph.
Yeah, I think this is better. I think the attached is what you mean.
It makes sense to talk about the hashing variations closer to the
object identifier part.
David
diff --git a/doc/src/sgml/pgstatstatements.sgml
b/doc/src/sgml/pgstatstatements.sgml
index 44dd4db7ce..38c4ce3241 100644
--- a/doc/src/sgml/pgstatstatements.sgml
+++ b/doc/src/sgml/pgstatstatements.sgml
@@ -636,18 +636,21 @@
machine architecture and other facets of the platform.
Furthermore, it is not safe to assume that
<structfield>queryid</structfield>
will be stable across major versions of
<productname>PostgreSQL</productname>.
+ Two servers participating in replication based on physical WAL replay can
+ be expected to have identical <structfield>queryid</structfield> values for
+ the same query. However, logical replication schemes do not promise to
+ keep replicas identical in all relevant details, so
+ <structfield>queryid</structfield> will not be a useful identifier for
+ accumulating costs across a set of logical replicas.
+ If in doubt, direct testing is recommended.
</para>
<para>
- As a rule of thumb, <structfield>queryid</structfield> values can be
assumed to be
- stable and comparable only so long as the underlying server version and
- catalog metadata details stay exactly the same. Two servers
- participating in replication based on physical WAL replay can be expected
- to have identical <structfield>queryid</structfield> values for the same
query.
- However, logical replication schemes do not promise to keep replicas
- identical in all relevant details, so <structfield>queryid</structfield>
will
- not be a useful identifier for accumulating costs across a set of logical
- replicas. If in doubt, direct testing is recommended.
+ Generally, it can be assumed that <structfield>queryid</structfield> values
+ are stable between minor version releases of
<productname>PostgreSQL</productname>,
+ providing that instances are running on the same machine architecture and
+ the catalog metadata details match. Compatibility will only be broken
+ between minor versions as a last resort.
</para>
<para>