Skip to content

Commit 88633c3

Browse files
author
Maxim Orlov
committed
Issue #27: Make sanitizer happy.
At the moment pg_variables can't handle cursors in a "proper" way. It's possible to remove pg_variables while have active cursor open, which seem to be erratic and couse sanitizer to be unpappy about it.
1 parent 0f73079 commit 88633c3

File tree

4 files changed

+26
-27
lines changed

4 files changed

+26
-27
lines changed

expected/pg_variables_trans.out

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2850,14 +2850,13 @@ FETCH 1 in r1_cur;
28502850
(1,2)
28512851
(1 row)
28522852

2853+
CLOSE r1_cur;
28532854
SELECT pgv_remove('test', 'x');
28542855
pgv_remove
28552856
------------
28562857

28572858
(1 row)
28582859

2859-
FETCH 1 in r1_cur;
2860-
ERROR: unrecognized package "test"
28612860
ROLLBACK;
28622861
SELECT pgv_select('test', 'x');
28632862
ERROR: unrecognized package "test"
@@ -2875,14 +2874,13 @@ FETCH 1 in r1_cur;
28752874
(1,2)
28762875
(1 row)
28772876

2877+
CLOSE r1_cur;
28782878
SELECT pgv_remove('test');
28792879
pgv_remove
28802880
------------
28812881

28822882
(1 row)
28832883

2884-
FETCH 1 in r1_cur;
2885-
ERROR: unrecognized package "test"
28862884
ROLLBACK;
28872885
SELECT pgv_select('test', 'x');
28882886
ERROR: unrecognized package "test"
@@ -2900,14 +2898,13 @@ FETCH 1 in r1_cur;
29002898
(1,2)
29012899
(1 row)
29022900

2901+
CLOSE r1_cur;
29032902
SELECT pgv_free();
29042903
pgv_free
29052904
----------
29062905

29072906
(1 row)
29082907

2909-
FETCH 1 in r1_cur;
2910-
ERROR: unrecognized package "test"
29112908
ROLLBACK;
29122909
SELECT pgv_select('test', 'x');
29132910
ERROR: unrecognized package "test"
@@ -3440,14 +3437,15 @@ FETCH 1 in r1_cur;
34403437
(2,2)
34413438
(1 row)
34423439

3440+
CLOSE r1_cur;
34433441
SELECT pgv_remove('test', 'z2');
34443442
pgv_remove
34453443
------------
34463444

34473445
(1 row)
34483446

34493447
FETCH 1 in r1_cur;
3450-
ERROR: unrecognized variable "z2"
3448+
ERROR: cursor "r1_cur" does not exist
34513449
ROLLBACK;
34523450
SELECT pgv_select('test', 'z2');
34533451
ERROR: unrecognized variable "z2"
@@ -3472,14 +3470,15 @@ FETCH 1 in r1_cur;
34723470
(1,2)
34733471
(1 row)
34743472

3473+
CLOSE r1_cur;
34753474
SELECT pgv_remove('test', 'z3');
34763475
pgv_remove
34773476
------------
34783477

34793478
(1 row)
34803479

34813480
FETCH 1 in r1_cur;
3482-
ERROR: unrecognized variable "z3"
3481+
ERROR: cursor "r1_cur" does not exist
34833482
ROLLBACK;
34843483
SELECT pgv_select('test', 'z3');
34853484
pgv_select

expected/pg_variables_trans_1.out

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2850,14 +2850,13 @@ FETCH 1 in r1_cur;
28502850
(1,2)
28512851
(1 row)
28522852

2853+
CLOSE r1_cur;
28532854
SELECT pgv_remove('test', 'x');
28542855
pgv_remove
28552856
------------
28562857

28572858
(1 row)
28582859

2859-
FETCH 1 in r1_cur;
2860-
ERROR: unrecognized package "test"
28612860
ROLLBACK;
28622861
SELECT pgv_select('test', 'x');
28632862
ERROR: unrecognized package "test"
@@ -2875,14 +2874,13 @@ FETCH 1 in r1_cur;
28752874
(1,2)
28762875
(1 row)
28772876

2877+
CLOSE r1_cur;
28782878
SELECT pgv_remove('test');
28792879
pgv_remove
28802880
------------
28812881

28822882
(1 row)
28832883

2884-
FETCH 1 in r1_cur;
2885-
ERROR: unrecognized package "test"
28862884
ROLLBACK;
28872885
SELECT pgv_select('test', 'x');
28882886
ERROR: unrecognized package "test"
@@ -2900,14 +2898,13 @@ FETCH 1 in r1_cur;
29002898
(1,2)
29012899
(1 row)
29022900

2901+
CLOSE r1_cur;
29032902
SELECT pgv_free();
29042903
pgv_free
29052904
----------
29062905

29072906
(1 row)
29082907

2909-
FETCH 1 in r1_cur;
2910-
ERROR: unrecognized package "test"
29112908
ROLLBACK;
29122909
SELECT pgv_select('test', 'x');
29132910
ERROR: unrecognized package "test"
@@ -3440,14 +3437,15 @@ FETCH 1 in r1_cur;
34403437
(2,2)
34413438
(1 row)
34423439

3440+
CLOSE r1_cur;
34433441
SELECT pgv_remove('test', 'z2');
34443442
pgv_remove
34453443
------------
34463444

34473445
(1 row)
34483446

34493447
FETCH 1 in r1_cur;
3450-
ERROR: unrecognized variable "z2"
3448+
ERROR: cursor "r1_cur" does not exist
34513449
ROLLBACK;
34523450
SELECT pgv_select('test', 'z2');
34533451
ERROR: unrecognized variable "z2"
@@ -3472,14 +3470,15 @@ FETCH 1 in r1_cur;
34723470
(1,2)
34733471
(1 row)
34743472

3473+
CLOSE r1_cur;
34753474
SELECT pgv_remove('test', 'z3');
34763475
pgv_remove
34773476
------------
34783477

34793478
(1 row)
34803479

34813480
FETCH 1 in r1_cur;
3482-
ERROR: unrecognized variable "z3"
3481+
ERROR: cursor "r1_cur" does not exist
34833482
ROLLBACK;
34843483
SELECT pgv_select('test', 'z3');
34853484
pgv_select

expected/pg_variables_trans_2.out

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2850,14 +2850,13 @@ FETCH 1 in r1_cur;
28502850
(1,2)
28512851
(1 row)
28522852

2853+
CLOSE r1_cur;
28532854
SELECT pgv_remove('test', 'x');
28542855
pgv_remove
28552856
------------
28562857

28572858
(1 row)
28582859

2859-
FETCH 1 in r1_cur;
2860-
ERROR: unrecognized package "test"
28612860
ROLLBACK;
28622861
SELECT pgv_select('test', 'x');
28632862
ERROR: unrecognized package "test"
@@ -2875,14 +2874,13 @@ FETCH 1 in r1_cur;
28752874
(1,2)
28762875
(1 row)
28772876

2877+
CLOSE r1_cur;
28782878
SELECT pgv_remove('test');
28792879
pgv_remove
28802880
------------
28812881

28822882
(1 row)
28832883

2884-
FETCH 1 in r1_cur;
2885-
ERROR: unrecognized package "test"
28862884
ROLLBACK;
28872885
SELECT pgv_select('test', 'x');
28882886
ERROR: unrecognized package "test"
@@ -2900,14 +2898,13 @@ FETCH 1 in r1_cur;
29002898
(1,2)
29012899
(1 row)
29022900

2901+
CLOSE r1_cur;
29032902
SELECT pgv_free();
29042903
pgv_free
29052904
----------
29062905

29072906
(1 row)
29082907

2909-
FETCH 1 in r1_cur;
2910-
ERROR: unrecognized package "test"
29112908
ROLLBACK;
29122909
SELECT pgv_select('test', 'x');
29132910
ERROR: unrecognized package "test"
@@ -3440,14 +3437,15 @@ FETCH 1 in r1_cur;
34403437
(2,2)
34413438
(1 row)
34423439

3440+
CLOSE r1_cur;
34433441
SELECT pgv_remove('test', 'z2');
34443442
pgv_remove
34453443
------------
34463444

34473445
(1 row)
34483446

34493447
FETCH 1 in r1_cur;
3450-
ERROR: unrecognized variable "z2"
3448+
ERROR: cursor "r1_cur" does not exist
34513449
ROLLBACK;
34523450
SELECT pgv_select('test', 'z2');
34533451
ERROR: unrecognized variable "z2"
@@ -3472,14 +3470,15 @@ FETCH 1 in r1_cur;
34723470
(1,2)
34733471
(1 row)
34743472

3473+
CLOSE r1_cur;
34753474
SELECT pgv_remove('test', 'z3');
34763475
pgv_remove
34773476
------------
34783477

34793478
(1 row)
34803479

34813480
FETCH 1 in r1_cur;
3482-
ERROR: unrecognized variable "z3"
3481+
ERROR: cursor "r1_cur" does not exist
34833482
ROLLBACK;
34843483
SELECT pgv_select('test', 'z3');
34853484
pgv_select

sql/pg_variables_trans.sql

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -802,26 +802,26 @@ SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), FALSE);
802802
BEGIN;
803803
DECLARE r1_cur CURSOR FOR SELECT pgv_select('test', 'x');
804804
FETCH 1 in r1_cur;
805+
CLOSE r1_cur;
805806
SELECT pgv_remove('test', 'x');
806-
FETCH 1 in r1_cur;
807807
ROLLBACK;
808808
SELECT pgv_select('test', 'x');
809809

810810
SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), FALSE);
811811
BEGIN;
812812
DECLARE r1_cur CURSOR FOR SELECT pgv_select('test', 'x');
813813
FETCH 1 in r1_cur;
814+
CLOSE r1_cur;
814815
SELECT pgv_remove('test');
815-
FETCH 1 in r1_cur;
816816
ROLLBACK;
817817
SELECT pgv_select('test', 'x');
818818

819819
SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), FALSE);
820820
BEGIN;
821821
DECLARE r1_cur CURSOR FOR SELECT pgv_select('test', 'x');
822822
FETCH 1 in r1_cur;
823+
CLOSE r1_cur;
823824
SELECT pgv_free();
824-
FETCH 1 in r1_cur;
825825
ROLLBACK;
826826
SELECT pgv_select('test', 'x');
827827

@@ -983,6 +983,7 @@ SELECT pgv_insert('test', 'z2', ROW (2::int, 2::int), FALSE);
983983
BEGIN;
984984
DECLARE r1_cur CURSOR FOR SELECT pgv_select('test', 'z2');
985985
FETCH 1 in r1_cur;
986+
CLOSE r1_cur;
986987
SELECT pgv_remove('test', 'z2');
987988
FETCH 1 in r1_cur;
988989
ROLLBACK;
@@ -994,6 +995,7 @@ SELECT pgv_insert('test', 'z3', ROW (1::int, 2::int), TRUE);
994995
BEGIN;
995996
DECLARE r1_cur CURSOR FOR SELECT pgv_select('test', 'z3');
996997
FETCH 1 in r1_cur;
998+
CLOSE r1_cur;
997999
SELECT pgv_remove('test', 'z3');
9981000
FETCH 1 in r1_cur;
9991001
ROLLBACK;

0 commit comments

Comments
 (0)