PostgreSQL Source Code  git master
help_config.c File Reference
#include "postgres.h"
#include <float.h>
#include <limits.h>
#include <unistd.h>
#include "utils/guc_tables.h"
#include "utils/help_config.h"
Include dependency graph for help_config.c:

Go to the source code of this file.

Data Structures

union  mixedStruct
 

Functions

static void printMixedStruct (mixedStruct *structToPrint)
 
static bool displayStruct (mixedStruct *structToDisplay)
 
void GucInfoMain (void)
 

Function Documentation

◆ displayStruct()

static bool displayStruct ( mixedStruct structToDisplay)
static

Definition at line 76 of file help_config.c.

References config_generic::flags, mixedStruct::generic, GUC_DISALLOW_IN_FILE, GUC_NO_SHOW_ALL, and GUC_NOT_IN_SAMPLE.

Referenced by GucInfoMain().

77 {
78  return !(structToDisplay->generic.flags & (GUC_NO_SHOW_ALL |
81 }
struct config_generic generic
Definition: help_config.c:33
#define GUC_NO_SHOW_ALL
Definition: guc.h:206
#define GUC_NOT_IN_SAMPLE
Definition: guc.h:209
#define GUC_DISALLOW_IN_FILE
Definition: guc.h:210

◆ GucInfoMain()

void GucInfoMain ( void  )

Definition at line 47 of file help_config.c.

References build_guc_variables(), displayStruct(), get_guc_variables(), GetNumConfigOptions(), i, and printMixedStruct().

Referenced by main().

48 {
49  struct config_generic **guc_vars;
50  int numOpts,
51  i;
52 
53  /* Initialize the guc_variables[] array */
55 
56  guc_vars = get_guc_variables();
57  numOpts = GetNumConfigOptions();
58 
59  for (i = 0; i < numOpts; i++)
60  {
61  mixedStruct *var = (mixedStruct *) guc_vars[i];
62 
63  if (displayStruct(var))
64  printMixedStruct(var);
65  }
66 
67  exit(0);
68 }
void build_guc_variables(void)
Definition: guc.c:4227
static bool displayStruct(mixedStruct *structToDisplay)
Definition: help_config.c:76
struct config_generic ** get_guc_variables(void)
Definition: guc.c:4215
static void printMixedStruct(mixedStruct *structToPrint)
Definition: help_config.c:89
int i
int GetNumConfigOptions(void)
Definition: guc.c:8367

◆ printMixedStruct()

static void printMixedStruct ( mixedStruct structToPrint)
static

Definition at line 89 of file help_config.c.

References _, mixedStruct::_bool, mixedStruct::_enum, config_string::boot_val, config_enum::boot_val, config_enum_lookup_by_value(), config_group_names, config_generic::context, mixedStruct::generic, config_generic::group, GucContext_Names, mixedStruct::integer, config_generic::long_desc, config_int::max, config_real::max, config_int::min, config_real::min, config_generic::name, PGC_BOOL, PGC_ENUM, PGC_INT, PGC_REAL, PGC_STRING, mixedStruct::real, config_bool::reset_val, config_int::reset_val, config_real::reset_val, config_generic::short_desc, mixedStruct::string, config_generic::vartype, and write_stderr.

Referenced by GucInfoMain().

90 {
91  printf("%s\t%s\t%s\t",
92  structToPrint->generic.name,
93  GucContext_Names[structToPrint->generic.context],
94  _(config_group_names[structToPrint->generic.group]));
95 
96  switch (structToPrint->generic.vartype)
97  {
98 
99  case PGC_BOOL:
100  printf("BOOLEAN\t%s\t\t\t",
101  (structToPrint->_bool.reset_val == 0) ?
102  "FALSE" : "TRUE");
103  break;
104 
105  case PGC_INT:
106  printf("INTEGER\t%d\t%d\t%d\t",
107  structToPrint->integer.reset_val,
108  structToPrint->integer.min,
109  structToPrint->integer.max);
110  break;
111 
112  case PGC_REAL:
113  printf("REAL\t%g\t%g\t%g\t",
114  structToPrint->real.reset_val,
115  structToPrint->real.min,
116  structToPrint->real.max);
117  break;
118 
119  case PGC_STRING:
120  printf("STRING\t%s\t\t\t",
121  structToPrint->string.boot_val ? structToPrint->string.boot_val : "");
122  break;
123 
124  case PGC_ENUM:
125  printf("ENUM\t%s\t\t\t",
126  config_enum_lookup_by_value(&structToPrint->_enum,
127  structToPrint->_enum.boot_val));
128  break;
129 
130  default:
131  write_stderr("internal error: unrecognized run-time parameter type\n");
132  break;
133  }
134 
135  printf("%s\t%s\n",
136  (structToPrint->generic.short_desc == NULL) ? "" : _(structToPrint->generic.short_desc),
137  (structToPrint->generic.long_desc == NULL) ? "" : _(structToPrint->generic.long_desc));
138 }
const char * long_desc
Definition: guc_tables.h:150
double reset_val
Definition: guc_tables.h:219
struct config_int integer
Definition: help_config.c:36
struct config_bool _bool
Definition: help_config.c:34
const char * name
Definition: guc_tables.h:146
const char * short_desc
Definition: guc_tables.h:149
const char * boot_val
Definition: guc_tables.h:228
#define write_stderr(str)
Definition: parallel.c:182
const char * config_enum_lookup_by_value(struct config_enum *record, int val)
Definition: guc.c:5645
struct config_real real
Definition: help_config.c:35
struct config_enum _enum
Definition: help_config.c:38
struct config_generic generic
Definition: help_config.c:33
const char *const GucContext_Names[]
Definition: guc.c:529
const char *const config_group_names[]
Definition: guc.c:566
enum config_type vartype
Definition: guc_tables.h:153
struct config_string string
Definition: help_config.c:37
double max
Definition: guc_tables.h:214
double min
Definition: guc_tables.h:213
enum config_group group
Definition: guc_tables.h:148
bool reset_val
Definition: guc_tables.h:187
#define _(x)
Definition: elog.c:84
GucContext context
Definition: guc_tables.h:147
int reset_val
Definition: guc_tables.h:203