Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcaf9314

Browse files
author
Maxim Orlov
committed
Issue#27: Error with transactional pgv_insert/pgv_remove - review
1 parenta927929 commitcaf9314

File tree

3 files changed

+25
-26
lines changed

3 files changed

+25
-26
lines changed

‎expected/pg_variables_trans.out

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2034,7 +2034,7 @@ SELECT pgv_free();
20342034

20352035
-- Variables should be insertable after pgv_remove
20362036
BEGIN;
2037-
SELECT pgv_insert('test', 'x', ROW (1::int), TRUE);
2037+
SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), TRUE);
20382038
pgv_insert
20392039
------------
20402040

@@ -2046,7 +2046,7 @@ SELECT pgv_remove('test', 'x');
20462046

20472047
(1 row)
20482048

2049-
SELECT pgv_insert('test', 'x', ROW (1::int), TRUE);
2049+
SELECT pgv_insert('test', 'x', ROW (3::int, 4::int), TRUE);
20502050
pgv_insert
20512051
------------
20522052

@@ -2059,7 +2059,7 @@ SELECT * FROM pgv_list() order by package, name;
20592059
(0 rows)
20602060

20612061
BEGIN;
2062-
SELECT pgv_insert('test', 'x', ROW (1::int), TRUE);
2062+
SELECT pgv_insert('test', 'x', ROW (1::int, 2::int), TRUE);
20632063
pgv_insert
20642064
------------
20652065

@@ -2071,7 +2071,7 @@ SELECT pgv_remove('test', 'x');
20712071

20722072
(1 row)
20732073

2074-
SELECT pgv_insert('test', 'x', ROW (1::int), TRUE);
2074+
SELECT pgv_insert('test', 'x', ROW (3::int, 4::int), TRUE);
20752075
pgv_insert
20762076
------------
20772077

@@ -2086,7 +2086,7 @@ SELECT * FROM pgv_list() order by package, name;
20862086

20872087
-- Variables should be insertable after pgv_free
20882088
BEGIN;
2089-
SELECT pgv_insert('test', 'y', ROW (1::int), TRUE);
2089+
SELECT pgv_insert('test', 'y', ROW (1::int, 2::int), TRUE);
20902090
pgv_insert
20912091
------------
20922092

@@ -2098,7 +2098,7 @@ SELECT pgv_free();
20982098

20992099
(1 row)
21002100

2101-
SELECT pgv_insert('test', 'y', ROW (1::int), TRUE);
2101+
SELECT pgv_insert('test', 'y', ROW (3::int, 4::int), TRUE);
21022102
pgv_insert
21032103
------------
21042104

@@ -2112,7 +2112,7 @@ SELECT * FROM pgv_list() order by package, name;
21122112
(1 row)
21132113

21142114
BEGIN;
2115-
SELECT pgv_insert('test', 'y', ROW (1::int), TRUE);
2115+
SELECT pgv_insert('test', 'y', ROW (1::int, 2::int), TRUE);
21162116
pgv_insert
21172117
------------
21182118

@@ -2124,7 +2124,7 @@ SELECT pgv_free();
21242124

21252125
(1 row)
21262126

2127-
SELECT pgv_insert('test', 'y', ROW (1::int), TRUE);
2127+
SELECT pgv_insert('test', 'y', ROW (3::int, 4::int), TRUE);
21282128
pgv_insert
21292129
------------
21302130

‎pg_variables.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ static Variable *getVariableInternal(Package *package, text *name,
5656
staticVariable*createVariableInternal(Package*package,text*name,Oidtypid,
5757
boolis_record,boolis_transactional);
5858
staticvoidremovePackageInternal(Package*package);
59-
staticvoidresetVariablesCache(boolwith_package);
59+
staticvoidresetVariablesCache(void);
6060

6161
/* Functions to work with transactional objects */
6262
staticvoidcreateSavepoint(TransObject*object,TransObjectTypetype);
@@ -913,7 +913,7 @@ remove_variable(PG_FUNCTION_ARGS)
913913
else
914914
removeObject(&variable->transObject,TRANS_VARIABLE);
915915

916-
resetVariablesCache(true);
916+
resetVariablesCache();
917917

918918
PG_FREE_IF_COPY(package_name,0);
919919
PG_FREE_IF_COPY(var_name,1);
@@ -940,7 +940,7 @@ remove_package(PG_FUNCTION_ARGS)
940940
package=getPackage(package_name, true);
941941
removePackageInternal(package);
942942

943-
resetVariablesCache(true);
943+
resetVariablesCache();
944944

945945
PG_FREE_IF_COPY(package_name,0);
946946
PG_RETURN_VOID();
@@ -955,7 +955,7 @@ removePackageInternal(Package *package)
955955
HASH_SEQ_STATUSvstat;
956956
inti;
957957

958-
/*Set all the variables from packageis deleted */
958+
/*Mark all thevalidvariables from packageas deleted */
959959
for (i=0;i<2;i++)
960960
{
961961
if ((htab=pack_htab(package,i))!=NULL)
@@ -1007,11 +1007,10 @@ isPackageEmpty(Package *package)
10071007
* of some changes: removing, rollbacking, etc.
10081008
*/
10091009
staticvoid
1010-
resetVariablesCache(boolwith_package)
1010+
resetVariablesCache(void)
10111011
{
10121012
/* Remove package and variable from cache */
1013-
if (with_package)
1014-
LastPackage=NULL;
1013+
LastPackage=NULL;
10151014
LastVariable=NULL;
10161015
LastTypeId=InvalidOid;
10171016
}
@@ -1037,7 +1036,7 @@ remove_packages(PG_FUNCTION_ARGS)
10371036
removePackageInternal(package);
10381037
}
10391038

1040-
resetVariablesCache(true);
1039+
resetVariablesCache();
10411040

10421041
PG_RETURN_VOID();
10431042
}
@@ -1753,7 +1752,7 @@ removeObject(TransObject *object, TransObjectType type)
17531752
GetActualState(&package->transObject)->is_valid= false;
17541753
}
17551754

1756-
resetVariablesCache(true);
1755+
resetVariablesCache();
17571756
}
17581757

17591758
/*
@@ -2121,7 +2120,7 @@ processChanges(Action action)
21212120
MemoryContextDelete(ModuleContext);
21222121
packagesHash=NULL;
21232122
ModuleContext=NULL;
2124-
resetVariablesCache(true);
2123+
resetVariablesCache();
21252124
changesStack=NULL;
21262125
changesStackContext=NULL;
21272126
}

‎sql/pg_variables_trans.sql

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -537,34 +537,34 @@ SELECT pgv_free();
537537

538538
-- Variables should be insertable after pgv_remove
539539
BEGIN;
540-
SELECT pgv_insert('test','x', ROW (1::int), TRUE);
540+
SELECT pgv_insert('test','x', ROW (1::int,2::int), TRUE);
541541
SELECT pgv_remove('test','x');
542-
SELECT pgv_insert('test','x', ROW (1::int), TRUE);
542+
SELECT pgv_insert('test','x', ROW (3::int,4::int), TRUE);
543543
ROLLBACK;
544544

545545
SELECT*FROM pgv_list()order by package, name;
546546

547547
BEGIN;
548-
SELECT pgv_insert('test','x', ROW (1::int), TRUE);
548+
SELECT pgv_insert('test','x', ROW (1::int,2::int), TRUE);
549549
SELECT pgv_remove('test','x');
550-
SELECT pgv_insert('test','x', ROW (1::int), TRUE);
550+
SELECT pgv_insert('test','x', ROW (3::int,4::int), TRUE);
551551
COMMIT;
552552

553553
SELECT*FROM pgv_list()order by package, name;
554554

555555
-- Variables should be insertable after pgv_free
556556
BEGIN;
557-
SELECT pgv_insert('test','y', ROW (1::int), TRUE);
557+
SELECT pgv_insert('test','y', ROW (1::int,2::int), TRUE);
558558
SELECT pgv_free();
559-
SELECT pgv_insert('test','y', ROW (1::int), TRUE);
559+
SELECT pgv_insert('test','y', ROW (3::int,4::int), TRUE);
560560
ROLLBACK;
561561

562562
SELECT*FROM pgv_list()order by package, name;
563563

564564
BEGIN;
565-
SELECT pgv_insert('test','y', ROW (1::int), TRUE);
565+
SELECT pgv_insert('test','y', ROW (1::int,2::int), TRUE);
566566
SELECT pgv_free();
567-
SELECT pgv_insert('test','y', ROW (1::int), TRUE);
567+
SELECT pgv_insert('test','y', ROW (3::int,4::int), TRUE);
568568
COMMIT;
569569

570570
SELECT*FROM pgv_list()order by package, name;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp