PostgreSQL Source Code git master
sharedtuplestore.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * sharedtuplestore.h
4 * Simple mechanism for sharing tuples between backends.
5 *
6 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 * src/include/utils/sharedtuplestore.h
10 *
11 *-------------------------------------------------------------------------
12 */
13#ifndef SHAREDTUPLESTORE_H
14#define SHAREDTUPLESTORE_H
15
16#include "access/htup.h"
17#include "storage/fd.h"
19
20struct SharedTuplestore;
22
25
26/*
27 * A flag indicating that the tuplestore will only be scanned once, so backing
28 * files can be unlinked early.
29 */
30#define SHARED_TUPLESTORE_SINGLE_PASS 0x01
31
32extern size_t sts_estimate(int participants);
33
35 int participants,
36 int my_participant_number,
37 size_t meta_data_size,
38 int flags,
40 const char *name);
41
43 int my_participant_number,
45
46extern void sts_end_write(SharedTuplestoreAccessor *accessor);
47
48extern void sts_reinitialize(SharedTuplestoreAccessor *accessor);
49
51
53
54extern void sts_puttuple(SharedTuplestoreAccessor *accessor,
55 void *meta_data,
56 MinimalTuple tuple);
57
59 void *meta_data);
60
61#endif /* SHAREDTUPLESTORE_H */
void sts_reinitialize(SharedTuplestoreAccessor *accessor)
SharedTuplestoreAccessor * sts_attach(SharedTuplestore *sts, int my_participant_number, SharedFileSet *fileset)
MinimalTuple sts_parallel_scan_next(SharedTuplestoreAccessor *accessor, void *meta_data)
void sts_end_write(SharedTuplestoreAccessor *accessor)
SharedTuplestoreAccessor * sts_initialize(SharedTuplestore *sts, int participants, int my_participant_number, size_t meta_data_size, int flags, SharedFileSet *fileset, const char *name)
size_t sts_estimate(int participants)
void sts_end_parallel_scan(SharedTuplestoreAccessor *accessor)
void sts_puttuple(SharedTuplestoreAccessor *accessor, void *meta_data, MinimalTuple tuple)
void sts_begin_parallel_scan(SharedTuplestoreAccessor *accessor)
SharedTuplestore * sts
const char * name