Re: BUG #6715: 9.2b2 psql \ir does not understand leading ../
От | Tom Lane |
---|---|
Тема | Re: BUG #6715: 9.2b2 psql \ir does not understand leading ../ |
Дата | |
Msg-id | 9781.1341384106@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #6715: 9.2b2 psql \ir does not understand leading ../ (jgd@well.com) |
Ответы |
Re: BUG #6715: 9.2b2 psql \ir does not understand leading ../
|
Список | pgsql-bugs |
jgd@well.com writes: > When I do > \ir ../bar.sql > I get the bar.sql file in the CWD. AFAICS, it works fine when \ir is used interactively. However, you seem to be using it from a script: > $ psql -aX greg -f foo.sql and then indeed it does not work so well. psql is trying to evaluate the \ir relative to the script file's location, using this code: snprintf(relpath, MAXPGPATH, "%s", pset.inputfile); get_parent_directory(relpath); join_path_components(relpath, relpath, filename); canonicalize_path(relpath); The get_parent_directory() call reduces "foo.sql" to an empty string, which seems a tad bogus --- wouldn't "." be better? But in any case, join_path_components() thinks it can process a "../" prefix of the tail argument by stripping a directory name from the head argument, and there's nothing there to strip. So IMO join_path_components() is flat-out broken when applied to a non-absolute head path. Not sure about what a useful solution would be. regards, tom lane
В списке pgsql-bugs по дате отправления: