public inbox for [email protected]  
help / color / mirror / Atom feed
From: Dimitrios Apostolou <[email protected]>
To: Adrian Klaver <[email protected]>
Cc: Laurenz Albe <[email protected]>
Cc: Tom Lane <[email protected]>
Cc: [email protected]
Subject: Re: TRUNCATE ONLY with foreign keys and triggers disabled
Date: Mon, 14 Apr 2025 18:09:30 +0200 (CEST)
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>

On Mon, 14 Apr 2025, Adrian Klaver wrote:

> On 4/14/25 08:20, Dimitrios Apostolou wrote:
>>  On Mon, 14 Apr 2025, Adrian Klaver wrote:
>>
>>>  On 4/14/25 08:07, Laurenz Albe wrote:
>>>>   On Mon, 2025-04-14 at 17:05 +0200, Dimitrios Apostolou wrote:
>>>>>   I meant the *referencing* table has just been
>>>>>   populated. I'm trying to delete the *referenced* table and I get the
>>>>>   error.
>>>>
>>>>   That would break the foreign key constraint, right?
>>>>   PostgreSQL cannot allow that.
>>>
>>>  I believe the OP is disabling all triggers including system ones if I
>>>  follow
>>>  correctly and possibly running a foul of;
>>>
>>>  https://www.postgresql.org/docs/current/sql-altertable.html
>>>
>>>  " Disabling or enabling internally generated constraint triggers requires
>>>  superuser privileges; it should be done with caution since of course the
>>>  integrity of the constraint cannot be guaranteed if the triggers are not
>>>  executed."
>>
>>  Exactly that. I learned this from pg_restore --disable-triggers, as a way
>>  to speed-up insertion.
>>
>>  Since triggers are disabled, I assumed that postgresql shouldn't care
>>  about referential integrity in TRUNCATE.
>
> I'm going to say the depends on order of execution. Without seeing the code
> changes you have done there is really no way to determine what the exact
> issue is.

Sent patch here:

https://www.postgresql.org/message-id/flat/4589087c-ec6f-4407-1f82-6cb2e681ac0a%40gmx.net

The reason I first sent here (pgsql-general) is that I wondered if the
error is just an implementation shortcoming without deeper reasons, thus
it would be achievable to try to fix it myself.


Dimitris



view thread (2+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: TRUNCATE ONLY with foreign keys and triggers disabled
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox