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 1vgftV-00HICj-1O for pgsql-general@arkaria.postgresql.org; Fri, 16 Jan 2026 09:13:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vgftU-002TXN-1g for pgsql-general@arkaria.postgresql.org; Fri, 16 Jan 2026 09:13:24 +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 1vgftU-002TXF-0c for pgsql-general@lists.postgresql.org; Fri, 16 Jan 2026 09:13:24 +0000 Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vgftS-000n7f-1v for pgsql-general@lists.postgresql.org; Fri, 16 Jan 2026 09:13:24 +0000 Received: by mail-oi1-x243.google.com with SMTP id 5614622812f47-45c7400259bso737219b6e.3 for ; Fri, 16 Jan 2026 01:13:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768554800; cv=none; d=google.com; s=arc-20240605; b=U8cbMUH5ce0RBuSNYg0Ml2nqHH02ixkpjtgL67x80by8Lh2vq+uRYwUBMEOaH0nvrS xfaNTo/+ZMFCIQ8H5zw0Qof2gH2APLHkxTPvx8+48J7TwlMjm/NgRy+46+C48STdS+Y2 26oDGcSqz/4ljoZvZmSHcTJSReV/6Lm+PdlpFHYyqh3qMzEjP3OviUs+GT+MnUAj+6CM 86ley0vJo4Z4eQumHrjkMeDGX7VnJZgPCFUXtCzsR2eGaXhPVG1pfD8ZT3SxMriadgiw zp6ZMfrxK/f5RafIMjaul7iedVtTcL8SmHHA8+CoOnQpoF/w4zK0wTZZtZdIO7/fVjQK 0e+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=s11kJMMm9nXazVBo1rFroxNRWSEyJotjanSXfkuSaEc=; fh=4rCG0PM8n0FOokGy8sSWDJpgPdCgp6yIXcpABJ7tUh0=; b=L1kxZWVTwkJ0bHSloJugx15GdLjZv5YgYWca6Ln61hNonKx4anEDbqAYzD7o06H0tT +te8s/aogyawN3EmnDjy/EYhSmf5KzGxvA+zdh1dcXxHEowsuJE2YN4cck8QUb9u6QXo YtZRa66ZEuOk1LPrkARqQH3xyQKJ4qnVs5T2rcJB6BhzppeYBkRfS1g0aDFAFXooosNT PQWlVlq4XYMvkhFzQlBKNyTorLLE9pgwhW36ULt9jAPrA1D66b5HiwkI2FMQdJPwoyGp XAoMdaqo3NFNH4141Q3V6Fxi5lRUCXg0lojlpMJItPtk0nW89zKH3L9Wqi0mpXYguMiP mJwg==; darn=lists.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=20230601; t=1768554800; x=1769159600; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=s11kJMMm9nXazVBo1rFroxNRWSEyJotjanSXfkuSaEc=; b=RYpycMNq1xwu+WJSIG0+H2rY2WEr4GdDNhgHFED31Len6O5XtpcTJqM7PLyqnGXmnr uKfHuF1KFGkrsGwWq6FUar5qlCU7pU15Evq/3RxE6QVon4NTDMlozYVlV+4FjDWbegrQ Acx/OAxSO/iA+4pyLToRIq8dcKdXbRMYOOckjY7GYPcmqy66UlBpJ5BCNe9JhP2UWJcH oC41fmqEhnm+HyegF72iOUT9puWxl8b4If3XV+4oR9gmCY1axGqxpiMIhpx6AFFyzJ45 1HSu1MXHsByhyTYwwsndtlGCAGoPKEK9Mgb8vBxHitnf2SE/qMcHIFgTuC4DFTKB5x1R hAAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768554800; x=1769159600; h=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=s11kJMMm9nXazVBo1rFroxNRWSEyJotjanSXfkuSaEc=; b=ndw6TvTGjmqwSPtjU5oig0Jr2tDcEO3nXwwzhkD6YzPP5Slb0UQ7yQPOdfqGKIRN2I tNuA7+pHkgQTUl1W6S9HMi1Ga0YdrJCn1oJBfyEQ/D62IWWPQNVj3yzikz2NcPdzVCtJ 1rNqGcXscLWX+tfZ3asyUrO/nsjHm0NIINr+xPk7sfJmkAOhfgxZyAg+y5ozeSg9uG5N KoR57vMbbPiVWiMioonkixFb9vFgyJoYl1W8y/s495YRk3Erbo+1xjSWuSLsdFYzeR05 g4hvjWVLz0SiNGYY5lvrS9QI5cVZxLXlEsDRY1ByCzaS0Yuj/lGG55YbpWL3Oq2svaxn +naA== X-Gm-Message-State: AOJu0Ywd/BNYBHOdjhtknxkyRGKLcZkgzTEficB9zpw1AqHTUO78NWoA /muuKYfGARj66St1lDTs8330hYV30pmGTJPXakRIZ2aCms+eXhGEu8tJ2Ype+mfPwvwDOxRNFto Alqd0u/dwI7Gipw9m/i2xYsqriTfQRHzvT3k6CPo= X-Gm-Gg: AY/fxX5cgAAApnkwdtqOaCTzf55NJTgn62FwyiE+XBSo627iGCa8GyJ7DNmzAj1hSOk u1KZ2e98ACXJTg+aafUurvp3LXTV/awVJYa+KtvkMLtTFvco5PujKUMhAqqFIoYUsmyAS2vZcS1 ka+1BxacgeW5Iy9bu2u/PlpvehQKWWAdfHIqLm9Se0hCKI4JhiviS0cBXX5aUo14/IyhwxBpNlM u5Anw2xquS4KWuiyUYQtyWBMsh5xMMZTx2IKxZ4OV4vF/bG9Ee76Zrcaykqdvrudi++y8w= X-Received: by 2002:a05:6820:22a9:b0:65d:286f:a476 with SMTP id 006d021491bc7-661189ea36amr722940eaf.84.1768554800303; Fri, 16 Jan 2026 01:13:20 -0800 (PST) MIME-Version: 1.0 From: Marcelo Fernandes Date: Fri, 16 Jan 2026 22:13:09 +1300 X-Gm-Features: AZwV_QjlRBSrv5PqY5Tr_Ps1C32NjrN6KcqhwoRtFV4mqIiRP-tDUEgHRGRWA40 Message-ID: Subject: Why does TRUNCATE require a special privilege? To: pgsql-general@lists.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 Hi, From the documentation: > TRUNCATE quickly removes all rows from a set of tables. It has the same > effect as an unqualified DELETE on each table, but since it does not actually > scan the tables it is faster. > (...) > You must have the TRUNCATE privilege on a table to truncate it. Granted that TRUNCATE and DELETE are different operations under the hood, but why would the TRUNCATE operation require its own specific privilege rather than say, use the same privilege as the DELETE operation? Any explanations or lore about this would be deeply appreciated. Thank you, Marcelo.