pgsql-server/contrib/tablefunc README.tablefun ... - Mailing list pgsql-committers

From momjian@postgresql.org (Bruce Momjian - CVS)
Subject pgsql-server/contrib/tablefunc README.tablefun ...
Date
Msg-id 20021003171112.F12DD476245@postgresql.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    momjian@postgresql.org    02/10/03 13:11:12

Modified files:
    contrib/tablefunc: README.tablefunc tablefunc.c

Log message:
    > The previous patch fixed an infinite recursion bug in
    > contrib/tablefunc/tablefunc.c:connectby. But, other unmanageable error
    > seems to occur even if a table has commonplace tree data(see below).
    >
    > I would think the patch, ancestor check, should be
    >
    >   if (strstr(branch_delim || branchstr->data || branch_delim,
    >                        branch_delim || current_key || branch_delim))
    >
    > This is my image, not a real code. However, if branchstr->data includes
    > branch_delim, my image will not be perfect.

    Good point. Thank you Masaru for the suggested fix.

    Attached is a patch to fix the bug found by Masaru. His example now
    produces:

    regression=# SELECT * FROM connectby('connectby_tree', 'keyid',
    'parent_keyid', '11', 0, '-') AS t(keyid int, parent_keyid int, level
    int,
    branch text);
    keyid | parent_keyid | level |  branch

    -------+--------------+-------+----------
    11 |              |     0 | 11
    10 |           11 |     1 | 11-10
    111 |           11 |     1 | 11-111
    1 |          111 |     2 | 11-111-1
    (4 rows)

    While making the patch I also realized that the "no show branch" form of
    the  function was not going to work very well for recursion detection.
    Therefore  there is now a default branch delimiter ('~') that is used
    internally, for  that case, to enable recursion detection to work. If
    you need a different  delimiter for your specific data, you will have to
    use the "show branch" form  of the function.

    Joe Conway


pgsql-committers by date:

Previous
From: momjian@postgresql.org (Bruce Momjian - CVS)
Date:
Subject: pgsql-server/src backend/libpq/md5.c bin/psql/ ...
Next
From: momjian@postgresql.org (Bruce Momjian - CVS)
Date:
Subject: pgsql-server/contrib/tablefunc expected/tablef ...