Skip to content

Commit 83054dc

Browse files
committed
Move referee to a separate extension
1 parent 6d9b336 commit 83054dc

File tree

4 files changed

+10
-34
lines changed

4 files changed

+10
-34
lines changed

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ COPY ./ /pg/mmts/
66
RUN export USE_PGXS=1 && \
77
cd /pg/mmts && make clean && make install
88

9+
RUN export USE_PGXS=1 && \
10+
cd /pg/src/contrib/referee && make clean && make install
11+
912
# pg_regress client assumes such dir exists on server
1013
RUN cp /pg/src/src/test/regress/*.so /pg/install/lib/postgresql/
1114
USER postgres

multimaster--1.0.sql

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -151,30 +151,3 @@ $$
151151
LANGUAGE plpgsql;
152152

153153
-- select mtm.alter_sequences();
154-
155-
-- referee stuff
156-
CREATE TABLE IF NOT EXISTS mtm.referee_decision(key text primary key not null, node_id int);
157-
158-
CREATE OR REPLACE FUNCTION mtm.referee_get_winner(applicant_id int) RETURNS int AS
159-
$$
160-
DECLARE
161-
winner_id int;
162-
BEGIN
163-
insert into mtm.referee_decision values ('winner', applicant_id);
164-
select node_id into winner_id from mtm.referee_decision where key = 'winner';
165-
return winner_id;
166-
EXCEPTION WHEN others THEN
167-
select node_id into winner_id from mtm.referee_decision where key = 'winner';
168-
return winner_id;
169-
END
170-
$$
171-
LANGUAGE plpgsql;
172-
173-
CREATE OR REPLACE FUNCTION mtm.referee_clean() RETURNS bool AS
174-
$$
175-
BEGIN
176-
delete from mtm.referee_decision where key = 'winner';
177-
return 'true';
178-
END
179-
$$
180-
LANGUAGE plpgsql;

state.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ MtmRefreshClusterStatus()
417417
}
418418

419419
/*
420-
* Clear winner if we again have all nodes are online.
420+
* Clear winner if we again have all nodes online.
421421
*/
422422
if (MtmRefereeConnStr && *MtmRefereeConnStr && Mtm->refereeWinnerId &&
423423
countZeroBits(SELF_CONNECTIVITY_MASK, Mtm->nAllNodes) == Mtm->nAllNodes)
@@ -511,13 +511,13 @@ MtmRefereeGetWinner(void)
511511
return -1;
512512
}
513513

514-
sprintf(sql, "select mtm.referee_get_winner(%d)", MtmNodeId);
514+
sprintf(sql, "select referee.get_winner(%d)", MtmNodeId);
515515
res = PQexec(conn, sql);
516516
if (PQresultStatus(res) != PGRES_TUPLES_OK ||
517517
PQntuples(res) != 1 ||
518518
PQnfields(res) != 1)
519519
{
520-
MTM_ELOG(WARNING, "Refusing unexpected result (r=%d, n=%d, w=%d, k=%s) from referee.",
520+
MTM_ELOG(WARNING, "Refusing unexpected result (r=%d, n=%d, w=%d, k=%s) from referee.get_winner()",
521521
PQresultStatus(res), PQntuples(res), PQnfields(res), PQgetvalue(res, 0, 0));
522522
PQclear(res);
523523
PQfinish(conn);
@@ -558,12 +558,12 @@ MtmRefereeClearWinner(void)
558558
return false;
559559
}
560560

561-
res = PQexec(conn, "select mtm.referee_clean()");
561+
res = PQexec(conn, "select referee.clean()");
562562
if (PQresultStatus(res) != PGRES_TUPLES_OK ||
563563
PQntuples(res) != 1 ||
564564
PQnfields(res) != 1)
565565
{
566-
MTM_ELOG(WARNING, "Refusing unexpected result (r=%d, n=%d, w=%d, k=%s) from referee_clean().",
566+
MTM_ELOG(WARNING, "Refusing unexpected result (r=%d, n=%d, w=%d, k=%s) from referee.clean().",
567567
PQresultStatus(res), PQntuples(res), PQnfields(res), PQgetvalue(res, 0, 0));
568568
PQclear(res);
569569
PQfinish(conn);
@@ -574,7 +574,7 @@ MtmRefereeClearWinner(void)
574574

575575
if (strncmp(response, "t", 1) != 0)
576576
{
577-
MTM_ELOG(WARNING, "Wrong response from referee_clean(): '%s'", response);
577+
MTM_ELOG(WARNING, "Wrong response from referee.clean(): '%s'", response);
578578
PQclear(res);
579579
PQfinish(conn);
580580
return false;

tests2/test_referee.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def setUpClass(cls):
3535
cls.client.bgrun()
3636

3737
# create extension on referee
38-
cls.nodeExecute("dbname=regression user=postgres host=127.0.0.1 port=15435", ['create extension multimaster'])
38+
cls.nodeExecute("dbname=regression user=postgres host=127.0.0.1 port=15435", ['create extension referee'])
3939

4040
@classmethod
4141
def tearDownClass(cls):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy