1/*-------------------------------------------------------------------------
2 *
3 * tqueue.h
4 * Use shm_mq to send & receive tuples between parallel backends
5 *
6 * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 * src/include/executor/tqueue.h
10 *
11 *-------------------------------------------------------------------------
12 */
13
14#ifndef TQUEUE_H
15#define TQUEUE_H
16
17#include "storage/shm_mq.h"
18#include "tcop/dest.h"
19
20/* Opaque struct, only known inside tqueue.c. */
21typedef struct TupleQueueReader TupleQueueReader;
22
23/* Use this to send tuples to a shm_mq. */
24extern DestReceiver *CreateTupleQueueDestReceiver(shm_mq_handle *handle);
25
26/* Use these to receive tuples from a shm_mq. */
27extern TupleQueueReader *CreateTupleQueueReader(shm_mq_handle *handle);
28extern void DestroyTupleQueueReader(TupleQueueReader *reader);
29extern HeapTuple TupleQueueReaderNext(TupleQueueReader *reader,
30 bool nowait, bool *done);
31
32#endif /* TQUEUE_H */
33