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.96) (envelope-from ) id 1w5ngZ-003dt1-12 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 16:35:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5ngX-003qxU-2i for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 16:35:54 +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.96) (envelope-from ) id 1w5ngX-003qxM-1V for pgsql-hackers@lists.postgresql.org; Thu, 26 Mar 2026 16:35:53 +0000 Received: from mail-qv1-xf2f.google.com ([2607:f8b0:4864:20::f2f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5ngW-00000001ARJ-0BlM for pgsql-hackers@postgresql.org; Thu, 26 Mar 2026 16:35:53 +0000 Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-89a1347051aso17993706d6.2 for ; Thu, 26 Mar 2026 09:35:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774542951; cv=none; d=google.com; s=arc-20240605; b=VNOAGkJ/Mn/hQW4+pK1T5nGyb+d/LxRCHwchxUD01De1mVcpGCTjNBQSkcrhYmfjRK 15w6JsVUkXzT3Njwkw7TxU2hWRaChGbS9K9D08rCDqye1nL9mmjItemZhFFg8maRlIY2 O/fogUVAxGAZzKS24WVXiGap7pp4dym8+cVjtTBlick/X0R3ncOmexLNvkefqt9NvW1D stpFkf8q9vYAMqAsVLQokvjMMguJhW004qMCfPBnuBSA9rah6PedE46JilHSiYXkUgEL jqYdVfRBYTjH1P9mSwXKUDMwIGtqW0wYmZm+OUgO4HvesuKbspprL3R1Pga48dqniG8Z K+Yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=/W7U+EezUhOUetkftmpb3MHcBYCJjpSoncySJ4m4iMI=; fh=b6c2RJmYAgJm2jN+ReJzwDuXxtIdnlSVaXcZfTDEuY0=; b=jbzxOtdhdwDNgFh4Tfwv6260NHmO0xAcMlo2ofMrsCaXbFZpTm10Bji7AfTZyeNiCT W7DUuR2iwk+h+gMdCdGAcXV9NqujigvgCVjB2b8D4Kvd9522o4qeWOPKtSMwRWfY888k 3OcawNMUpCLASvwWkhfU72ZL7272cMYEuEh69u3Z0uRhRCOKFWbow1MJ0x+1hVJyHsHU hZKPss3HKeijCiXf15nNR/dklgD9OQsd171811Z6TLxDOIA3MJWQoBryHJnZ6bTd24np qAt/+GdfbYkqgIMGL4kImA6QdeS7x0TYw3TYzgJxzdHFPCgXmjkFnvuePY9cKSl0Cf1r 1obA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fittl.com; s=google; t=1774542951; x=1775147751; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/W7U+EezUhOUetkftmpb3MHcBYCJjpSoncySJ4m4iMI=; b=CuqIAruWFR0vspbBGNHBKYvdBr3yieT+6174IU2qgJanJxeSKyrggZ4VVOmaL0P1oq pXE+40l1KDgA9xJ1iW/pPVJYq/tGVf9XLvV4ofOihZvBeMBUUBmBCYDM+jNkXAkkpVUw eWXuL3/5uJLUHW3zB5XoLleO2UZUFABH04MgY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774542951; x=1775147751; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/W7U+EezUhOUetkftmpb3MHcBYCJjpSoncySJ4m4iMI=; b=JGeTHU6fMeXjXgapKDcFoS5MyVkTz6IsCxUiXrlC/Fd5esivOVaytnD/89h3emQz5M h6n5n0L9yFWnZkxYYhkbRB9dtwIMhybFxMZh8jXhRRCvVa+lvLwmOLk8dmE6BWTK8qYe Xf0Y8r/174PzNmOVKFnmWGylyptySpRf7Sd7uRmJf6yeFNwQb7z7AFdcHfXLjSO5fdzM iNFDPPGiW5qDUJ3VSjBIlGK7PFxC/v02XRh1ytyIOcZO2GDHcYz7wHRHISd571/Y0cKg tActKLdu4Qh13wbOYAhIQo2MVhyUFJ7vO33J7Bx6Hjlq7O/VL+lX48bN4204RCqu2YDF zUEw== X-Forwarded-Encrypted: i=1; AJvYcCUOKvo8hjlJKs/UACTLBtKtZ4lRVzybnrUfeQXC2ptRsQSrEIqSCsnaCn/pQW9SdFbucOzevCP+Oa3SdP10@postgresql.org X-Gm-Message-State: AOJu0YxXLQK37vrP1BikAO3Us5N4sUBUTMLKMi4DA6PQdbms9wmvZqTt y9CeSW7L3l/dzeCdeivvTP0QgcEsF69MVy0w1PfwESKFdx6KnM2XiQqSU3PtIYgIhHZaRShFfmV RLdvY6I+f6ETdtWSe7esTINCJyeqxRwIvZx+yJzEH X-Gm-Gg: ATEYQzxFv5mHurIST9oN5Th8bk9jVO3KFZsuSGyBQRZsZeoc+P+ejo83aajTvLhX7pk oBbBMk87aWS4+OZKtKa+BGfV98qAxCFlsyl6pukLepeFCOdmgeh8JjNJ8pG3QSQoIWnVB/1b6Cg nlv23Gn/p9Jq5DJCTjIfWdOF6Qr+u4GCMvOs3o+WTJ7VisNR9pJ93euyhLP8A8yyvO1Xph7myut IafCCKAX565Og6ExHzGWcPfUgRIc1+eftEF37nMucN+BE4T8+nrh8HpoXFSanr5/v8w6V/1SLrC kAKSpqxbqkmtP/REtKPb78XVx6Jm6KOSrCO+EcAr X-Received: by 2002:a05:6214:4517:b0:89c:e514:b4e1 with SMTP id 6a1803df08f44-89ce514b68emr9325066d6.14.1774542951089; Thu, 26 Mar 2026 09:35:51 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lukas Fittl Date: Thu, 26 Mar 2026 09:35:15 -0700 X-Gm-Features: AQROBzAFephmZoP12l9b1jUQGWU6ERFpL5by3BIzLUwP4-1jhJuKOMPBepGZSkI Message-ID: Subject: Re: Refactor query normalization into core query jumbling To: Sami Imseih Cc: Michael Paquier , zengman , pgsql-hackers , Julien Rouhaud Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Sami, On Wed, Mar 25, 2026 at 8:31=E2=80=AFPM Sami Imseih w= rote: > > v6 addresses the comments. > Great - I've tested that again and changes look good. Two more thoughts: 1) I think "SetConstantLengths" should be renamed to "GetConstantLengths", or "CalculateConstantLengths" in 0002, since we're no longer modifying JumbleState 2) I wonder if we should export this function in 0002 - that would specifically help pg_tracing, which also wants to extract inline parameter values in addition to replacing them with a $n parameter reference marker - I could also see that being useful for any other extension that's interested in pulling out parameter values I've also done some testing with two previously mentioned extensions, pg_stat_monitor [0] and pg_tracing [1]. Both look like they can be adapted to the new method with their regression tests succeeding. Thanks, Lukas [0]: https://github.com/lfittl/pg_stat_monitor/commit/d3521de9f6736c1bb745b= c31dae736540efe1781 [1]: https://github.com/lfittl/pg_tracing/commit/ecff95a87a1c60e8a5fe47662c= c6a2148bd3632f --=20 Lukas Fittl