From: Simon Riggs Date: Wed, 28 Mar 2018 04:21:00 +0000 (+0100) Subject: Use pg_stat_get_xact* functions within xacts X-Git-Tag: REL_11_BETA1~461 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b0d7f6996abfc1e3e51bac62af6076903635dc8;p=postgresql Use pg_stat_get_xact* functions within xacts Resolve build farm failures from c203d6cf81b4d7e43, diagnosed by Tom Lane. The output of pg_stat_get_xact_tuples_hot_updated() and friends is not guaranteed to show anything after the transaction completes. Data is flushed slowly to stats collector, so using them can give timing issues. --- diff --git a/src/test/regress/expected/func_index.out b/src/test/regress/expected/func_index.out index e616ea2e55..307ac97b4b 100644 --- a/src/test/regress/expected/func_index.out +++ b/src/test/regress/expected/func_index.out @@ -1,3 +1,4 @@ +begin; create table keyvalue(id integer primary key, info jsonb); create index nameindex on keyvalue((info->>'name')) with (recheck_on_update=false); insert into keyvalue values (1, '{"name": "john", "data": "some data"}'); @@ -8,7 +9,8 @@ select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); 0 (1 row) -drop table keyvalue; +rollback; +begin; create table keyvalue(id integer primary key, info jsonb); create index nameindex on keyvalue((info->>'name')) with (recheck_on_update=true); insert into keyvalue values (1, '{"name": "john", "data": "some data"}'); @@ -33,7 +35,8 @@ select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); 2 (1 row) -drop table keyvalue; +rollback; +begin; create table keyvalue(id integer primary key, info jsonb); create index nameindex on keyvalue((info->>'name')); insert into keyvalue values (1, '{"name": "john", "data": "some data"}'); @@ -58,4 +61,4 @@ select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); 2 (1 row) -drop table keyvalue; +rollback; diff --git a/src/test/regress/sql/func_index.sql b/src/test/regress/sql/func_index.sql index b08f7544fc..86f8c71179 100644 --- a/src/test/regress/sql/func_index.sql +++ b/src/test/regress/sql/func_index.sql @@ -1,10 +1,12 @@ +begin; create table keyvalue(id integer primary key, info jsonb); create index nameindex on keyvalue((info->>'name')) with (recheck_on_update=false); insert into keyvalue values (1, '{"name": "john", "data": "some data"}'); update keyvalue set info='{"name": "john", "data": "some other data"}' where id=1; select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); -drop table keyvalue; +rollback; +begin; create table keyvalue(id integer primary key, info jsonb); create index nameindex on keyvalue((info->>'name')) with (recheck_on_update=true); insert into keyvalue values (1, '{"name": "john", "data": "some data"}'); @@ -14,8 +16,9 @@ update keyvalue set info='{"name": "smith", "data": "some other data"}' where id select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); update keyvalue set info='{"name": "smith", "data": "some more data"}' where id=1; select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); -drop table keyvalue; +rollback; +begin; create table keyvalue(id integer primary key, info jsonb); create index nameindex on keyvalue((info->>'name')); insert into keyvalue values (1, '{"name": "john", "data": "some data"}'); @@ -25,6 +28,6 @@ update keyvalue set info='{"name": "smith", "data": "some other data"}' where id select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); update keyvalue set info='{"name": "smith", "data": "some more data"}' where id=1; select pg_stat_get_xact_tuples_hot_updated('keyvalue'::regclass); -drop table keyvalue; +rollback;