On Sun, Oct 13, 2019 at 03:02:17PM -0500, Justin Pryzby wrote:
> On Thu, Sep 19, 2019 at 05:15:37PM +0900, Amit Langote wrote:
> > Please find attached updated patches.
> 
> Tom pointed me to this thread, since we hit it in 12.0
> https://www.postgresql.org/message-id/flat/16802.1570989962%40sss.pgh.pa.us#070f6675a11dff17760b1cfccf1c038d
> 
> I can't say much about the patch; there's a little typo:
> "The nullability of inner relation keys prevents them to"
> ..should say "prevent them from".
> 
> In order to compile it against REL12, I tried to cherry-pick this one:
> 3373c715: Speed up finding EquivalenceClasses for a given set of rels
> 
> But then it crashes in check-world (possibly due to misapplied hunks).

I did it again paying more attention and got it to pass.

The PWJ + FULL JOIN query seems ok now.

But I'll leave PWJ disabled until I can look more closely.

$ PGOPTIONS='-c max_parallel_workers_per_gather=0 -c enable_mergejoin=off -c 
enable_hashagg=off -c enable_partitionwise_join=on' psql postgres -f 
tmp/sql-2019-10-11.1      
SET
 Nested Loop  (cost=80106964.13..131163200.28 rows=2226681567 width=6)
   Join Filter: ((s.site_location = ''::text) OR ((s.site_office)::integer = 
((COALESCE(t1.site_id, t2.site_id))::integer)))
   ->  Group  (cost=80106964.13..80837945.46 rows=22491733 width=12)
         Group Key: (COALESCE(t1.start_time, t2.start_time)), 
((COALESCE(t1.site_id, t2.site_id))::integer)
         ->  Merge Append  (cost=80106964.13..80613028.13 rows=22491733 
width=12)
               Sort Key: (COALESCE(t1.start_time, t2.start_time)), 
((COALESCE(t1.site_id, t2.site_id))::integer)
               ->  Group  (cost=25494496.54..25633699.28 rows=11136219 width=12)
                     Group Key: (COALESCE(t1.start_time, t2.start_time)), 
((COALESCE(t1.site_id, t2.site_id))::integer)
                     ->  Sort  (cost=25494496.54..25522337.09 rows=11136219 
width=12)
                           Sort Key: (COALESCE(t1.start_time, t2.start_time)), 
((COALESCE(t1.site_id, t2.site_id))::integer)
                           ->  Hash Full Join  (cost=28608.75..24191071.36 
rows=11136219 width=12)
                                 Hash Cond: ((t1.start_time = t2.start_time) 
AND (t1.site_id = t2.site_id))
                                 Filter: ((COALESCE(t1.start_time, 
t2.start_time) >= '2019-10-01 00:00:00'::timestamp without time zone) AND 
(COALESCE(t1.start_time, t2.start_time) < '2019-10-01 01:00:00'::timestamp 
without time zone))
                                 ->  Seq Scan on t1  (cost=0.00..14495.10 
rows=940910 width=10)
                                 ->  Hash  (cost=14495.10..14495.10 rows=940910 
width=10)
                                       ->  Seq Scan on t1 t2  
(cost=0.00..14495.10 rows=940910 width=10)
               ->  Group  (cost=54612467.58..54754411.51 rows=11355514 width=12)
                     Group Key: (COALESCE(t1_1.start_time, t2_1.start_time)), 
((COALESCE(t1_1.site_id, t2_1.site_id))::integer)
                     ->  Sort  (cost=54612467.58..54640856.37 rows=11355514 
width=12)
                           Sort Key: (COALESCE(t1_1.start_time, 
t2_1.start_time)), ((COALESCE(t1_1.site_id, t2_1.site_id))::integer)
                           ->  Hash Full Join  (cost=28608.75..53281777.94 
rows=11355514 width=12)
                                 Hash Cond: ((t1_1.start_time = 
t2_1.start_time) AND (t1_1.site_id = t2_1.site_id))
                                 Filter: ((COALESCE(t1_1.start_time, 
t2_1.start_time) >= '2019-10-01 00:00:00'::timestamp without time zone) AND 
(COALESCE(t1_1.start_time, t2_1.start_time) < '2019-10-01 01:00:00'::timestamp 
without time zone))
                                 ->  Seq Scan on t2 t1_1  (cost=0.00..14495.10 
rows=940910 width=10)
                                 ->  Hash  (cost=14495.10..14495.10 rows=940910 
width=10)
                                       ->  Seq Scan on t2 t2_1  
(cost=0.00..14495.10 rows=940910 width=10)
   ->  Materialize  (cost=0.00..2.48 rows=99 width=6)
         ->  Seq Scan on s  (cost=0.00..1.99 rows=99 width=6)

-- 
Justin Pryzby
System Administrator
Telsasoft
+1-952-707-8581


Reply via email to