Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pP2du-0005Su-Rk for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Feb 2023 14:38:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pP2dt-0000x4-Mm for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Feb 2023 14:38:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pP2dt-0000wu-DC for pgsql-hackers@lists.postgresql.org; Mon, 06 Feb 2023 14:38:49 +0000 Received: from mail-yb1-xb31.google.com ([2607:f8b0:4864:20::b31]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pP2dp-0006dv-TS for pgsql-hackers@postgresql.org; Mon, 06 Feb 2023 14:38:48 +0000 Received: by mail-yb1-xb31.google.com with SMTP id g2so14659127ybk.8 for ; Mon, 06 Feb 2023 06:38:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=MhB+tSw4IzKDAHPZcFl916rEMPolBamy5goVTPmkiMc=; b=KMCXMSvM+C0zcNDvysr3pJwmmyKsr0rc1htYrSfI3qyIF96iaPN8Y1dtgF6rXTgJiA Fbem5FtJHTMO5PgbnK1OZkJK5OhumvD316kW2syT3iSgVvU1TdCQ2zm4NvMH6MEHXkah 9NzeGkjvppUM3he5bCIesfKJ2Qi25COHMbOVhJwGqyRF6wgIf7+zBn6sxcFDBrbc/xTC prCW1iRruzpIPrC9l0/F6niMc8CbsBCaKm1/89sqeYK9OPJSj1SHSF6McHWMrA+gabjJ EJCuwN838WNCq5n6vm9nj7dvv2yma3YpP3zEROBsiF/6OIMvgfbi/SNjubEsR17X6UqN dAJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MhB+tSw4IzKDAHPZcFl916rEMPolBamy5goVTPmkiMc=; b=HfB+rPGvVhtxpVY/mOEqDJs2BPHGgorop5QGSe9jFvulITqbKmNN/ihLeM0wJ2yuUe pGQphyxeCiGUbyHfGkamQO0nD6+jXicVuUm6mBsrtZTcR8GkkeK7d8Rbzimj9S0b3tBa o3yGhrR4+AMoYPmlbfLftQcPtn3OJpy90B4CxkS5l1Cln6XLTZ1R5GZTNckpgwS/Q98h 95w3Z+NXc5wvQ8SSTK+a+4gKhy41pXIOa8u4Zqcr3lQaDY+JthhhNPcZx0aPBAJzq26l MCKDS1BgL/AdDso851lVVMzHGgBTJLKX3NZHfoP0LR6sJtGTHI8d0yIm3xSESQaaaTKb yIpw== X-Gm-Message-State: AO0yUKUInNtAqhr8U39yPPih7/2AsAF0/4P3l9hGeNBLZkZeO0bi3Ygv dCVaIGExiccqsstxrMukaUrpIMyQL90hHn9lbUMO7ZQiTswIM7eo X-Google-Smtp-Source: AK7set+mmdhlqs5CM2yHuzdD+lSmChMVkTGid6P1drxQoQqWmFWv85yuFNQUnZejzuRFM2dSUSoJopuKkP1I8NE3zp0= X-Received: by 2002:a25:20c2:0:b0:858:97ff:d536 with SMTP id g185-20020a2520c2000000b0085897ffd536mr1272697ybg.269.1675694324966; Mon, 06 Feb 2023 06:38:44 -0800 (PST) MIME-Version: 1.0 References: <20230206104917.sipa7nzue5lw2e6z@alvherre.pgsql> In-Reply-To: From: Aleksander Alekseev Date: Mon, 6 Feb 2023 17:38:34 +0300 Message-ID: Subject: Re: Pluggable toaster To: pgsql-hackers Cc: Alvaro Herrera , Nikita Malakhov , vignesh C , Jacob Champion , Andres Freund , Matthias van de Meent , Robert Haas , Greg Stark , Teodor Sigaev Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, > The main reason behind this decision is that keeping the first implementation > on the side of the vanilla (I mean rebasing it) over time is very difficult due > to the very invasive nature of this solution. > > So we decided to reduce changes in the core to the minimum necessary > to make it available through the hooks, because the hooks part is very > lightweight and simple to keep rebasing onto the vanilla core. We plan > to keep this extension free with the PostgreSQL license, so any PostgreSQL > user could benefit from the TOAST on steroids, and sometimes in the > future it will be a much simpler task to integrate the Pluggable TOAST into > the vanilla, along with our advanced TOAST implementations which > we plan to keep under Open Source licenses too. That's great to hear. I'm looking forward to the link to the corresponding GitHub repository. Please let us know when this effort will be available for testing and benchmarking! I would like to point out however that there were several other pieces of feedback that could have been missed: * No one wants to see this as an extension. This was my original proposal (adding ZSON to /contrib/) and it was rejected. The community explicitly wants this to be a core feature with its syntax, autocompletion, documentation and stuff. * The community wants the feature to have a simple implementation. You said yourself that the idea of type-aware TOASTers is very invasive, and I completely agree. * People also want this to be simple from the user perspective, as simple as just CREATE COMPRESSED TABLE ... [USING lz4|zstd]; At least this is my personal summary/impression from following the mailing list. Anyhow since we are back to the stage where we discuss the RFC I suggest continuing it in the compression dictionaries thread [1] since we made noticeable progress there already. [1]: https://postgr.es/m/CAJ7c6TOtAB0z1UrksvGTStNE-herK-43bj22%3D5xVBg7S4vr5rQ%40mail.gmail.com -- Best regards, Aleksander Alekseev