@@ -2274,14 +2274,14 @@ MtmBuildConnectivityMatrix(nodemask_t* matrix)
2274
2274
}
2275
2275
2276
2276
2277
- static int MtmGetNumberOfVotingNodes ()
2277
+ static int MtmGetNumberOfVotingNodes (nodemask_t clique )
2278
2278
{
2279
2279
int i ;
2280
2280
int nVotingNodes = Mtm -> nAllNodes ;
2281
- notebask_t deadNodeMask = Mtm -> deadNodeMask ;
2281
+ nodemask_t deadNodeMask = Mtm -> deadNodeMask ;
2282
2282
for (i = 0 ;deadNodeMask != 0 ;i ++ ) {
2283
2283
if (BIT_CHECK (deadNodeMask ,i )) {
2284
- if (!BIT_CHECK (newClique ,i )) {
2284
+ if (!BIT_CHECK (clique ,i )) {
2285
2285
nVotingNodes -= 1 ;
2286
2286
}
2287
2287
BIT_CLEAR (deadNodeMask ,i );
@@ -2300,7 +2300,7 @@ void MtmRefreshClusterStatus()
2300
2300
nodemask_t matrix [MAX_NODES ];
2301
2301
int cliqueSize ;
2302
2302
nodemask_t oldClique = ~Mtm -> disabledNodeMask & (((nodemask_t )1 <<Mtm -> nAllNodes )- 1 );
2303
- int nVotingNodes ;
2303
+ int i , nVotingNodes ;
2304
2304
2305
2305
MtmBuildConnectivityMatrix (matrix );
2306
2306
newClique = MtmFindMaxClique (matrix ,Mtm -> nAllNodes ,& cliqueSize );
@@ -2321,7 +2321,7 @@ void MtmRefreshClusterStatus()
2321
2321
newClique = MtmFindMaxClique (matrix ,Mtm -> nAllNodes ,& cliqueSize );
2322
2322
}while (newClique != oldClique );
2323
2323
2324
- nVotingNodes = MtmGetNumberOfVotingNodes ();
2324
+ nVotingNodes = MtmGetNumberOfVotingNodes (newClique );
2325
2325
if (cliqueSize >=nVotingNodes /2 + 1 || (cliqueSize == (nVotingNodes + 1 )/2 && MtmMajorNode )) {/* have quorum */
2326
2326
fprintf (stderr ,"Old mask: " );
2327
2327
for (i = 0 ;i < Mtm -> nAllNodes ;i ++ ) {
@@ -2386,7 +2386,8 @@ void MtmRefreshClusterStatus()
2386
2386
*/
2387
2387
void MtmCheckQuorum (void )
2388
2388
{
2389
- int nVotingNodes = MtmGetNumberOfVotingNodes ();
2389
+ nodemask_t oldClique = ~Mtm -> disabledNodeMask & (((nodemask_t )1 <<Mtm -> nAllNodes )- 1 );
2390
+ int nVotingNodes = MtmGetNumberOfVotingNodes (oldClique );
2390
2391
2391
2392
if (Mtm -> nLiveNodes >=nVotingNodes /2 + 1 || (Mtm -> nLiveNodes == (nVotingNodes + 1 )/2 && MtmMajorNode )) {/* have quorum */
2392
2393
if (Mtm -> status == MTM_IN_MINORITY ) {
@@ -4397,8 +4398,8 @@ Datum mtm_make_table_local(PG_FUNCTION_ARGS)
4397
4398
rv = makeRangeVar (MULTIMASTER_SCHEMA_NAME ,MULTIMASTER_LOCAL_TABLES_TABLE ,-1 );
4398
4399
rel = heap_openrv (rv ,RowExclusiveLock );
4399
4400
if (rel != NULL ) {
4400
- char * tableName = RelationGetRelationName ( rel );
4401
- Oid schemaid = RelationGetNamespace ( rel );
4401
+ char * tableName = get_rel_name ( reloid );
4402
+ Oid schemaid = get_rel_namespace ( reloid );
4402
4403
char * schemaName = get_namespace_name (schemaid );
4403
4404
4404
4405
tupDesc = RelationGetDescr (rel );