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 1vRZXc-00Gm8y-0w for pgsql-general@arkaria.postgresql.org; Fri, 05 Dec 2025 17:24:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vRZXa-009Jes-2o for pgsql-general@arkaria.postgresql.org; Fri, 05 Dec 2025 17:24:23 +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.96) (envelope-from ) id 1vRZXa-009Jei-1g for pgsql-general@lists.postgresql.org; Fri, 05 Dec 2025 17:24:22 +0000 Received: from mail-ua1-x943.google.com ([2607:f8b0:4864:20::943]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vRZXY-003JeV-06 for pgsql-general@postgresql.org; Fri, 05 Dec 2025 17:24:22 +0000 Received: by mail-ua1-x943.google.com with SMTP id a1e0cc1a2514c-9371f7571cfso720655241.1 for ; Fri, 05 Dec 2025 09:24:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764955458; x=1765560258; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5wQzQm9XA/K6MdXiQprltfSnRT3sY66qxDeRwDdr/bk=; b=QdQH4UmWucP0lK7QTWgBThgr20KYeZ0Dh70holbgtARPL8qRrOJ64EL18Is9hQCUMv UvGhBrs417Yjaqg0t6WpUoLjsWOa/zjE1hGxWpSgg8zXjnpjI5AsnNHRVVqP4TD5KtNx lpS0TpuUWSmv+F+if2Q+IFXHzNsx1cP/MVc5wDDFKYvKH5VbR3BWjHtp5KV/1DybXZiF kwiBKVfm5kS3yqFNiF0EMwIj8cDixX9Wy5/SJ3R4IrbkYg+eeIIdGKYEiOA83nkqy89J QnjMGDQT/RCTbD2c1qtMnZv7QrjT80deKADQJ3laFqUNkRWRlNwxtIzN38VaSzDH3MwL aZcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764955458; x=1765560258; h=content-transfer-encoding:cc:to:subject:message-id:date:from :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=5wQzQm9XA/K6MdXiQprltfSnRT3sY66qxDeRwDdr/bk=; b=aqytQN9gVPWhW2bb0ykxOPOYDTgZV0RpE7bGdscvt9K8LGd8fDn8Av3VojxVkpfiN0 dlbmH2oj3xIDE+lamanH1KnJW8hW02f0HevItNJ0eprAK/RGi+e4nOuGug6hY0CuDTZK kxjAzQK3wTtPKHq8txsg8GEd8UDoOPjLJABocQ35kV9DfisY1sFQawegc5bFveotOu7+ ox1UnMEyuHZ4jIgEXCpYx2MttqvJaqEWnJcTzfz9h2MeFDTYrOESoeaPdQnFXDfEBd7m HTDjoykAsrugph6fIrlxXYZjBpws908uJ6JEtuNk2wU7olrRl8/Uz/yf78FaxbrTMEZg ijlg== X-Gm-Message-State: AOJu0Yw0W1TqZRleefckLKWUycz9Xbx9jQ5dzvRjIwpK+qFs8uJXDKlM 6TY0tClBhaSn016TnxNU9N66wxiqZKuPtommAiYu4ywV3u4J1E0LyH2mGSnFdf1lTXPS/6EhzGt 7RzjBeYN1ybcm/4yRizX2u3BsOZ+1cc5Av1jkevc= X-Gm-Gg: ASbGnctaYBUpPMzLdQiRPFq8KtmVpx5Yerjd5jqI6/JEeTmF2qVn5RqaMozHNyW3yvf DDymGoglPuUMmFTsCR4cFXv5CE+d8rgLSW8ImfJYXFj1RdJr/kEKjSxJqmC2BW0QIYmL6u4DMHC yeG0duVvh7/duP6WpvfjzFBVmaQaV9jWy7priFtDqDbhKVlhIfVTtpsCSLZvXJA1g0YnA3CKq9G DQMhhYSO03bDVIyr4XICA/J8CXr2OfcZVVN0AnHyPY4GlA/Rf8AS83PyDuf+96AxPpJQcbG X-Google-Smtp-Source: AGHT+IEg4xoDJI/M59lcSui9AQOzyWRm8o4csuIEInubDyv29484daVT6SKukwynqulLWpfetY9AF+7F6TQQOmeho3M= X-Received: by 2002:a05:6102:162b:b0:5db:fb4c:3a8f with SMTP id ada2fe7eead31-5e52cc65445mr13168137.39.1764955457587; Fri, 05 Dec 2025 09:24:17 -0800 (PST) MIME-Version: 1.0 From: Sivaprasad Date: Fri, 5 Dec 2025 22:54:06 +0530 X-Gm-Features: AQt7F2o1nJu2WKVYyBOOc46o2AI5rTC8OnNJp9piF8vr7WRSOuAS_fUVMSeaHl8 Message-ID: Subject: [ANNOUNCE] BISCUIT 2.0 - Now a full Index Access Method with multi-column indexing To: pgsql-announce@postgresql.org Cc: pgsql-general@postgresql.org 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 all, I=E2=80=99m happy to share a major update to BISCUIT (Bitmap Indexed Search= ing with Comprehensive Union and Intersection Techniques), which has now evolved from a standalone extension into a full Index Access Method (IAM) for PostgreSQL. Since the initial release, BISCUIT has gained a mature architecture, significant performance improvements, and broad feature support - making it a practical alternative for deterministic pattern matching workloads. =F0=9F=94=B9 What=E2=80=99s new 1) Full Index Access Method implementation: BISCUIT now plugs directly into PostgreSQL=E2=80=99s indexing framework, bringing custom index-build, search, scan, and vacuum logic. 2) Multi-column indexing support: You can now index multiple columns in a single BISCUIT index, enabling richer pattern-matching queries and improved performance on composite text workloads. 3) Highly optimized storage layout: Reduced index size, faster scans, and improved cache behavior through compact bitmap storage and logical operation based pruning. 4) Deterministic pattern search (no verification overhead): The core advantage remains: BISCUIT guarantees correctness without rechecking rows, unlike trigram-based approaches. 5) Seamless integration with PostgreSQL: WAL-safe, VACUUM-aware, and extension-managed via CREATE EXTENSION biscuit. =F0=9F=94=B9 Where to get it PGXN: https://pgxn.org/dist/biscuit/ GitHub: https://github.com/crystallinecore/biscuit =F0=9F=94=B9 Call for feedback BISCUIT is growing quickly, and real-world feedback is invaluable-whether on performance, operator design, or additional indexing strategies. Thanks for the continued support and testing! Best regards, Sivaprasad Murali Author, BISCUIT-IAM