Thread

  1. pg_upgrade test mods for Windows/Mingw

    Andrew Dunstan <andrew@dunslane.net> — 2012-09-03T03:29:48Z

    The attached patch is what I had to do to get pg_upgrade's "make check" 
    to run on Windows under Mingw. Mostly the changes have to do with 
    getting paths right between Windows and MSys, or calling generated .bat 
    files instead of shell scripts.
    
    cheers
    
    andrew
    
  2. Re: pg_upgrade test mods for Windows/Mingw

    Gurjeet Singh <singh.gurjeet@gmail.com> — 2012-09-03T03:53:03Z

    On Sun, Sep 2, 2012 at 11:29 PM, Andrew Dunstan <andrew@dunslane.net> wrote:
    
    > The attached patch is what I had to do to get pg_upgrade's "make check" to
    > run on Windows under Mingw. Mostly the changes have to do with getting
    > paths right between Windows and MSys, or calling generated .bat files
    > instead of shell scripts.
    >
    
    When reading shell script code like this
    
    `uname -a | sed 's/.* //'` = Msys
    
    and
    
    sed -i -e 's,/,\\,g' -e 's,\\s\\q ,/s/q ,' delete_old_cluster.bat
    2>/dev/null
    
    I find it easier to understand and maintain if the comments also describe
    what is the original string format that  this pattern-matching expects,
    like:
    
    # We expect `uname -a` output like:
    #  Windows_NT4.0 Msys
    
    and
    
    # We expect lines of the format:
    #   abc/xyz/def/
    # and we convert them to
    #  abc\xyz\def
    
    
    BTW, would `uname -o` eliminate the need of pattern matching in the first
    snippet? The Wikipedia [1] article suggests so.
    
    [1] http://en.wikipedia.org/wiki/Uname
    
    Best regards,
    -- 
    Gurjeet Singh
    
  3. Re: pg_upgrade test mods for Windows/Mingw

    Tom Lane <tgl@sss.pgh.pa.us> — 2012-09-03T04:19:51Z

    Gurjeet Singh <singh.gurjeet@gmail.com> writes:
    > [ this needs a comment: ]
    > `uname -a | sed 's/.* //'` = Msys
    
    Also, how about doing that just once and setting a variable to test
    as needed later?  Multiple copied-and-pasted instances of line noise
    like that are risky.
    
    			regards, tom lane
    
    
    
  4. Re: pg_upgrade test mods for Windows/Mingw

    Andrew Dunstan <andrew@dunslane.net> — 2012-09-03T13:16:45Z

    On 09/02/2012 11:53 PM, Gurjeet Singh wrote:
    > On Sun, Sep 2, 2012 at 11:29 PM, Andrew Dunstan <andrew@dunslane.net 
    > <mailto:andrew@dunslane.net>> wrote:
    >
    >     The attached patch is what I had to do to get pg_upgrade's "make
    >     check" to run on Windows under Mingw. Mostly the changes have to
    >     do with getting paths right between Windows and MSys, or calling
    >     generated .bat files instead of shell scripts.
    >
    >
    > When reading shell script code like this
    >
    > `uname -a | sed 's/.* //'` = Msys
    >
    > and
    >
    > sed -i -e 's,/,\\,g' -e 's,\\s\\q ,/s/q ,' delete_old_cluster.bat 
    > 2>/dev/null
    >
    > I find it easier to understand and maintain if the comments also 
    > describe what is the original string format that  this 
    > pattern-matching expects, like:
    >
    > # We expect `uname -a` output like:
    > #  Windows_NT4.0 Msys
    >
    > and
    >
    > # We expect lines of the format:
    > #   abc/xyz/def/
    > # and we convert them to
    > #  abc\xyz\def
    >
    >
    > BTW, would `uname -o` eliminate the need of pattern matching in the 
    > first snippet? The Wikipedia [1] article suggests so.
    >
    > [1] http://en.wikipedia.org/wiki/Uname
    >
    >
    
    
    Yeah it would. This wasn't intended as a final patch anyway, just as 
    notice of what I actually had working in case anyone else wanted to try.
    
    cheers
    
    andrew
    
    
    
    
    
  5. Re: pg_upgrade test mods for Windows/Mingw

    Andrew Dunstan <andrew@dunslane.net> — 2012-09-03T13:57:57Z

    On 09/03/2012 09:16 AM, Andrew Dunstan wrote:
    >
    > On 09/02/2012 11:53 PM, Gurjeet Singh wrote:
    >> On Sun, Sep 2, 2012 at 11:29 PM, Andrew Dunstan <andrew@dunslane.net 
    >> <mailto:andrew@dunslane.net>> wrote:
    >>
    >>     The attached patch is what I had to do to get pg_upgrade's "make
    >>     check" to run on Windows under Mingw. Mostly the changes have to
    >>     do with getting paths right between Windows and MSys, or calling
    >>     generated .bat files instead of shell scripts.
    >>
    >>
    >> When reading shell script code like this
    >>
    >> `uname -a | sed 's/.* //'` = Msys
    >>
    >> and
    >>
    >> sed -i -e 's,/,\\,g' -e 's,\\s\\q ,/s/q ,' delete_old_cluster.bat 
    >> 2>/dev/null
    
    BTW, this last one is a hack. pg_upgrade should make sure that it 
    outputs backslashed paths for rmdir. (In general, the Windows runtime is 
    quite happy to accept forward-slashed paths, but certain builtin 
    commands, such as rmdir are not).
    
    
    cheers
    
    andrew