Nabil Sayegh wrote:
> I just changed connectby() to order siblings and return an additional
> serial column.
>
> Everything is working fine so far, but I think there could be a problem
> due to the static definition of the serial variable.
>
> I need the variable to be static, because the function itself is
> recursive.
>
> What will happen if 2 processes concurrently use the function ? will
> they conflict ?
Each backend connection is a single threaded process, so there should be
no problem. But I don't think it needs to be static anyway (see below).
> I guess, that if I set the variable to 1 at each beginning of the
> function, it will conflict.
>
> If I do _not_ reset the serial at each function call, that would lead to
> an overflow sooner or later.
Add the counter variable to build_tuplestore_recursively()'s arguments.
Initialize it in connectby(), and increment it every time
BuildTupleFromCStrings() is called.
Joe