summaryrefslogtreecommitdiffstats
path: root/src/bin/psql/crosstabview.h
blob: 53d0e4182ba953dbe59fc91e4f31378c067097b7 (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
/*
 * psql - the PostgreSQL interactive terminal
 *
 * Copyright (c) 2000-2021, PostgreSQL Global Development Group
 *
 * src/bin/psql/crosstabview.h
 */

#ifndef CROSSTABVIEW_H
#define CROSSTABVIEW_H

#include "libpq-fe.h"

/*
 * Limit the number of output columns generated in memory by the crosstabview
 * algorithm. A new output column is added for each distinct value found in the
 * column that pivots (to form the horizontal header).
 * The purpose of this limit is to fail early instead of over-allocating or spending
 * too much time if the crosstab to generate happens to be unreasonably large
 * (worst case: a NxN cartesian product with N=number of tuples).
 * The value of 1600 corresponds to the maximum columns per table in storage,
 * but it could be as much as INT_MAX theoretically.
 */
#define CROSSTABVIEW_MAX_COLUMNS 1600

/* prototypes */
extern bool PrintResultsInCrosstab(const PGresult *res);

#endif							/* CROSSTABVIEW_H */