1 | /* |
2 | * psql - the PostgreSQL interactive terminal |
3 | * |
4 | * Copyright (c) 2000-2019, PostgreSQL Global Development Group |
5 | * |
6 | * src/bin/psql/crosstabview.h |
7 | */ |
8 | |
9 | #ifndef CROSSTABVIEW_H |
10 | #define CROSSTABVIEW_H |
11 | |
12 | #include "libpq-fe.h" |
13 | |
14 | /* |
15 | * Limit the number of output columns generated in memory by the crosstabview |
16 | * algorithm. A new output column is added for each distinct value found in the |
17 | * column that pivots (to form the horizontal header). |
18 | * The purpose of this limit is to fail early instead of over-allocating or spending |
19 | * too much time if the crosstab to generate happens to be unreasonably large |
20 | * (worst case: a NxN cartesian product with N=number of tuples). |
21 | * The value of 1600 corresponds to the maximum columns per table in storage, |
22 | * but it could be as much as INT_MAX theoretically. |
23 | */ |
24 | #define CROSSTABVIEW_MAX_COLUMNS 1600 |
25 | |
26 | /* prototypes */ |
27 | extern bool PrintResultsInCrosstab(const PGresult *res); |
28 | |
29 | #endif /* CROSSTABVIEW_H */ |
30 | |