PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
variables.h
Go to the documentation of this file.
1 /*
2  * psql - the PostgreSQL interactive terminal
3  *
4  * Copyright (c) 2000-2016, PostgreSQL Global Development Group
5  *
6  * src/bin/psql/variables.h
7  */
8 #ifndef VARIABLES_H
9 #define VARIABLES_H
10 
11 /*
12  * This implements a sort of variable repository. One could also think of it
13  * as a cheap version of an associative array. In each one of these
14  * datastructures you can store name/value pairs. There can also be an
15  * "assign hook" function that is called whenever the variable's value is
16  * changed.
17  *
18  * An "unset" operation causes the hook to be called with newval == NULL.
19  *
20  * Note: if value == NULL then the variable is logically unset, but we are
21  * keeping the struct around so as not to forget about its hook function.
22  */
23 typedef void (*VariableAssignHook) (const char *newval);
24 
25 struct _variable
26 {
27  char *name;
28  char *value;
30  struct _variable *next;
31 };
32 
33 typedef struct _variable *VariableSpace;
34 
35 VariableSpace CreateVariableSpace(void);
36 const char *GetVariable(VariableSpace space, const char *name);
37 
38 bool ParseVariableBool(const char *value, const char *name);
39 int ParseVariableNum(const char *val,
40  int defaultval,
41  int faultval,
42  bool allowtrail);
43 int GetVariableNum(VariableSpace space,
44  const char *name,
45  int defaultval,
46  int faultval,
47  bool allowtrail);
48 
49 void PrintVariables(VariableSpace space);
50 
51 bool SetVariable(VariableSpace space, const char *name, const char *value);
52 bool SetVariableAssignHook(VariableSpace space, const char *name, VariableAssignHook hook);
53 bool SetVariableBool(VariableSpace space, const char *name);
54 bool DeleteVariable(VariableSpace space, const char *name);
55 
56 #endif /* VARIABLES_H */
static struct @76 value
void PrintVariables(VariableSpace space)
Definition: variables.c:171
struct _variable * VariableSpace
Definition: variables.h:33
void(* VariableAssignHook)(const char *newval)
Definition: variables.h:23
bool SetVariableAssignHook(VariableSpace space, const char *name, VariableAssignHook hook)
Definition: variables.c:232
bool DeleteVariable(VariableSpace space, const char *name)
Definition: variables.c:274
VariableSpace CreateVariableSpace(void)
Definition: variables.c:48
VariableAssignHook assign_hook
Definition: variables.h:29
struct _variable * next
Definition: variables.h:30
int ParseVariableNum(const char *val, int defaultval, int faultval, bool allowtrail)
Definition: variables.c:134
char * name
Definition: variables.h:27
const char * GetVariable(VariableSpace space, const char *name)
Definition: variables.c:62
bool ParseVariableBool(const char *value, const char *name)
Definition: variables.c:91
#define newval
bool SetVariable(VariableSpace space, const char *name, const char *value)
Definition: variables.c:188
const char * name
Definition: encode.c:521
bool SetVariableBool(VariableSpace space, const char *name)
Definition: variables.c:268
char * value
Definition: variables.h:28
int GetVariableNum(VariableSpace space, const char *name, int defaultval, int faultval, bool allowtrail)
Definition: variables.c:158
long val
Definition: informix.c:689