@@ -153,6 +153,7 @@ static int get_connection(void)
153
153
154
154
char * raftable_get (const char * key , size_t * len )
155
155
{
156
+ Assert (wcfg .id >= 0 );
156
157
return state_get (shared .state , key , len );
157
158
}
158
159
@@ -249,6 +250,8 @@ bool raftable_set(const char *key, const char *value, size_t vallen, int timeout
249
250
TimestampTz now ;
250
251
int elapsed_ms ;
251
252
253
+ Assert (wcfg .id >= 0 );
254
+
252
255
keylen = strlen (key ) + 1 ;
253
256
254
257
size += sizeof (RaftableField ) - 1 ;
@@ -308,6 +311,7 @@ void raftable_every(void (*func)(const char *, const char *, size_t, void *), vo
308
311
char * key , * value ;
309
312
size_t len ;
310
313
Assert (shared .state );
314
+ Assert (wcfg .id >= 0 );
311
315
312
316
scan = state_scan (shared .state );
313
317
while (state_next (shared .state , scan , & key , & value , & len ))
@@ -327,6 +331,7 @@ raftable_sql_list(PG_FUNCTION_ARGS)
327
331
MemoryContext oldcontext ;
328
332
329
333
Assert (shared .state );
334
+ Assert (wcfg .id >= 0 );
330
335
331
336
if (SRF_IS_FIRSTCALL ())
332
337
{
@@ -399,8 +404,8 @@ _PG_init(void)
399
404
400
405
DefineCustomIntVariable ("raftable.id" ,
401
406
"Raft peer id of current instance" , NULL ,
402
- & wcfg .id , 0 ,
403
- 0 , RAFTABLE_PEERS_MAX - 1 ,
407
+ & wcfg .id , -1 ,
408
+ -1 , RAFTABLE_PEERS_MAX - 1 ,
404
409
PGC_POSTMASTER , 0 , NULL , NULL , NULL
405
410
);
406
411
@@ -452,13 +457,18 @@ _PG_init(void)
452
457
& peerstr , "0:127.0.0.1:6543" ,
453
458
PGC_POSTMASTER , 0 , NULL , NULL , NULL
454
459
);
455
- parse_peers (wcfg .peers , peerstr );
456
-
457
- request_shmem ();
458
- worker_register (& wcfg );
459
460
460
461
PreviousShmemStartupHook = shmem_startup_hook ;
461
- shmem_startup_hook = startup_shmem ;
462
+
463
+ if (wcfg .id >= 0 )
464
+ {
465
+ parse_peers (wcfg .peers , peerstr );
466
+
467
+ request_shmem ();
468
+ worker_register (& wcfg );
469
+
470
+ shmem_startup_hook = startup_shmem ;
471
+ }
462
472
}
463
473
464
474
void
0 commit comments