Обсуждение: BUG #14153: Unrecognized node type error when upsert is present in recursive CTE
BUG #14153: Unrecognized node type error when upsert is present in recursive CTE
От
thomas.alton@gmail.com
Дата:
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDE1MwpMb2dnZWQgYnk6ICAg ICAgICAgIFRob21hcyBBbHRvbgpFbWFpbCBhZGRyZXNzOiAgICAgIHRob21h cy5hbHRvbkBnbWFpbC5jb20KUG9zdGdyZVNRTCB2ZXJzaW9uOiA5LjUuMwpP cGVyYXRpbmcgc3lzdGVtOiAgIFVidW50dSAxNC4wNC40IExUUwpEZXNjcmlw dGlvbjogICAgICAgIAoKU2ltcGxlIHJlcHJvIHN0ZXBzIHRoYXQgcmVzdWx0 cyBpbiBhbiAiRVJST1I6ICB1bnJlY29nbml6ZWQgbm9kZSB0eXBlOgo5MjAi DQoNCkNSRUFURSBUQUJMRSBmb29iYXIgKA0KICAgIGlkIFRFWFQgUFJJTUFS WSBLRVkNCik7DQpXSVRIIFJFQ1VSU0lWRSB1cHNlcnRlZCBBUyAoDQogICAg SU5TRVJUIElOVE8gZm9vYmFyIChpZCkgVkFMVUVTICgnYScpDQogICAgT04g Q09ORkxJQ1QgKGlkKSBETyBOT1RISU5HDQogICAgUkVUVVJOSU5HIGlkDQop DQpTRUxFQ1QgaWQgZnJvbSB1cHNlcnRlZDsNCg0KDQpJbiBhY3Rpb246DQoN CnBvc3RncmVzQHBvc3RncmVzOi9ob21lL21vYXRyYSQgcHNxbA0KcHNxbCAo OS41LjMpDQpUeXBlICJoZWxwIiBmb3IgaGVscC4NCg0KcG9zdGdyZXM9IyBT RUxFQ1QgdmVyc2lvbigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmVyc2lvbg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIFBvc3RncmVT UUwgOS41LjMgb24geDg2XzY0LXBjLWxpbnV4LWdudSwgY29tcGlsZWQgYnkg Z2NjIChVYnVudHUKNC44LjItMTl1YnVudHUxKSA0LjguMiwgNjQtYml0DQoo MSByb3cpDQoNCnBvc3RncmVzPSMgQ1JFQVRFIERBVEFCQVNFIGV4YW1wbGU7 DQpDUkVBVEUgREFUQUJBU0UNCnBvc3RncmVzPSMgXGMgZXhhbXBsZQ0KWW91 IGFyZSBub3cgY29ubmVjdGVkIHRvIGRhdGFiYXNlICJleGFtcGxlIiBhcyB1 c2VyICJwb3N0Z3JlcyIuDQpleGFtcGxlPSMgQ1JFQVRFIFRBQkxFIGZvb2Jh ciAoDQpleGFtcGxlKCMgICBpZCBURVhUIFBSSU1BUlkgS0VZDQpleGFtcGxl KCMgKTsNCkNSRUFURSBUQUJMRQ0KZXhhbXBsZT0jDQpleGFtcGxlPSMgXHNl dCBWRVJCT1NJVFkgdmVyYm9zZQ0KZXhhbXBsZT0jDQpleGFtcGxlPSMgV0lU SCBSRUNVUlNJVkUgdXBzZXJ0ZWQgQVMgKA0KZXhhbXBsZSgjICAgSU5TRVJU IElOVE8gZm9vYmFyIChpZCkgVkFMVUVTICgnYScpDQpleGFtcGxlKCMgICBP TiBDT05GTElDVCAoaWQpIERPIE5PVEhJTkcNCmV4YW1wbGUoIyAgIFJFVFVS TklORyBpZA0KZXhhbXBsZSgjICkNCmV4YW1wbGUtIyBTRUxFQ1QgaWQgRlJP TSB1cHNlcnRlZDsNCkVSUk9SOiAgWFgwMDA6IHVucmVjb2duaXplZCBub2Rl IHR5cGU6IDkyMA0KTE9DQVRJT046ICByYXdfZXhwcmVzc2lvbl90cmVlX3dh bGtlciwgbm9kZUZ1bmNzLmM6MzQxMA0KDQpJIGV4cGVjdGVkIHRoZSBxdWVy eSBydW4gc3VjY2Vzc2Z1bGx5IGFuZCByZXR1cm4gb25lIHJvdyB3aXRoICdh Jy4NCg0KVGhlcmUgZG9lc24ndCBldmVuIG5lZWQgdG8gYmUgYSByZWN1cnNp dmUgcXVlcnkgaW4gdGhlIENURSwganVzdCB0aGUKUkVDVVJTSVZFIGtleXdv cmQuICBSZW1vdmluZyB0aGUgIk9OIENPTkZMSUNUIC4uLiIgY2xhdXNlIHJl c3VsdHMgaW4gYQpzdWNjZXNzLg0KDQpleGFtcGxlPSMgV0lUSCBSRUNVUlNJ VkUgdXBzZXJ0ZWQgQVMgKA0KZXhhbXBsZSgjICAgSU5TRVJUIElOVE8gZm9v YmFyIChpZCkgVkFMVUVTICgnYScpDQpleGFtcGxlKCMgICBSRVRVUk5JTkcg aWQNCmV4YW1wbGUoIyApDQpleGFtcGxlLSMgU0VMRUNUIGlkIEZST00gdXBz ZXJ0ZWQ7DQogaWQNCi0tLS0NCiBhDQooMSByb3cpDQoNCg0KUmVtb3Zpbmcg dGhlICJSRUNVUlNJVkUiIGtleXdvcmQgYW5kIGxlYXZpbmcgdGhlICJPTiBD T05GTElDVCAuLi4iIGNsYXVzZSBpcwphbHNvIHN1Y2Nlc3NmdWwuDQoNCmV4 YW1wbGU9IyBXSVRIIHVwc2VydGVkIEFTICgNCmV4YW1wbGUoIyAgIElOU0VS VCBJTlRPIGZvb2JhciAoaWQpIFZBTFVFUyAoJ2EnKSwgKCdiJykNCmV4YW1w bGUoIyAgIE9OIENPTkZMSUNUIChpZCkgRE8gTk9USElORw0KZXhhbXBsZSgj ICAgUkVUVVJOSU5HIGlkDQpleGFtcGxlKCMgKQ0KZXhhbXBsZS0jIFNFTEVD VCBpZCBGUk9NIHVwc2VydGVkOw0KIGlkDQotLS0tDQogYg0KKDEgcm93KQ0K DQoNClRoZSBzZXJ2ZXIgd2FzIGluc3RhbGxlZCBieSBhZGRpbmcgdGhlCmh0 dHA6Ly9hcHQucG9zdGdyZXNxbC5vcmcvcHViL3JlcG9zL2FwdC8gcmVwbyBh bmQgdXNpbmcgYXB0IGZvcgppbnN0YWxsYXRpb24uICBPcmlnaW5hbGx5IEkg aW5zdGFsbGVkIDkuNS4yLCBidXQgdXBncmFkZWQgdG8gOS41LjMgdG8KcmUt dmVyaWZ5IHRoaXMgYnVnIG9uIHRoZSBsYXRlc3QgcmVsZWFzZS4gUnVubmlu ZyB1bmFtZSAtYSBnaXZlczoNCg0KbW9hdHJhQHBvc3RncmVzOn4kIHVuYW1l IC1hDQpMaW51eCBwb3N0Z3JlcyAzLjEzLjAtODUtZ2VuZXJpYyAjMTI5LVVi dW50dSBTTVAgVGh1IE1hciAxNyAyMDo1MDoxNSBVVEMKMjAxNiB4ODZfNjQg eDg2XzY0IHg4Nl82NCBHTlUvTGludXgNCg0KDQpQbGVhc2UgbGV0IG1lIGtu b3cgaWYgdGhlcmUncyBhbnl0aGluZyBlbHNlIEkgY2FuIGRvIHRvIGJlIG9m IGFzc2lzdGFuY2UuDQoKCg==
Re: BUG #14153: Unrecognized node type error when upsert is present in recursive CTE
От
Peter Geoghegan
Дата:
On Sat, May 21, 2016 at 4:28 PM, <thomas.alton@gmail.com> wrote: > ERROR: XX000: unrecognized node type: 920 > LOCATION: raw_expression_tree_walker, nodeFuncs.c:3410 > > I expected the query run successfully and return one row with 'a'. This is clearly a bug. 920 is IndexElem, which can appear in a raw parse tree in 9.5, due to ON CONFLICT's use of inference reusing what was previously only used for CREATE INDEX. (It does not make it into the post-parse analysis tree, though). RECURSIVE isn't really special. You don't see the bug in the non-RECURSIVE case because of the differing rules on query name visibility. I'll add a fix for this bug to my personal TODO list. It shouldn't be hard to fix. -- Peter Geoghegan