I just found myself in execScan.c. I noticed that tlist_matches_tupdesc()
is a bit wasteful in some cases as it goes to the trouble of matching the
tlist to the TupleDesc item by item until it runs out of tlist items
or finds a non-match. Once the loop completes it ensures that all tlist
items were consumed, so basically in other words, it checks the lengths
match.

I think likely this was just not made optimal originally in d0b4399 when
the length property etc were added to List

The attached patch adds a fast path so that no list items are compared if
the lengths don't match.

Is this worth fixing?

--
 David Rowley                   http://www.2ndQuadrant.com/
<http://www.2ndquadrant.com/>
 PostgreSQL Development, 24x7 Support, Training & Services

Attachment: tlist_matches_tupdesc_fastpath.patch
Description: Binary data

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to