aboutsummaryrefslogtreecommitdiff
path: root/src/bin/psql/crosstabview.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/psql/crosstabview.h')
-rw-r--r--src/bin/psql/crosstabview.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/bin/psql/crosstabview.h b/src/bin/psql/crosstabview.h
new file mode 100644
index 00000000000..3cb4d755890
--- /dev/null
+++ b/src/bin/psql/crosstabview.h
@@ -0,0 +1,26 @@
+/*
+ * psql - the PostgreSQL interactive terminal
+ *
+ * Copyright (c) 2000-2016, PostgreSQL Global Development Group
+ *
+ * src/bin/psql/crosstabview.h
+ */
+
+#ifndef CROSSTABVIEW_H
+#define CROSSTABVIEW_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 theorically.
+ */
+#define CROSSTABVIEW_MAX_COLUMNS 1600
+
+/* prototypes */
+extern bool PrintResultsInCrosstab(PGresult *res);
+#endif /* CROSSTABVIEW_H */