Don't include utils/array.h from acl.h.

For most uses of acl.h the details of how "Acl" internally looks like
are irrelevant. It might make sense to move a lot of the
implementation details into a separate header at a later point.

The main motivation of this change is to avoid including fmgr.h (via
array.h, which needs it for exposed structs) in a lot of files that
otherwise don't need it. A subsequent commit will remove the fmgr.h
include from a lot of files.

Directly include utils/array.h and utils/expandeddatum.h from the
files that need them, but previously included them indirectly, via
acl.h.

Author: Andres Freund
Discussion: https://postgr.es/m/20190803193733.g3l3x3o42uv4qj7l@alap3.anarazel.de
This commit is contained in:
Andres Freund 2019-08-16 10:33:30 -07:00
parent 0ae2dc4db2
commit 6a04d345fd
14 changed files with 14 additions and 4 deletions

View File

@ -18,6 +18,7 @@
#include "catalog/pg_am.h" #include "catalog/pg_am.h"
#include "funcapi.h" #include "funcapi.h"
#include "miscadmin.h" #include "miscadmin.h"
#include "utils/array.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/rel.h" #include "utils/rel.h"

View File

@ -42,6 +42,7 @@
#include "nodes/nodeFuncs.h" #include "nodes/nodeFuncs.h"
#include "optimizer/optimizer.h" #include "optimizer/optimizer.h"
#include "pgstat.h" #include "pgstat.h"
#include "utils/array.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/datum.h" #include "utils/datum.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"

View File

@ -62,6 +62,7 @@
#include "executor/execExpr.h" #include "executor/execExpr.h"
#include "executor/nodeSubplan.h" #include "executor/nodeSubplan.h"
#include "funcapi.h" #include "funcapi.h"
#include "utils/array.h"
#include "utils/memutils.h" #include "utils/memutils.h"
#include "miscadmin.h" #include "miscadmin.h"
#include "nodes/nodeFuncs.h" #include "nodes/nodeFuncs.h"

View File

@ -65,6 +65,7 @@
#include "nodes/nodeFuncs.h" #include "nodes/nodeFuncs.h"
#include "storage/bufmgr.h" #include "storage/bufmgr.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/expandeddatum.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"
#include "utils/typcache.h" #include "utils/typcache.h"

View File

@ -231,6 +231,7 @@
#include "parser/parse_coerce.h" #include "parser/parse_coerce.h"
#include "utils/acl.h" #include "utils/acl.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/expandeddatum.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"
#include "utils/memutils.h" #include "utils/memutils.h"
#include "utils/syscache.h" #include "utils/syscache.h"

View File

@ -46,6 +46,7 @@
#include "parser/parse_coerce.h" #include "parser/parse_coerce.h"
#include "utils/acl.h" #include "utils/acl.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/expandeddatum.h"
#include "utils/datum.h" #include "utils/datum.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"
#include "utils/memutils.h" #include "utils/memutils.h"

View File

@ -53,6 +53,7 @@
#include "partitioning/partbounds.h" #include "partitioning/partbounds.h"
#include "partitioning/partprune.h" #include "partitioning/partprune.h"
#include "rewrite/rewriteManip.h" #include "rewrite/rewriteManip.h"
#include "utils/array.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"

View File

@ -31,6 +31,7 @@
#include "postmaster/autovacuum.h" #include "postmaster/autovacuum.h"
#include "statistics/extended_stats_internal.h" #include "statistics/extended_stats_internal.h"
#include "statistics/statistics.h" #include "statistics/statistics.h"
#include "utils/array.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/fmgroids.h" #include "utils/fmgroids.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"

View File

@ -26,6 +26,7 @@
#include "optimizer/clauses.h" #include "optimizer/clauses.h"
#include "statistics/extended_stats_internal.h" #include "statistics/extended_stats_internal.h"
#include "statistics/statistics.h" #include "statistics/statistics.h"
#include "utils/array.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/bytea.h" #include "utils/bytea.h"
#include "utils/fmgroids.h" #include "utils/fmgroids.h"

View File

@ -30,6 +30,7 @@
#include "funcapi.h" #include "funcapi.h"
#include "miscadmin.h" #include "miscadmin.h"
#include "utils/acl.h" #include "utils/acl.h"
#include "utils/array.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/catcache.h" #include "utils/catcache.h"
#include "utils/hashutils.h" #include "utils/hashutils.h"

View File

@ -25,6 +25,7 @@
#include "miscadmin.h" #include "miscadmin.h"
#include "parser/parse_coerce.h" #include "parser/parse_coerce.h"
#include "tsearch/ts_utils.h" #include "tsearch/ts_utils.h"
#include "utils/array.h"
#include "utils/builtins.h" #include "utils/builtins.h"
#include "utils/lsyscache.h" #include "utils/lsyscache.h"
#include "utils/regproc.h" #include "utils/regproc.h"

View File

@ -77,7 +77,7 @@ extern char *getObjectTypeDescription(const ObjectAddress *object);
extern char *getObjectIdentity(const ObjectAddress *address); extern char *getObjectIdentity(const ObjectAddress *address);
extern char *getObjectIdentityParts(const ObjectAddress *address, extern char *getObjectIdentityParts(const ObjectAddress *address,
List **objname, List **objargs); List **objname, List **objargs);
extern ArrayType *strlist_to_textarray(List *list); extern struct ArrayType *strlist_to_textarray(List *list);
extern ObjectType get_relkind_objtype(char relkind); extern ObjectType get_relkind_objtype(char relkind);

View File

@ -35,7 +35,6 @@
#include "access/htup.h" #include "access/htup.h"
#include "nodes/parsenodes.h" #include "nodes/parsenodes.h"
#include "parser/parse_node.h" #include "parser/parse_node.h"
#include "utils/array.h"
#include "utils/snapshot.h" #include "utils/snapshot.h"
@ -104,7 +103,7 @@ typedef struct AclItem
/* /*
* Acl a one-dimensional array of AclItem * Acl a one-dimensional array of AclItem
*/ */
typedef ArrayType Acl; typedef struct ArrayType Acl;
#define ACL_NUM(ACL) (ARR_DIMS(ACL)[0]) #define ACL_NUM(ACL) (ARR_DIMS(ACL)[0])
#define ACL_DAT(ACL) ((AclItem *) ARR_DATA_PTR(ACL)) #define ACL_DAT(ACL) ((AclItem *) ARR_DATA_PTR(ACL))

View File

@ -77,7 +77,7 @@ struct ExprContext;
* CAUTION: if you change the header for ordinary arrays you will also * CAUTION: if you change the header for ordinary arrays you will also
* need to change the headers for oidvector and int2vector! * need to change the headers for oidvector and int2vector!
*/ */
typedef struct typedef struct ArrayType
{ {
int32 vl_len_; /* varlena header (do not touch directly!) */ int32 vl_len_; /* varlena header (do not touch directly!) */
int ndim; /* # of dimensions */ int ndim; /* # of dimensions */