Re: New CORRESPONDING clause design - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: New CORRESPONDING clause design
Date
Msg-id CAFj8pRBEQ7FWn1wKjLHDh9Y9_HynTyJYyFTdTjSmNhbQVDhkUQ@mail.gmail.com
Whole thread Raw
In response to [HACKERS] New CORRESPONDING clause design  (Surafel Temsgen <surafel3000@gmail.com>)
Responses Re: New CORRESPONDING clause design  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi

2017-03-30 13:11 GMT+02:00 Surafel Temesgen <surafel3000@gmail.com>:
hi

Thank you very much for your help .
here is the patch fix that issue as you suggest

The crash is fixed

I did a rebase + few more regress tests.

Is following use case defined in standard?

postgres=# SELECT 0 AS x1, 1 AS a, 0 AS x2, 2 AS b, 0 AS x3, -1 AS x3 
           UNION ALL CORRESPONDING BY(a,b) SELECT 4 AS b, 0 AS x4, 3 AS a, 0 AS x6, -1 AS x6 
           UNION ALL CORRESPONDING SELECT 0 AS x8, 6 AS a, -100 AS aa;
┌───┐
│ a │
╞═══╡
│ 1 │
│ 3 │
│ 6 │
└───┘
(3 rows)

It depends on order of implementation 

if we do (T1 U T2) U T3 ---> then result is correct,
but if we do T1 U (T2 U T3) ---> than it should to fail

I am not sure, if this result is expected (correct). I expect more syntax error because corresponding by is not filled. 
 
 
Regards
 
Surafel 


On Tue, Mar 28, 2017 at 5:44 PM, Pavel Stehule <pavel.stehule@gmail.com> wrote:


2017-03-28 14:18 GMT+02:00 Pavel Stehule <pavel.stehule@gmail.com>:


2017-03-28 13:58 GMT+02:00 Surafel Temesgen <surafel3000@gmail.com>:
can you help with fixing it Pavel?

There must be some new preanalyze stage - you have to know result columns before you are starting a analyze

maybe some recheck after analyze stage to remove invalid columns can be good enough.

Regards

Pavel
 

Regards

Pavel

On Mon, Mar 27, 2017 at 11:48 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
Hi

fresh update - I enhanced Value node by location field as Tom proposal.

Few more regress tests.

But I found significant issue, that needs bigger fix - Surafel, please, can you fix it.

It crash on 

SELECT 0 AS x1, 1 AS a, 0 AS x2, 2 AS b, 0 AS x3, -1 AS x3 
UNION ALL CORRESPONDING SELECT 4 AS b, 0 AS x4, 3 AS a, 0 AS x6, -1 AS x6 
UNION ALL CORRESPONDING SELECT 0 AS x8, 6 AS b, -100 AS x9;

I'll mark this patch as waiting on author

Regards

Pavel 







Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Default monitoring roles
Next
From: Dave Page
Date:
Subject: Re: Monitoring roles patch