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 1q1l8l-0005Ya-Ul for pgsql-hackers@arkaria.postgresql.org; Wed, 24 May 2023 09:50:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q1l8k-0003k0-Bc for pgsql-hackers@arkaria.postgresql.org; Wed, 24 May 2023 09:50:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q1l8k-0003jr-26 for pgsql-hackers@lists.postgresql.org; Wed, 24 May 2023 09:50:42 +0000 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q1l8e-001qWx-BC for pgsql-hackers@lists.postgresql.org; Wed, 24 May 2023 09:50:41 +0000 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1ae6dce19f7so412925ad.3 for ; Wed, 24 May 2023 02:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684921834; x=1687513834; 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=pOU6xSgwL2otGsd7wAufwOmt1vCERu3dExu7HZTK3j0=; b=eqj59JFV/jALavtpt0E7W8uu70O/RUJPrbIq4e9jxopk68cJlTbG9EPZ0ShGldQ4/d k0gG7RPJxtE9TJ3sKHkM19Iw4FnmdEzoID1BVzuHQfjuwt5PzoY1M95eCumAdyaaDLUw 0q88mp4rdEUCLnICyviHpXhgOzvrubQfgQvzjf3hWpqMIy8ce1kClplfl+RmMnwkR3VH b6JIm36MkgGtnPeZoWu9ovrAL3Arpv7AtyWit4ZJZmpER8bTv5NOUfXkeJg6sa33WEJl DBAvKC/hyccIX6JT5dj8YKWLHfcTxQw9Btyt+vsZgA44r0UARkMlQUmrrgE5cpdEa8tg DQMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684921834; x=1687513834; h=content-transfer-encoding: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=pOU6xSgwL2otGsd7wAufwOmt1vCERu3dExu7HZTK3j0=; b=QBNNymv8UdivJiiHpGujRCPAo/vrses+IEW81aaiSr3etuWqgxz4ER/hknOVyi+pMJ B9aP7JnAFHWKHjxUYz2Th1fZUIpg9a4Fd4wrp/ElRgQ4XLeMdoFgicY2XIVV/AUY9Dj1 jKbpNuqiq64HgSv+Ictz+JzpSnjrwHfud9XFPS+n6c0CRH+TrV1aF32ujQ5DkKC2UB10 CJNWWkovbXpLk0aaDsdAOPNYKZXOCXbgJ8rIofj688Cfxnt9W0AbprqpndvswQ7sgP7n MiSY3S8qr7HUDorsHgBoFMlfqx7CBzhzZpXxy9wnyFcKfycuHov41qfj/88ivEGIaSPS llVw== X-Gm-Message-State: AC+VfDx7ErQ/yhdvENASD1w50MXsj0EApXYC1z30ZzCE3f0yzKueybMq ggkJFLp+J2w92XWOwIIAX1N3TccbCoDAR2w3kd8= X-Google-Smtp-Source: ACHHUZ7geQUhi2E3No6vmQAnUwOVR7y4lfHDGVAfrwXx9tLso1aayj3BQCiaUMg5RQ0GhUbb9YrBrqlhZIFrh7gFsqs= X-Received: by 2002:a17:902:9303:b0:1af:a2a4:8379 with SMTP id bc3-20020a170902930300b001afa2a48379mr8722655plb.17.1684921834315; Wed, 24 May 2023 02:50:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Matthias van de Meent Date: Wed, 24 May 2023 11:50:21 +0200 Message-ID: Subject: Re: RFI: Extending the TOAST Pointer To: Robert Haas Cc: Aleksander Alekseev , PostgreSQL Hackers , Nikita Malakhov 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 On Tue, 23 May 2023 at 18:34, Robert Haas wrote: > > On Thu, May 18, 2023 at 8:06=E2=80=AFAM Matthias van de Meent > wrote: > > This enum still has many options to go before it exceeds the maximum > > of the uint8 va_tag field. Therefore, I don't think we have no disk > > representations left, nor do I think we'll need to add another option > > to the ToastCompressionId enum. > > As an example, we can add another VARTAG option for dictionary-enabled > > external toast; like what the pluggable toast patch worked on. I think > > we can salvage some ideas from that patch, even if the main idea got > > stuck. > > Adding another VARTAG option is somewhat different from adding another > ToastCompressionId. I think that right now we have embedded in various > places the idea that VARTAG_EXTERNAL is the only thing that shows up > on disk, and we'd need to track down all such places and adjust them > if we add other VARTAG types in the future. Depending on how it is to > be used, adding a new ToastCompressionId might be less work. However, > I don't think we can use the possibility of adding a new VARTAG value > as a reason why it's OK to use up the last possible ToastCompressionId > value for something non-extensible. I think you might not have picked up on what I was arguing for, but I agree with what you just said. My comment on not needing to invent a new ToastCompressionId was on the topic of adding capabilities^ to toast pointers that do things differently than the current TOAST and need more info than just sizes, 2x 32-bit ID and a compression algorithm. ^ capabilities such as compression dictionaries (which would need to store a dictionary ID in the pointer), TOAST IDs that are larger than 32 bits, and other such advances. Kind regards, Matthias van de Meent Neon, Inc.