Document intentional violations of header inclusion policy.
Although there are good reasons for our policy of including postgres.h as the first #include in every .c file, never from .h files, there are two places where it seems expedient to violate the policy because the alternative is to modify externally-supplied .c files. (In the case of the regexp library, the idea that it's externally-supplied is kind of at odds with reality, but I haven't entirely given up hope that it will become a standalone project some day.) Add some comments to make it explicit that this is a policy violation and provide the reasoning. In passing, move #include "miscadmin.h" out of regcomp.c and into regcustom.h, which is where it should be if we're taking this reasoning seriously at all. Discussion: https://postgr.es/m/CAEepm=2zCoeq3QxVwhS5DFeUh=yU6z81pbWMgfOB8OzyiBwxzw@mail.gmail.com Discussion: https://postgr.es/m/11634.1488932128@sss.pgh.pa.us
This commit is contained in:
parent
2f899e7d37
commit
d6b059ec74
@ -34,8 +34,6 @@
|
|||||||
|
|
||||||
#include "regex/regguts.h"
|
#include "regex/regguts.h"
|
||||||
|
|
||||||
#include "miscadmin.h" /* needed by rcancelrequested/rstacktoodeep */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* forward declarations, up here so forward datatypes etc. are defined early
|
* forward declarations, up here so forward datatypes etc. are defined early
|
||||||
*/
|
*/
|
||||||
|
@ -29,6 +29,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* headers if any */
|
/* headers if any */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* It's against Postgres coding conventions to include postgres.h in a
|
||||||
|
* header file, but we allow the violation here because the regexp library
|
||||||
|
* files specifically intend this file to supply application-dependent
|
||||||
|
* headers, and are careful to include this file before anything else.
|
||||||
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@ -47,6 +54,8 @@
|
|||||||
|
|
||||||
#include "mb/pg_wchar.h"
|
#include "mb/pg_wchar.h"
|
||||||
|
|
||||||
|
#include "miscadmin.h" /* needed by rcancelrequested/rstacktoodeep */
|
||||||
|
|
||||||
|
|
||||||
/* overrides for regguts.h definitions, if any */
|
/* overrides for regguts.h definitions, if any */
|
||||||
#define FUNCPTR(name, args) (*name) args
|
#define FUNCPTR(name, args) (*name) args
|
||||||
|
@ -22,6 +22,11 @@
|
|||||||
#ifndef SNOWBALL_HEADR_H
|
#ifndef SNOWBALL_HEADR_H
|
||||||
#define SNOWBALL_HEADR_H
|
#define SNOWBALL_HEADR_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* It's against Postgres coding conventions to include postgres.h in a
|
||||||
|
* header file, but we allow the violation here because the alternative is
|
||||||
|
* to modify the machine-generated .c files provided by the Snowball project.
|
||||||
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
/* Some platforms define MAXINT and/or MININT, causing conflicts */
|
/* Some platforms define MAXINT and/or MININT, causing conflicts */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user