Thread: BUG #6692: Potential Bug in equalfuncs.c

BUG #6692: Potential Bug in equalfuncs.c

From
msrbugzilla@gmail.com
Date:
The following bug has been logged on the website:

Bug reference:      6692
Logged by:          Ken Cheung
Email address:      msrbugzilla@gmail.com
PostgreSQL version: 9.1.3
Operating system:   Linux
Description:=20=20=20=20=20=20=20=20

I observed a code clone in the following files. The function
"COMPARE_LOCATION_FIELD" is called in some functions and missed in other
functions. I wonder if this is a bug. Hope it helps.

function : _equalA_ArrayExpr @ (file:
"postgresql-9.1.3/src/backend/nodes/equalfuncs.c", line: 2118)~2121
    COMPARE_NODE_FIELD(elements);
    COMPARE_LOCATION_FIELD(location);

    return true;

function : _equalAlternativeSubPlan @ (file:
"postgresql-9.1.3/src/backend/nodes/equalfuncs.c", line: 415)~417
    COMPARE_NODE_FIELD(subplans);

    return true;

function : _equalColumnRef @ (file:
"postgresql-9.1.3/src/backend/nodes/equalfuncs.c", line: 2051)~2054
    COMPARE_NODE_FIELD(fields);
    COMPARE_LOCATION_FIELD(location);

    return true;

function : _equalDoStmt @ (file:
"postgresql-9.1.3/src/backend/nodes/equalfuncs.c", line: 1306)~1308
    COMPARE_NODE_FIELD(args);

    return true;

Re: BUG #6692: Potential Bug in equalfuncs.c

From
Tom Lane
Date:
msrbugzilla@gmail.com writes:
> I observed a code clone in the following files. The function
> "COMPARE_LOCATION_FIELD" is called in some functions and missed in other
> functions. I wonder if this is a bug. Hope it helps.

Well, COMPARE_LOCATION_FIELD() is a no-op anyway, but for
documentation's sake it should be called in the comparison function for
every node type that has a token location field (some do, some don't).
So far as I can see, it is called where it should be.  Did you observe a
place where it is not, and if so where?

            regards, tom lane