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 1ty8cj-002uFQ-1Z for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Mar 2025 12:15:45 +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 1ty8ch-008xzA-II for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Mar 2025 12:15:43 +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 1ty8ch-008xyw-7G for pgsql-hackers@lists.postgresql.org; Fri, 28 Mar 2025 12:15:43 +0000 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ty8cf-001cSl-1U for pgsql-hackers@lists.postgresql.org; Fri, 28 Mar 2025 12:15:42 +0000 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-54acc0cd458so2275915e87.0 for ; Fri, 28 Mar 2025 05:15:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743164138; x=1743768938; darn=lists.postgresql.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=hRp7ilnGft8nIT+BOIvAH+7ggQE2yUR3HiJ4TwjfiyA=; b=jv2Bsfs7pTiBlVssdTa1/3SB57UblGDTe9X9jPlwB2SGtukI0NdxLSGcCTpxFxFOuD 5fICiMcS3Tnn2pavPZ7e+p2+pl74CZtrWjwHVlywaFcW+ew8isYPUa2CFMLMhjA9rRR7 Zo4UdVkQ5B+hMuNCzsqsGskKoNSmvL9rq5/APoGY0YpLAwfjDaT14V3J9PzlwIfC9rE/ aBX2McO8XMyqHfFzaPkV+5VS2tQefr57xrjLmwOZnxx/KVbOtlLKcw36mGAoJm0PV1Li 5GylnVYEZW4S94XwkSF8Y3M7aovTvFkKuCb8y3qH06TbfDH6ob3fDjAdb5M42FuQjcvR GaRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743164138; x=1743768938; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hRp7ilnGft8nIT+BOIvAH+7ggQE2yUR3HiJ4TwjfiyA=; b=BwH+6LdCdKNUmEOrxHJlxwM9vz5AI7IPynWPIu3Q8xyFbnHwHCxe9F3q90rajF2ts8 XqA5a/+UhCUraZapgH71Y9DJC3EGlf9g0x6pD/JlwFM2lmiUNcDbhGaRmlY9jFVkV4E/ A+V3GV+DvhN8pe37WJmW2MzAIFNfRE3chZontwfhuNNJbIy8KOnv+R7opUuLnuHnJYvP zydktx4LMx0hG1vB42cD7bvPGH8WJo5Vwqu79AdaBM4P3awR0KesF+dsDDqfw8nYEHO/ XX3mkTJYNiYYKC4nKzuLAjyEKNr6B0kKGBFx8W/O+y4yulse+wNnnr6MzW5Gx1YhqwsV qdrA== X-Forwarded-Encrypted: i=1; AJvYcCXU5vdErhX2Yi7VEivAsTM5CTTG+t229EwQ5vfv7lWUg6qjfv29K17PNros1HIBYvFuJjr/+E87zEZISN5q@lists.postgresql.org X-Gm-Message-State: AOJu0Yyw2zyBSlbLhu+sA/MR7vpwoBDo/BpHpN9s7SAiSE2A60r99PvV lJ6vaWHxkh7A0iFi3yLmYWmAL4OuaFuZT0nUzfcI88p0nWUcpp+v X-Gm-Gg: ASbGnctZchu9fzPHed4kxd8rOUuicC+kPQhGDyG4xd1qtv6Jel1omNwNObOYrn6KefU mwIP55zSCXGYey1GxgSAn0JEAttzHrjEteEYbEKeEp66DQYUvmNH+33jnqOLyqYUHpekmDJl0Et mq2qfxI4nLkT/pW8KoxYCGIAZaSgbtFPckuAkq7tRsSqQrkKOee2tqDzDHlxcjW0PZrTEz2ZfB5 og1y6GuUjGf3combqzQc85Bi9RiD9W09MdnhCJdThIk866nGatl2HX75CZOzH8edBmvdFroACaP 4zYr/jmC4qd7T+jwsdlrxOk8wWsO08WlmkoptrmEx0dD X-Google-Smtp-Source: AGHT+IFsqJwnWDag31qbuZoyLZgdg4x6ZnstHeLi3EX4lrptVPcQJjFJVXnkBCaB6tmY4SQzEUSPbw== X-Received: by 2002:a05:6512:33d2:b0:549:8ed4:fb4c with SMTP id 2adb3069b0e04-54b011daf38mr3297105e87.24.1743164137873; Fri, 28 Mar 2025 05:15:37 -0700 (PDT) Received: from [172.30.49.94] ([93.174.131.138]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54b0957fff0sm288953e87.126.2025.03.28.05.15.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 28 Mar 2025 05:15:37 -0700 (PDT) Message-ID: Date: Fri, 28 Mar 2025 13:15:35 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes To: Alexander Korotkov Cc: Alena Rybakina , Pavel Borisov , Alexander Lakhin , pgsql-hackers@lists.postgresql.org References: <567ED6CA.2040504@sigaev.ru> <41ba3d47-2a48-476c-88d4-6ebd889a7af2@gmail.com> <036d64e6-4d47-485c-b047-6664d452b3e8@postgrespro.ru> <1a4f1631-86c1-4185-a520-03b24a389449@postgrespro.ru> <3ac7c436-81e1-4191-9caf-b0dd70b51511@gmail.com> <72eab2bf-7f94-4f58-84bc-2b80d74b6443@postgrespro.ru> <0db3c58a-0336-456b-8ae9-a8e5154ee7a5@gmail.com> Content-Language: en-AU From: Andrei Lepikhov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 3/28/25 12:59, Alexander Korotkov wrote: > On Fri, Mar 28, 2025 at 1:32 PM Andrei Lepikhov wrote: > I don't think this is going to be CPU-consuming. I don't think this > is going to be measurable. This patch introduces one additional pass > over array of OrArgIndexMatch'es, and qsort of them. I think I've > seen places where we spend quadratic time over the number of > OR-clauses. Even calls of match_index_to_operand() for every clause > and every index look way more expensive. Ok, I have no more objections. > I think my patch gives better determinism too. For instance, output > order doesn't depend on order of indexes in rel->indexlist. Nice! -- regards, Andrei Lepikhov