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 1w5okj-003ev0-2O for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 17:44:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5okh-004NJ7-33 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Mar 2026 17:44:16 +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 1w5okh-004NIx-22 for pgsql-hackers@lists.postgresql.org; Thu, 26 Mar 2026 17:44:16 +0000 Received: from mail-oo1-xc36.google.com ([2607:f8b0:4864:20::c36]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5okg-00000001B0F-00cG for pgsql-hackers@postgresql.org; Thu, 26 Mar 2026 17:44:14 +0000 Received: by mail-oo1-xc36.google.com with SMTP id 006d021491bc7-67df5fcece1so548171eaf.3 for ; Thu, 26 Mar 2026 10:44:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774547053; cv=none; d=google.com; s=arc-20240605; b=iaKrhME833WKCRN1orupE65IWT9cVQjvY6EtDtDMolCPTFmuzhsYPPktpt/HKPw4lc IkwOhtaGfWbQSOOCJWozSqzRHngcHxLCU7oI203VWwkaVjdEdbjiHh5FTxVaspIihjfd TNYp2bJSjk+2uyoZ34Q2eNH+eyAWBnGozwi66M08et2RNkDmjD5IVbdeNVmFEzxA30m0 Q27aluklkRnE2+L9rAVEg4a72GT6/yOdNwJX2gPUKGTKVG5yucaGaitc51v/Br5A78f+ I+efxmFKcHZrofpwIex4doSSJ1x3LHpZg+FYijCEQcR3Vp69xOL7mGPKQT9M2eArLmwo 5t4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=t0bbxJIDRC72p3r+3kQGdzaA2NByz1gMkStdJyr/E38=; fh=sf9RbcIfLZJl1RpkGaKaWS4j+sAA/MEvJZcjgO13a84=; b=JXWts4IIQ2WjISzMiiKgvMxmrrXGpeQqMWiPT6PagzOsOILvyljUD+ZD+QfJrXPKPL wcC3yAWEtnYeAkwPzCeJtYpMfzwpHapKmrZ8VwRQw9auCWZUkOMkJ3TX2kzsYWfq8v9J iWqbLprurKmAto7IJ2IslOfVjDlTJ++eGB/kgXehIAKVHhNse95t+2BBlmCsPltrSpbn 4eFjRubLJG4OEYQSbxvdAqKNY/Db3gA0S2fN4LZAeCGyLzwGTfa8PqQP3ZUyYu3eFCPh /TOdJKWb+67DK/1tCsiphJNduRASTSll+VbUzW7gec1ZcgDwE0Mwp/uCJcrYjIPtQmxI y2xA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774547053; x=1775151853; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=t0bbxJIDRC72p3r+3kQGdzaA2NByz1gMkStdJyr/E38=; b=U3skeX6vWIcoH0EZXmGgZvAYCEnm7dY5iTlN9yoniIknuuc/HvTlmQogve34J1R9Vc kLfQtYtrM80nM8Vzs4bKycRhqV7b1QCi3RnpHZ6yM/KtCjpzBy34ddxx4uQUUwg0Psq8 IZJB+qmPnW2+Kyv+uGl22I4VBaxbe44kDtIME77sP5fZuEIsLGEUeT+AXSBRJS5mpK6T a/3sGir6D0WoyvZj0dW3uoV4zfk7wJoBdj3jiDPeAkVlsOpO9QuBdZD03HRBo5p1afi6 fYVHdqdhlAgup9IBBCmDVJPYR8NFu5auBWIEiNmr8ztanwSXT01KlFPVEmH/M73JD0zn WaXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774547053; x=1775151853; h=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=t0bbxJIDRC72p3r+3kQGdzaA2NByz1gMkStdJyr/E38=; b=K3y8pOFXQjw5QYGfk2RWuVY4IFRAY3EUrDotwzcyWciRl0hzIOv1/u2BtDqX4dK8oV PVtOOXMMq+S5E5dD2NvMOwG+a6fZWhGkfaiwMTAHhsZhJXsMATbMojYiWSwmJ7yy3bHp 55xzggdHyjKzeQb687OGkdWoBlRjzRLSzn4rvStxp4AeoTkNnaCIPfa+YOfo7t6XThy5 C/MPvBDnRv9yhSLfy1D0CFXvYiwPrEECrK9kozAVGVMIN9GLDKrOQOdPNAu9Rw1PP7m4 JusaOO5tX1UARbLi3/IDtfF4k5TKWlSmHgce5/hBB1ADLAxeL8aDPVyvyuPamEU04+5g GCuw== X-Forwarded-Encrypted: i=1; AJvYcCWwQ1KWcLZjZvNszdMxiIuoT1g1ELzqvluyji/TzxZ3/kvGuhUMXqzh6OhnnT8yeolD16F/cq/EVAN0f06z@postgresql.org X-Gm-Message-State: AOJu0Yzt0tBAxvjNBKKULsk1oG5ZGe5VbMaMPzlzUwKy3rnmLvdoDYYV 26dk2GFtotDfJ52fOkileDO75SzGJzsL5nzlWIH18bZIos+2eMrbrJqEClanTPs3eMXD+PVGJ4y lkrCvQoDM56FGisoMGn4+DtF/AHq9+xs= X-Gm-Gg: ATEYQzxmCjYVYHJ7bckyZF2yKZBFAMwN9/9X8zR8COHS35XvyvCsC3/9OHgwdKWWQ5S CeIQgHDF01nKV4PZKSu6mfBuyPHZ0g4dw33lmHfrDBiEkpl/IVbSb0k89m+ryeC8Azw9zStB4ep BY8XxfD0oJlMewKQ7rt8hGSLT7hd7Yc7+bQdW3skMycX0QxN99qL2hvSEyic7VaolsrX0plmQUn Pv741wV/U3G3ea8n4117xGTlg4VRTo1cuRPpB395t/y/leRIWADlYRtc0yyVFcRmVH7ICGO3Hin R8feuX+7vOe0TzFq/2W//N1rY0Qml97U+GCArdbw1rv5vy7XT1YN X-Received: by 2002:a05:6820:1629:b0:67e:16b4:aa1b with SMTP id 006d021491bc7-67e16b4abc8mr87281eaf.53.1774547053293; Thu, 26 Mar 2026 10:44:13 -0700 (PDT) MIME-Version: 1.0 References: <20250422181006.dd6f9d1d81299f5b2ad55e1a@sraoss.co.jp> <20250624170533.3caeec7d6034cd5ddf4f00d2@sraoss.co.jp> <20250801002830.143b25971fb9594b89d96aee@sraoss.co.jp> <20250808122125.e9eaff938f8c83556f337e50@sraoss.co.jp> <20250820141028.dc06e0d1d787ce1151f69ed6@sraoss.co.jp> <20250902163341.c174d0e83eedfc54d68b8e9c@sraoss.co.jp> <20251231194455.5975fda68ed8e941e4afb805@sraoss.co.jp> <20260324195727.43416b69c71b5f63eed3b4bc@sraoss.co.jp> <20260325130127.7bc85919861f494ce7c332a5@sraoss.co.jp> <20260327000931.d2303c198c7c9445e90aeab7@sraoss.co.jp> <20260327021807.3ae563de0a288086b98755fb@sraoss.co.jp> In-Reply-To: <20260327021807.3ae563de0a288086b98755fb@sraoss.co.jp> From: Dean Rasheed Date: Thu, 26 Mar 2026 17:44:01 +0000 X-Gm-Features: AQROBzDAYc6b-k5NfiGF_RKNKq9EgOPQQJsp7a4i3Kxn-3DUDNO2yPaPKTSfLH8 Message-ID: Subject: Re: Allow to collect statistics on virtual generated columns To: Yugo Nagata Cc: Andres Freund , pgsql-hackers@postgresql.org Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, 26 Mar 2026 at 17:18, Yugo Nagata wrote: > > On Thu, 26 Mar 2026 16:00:38 +0000 > Dean Rasheed wrote: > > > On Thu, 26 Mar 2026 at 15:09, Yugo Nagata wrote: > > > > > > I've attached an updated patch including the documentation and tests. > > > > I think this is a much better approach. > > > > One thing that stands out in CreateStatistics() is that the check for > > a less-than operator can be skipped if there is just a single virtual > > generated column, for the same reason as for statistics on a single > > expression. I.e., it should be possible to build statistics on a > > single virtual generated column of any data type. > > I've attached a revised patch to skip the less-than operator check > for a single virtual generated column. > > In fact, this change skips the check for any single column, > not just virtual generated columns. However, using a non-virtual > single column will result in an error elsewhere. Makes sense. I think the comments could just be simplified to say "Disallow data types without a less-than operator in multivariate statistics", and add the word "multivariate" to the error message, as in the expression case. Regards, Dean