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 1ql23I-000gY3-IP for pgsql-bugs@arkaria.postgresql.org; Tue, 26 Sep 2023 07:00:12 +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 1ql23H-009HXc-7N for pgsql-bugs@arkaria.postgresql.org; Tue, 26 Sep 2023 07:00:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ql23G-009HXJ-SH for pgsql-bugs@lists.postgresql.org; Tue, 26 Sep 2023 07:00:10 +0000 Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1ql23A-007dI0-MT for pgsql-bugs@lists.postgresql.org; Tue, 26 Sep 2023 07:00:10 +0000 Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2b95d5ee18dso136982921fa.1 for ; Tue, 26 Sep 2023 00:00:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695711603; x=1696316403; darn=lists.postgresql.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=LJQ0uOp5qs/Ns/UAiHrVebJK3SJ5xlENuyXMkB3gO2M=; b=XeTLSAUEVJWP0kjHpdiGHPX1dxV/GLAFqjtYEo4XpLbqOVlCtB9RwfPTI5NiITAuqy A3c0nYS9NcPaPJKcZGfz0Qg+Ai1hJXB8C8kC185Vxzd4sw5SwlvK7gcYvN2EccmrQbwa 0ofxHVVz96qibxJtx8mCNpOsNf7eI8IxkIPlENzVSLkjUOiOXgbdrgssviklGdeW1T1i kZvF1sHs69VB6iDV28accugE9nOvN8a49pCeT2+L2TUwiqWQ8bdjNv6hRO5dGXXNJc96 nynw2f2w3Xtu/yC2gSvzVNWEXOI1fh2vpSYF988pc57HGUUHRMBv+eZJeQvm61KeLA87 0pdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695711603; x=1696316403; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LJQ0uOp5qs/Ns/UAiHrVebJK3SJ5xlENuyXMkB3gO2M=; b=VvPx5LRmOeAZlSjX4/Q1RHBIkuLUDHv7dVFJFhTubMgc5wd/XP8z972g8HHtvk7XMk WShXFJ7bEvc9Nlguy6Ha6bWIBY8G+bHjbpEZpnKv69YmUZnZIOrXb1Y/9iAqWjUpuAcH vNY5aFhr09YMK1HQLmx6RpTGY5nnFGvuokC6ouM5xwyBt2nLvt7PQOQijdKVx8uqYPLM yPThPlfGcLKlhXfW1h3mR/E0lgHKObf1ewz76FBgPn6xaDrfspdz9phxuqi2Dd8YIqkr lgMqtyoPiS2Q308DeQoulKLxlcPLwO7a0eQ9xJe+A3ydcxmj/E217CuUP+mU3+BlH7jf WnZA== X-Gm-Message-State: AOJu0Yy3c2c5fxaRYpmggawk5WT1NAwi6/J9ZRwFAYTGqbG1d6D8Fqx1 25sYY/+bT1g3DBc2MBUmb6E= X-Google-Smtp-Source: AGHT+IHzlSK2zxz5nbURyFPDDqjK7iIT+Ikx8e+/vKxx0b5TFpImu3TcBqdBtyoxLT+Chinjbe/sCg== X-Received: by 2002:a2e:95cb:0:b0:2bd:16e6:e34e with SMTP id y11-20020a2e95cb000000b002bd16e6e34emr7131328ljh.1.1695711603097; Tue, 26 Sep 2023 00:00:03 -0700 (PDT) Received: from [1.0.0.7] ([178.155.21.181]) by smtp.gmail.com with ESMTPSA id z23-20020a2e8e97000000b002c00d4eb5ddsm2541234ljk.99.2023.09.26.00.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 Sep 2023 00:00:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------2q1mquCXfWNNc7P8gzeH0C6k" Message-ID: <5540898f-706c-f399-2797-9e8fa58a5d81@gmail.com> Date: Tue, 26 Sep 2023 10:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: BUG #17969: Assert failed in bloom_init() when false_positive_rate = 0.25 Content-Language: en-US To: Tom Lane , Tomas Vondra Cc: pgsql-bugs@lists.postgresql.org, Masahiko Sawada References: <17969-a6c54de48026d694@postgresql.org> <836412.1686502986@sss.pgh.pa.us> <2322240.1686882232@sss.pgh.pa.us> From: Alexander Lakhin In-Reply-To: <2322240.1686882232@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------2q1mquCXfWNNc7P8gzeH0C6k Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 16.06.2023 05:23, Tom Lane wrote: > Masahiko Sawada writes: >> It seems that the minimum false positive rate also doesn't work: >> postgres(1:3419179)=# create table t (a int); >> CREATE TABLE >> postgres(1:3419179)=# create index t_idx on t using brin (a >> int4_bloom_ops (false_positive_rate = 0.0001)); >> CREATE INDEX >> postgres(1:3419179)=# insert into t values (1); >> 2023-06-16 11:14:01.349 JST [3419179] ERROR: the bloom filter is too >> large (8924 > 8144) >> 2023-06-16 11:14:01.349 JST [3419179] STATEMENT: insert into t values (1); >> ERROR: the bloom filter is too large (8924 > 8144) > Hmm, but it would work with a larger page size, right? If so > I'm disinclined to move the minimum. What I don't like about > the above is that the failure doesn't occur until you actually > insert an index entry. Is there a way to check for this at > CREATE INDEX time? With a larger page size, say, 32 kB, you'll get the similar error: ERROR:  the bloom filter is too large (35856 > 32720) but, if you define also a smaller n_distinct_per_range value explicitly. e. g.: CREATE INDEX idx ON tbl USING brin (i int4_bloom_ops(false_positive_rate = 0.00010, n_distinct_per_range = 100)); false_positive_rate = 0.00010 will do. So I see an issue only with false_positive_rate. And I think the assertion that false_positive_rate is a valid probability would be good. The patch is attached. Tomas, I saw that you refactored that place (introduced bloom_filter_size()) in 2b8b2852b, could you also consider checking for invalid parameter values at CREATE INDEX time, as Tom suggested above? Best regards, Alexander --------------2q1mquCXfWNNc7P8gzeH0C6k Content-Type: text/x-patch; charset=UTF-8; name="v1-01-fix-assert-in-brin-bloom.patch" Content-Disposition: attachment; filename="v1-01-fix-assert-in-brin-bloom.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYwppbmRleCA1NjUzNGNmMjljLi41 YmZhZmZlNTliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Js b29tLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCkBAIC0z MjAsOCArMzIwLDcgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFsc2Vf cG9zaXRpdmVfcmF0ZSkKIAlpbnQJCQluaGFzaGVzOwkJLyogbnVtYmVyIG9mIGhhc2ggZnVu Y3Rpb25zICovCiAKIAlBc3NlcnQobmRpc3RpbmN0ID4gMCk7Ci0JQXNzZXJ0KChmYWxzZV9w b3NpdGl2ZV9yYXRlID49IEJMT09NX01JTl9GQUxTRV9QT1NJVElWRV9SQVRFKSAmJgotCQkg ICAoZmFsc2VfcG9zaXRpdmVfcmF0ZSA8IEJMT09NX01BWF9GQUxTRV9QT1NJVElWRV9SQVRF KSk7CisJQXNzZXJ0KGZhbHNlX3Bvc2l0aXZlX3JhdGUgPiAwICYmIGZhbHNlX3Bvc2l0aXZl X3JhdGUgPCAxKTsKIAogCS8qIGNhbGN1bGF0ZSBibG9vbSBmaWx0ZXIgc2l6ZSAvIHBhcmFt ZXRlcnMgKi8KIAlibG9vbV9maWx0ZXJfc2l6ZShuZGlzdGluY3QsIGZhbHNlX3Bvc2l0aXZl X3JhdGUsCg== --------------2q1mquCXfWNNc7P8gzeH0C6k Content-Type: text/plain; charset=UTF-8; name="v1-01-fix-assert-in-brin-bloom.backpatch14-16" Content-Disposition: attachment; filename="v1-01-fix-assert-in-brin-bloom.backpatch14-16" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYwppbmRleCBlNDk1M2E5ZDM3Li4x ZWQwZDhhM2I4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Js b29tLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCkBAIC0y NzksOCArMjc5LDcgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFsc2Vf cG9zaXRpdmVfcmF0ZSkKIAlkb3VibGUJCWs7CQkJCS8qIG51bWJlciBvZiBoYXNoIGZ1bmN0 aW9ucyAqLwogCiAJQXNzZXJ0KG5kaXN0aW5jdCA+IDApOwotCUFzc2VydCgoZmFsc2VfcG9z aXRpdmVfcmF0ZSA+PSBCTE9PTV9NSU5fRkFMU0VfUE9TSVRJVkVfUkFURSkgJiYKLQkJICAg KGZhbHNlX3Bvc2l0aXZlX3JhdGUgPCBCTE9PTV9NQVhfRkFMU0VfUE9TSVRJVkVfUkFURSkp OworCUFzc2VydChmYWxzZV9wb3NpdGl2ZV9yYXRlID4gMCAmJiBmYWxzZV9wb3NpdGl2ZV9y YXRlIDwgMSk7CiAKIAkvKiBzaXppbmcgYmxvb20gZmlsdGVyOiAtKG4gKiBsbihwKSkgLyAo bG4oMikpXjIgKi8KIAluYml0cyA9IGNlaWwoLShuZGlzdGluY3QgKiBsb2coZmFsc2VfcG9z aXRpdmVfcmF0ZSkpIC8gcG93KGxvZygyLjApLCAyKSk7Cg== --------------2q1mquCXfWNNc7P8gzeH0C6k--