Re: Hash support for row types

From: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: Hash support for row types
Date: 2020-11-17 13:25:59
Message-ID: d1a898b2-cd3d-0519-def9-5f38163c68e8@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I wrote a new patch to add a lot more tests around hash-based plans.
This is intended to apply separately from the other patch, and the other
patch would then "flip" some of the test cases.

On 2020-11-13 20:51, Tom Lane wrote:
> * The new test in with.sql claims to be testing row hashing, but
> it's not very apparent that any such thing actually happens. Maybe
> EXPLAIN the query, as well as execute it, to confirm that a
> hash-based plan is used.

The recursive union requires hashing, but this is not visible in the
plan. You only get an error if there is no hashing support for a type.
I have added a test for this.

For the non-recursive union, I have added more tests that show this in
the plans.

> * Is it worth devising a test case in which hashing is not possible
> because one of the columns isn't hashable? I have mixed feelings
> about this because the set of suitable column types may decrease
> to empty over time, making it hard to maintain the test case.

I used the money type for now. If someone adds hash support for that,
we'll change it. I don't think this will change too rapidly, though.

--
Peter Eisentraut
2ndQuadrant, an EDB company
https://www.2ndquadrant.com/

Attachment Content-Type Size
0001-Add-more-tests-for-hashing-and-hash-based-plans.patch text/plain 23.7 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message James Coleman 2020-11-17 14:03:17 Re: enable_incremental_sort changes query behavior
Previous Message Heikki Linnakangas 2020-11-17 13:13:12 Re: [patch] [doc] Clarify that signal functions have no feedback