]> granicus.if.org Git - postgresql/commitdiff
Fix assorted header files that failed to compile standalone.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 31 May 2019 15:45:33 +0000 (11:45 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 31 May 2019 15:45:33 +0000 (11:45 -0400)
We have a longstanding project convention that all .h files should
be includable with no prerequisites other than postgres.h.  This is
tested/relied-on by cpluspluscheck.  However, cpluspluscheck has not
historically been applied to most headers outside the src/include
tree, with the predictable consequence that some of them don't work.
Fix that, usually by adding missing #include dependencies.

The change in printf_hack.h might require some explanation: without
it, my C++ compiler whines that the function is unused.  There's
not so many call sites that "inline" is going to cost much, and
besides all the callers are in test code that we really don't care
about the size of.

There's no actual bugs being fixed here, so I see no need to back-patch.

Discussion: https://postgr.es/m/b517ec3918d645eb950505eac8dd434e@gaz-is.ru

13 files changed:
src/bin/pg_waldump/rmgrdesc.h
src/bin/psql/crosstabview.h
src/interfaces/ecpg/ecpglib/ecpglib_extern.h
src/interfaces/ecpg/test/printf_hack.h
src/interfaces/libpq/fe-gssapi-common.h
src/pl/plperl/plperl_helpers.h
src/pl/plpython/plpy_elog.h
src/pl/plpython/plpy_resultobject.h
src/pl/plpython/plpy_spi.h
src/pl/plpython/plpy_subxactobject.h
src/pl/plpython/plpy_typeio.h
src/pl/plpython/plpy_util.h
src/pl/plpython/plpython.h

index d5f6923e5ce901634401bc1630f58d1be0a4d71b..42f8483b482320f77bc12e50acb96d4664b3e01f 100644 (file)
@@ -8,6 +8,7 @@
 #ifndef RMGRDESC_H
 #define RMGRDESC_H
 
+#include "access/xlogreader.h"
 #include "lib/stringinfo.h"
 
 typedef struct RmgrDescData
index 535ee9869284bcd81277a1a298ea4c624c42e719..bb02032bbd577a099a616537abd94e667aea9e4a 100644 (file)
@@ -9,6 +9,8 @@
 #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
index f9336a0c23d93a6e11e992f930c081f0dae403f1..6cb7ab1a192dc60402bb95b19078cd3e8369d8f6 100644 (file)
@@ -8,6 +8,7 @@
 #include "sqlda-native.h"
 #include "sqlda-compat.h"
 #include "ecpg_config.h"
+#include "ecpgtype.h"
 
 #ifndef CHAR_BIT
 #include <limits.h>
index ef584c0d548e1ea03d1cef30deacf6478efc0140..1c061d5e87e14384c72ea00bef5f4927b6b0bbc2 100644 (file)
@@ -2,7 +2,7 @@
  * print_double(x) has the same effect as printf("%g", x), but is intended
  * to produce the same formatting across all platforms.
  */
-static void
+static inline void
 print_double(double x)
 {
 #ifdef WIN32
index deb010e4066fbe92d4fa854236ea08e288b1bcc6..ebe24f7ca019979a992994c47fd220d96c870cb8 100644 (file)
 #include "libpq-fe.h"
 #include "libpq-int.h"
 
+#ifdef ENABLE_GSS
+
 void           pg_GSS_error(const char *mprefix, PGconn *conn,
                                                 OM_uint32 maj_stat, OM_uint32 min_stat);
 bool           pg_GSS_have_ccache(gss_cred_id_t *cred_out);
 int                    pg_GSS_load_servicename(PGconn *conn);
+
+#endif
+
 #endif                                                 /* FE_GSSAPI_COMMON_H */
index 65b85a27aed261d18f2a67b6f6137c09df8c5f7e..1e318b6dc835014bf84636636db99551c664e5e8 100644 (file)
@@ -3,6 +3,9 @@
 
 #include "mb/pg_wchar.h"
 
+#include "plperl.h"
+
+
 /*
  * convert from utf8 to database encoding
  *
index 967df784652aaf473d36edb4fbe73e41c9a17bdc..e02ef4ffe9f9e6600f53acfb698a33594cf3aa97 100644 (file)
@@ -5,6 +5,8 @@
 #ifndef PLPY_ELOG_H
 #define PLPY_ELOG_H
 
+#include "plpython.h"
+
 /* global exception classes */
 extern PyObject *PLy_exc_error;
 extern PyObject *PLy_exc_fatal;
index bbaca0dd00f74706c9b042e9db754025a0034fc8..978c4cc176cc6a279e6c78d9f52f615d15ee2e1f 100644 (file)
@@ -7,6 +7,8 @@
 
 #include "access/tupdesc.h"
 
+#include "plpython.h"
+
 
 typedef struct PLyResultObject
 {
index 5a0eef78dcd9a5c4c9249b5879a994cd1b6f6847..ec7b689359721f9a27e8756bb44f3878cb3ac8db 100644 (file)
@@ -7,6 +7,8 @@
 
 #include "utils/resowner.h"
 
+#include "plpython.h"
+
 extern PyObject *PLy_spi_prepare(PyObject *self, PyObject *args);
 extern PyObject *PLy_spi_execute(PyObject *self, PyObject *args);
 extern PyObject *PLy_spi_execute_plan(PyObject *ob, PyObject *list, long limit);
index 92a9e635f3a4ae7d20d24f4d3b2613abd8c6edc1..1ee85c0cdf3be36a16e42d7be4ae4660ad9a2e33 100644 (file)
@@ -8,6 +8,8 @@
 #include "nodes/pg_list.h"
 #include "utils/resowner.h"
 
+#include "plpython.h"
+
 /* a list of nested explicit subtransactions */
 extern List *explicit_subtransactions;
 
index 64c72fa4785e8f57d2f9f32924bf2a73e01e9930..3412a9817bfb0d86cf22cc5141f69b9faeea7148 100644 (file)
@@ -9,6 +9,8 @@
 #include "fmgr.h"
 #include "utils/typcache.h"
 
+#include "plpython.h"
+
 struct PLyProcedure;                   /* avoid requiring plpy_procedure.h here */
 
 
index f990bb089089d9e919aced4058e5362a19fd0a70..c9ba7edc0ec065d0661d40d919329f060421ee51 100644 (file)
@@ -6,6 +6,8 @@
 #ifndef PLPY_UTIL_H
 #define PLPY_UTIL_H
 
+#include "plpython.h"
+
 extern PyObject *PLyUnicode_Bytes(PyObject *unicode);
 extern char *PLyUnicode_AsString(PyObject *unicode);
 
index 1a9463a1e31c43e248b462ee90825fbf7f436ca7..3a1f0d56d7cf782763b97126c4611848ad5d6d81 100644 (file)
@@ -14,7 +14,8 @@
 
 /*
  * Include order should be: postgres.h, other postgres headers, plpython.h,
- * other plpython headers
+ * other plpython headers.  (In practice, other plpython headers will also
+ * include this file, so that they can compile standalone.)
  */
 #ifndef POSTGRES_H
 #error postgres.h must be included before plpython.h