Re: relative_path() seems overly complicated and buggy

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: relative_path() seems overly complicated and buggy
Date: 2004-11-06 21:39:21
Message-ID: 200411062139.iA6LdLM17972@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Bruce Momjian wrote:
> Tom Lane wrote:
> > There's at least one bug in path.c's relative_path(): it will think
> > "/foo/a/b" is equal to "/foo/ab" because it skips directory separators
> > independently in the two strings. The code is sufficiently complex that
> > I have little faith in it not having any other bugs, either.
> >
> > I believe that it's unnecessary for relative_path to be so tense
> > about trying to implement platform-weirdness-aware comparison of paths.
> > It is not called on arbitrary paths, but only on the compiled-in
> > paths that were generated by configure. Therefore it is reasonable
> > to assume that the common prefix we are trying to identify is spelled
> > exactly the same in both paths.
> >
> > What I'd like to do is simplify it to just check for exact equality
> > up through the last directory separator in bin_path. Any objections?
>
> If you can simplify it, feel free. I found that code much more complex
> than I liked but couldn't simplify it. Originally I thought that would
> be used in more generic places but that hasn't happened.

Let me try to clean it up first by using canonicalize_path() and
comparing the result.

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2004-11-06 22:05:20 Proposal for Recover mode in pg_ctl (in 8.0)
Previous Message Simon Riggs 2004-11-06 21:24:39 Re: Increasing the length of