mirror of https://github.com/citusdata/citus.git
46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* worker_transaction.h
|
|
* Type and function declarations used in performing transactions across
|
|
* workers.
|
|
*
|
|
* Copyright (c) 2016, Citus Data, Inc.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef WORKER_TRANSACTION_H
|
|
#define WORKER_TRANSACTION_H
|
|
|
|
#include "distributed/worker_manager.h"
|
|
|
|
|
|
/*
|
|
* TargetWorkerSet is used for determining the type of workers that a command
|
|
* is targeted to.
|
|
*/
|
|
typedef enum TargetWorkerSet
|
|
{
|
|
WORKERS_WITH_METADATA,
|
|
ALL_WORKERS
|
|
} TargetWorkerSet;
|
|
|
|
|
|
/* Functions declarations for worker transactions */
|
|
extern List * GetWorkerTransactions(void);
|
|
extern void SendCommandToWorker(char *nodeName, int32 nodePort, char *command);
|
|
extern void SendCommandToWorkers(TargetWorkerSet targetWorkerSet, char *command);
|
|
extern void SendBareCommandListToWorkers(TargetWorkerSet targetWorkerSet,
|
|
List *commandList);
|
|
extern void SendCommandToWorkersParams(TargetWorkerSet targetWorkerSet, char *command,
|
|
int parameterCount, const Oid *parameterTypes,
|
|
const char *const *parameterValues);
|
|
extern void SendCommandListToWorkerInSingleTransaction(char *nodeName, int32 nodePort,
|
|
char *nodeUser, List *commandList);
|
|
extern void RemoveWorkerTransaction(char *nodeName, int32 nodePort);
|
|
|
|
/* helper functions for worker transactions */
|
|
extern bool IsWorkerTransactionActive(void);
|
|
|
|
#endif /* WORKER_TRANSACTION_H */
|