Re: equal() perf tweak - Mailing list pgsql-patches

From Tom Lane
Subject Re: equal() perf tweak
Date
Msg-id 14277.1067871879@sss.pgh.pa.us
Whole thread Raw
In response to equal() perf tweak  (Neil Conway <neilc@samurai.com>)
Responses Re: equal() perf tweak  (Neil Conway <neilc@samurai.com>)
List pgsql-patches
Neil Conway <neilc@samurai.com> writes:
> This code is inefficient, however: length() requires iterating through
> the entire list, so this code scans both lists twice. The attached patch
> improves this by implementing equal() with a single scan of both lists.

You have effectively reverted the code to its previous slow state.

The problem with what you've done is that it recursively applies equal()
to the list contents, which may take a very large number of cycles, only
to eventually fail because one list is a prefix of the other.  The point
of the current coding is to detect that condition before we recurse.

            regards, tom lane

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: bufmgr code cleanup
Next
From: Neil Conway
Date:
Subject: Re: equal() perf tweak