diff options
-rw-r--r-- | doc/src/sgml/system-views.sgml | 6 | ||||
-rw-r--r-- | src/backend/utils/adt/lockfuncs.c | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/doc/src/sgml/system-views.sgml b/doc/src/sgml/system-views.sgml index 1d1b7de8f1e..5b1c73269b9 100644 --- a/doc/src/sgml/system-views.sgml +++ b/doc/src/sgml/system-views.sgml @@ -1580,6 +1580,12 @@ </para> <para> + A specualtive insertion lock consists of a transaction ID and a speculative + insertion token. The speculative insertion token is displayed in the + <structfield>objid</structfield> column. + </para> + + <para> Advisory locks can be acquired on keys consisting of either a single <type>bigint</type> value or two integer values. A <type>bigint</type> key is displayed with its diff --git a/src/backend/utils/adt/lockfuncs.c b/src/backend/utils/adt/lockfuncs.c index c8aac0694fe..f9b9590997b 100644 --- a/src/backend/utils/adt/lockfuncs.c +++ b/src/backend/utils/adt/lockfuncs.c @@ -313,6 +313,18 @@ pg_lock_status(PG_FUNCTION_ARGS) nulls[8] = true; nulls[9] = true; break; + case LOCKTAG_SPECULATIVE_TOKEN: + values[6] = + TransactionIdGetDatum(instance->locktag.locktag_field1); + values[8] = ObjectIdGetDatum(instance->locktag.locktag_field2); + nulls[1] = true; + nulls[2] = true; + nulls[3] = true; + nulls[4] = true; + nulls[5] = true; + nulls[7] = true; + nulls[9] = true; + break; case LOCKTAG_APPLY_TRANSACTION: values[1] = ObjectIdGetDatum(instance->locktag.locktag_field1); values[8] = ObjectIdGetDatum(instance->locktag.locktag_field2); |