/*------------------------------------------------------------------------- * * tqueue.h * Use shm_mq to send & receive tuples between parallel backends * * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/executor/tqueue.h * *------------------------------------------------------------------------- */ #ifndef TQUEUE_H #define TQUEUE_H #include "storage/shm_mq.h" #include "tcop/dest.h" /* Opaque struct, only known inside tqueue.c. */ typedef struct TupleQueueReader TupleQueueReader; /* Use this to send tuples to a shm_mq. */ extern DestReceiver *CreateTupleQueueDestReceiver(shm_mq_handle *handle); /* Use these to receive tuples from a shm_mq. */ extern TupleQueueReader *CreateTupleQueueReader(shm_mq_handle *handle); extern void DestroyTupleQueueReader(TupleQueueReader *reader); extern MinimalTuple TupleQueueReaderNext(TupleQueueReader *reader, bool nowait, bool *done); #endif /* TQUEUE_H */