Re: Add table AM 'tid_visible'

2020-11-03 Thread Jinbao Chen
Hi Andres, > Yea, it's something we should improve. Have you checked if this has > performance impact for heap? Should we also consider planning costs? Since the visibility map is very small, all pages of the visibility map will usually reside in memory. The IO cost of accessing the visibilit

Add table AM 'tid_visible'

2020-11-02 Thread Jinbao Chen
We directly call the heap function VM_ALL_VISIBLE in the IndexOnlyNext function. This is not in line with the design idea of table am. If the new storage type needs to implement index only scan, he must hack the IndexOnlyNext function. So this patch add a new table am 'tid_visible' to test visibil

Re: Planner chose a much slower plan in hashjoin, using a large table as the inner table.

2019-11-28 Thread Jinbao Chen
000)i ; analyze t_small; analyze t_big; set max_parallel_workers_per_gather = 0; On Thu, Nov 28, 2019 at 5:46 PM Andy Fan wrote: > > > On Fri, Nov 22, 2019 at 6:51 PM Jinbao Chen wrote: > >> Hi hackers, >> >> I have made a patch to fix the problem. >> >> Ad

Re: Planner chose a much slower plan in hashjoin, using a large table as the inner table.

2019-11-22 Thread Jinbao Chen
- ((outerndistinct - innerndistinct)/outerndistinct)* ((virtualbuckets - innerndistinct)/virtualbuckets)) On Tue, Nov 19, 2019 at 5:56 PM Jinbao Chen wrote: > I think we have the same understanding of this issue. > > Sometimes use smaller costs on scanning the chain in bucket like below >

Re: Planner chose a much slower plan in hashjoin, using a large table as the inner table.

2019-11-19 Thread Jinbao Chen
in is hash_qual_cost.per_tuple*innerbucketsize*outer_rows* (1 - ((outer_distinct - inner_distinct)/outer_distinct)*((buckets_num - inner_disttinct)/buckets_num)) Do you think this assumption is reasonable? On Tue, Nov 19, 2019 at 3:46 PM Thomas Munro wrote: > On Mon, Nov 18, 2019 at 7:48 PM Jinbao Che

Planner chose a much slower plan in hashjoin, using a large table as the inner table.

2019-11-17 Thread Jinbao Chen
Hi Hackers, The planner will use big table as inner table in hash join if small table have fewer unique values. But this plan is much slower than using small table as inner table. This problem occurs on master branch without parallel scan. For example create table t_small(a int); create table t_