Re: what's the meaning of key? - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: what's the meaning of key?
Date
Msg-id 038b1d45-9668-39c9-83f1-bebc8b84473f@iki.fi
Whole thread Raw
In response to what's the meaning of key?  ("jacktby@gmail.com" <jacktby@gmail.com>)
List pgsql-hackers
On 05/02/2023 06:09, jacktby@gmail.com wrote:
> I'm doing research on heap_am, and for heap_beginscan func, I find
> out that there is a arg called nkeys, I use some sqls as examples like
> 'select * from t;' and 'select * from t where a  = 1', but it is always 
> zero,
> can you give me some descriptions for this? what's it used for?

The executor evaluates table scan quals in the SeqScan node itself, in 
ExecScan function. It doesn't use the heap_beginscan scankeys.

There has been some discussion on changing that, as some table access 
methods might be able to filter rows more efficiently using the scan 
keys than the executor node. But that's how it currently works.

I think the heap scankeys are used by catalog accesses, though, so it's 
not completely dead code.

- Heikki




pgsql-hackers by date:

Previous
From: Himanshu Upadhyaya
Date:
Subject: Re: HOT chain validation in verify_heapam()
Next
From: Michael Paquier
Date:
Subject: Re: Generating code for query jumbling through gen_node_support.pl