Re: [HACKERS] Path expansion in initdb - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] Path expansion in initdb |
Date | |
Msg-id | 200411290113.iAT1Dnb27506@candle.pha.pa.us Whole thread Raw |
List | pgsql-patches |
Peter Eisentraut wrote: > It used to be that calling > > initdb -D /some/where > > suggested starting > > postmaster -D /some/where > > and > > ./mydir/bin/initdb -D ./mydir/var/data > > suggested starting > > ./mydir/bin/postmaster -D ./mydir/var/data > > In the current sources, the path to the postmaster is fully expanded in > either case (resulting in something like > /home/peter/./mydir/bin/postmaster in the second case). (Curiously, > the data directory path is not changed.) I don't find this to be an > improvement. Is there a reason for this change? I have applied the following patch to address your concerns. We needed this anyway because we were not using native paths in the display. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/bin/initdb/initdb.c =================================================================== RCS file: /cvsroot/pgsql/src/bin/initdb/initdb.c,v retrieving revision 1.68 diff -c -c -r1.68 initdb.c *** src/bin/initdb/initdb.c 27 Nov 2004 18:51:05 -0000 1.68 --- src/bin/initdb/initdb.c 28 Nov 2004 23:37:14 -0000 *************** *** 216,223 **** --- 216,225 ---- #ifndef WIN32 #define QUOTE_PATH "" + #define DIR_SEP "/" #else #define QUOTE_PATH "\"" + #define DIR_SEP "\\" #endif /* *************** *** 2079,2084 **** --- 2081,2088 ---- char *short_version; char *pgdenv; /* PGDATA value gotten from and sent to * environment */ + char bin_dir[MAXPGPATH]; + char *pg_data_native; static const char *subdirs[] = { "global", "pg_xlog", *************** *** 2256,2261 **** --- 2260,2266 ---- } } + pg_data_native = pg_data; canonicalize_path(pg_data); /* *************** *** 2567,2578 **** if (authwarning != NULL) fprintf(stderr, authwarning); printf(_("\nSuccess. You can now start the database server using:\n\n" ! " %s%s%s/postmaster -D %s%s%s\n" "or\n" ! " %s%s%s/pg_ctl -D %s%s%s -l logfile start\n\n"), ! QUOTE_PATH, bin_path, QUOTE_PATH, QUOTE_PATH, pg_data, QUOTE_PATH, ! QUOTE_PATH, bin_path, QUOTE_PATH, QUOTE_PATH, pg_data, QUOTE_PATH); return 0; } --- 2572,2589 ---- if (authwarning != NULL) fprintf(stderr, authwarning); + /* Get directory specification used to start this executable */ + strcpy(bin_dir, argv[0]); + get_parent_directory(bin_dir); + printf(_("\nSuccess. You can now start the database server using:\n\n" ! " %s%s%s%spostmaster -D %s%s%s\n" "or\n" ! " %s%s%s%spg_ctl -D %s%s%s -l logfile start\n\n"), ! QUOTE_PATH, bin_dir, QUOTE_PATH, (strlen(bin_dir) > 0) ? DIR_SEP : "", ! QUOTE_PATH, pg_data_native, QUOTE_PATH, ! QUOTE_PATH, bin_dir, QUOTE_PATH, (strlen(bin_dir) > 0) ? DIR_SEP : "", ! QUOTE_PATH, pg_data_native, QUOTE_PATH); return 0; }
pgsql-patches by date: