]> granicus.if.org Git - postgresql/commitdiff
Use pg_stat_get_xact* functions within xacts
authorSimon Riggs <simon@2ndQuadrant.com>
Wed, 28 Mar 2018 04:21:00 +0000 (05:21 +0100)
committerSimon Riggs <simon@2ndQuadrant.com>
Wed, 28 Mar 2018 04:21:00 +0000 (05:21 +0100)
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.

src/test/regress/expected/func_index.out
src/test/regress/sql/func_index.sql

index e616ea2e55724fb82341d58aecf49d56f5ea6711..307ac97b4bc3097a0ccdaae3cda03f521c8ca3ba 100644 (file)
@@ -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;
index b08f7544fc54cdf11d2934bcddf8181e603e9433..86f8c71179c4098ba86e562d81e5213097ec473b 100644 (file)
@@ -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;