I just noticed that PERSISTENTHASH (checked by BAThash) in gdk_private is not defined (commented). But this wouldn't explain the different between selection and join.

 

On 21 April 2016 at 18:02, Roberto Cornacchia <roberto.cornacchia@gmail.com> wrote:
I noticed a difference between 
- a hash-based string selection from a persistent, read-only table
- a hash-based join on the same table and same column

They both build a hash on the same string column (verified with gdb), but the select can reuse the hash (second call is almost free), while the join keeps rebuilding the hash.

Is this expected? 

Roberto