Hi MauMau,

Ah. Sorry, I missed that part. As NTFS junctions and symbolic links are
different (although they behave similarly), there seems only a minor
inconvenience related to misleading error message i.e.

+ #ifdef WIN32
> +  if (rmdir(linkloc) < 0 && errno != ENOENT)
> + #else
>    if (unlink(linkloc) < 0 && errno != ENOENT)
> + #endif
>    ereport(ERROR,
>    (errcode_for_file_access(),
>     errmsg("could not remove symbolic link \"%s\": %m",


What is your opinion about it, Is it not worth changing ? . Thanks.



On Wed, Jan 15, 2014 at 7:42 PM, MauMau <maumau...@gmail.com> wrote:

> From: "Asif Naeem" <anaeem...@gmail.com>
>
>  As you have
>>
> followed destroy_tablespace_directories() function, Is there any specific
> reason not to use same logic to detect type of the file/link i.e.
> “(lstat(linkloc, &st) == 0 && S_ISDIR(st.st_mode))”, It also seems have
> more appropriate error message i.e.
>
> Thanks for reviewing and testing the patch.  Yes, at first I did what you
> mentioned, but modified the patch according to some advice in the mail
> thread.  During redo, create_tablespace_directories() needs to handle the
> case where the $PGDATA/pg_tblspc/xxx is not a symlink but a directory even
> on UNIX/Linux.  Please see TablespaceCreateDbspace is(). 
> destroy_tablespace_directories()
> doesn't have to handle such situation.
>
> Regards
> MauMau
>
>

Reply via email to