mirror of https://github.com/citusdata/citus.git
50 lines
1.8 KiB
C
50 lines
1.8 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* multi_logical_replication.h
|
|
*
|
|
* Declarations for public functions and variables used in logical replication
|
|
* on the distributed tables while moving shards.
|
|
*
|
|
* Copyright (c) 2017, Citus Data, Inc.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef MULTI_LOGICAL_REPLICATION_H_
|
|
#define MULTI_LOGICAL_REPLICATION_H_
|
|
|
|
|
|
#include "nodes/pg_list.h"
|
|
|
|
|
|
/* Config variables managed via guc.c */
|
|
extern int LogicalReplicationTimeout;
|
|
|
|
extern bool PlacementMovedUsingLogicalReplicationInTX;
|
|
|
|
|
|
extern void LogicallyReplicateShards(List *shardList, char *sourceNodeName,
|
|
int sourceNodePort, char *targetNodeName,
|
|
int targetNodePort);
|
|
|
|
extern XLogRecPtr GetRemoteLogPosition(MultiConnection *connection);
|
|
|
|
extern void
|
|
CreateShardSubscription(MultiConnection *connection, char *sourceNodeName,
|
|
int sourceNodePort, char *userName, char *databaseName,
|
|
char * publicationName,
|
|
Oid ownerId);
|
|
|
|
extern void WaitForRelationSubscriptionsBecomeReady(MultiConnection *targetConnection,
|
|
Bitmapset *tableOwnerIds, char * operationPrefix);
|
|
extern void WaitForShardSubscriptionToCatchUp(MultiConnection *targetConnection,
|
|
XLogRecPtr sourcePosition,
|
|
Bitmapset *tableOwnerIds,
|
|
char * operationPrefix);
|
|
|
|
#define SHARD_MOVE_PUBLICATION_PREFIX "citus_shard_move_publication_"
|
|
#define SHARD_MOVE_SUBSCRIPTION_PREFIX "citus_shard_move_subscription_"
|
|
#define SHARD_MOVE_SUBSCRIPTION_ROLE_PREFIX "citus_shard_move_subscription_role_"
|
|
#define SHARD_SPLIT_PUBLICATION_PREFIX "citus_shard_split_publication_"
|
|
#define SHARD_SPLIT_SUBSCRIPTION_PREFIX "citus_shard_split_subscription_"
|
|
#endif /* MULTI_LOGICAL_REPLICATION_H_ */
|