Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qNY4k-005I7Q-Rt for pgsql-hackers@arkaria.postgresql.org; Sun, 23 Jul 2023 12:20:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qNY4h-003Zlg-Rp for pgsql-hackers@arkaria.postgresql.org; Sun, 23 Jul 2023 12:20:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qNY4h-003ZlY-Cv for pgsql-hackers@lists.postgresql.org; Sun, 23 Jul 2023 12:20:35 +0000 Received: from smtp30.i.mail.ru ([95.163.41.71]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qNY4Z-0011ds-67 for pgsql-hackers@lists.postgresql.org; Sun, 23 Jul 2023 12:20:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=inbox.ru; s=mail4; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID:From:Subject:Content-Type:Content-Transfer-Encoding:To:Cc; bh=gqT5Rmgw2qM9pdg4V9zffNLdvWYmRm6Fl3ydO3OpWag=; t=1690114827;x=1690204827; b=XvUF7nJwmHPHOo/dTec73nlyHOaeMarr3azu9WWHGnnTq5ijc0oMBVe7Z5Z8SWNirz1kr/y/aFVD+PS0L4UstTm9VCBl3hiLCjEt3+pP8/WOufr6I5OhXb8XWZNmL+F+aWfK7ZE/uCimvggV5wGogYMf4NiLFhXLDS7zvwRS28jnp74k5ZyovRDrCGUrI/Ez/+xg1YpuHqHVRphROUp+qPGFNebncCjf+/DB62ItTZqeH3SVvVPIa74nFyV8nbjpfNb/4xz8wzXKyEwrWyebRtgYQw4qvnADzdWtjlS6jQFthRAkBGIrmJlEtzjvC2Z679SNL6nZd2/dZh2PVjeZHA==; Received: by smtp30.i.mail.ru with esmtpa (envelope-from ) id 1qNY4V-00F5MR-Cc; Sun, 23 Jul 2023 15:20:23 +0300 Message-ID: Date: Sun, 23 Jul 2023 15:20:21 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: Making Vars outer-join aware Content-Language: en-US To: Tom Lane Cc: Justin Pryzby , Richard Guo , pgsql-hackers@lists.postgresql.org, "Finnerty, Jim" References: <1035990.1667261942@sss.pgh.pa.us> <2901865.1667685211@sss.pgh.pa.us> <4019771.1672155080@sss.pgh.pa.us> <323812.1672241806@sss.pgh.pa.us> <2043562.1674506286@sss.pgh.pa.us> <20230212235823.GW1653@telsasoft.com> <20230213184807.GF1653@telsasoft.com> <5b370a46-f6d2-373d-9dbc-0d55250e82c1@inbox.ru> <3197069.1683202924@sss.pgh.pa.us> <9290bdfc-cc61-4b78-27ea-340237e341b3@inbox.ru> <71315.1686243488@sss.pgh.pa.us> From: "Anton A. Melnikov" In-Reply-To: <71315.1686243488@sss.pgh.pa.us> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Authentication-Results: smtp30.i.mail.ru; auth=pass smtp.auth=aamelnikov@inbox.ru smtp.mailfrom=aamelnikov@inbox.ru X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD9227D43F3CB451B41EC079F463F492D22BD9C91F12D99EFE2182A05F538085040EDD9D849F65BFDF6A6E896540CF7E65E94708CB529C881738CB73FE826512FF1 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7E628FE8A185FCFBEEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F790063786F1F539FBE87B778638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D874BC23C98E6093464FA45CBF8DA66FAC6F9789CCF6C18C3F8528715B7D10C86878DA827A17800CE77B6A9F97C9A1D64D9FA2833FD35BB23D9E625A9149C048EE9ECD01F8117BC8BEA471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F44604297287769387670735204B6963042765DA4BF6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA73AA81AA40904B5D9A18204E546F3947CB6FBD635917D924D2D242C3BD2E3F4C64AD6D5ED66289B523666184CF4C3C14F6136E347CC761E07725E5C173C3A84C3BB1335270DA3F462BA3038C0950A5D36B5C8C57E37DE458B330BD67F2E7D9AF16D1867E19FE14079C09775C1D3CA48CFE478A468B35FE7671DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C30AE2CC35261D99CA75ECD9A6C639B01B4E70A05D1297E1BBCB5012B2E24CD356 X-C1DE0DAB: 0D63561A33F958A53B7E4D642D98DBDD5DC223FE078E18EC609991C996F2CC29F87CCE6106E1FC07E67D4AC08A07B9B0BFD98ABA943BD70BCB5012B2E24CD356 X-C8649E89: 1C3962B70DF3F0ADBF74143AD284FC7177DD89D51EBB7742424CF958EAFF5D571004E42C50DC4CA955A7F0CF078B5EC49A30900B95165D3475FE4AA98865E235CB33AB85A38E7C7FFFCC94424B4C56D1F41E21B39449360DE0F268B902F720DD1D7E09C32AA3244C7AAAFAE9CB5DB4426ABB2E426B3CEB0EA8CE788DE6831205ED9A463B7D0AAFF65DA084F8E80FEBD3CA1DBAE76B8BEF1B848AB2035610DCCACC2E138FFB4ACBED X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojHVt7enifY/tEHWDY3RblZQ== X-Mailru-Sender: 0A26D9779F8DDEAB21ED031CFB1F67B2BABC56A503396C1FF711F504275922A9AFB59ACFC67F42CD4D5D706BA1F24F5F39D6CA1605B49A4EAD5F279D6597390C4F0A872F021F90595006A4317769895AC77752E0C033A69E3453F38A29522196 X-Mras: Ok List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 08.06.2023 19:58, Tom Lane wrote: > I think the right thing here is not either of your patches, but > to tweak adjust_relid_set() to not fail on negative oldrelid. > I'll go make it so. Thanks! This fully solves the problem with ChangeVarNodes() that i wrote above. > Hmm. That implies that you're changing plan data structures around after > setrefs.c, which doesn't seem like a great design to me --- IMO that ought > to happen in PlanCustomPath, which will still see the original varnos. My further searchers led to the fact that it is possible to immediately set the necessary varnos during custom_scan->scan.plan.targetlist creation and leave the сustom_scan->custom_scan_tlist = NIL rather than changing them later using ChangeVarNodes(). This resulted in a noticeable code simplification. Thanks a lot for pointing on it! Sincerely yours, -- Anton A. Melnikov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company