25{
26 static struct option long_options[] = {
46 {NULL, 0, NULL, 0}
47 };
48
50 int optindex;
52
54 const char *maintenance_db = NULL;
56 char *host = NULL;
61 bool echo = false;
62 char *owner = NULL;
64 char *template = NULL;
66 char *strategy = NULL;
71 char *builtin_locale = NULL;
72 char *icu_locale = NULL;
74
76
79
83
85
86 while ((
c =
getopt_long(argc, argv,
"D:eE:h:l:O:p:S:T:U:wW", long_options, &optindex)) != -1)
87 {
89 {
90 case 'D':
92 break;
93 case 'e':
94 echo = true;
95 break;
96 case 'E':
98 break;
99 case 'h':
101 break;
102 case 'l':
104 break;
105 case 'O':
107 break;
108 case 'p':
110 break;
111 case 'S':
113 break;
114 case 'T':
116 break;
117 case 'U':
119 break;
120 case 'w':
122 break;
123 case 'W':
125 break;
126 case 1:
128 break;
129 case 2:
131 break;
132 case 3:
134 break;
135 case 4:
137 break;
138 case 5:
140 break;
141 case 6:
143 break;
144 case 7:
146 break;
147 default:
148
150 exit(1);
151 }
152 }
153
155 {
156 case 0:
157 break;
158 case 1:
160 break;
161 case 2:
164 break;
165 default:
166 pg_log_error(
"too many command-line arguments (first is \"%s\")",
169 exit(1);
170 }
171
173 {
176 }
177
179 {
180 if (getenv("PGDATABASE"))
181 dbname = getenv(
"PGDATABASE");
182 else if (getenv("PGUSER"))
183 dbname = getenv(
"PGUSER");
184 else
186 }
187
188
189 if (maintenance_db == NULL && strcmp(
dbname,
"postgres") == 0)
190 maintenance_db = "template1";
191
192 cparams.
dbname = maintenance_db;
198
200
202
204
207
208 if (owner)
213 {
216 }
217 if (strategy)
219 if (template)
222 {
225 }
226 if (builtin_locale)
227 {
230 }
232 {
235 }
237 {
240 }
243 if (icu_locale)
244 {
247 }
249 {
252 }
253
255
256 if (echo)
259
261 {
264 exit(1);
265 }
266
268
270 {
274
275 if (echo)
278
280 {
281 pg_log_error(
"comment creation failed (database was created): %s",
284 exit(1);
285 }
286
288 }
289
291
292 exit(0);
293}
#define PG_TEXTDOMAIN(domain)
void set_pglocale_pgservice(const char *argv0, const char *app)
PGconn * connectMaintenanceDatabase(ConnParams *cparams, const char *progname, bool echo)
static void help(const char *progname)
int PQclientEncoding(const PGconn *conn)
void PQfinish(PGconn *conn)
char * PQerrorMessage(const PGconn *conn)
ExecStatusType PQresultStatus(const PGresult *res)
void PQclear(PGresult *res)
PGresult * PQexec(PGconn *conn, const char *query)
char * pg_strdup(const char *in)
int getopt_long(int argc, char *const argv[], const char *optstring, const struct option *longopts, int *longindex)
#define required_argument
static char locale_provider
void pg_logging_init(const char *argv0)
#define pg_log_error(...)
#define pg_log_error_hint(...)
void handle_help_version_opts(int argc, char *argv[], const char *fixed_progname, help_handler hlp)
PGDLLIMPORT char * optarg
#define pg_char_to_encoding
const char * get_progname(const char *argv0)
void printfPQExpBuffer(PQExpBuffer str, const char *fmt,...)
void initPQExpBuffer(PQExpBuffer str)
void appendPQExpBuffer(PQExpBuffer str, const char *fmt,...)
void appendPQExpBufferChar(PQExpBuffer str, char ch)
void appendPQExpBufferStr(PQExpBuffer str, const char *data)
const char * fmtId(const char *rawid)
void setFmtEncoding(int encoding)
void appendStringLiteralConn(PQExpBuffer buf, const char *str, PGconn *conn)
enum trivalue prompt_password
const char * get_user_name_or_exit(const char *progname)