Commit b5fe16d0 authored by Andrew Dunstan's avatar Andrew Dunstan

make initdb -U username work as advertised; back out bogus patch at rev 1.42

and supply real fix for problem it tried to address.
parent f87d4875
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* Portions taken from FreeBSD. * Portions taken from FreeBSD.
* *
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.110 2006/02/18 16:15:23 petere Exp $ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.111 2006/02/24 00:55:49 adunstan Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -113,7 +113,6 @@ static char *conversion_file; ...@@ -113,7 +113,6 @@ static char *conversion_file;
static char *info_schema_file; static char *info_schema_file;
static char *features_file; static char *features_file;
static char *system_views_file; static char *system_views_file;
static char *effective_user;
static bool made_new_pgdata = false; static bool made_new_pgdata = false;
static bool found_existing_pgdata = false; static bool found_existing_pgdata = false;
static char infoversion[100]; static char infoversion[100];
...@@ -1385,7 +1384,7 @@ bootstrap_template1(char *short_version) ...@@ -1385,7 +1384,7 @@ bootstrap_template1(char *short_version)
exit_nicely(); exit_nicely();
} }
bki_lines = replace_token(bki_lines, "POSTGRES", effective_user); bki_lines = replace_token(bki_lines, "POSTGRES", username);
bki_lines = replace_token(bki_lines, "ENCODING", encodingid); bki_lines = replace_token(bki_lines, "ENCODING", encodingid);
...@@ -1547,7 +1546,7 @@ get_set_pwd(void) ...@@ -1547,7 +1546,7 @@ get_set_pwd(void)
PG_CMD_OPEN; PG_CMD_OPEN;
PG_CMD_PRINTF2("ALTER USER \"%s\" WITH PASSWORD '%s';\n", PG_CMD_PRINTF2("ALTER USER \"%s\" WITH PASSWORD '%s';\n",
effective_user, pwd1); username, pwd1);
PG_CMD_CLOSE; PG_CMD_CLOSE;
...@@ -1866,7 +1865,7 @@ setup_privileges(void) ...@@ -1866,7 +1865,7 @@ setup_privileges(void)
PG_CMD_OPEN; PG_CMD_OPEN;
priv_lines = replace_token(privileges_setup, priv_lines = replace_token(privileges_setup,
"$POSTGRES_SUPERUSERNAME", effective_user); "$POSTGRES_SUPERUSERNAME", username);
for (line = priv_lines; *line != NULL; line++) for (line = priv_lines; *line != NULL; line++)
PG_CMD_PUTS(*line); PG_CMD_PUTS(*line);
...@@ -2446,6 +2445,7 @@ main(int argc, char *argv[]) ...@@ -2446,6 +2445,7 @@ main(int argc, char *argv[])
ret; ret;
int option_index; int option_index;
char *short_version; char *short_version;
char *effective_user;
char *pgdenv; /* PGDATA value gotten from and sent to char *pgdenv; /* PGDATA value gotten from and sent to
* environment */ * environment */
char bin_dir[MAXPGPATH]; char bin_dir[MAXPGPATH];
...@@ -2735,10 +2735,10 @@ main(int argc, char *argv[]) ...@@ -2735,10 +2735,10 @@ main(int argc, char *argv[])
exit(1); exit(1);
} }
if (strlen(username))
effective_user = username;
else
effective_user = get_id(); effective_user = get_id();
if (strlen(username) == 0)
username = effective_user;
if (strlen(encoding)) if (strlen(encoding))
encodingid = get_encoding_id(encoding); encodingid = get_encoding_id(encoding);
...@@ -2767,7 +2767,7 @@ main(int argc, char *argv[]) ...@@ -2767,7 +2767,7 @@ main(int argc, char *argv[])
"PG_HBA_SAMPLE=%s\nPG_IDENT_SAMPLE=%s\n", "PG_HBA_SAMPLE=%s\nPG_IDENT_SAMPLE=%s\n",
PG_VERSION, PG_VERSION,
pg_data, share_path, bin_path, pg_data, share_path, bin_path,
effective_user, bki_file, username, bki_file,
desc_file, shdesc_file, desc_file, shdesc_file,
conf_file, conf_file,
hba_file, ident_file); hba_file, ident_file);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment