aboutsummaryrefslogtreecommitdiff
path: root/src/include/commands/explain_format.h
blob: 05045bf8cb4af3150c77ecdb9e35af84914e8f68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*-------------------------------------------------------------------------
 *
 * explain_format.h
 *	  prototypes for explain_format.c
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994-5, Regents of the University of California
 *
 * src/include/commands/explain_format.h
 *
 *-------------------------------------------------------------------------
 */
#ifndef EXPLAIN_FORMAT_H
#define EXPLAIN_FORMAT_H

#include "nodes/pg_list.h"

struct ExplainState;			/* avoid including explain.h here */

extern void ExplainPropertyList(const char *qlabel, List *data,
								struct ExplainState *es);
extern void ExplainPropertyListNested(const char *qlabel, List *data,
									  struct ExplainState *es);
extern void ExplainPropertyText(const char *qlabel, const char *value,
								struct ExplainState *es);
extern void ExplainPropertyInteger(const char *qlabel, const char *unit,
								   int64 value, struct ExplainState *es);
extern void ExplainPropertyUInteger(const char *qlabel, const char *unit,
									uint64 value, struct ExplainState *es);
extern void ExplainPropertyFloat(const char *qlabel, const char *unit,
								 double value, int ndigits,
								 struct ExplainState *es);
extern void ExplainPropertyBool(const char *qlabel, bool value,
								struct ExplainState *es);

extern void ExplainOpenGroup(const char *objtype, const char *labelname,
							 bool labeled, struct ExplainState *es);
extern void ExplainCloseGroup(const char *objtype, const char *labelname,
							  bool labeled, struct ExplainState *es);

extern void ExplainOpenSetAsideGroup(const char *objtype, const char *labelname,
									 bool labeled, int depth,
									 struct ExplainState *es);
extern void ExplainSaveGroup(struct ExplainState *es, int depth,
							 int *state_save);
extern void ExplainRestoreGroup(struct ExplainState *es, int depth,
								int *state_save);

extern void ExplainDummyGroup(const char *objtype, const char *labelname,
							  struct ExplainState *es);

extern void ExplainBeginOutput(struct ExplainState *es);
extern void ExplainEndOutput(struct ExplainState *es);
extern void ExplainSeparatePlans(struct ExplainState *es);

extern void ExplainIndentText(struct ExplainState *es);

#endif