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.94.2) (envelope-from ) id 1rVCt1-00FUri-6y for pgsql-bugs@arkaria.postgresql.org; Wed, 31 Jan 2024 15:52:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rVCsz-00F9pz-Sl for pgsql-bugs@arkaria.postgresql.org; Wed, 31 Jan 2024 15:52:25 +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.94.2) (envelope-from ) id 1rVCsz-00F9pr-FO for pgsql-bugs@lists.postgresql.org; Wed, 31 Jan 2024 15:52:25 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rVCsx-004jmE-1M for pgsql-bugs@lists.postgresql.org; Wed, 31 Jan 2024 15:52:24 +0000 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-40eacb6067dso65002215e9.1 for ; Wed, 31 Jan 2024 07:52:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1706716342; x=1707321142; darn=lists.postgresql.org; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=ywsQauUPUIA/o+vKv3obNpL1KSTMZUj5kVxw6MAaWxM=; b=tQjanl5L6HaLSBsQuPbgvt9of0FFwF16LxYVkYS6D18hl70UESO2Mz/tBvnSmmUznD z5uZnGRFbVKlnSrEikhZjq7mCCwHGjDkHN/ZJFcqElaAwvKnLByAx1UNdHiF+B6w69ld S6RV/aaBXeQ0K15BZrl8Y4enz8Vn6hrfm1wBtNNxEzIzgsZoG7cq+OxE9Dpgns9Lzfrg zt+m0hRKMtCxSkcglxFShpTZn9m/dQuysK0naFmHUrrIP/LUiqrs5kCCdl3r/NreK7ze pILwmP089/Y2rM2biwlAktKyssS3KpPhbsJtOWqVKpavW864dLAgMaxY6ZBstX0Twyze FUAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706716342; x=1707321142; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ywsQauUPUIA/o+vKv3obNpL1KSTMZUj5kVxw6MAaWxM=; b=iv0uWXZpjNHCjsOs1bHb+E0yuk3bz/yBjkYmJgmLNR947K7vxRJutUV9lUSkTTALW9 NhHVkj35achEfQeW4z4QGIGJEBrGkjyK8c2qS2HaU+0kxOMWsBMDUEaECFgrcr0XQ2SS VEMx+yWdDvKeMj6Zvqoemuz1NXLuzbitccrPGzhSqLLSXD32zc9Pd2HIFME50jh4p8wR TeRqLDZYi5owUxOdd5mDgNufQjx/qP0MPHtEc3XCstCjBIrPaMumxYbMG+yuLbQNzaQQ ethe6Wx4mzbKzxM29kkRg0g3C4MmuzxGd2fmpxEIbpBBmNlOrbEmIZdbhwfGp/6c1am8 nSBA== X-Gm-Message-State: AOJu0YxbsV8udcBy1vOQGYt110ABnJh4oPtx4ukBhOOtLDnZEzDFfBnc MY/l7JhkOua/eKdnt+EqywYcdc7rn3kcp3Ip4A3K3W2ezEHN8zAO3iYZ9niQxeI= X-Google-Smtp-Source: AGHT+IE8kzJzVVV69WoTEkcFiBC7JNxaTUlFhUGVHqQcwFzeat2hvRCQ1YNINaff22tMvivwm9eEHg== X-Received: by 2002:a05:600c:4f82:b0:40e:f536:cff2 with SMTP id n2-20020a05600c4f8200b0040ef536cff2mr1756851wmq.2.1706716341989; Wed, 31 Jan 2024 07:52:21 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCXbOSCmvTM2bwelc3n9oYHLxOsGTz5IHJNl78zazG4iw3GjgfjJ4IDY2+9KX2m9ztXassm1J2FxxBoSyPCz8gfz+2Aa0CaLqsyRTCmgW9k0 Received: from localhost.localdomain ([2001:871:5e:366e:3e97:477a:aaf2:e55f]) by smtp.gmail.com with ESMTPSA id q18-20020a05600c46d200b0040efc268713sm1947625wmo.26.2024.01.31.07.52.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Jan 2024 07:52:21 -0800 (PST) Message-ID: <2b698dcbd606bf8c5afec14ef159d16a1b7270ea.camel@cybertec.at> Subject: Re: Cascade rules on INSERT wrong behaviour on 16.0 From: Laurenz Albe To: Oleksandr Voytsekhovskyy , pgsql-bugs@lists.postgresql.org Date: Wed, 31 Jan 2024 16:52:20 +0100 In-Reply-To: <9753FA5E-5AC8-4446-B335-70A215447026@gmail.com> References: <9753FA5E-5AC8-4446-B335-70A215447026@gmail.com> Autocrypt: addr=laurenz.albe@cybertec.at; prefer-encrypt=mutual; keydata=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 +AnW5l0HsQcY9ntFL/zEBOaonjdJf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.3 (3.50.3-1.fc39) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, 2024-01-31 at 14:44 +0100, Oleksandr Voytsekhovskyy wrote: > CREATE TABLE first ( > =C2=A0 =C2=A0 id uuid DEFAULT gen_random_uuid() PRIMARY KEY > ); >=20 > CREATE TABLE second ( > =C2=A0 =C2=A0 first_id uuid, > =C2=A0 =C2=A0 second_id uuid > ); >=20 > CREATE TABLE third ( > =C2=A0 =C2=A0 second_id uuid > ); >=20 > CREATE RULE first_insert AS ON INSERT TO first DO ALSO > INSERT INTO second VALUES (NEW.id, gen_random_uuid()); >=20 > CREATE RULE second_insert AS ON INSERT TO second DO ALSO > INSERT INTO third VALUES (NEW.second_id); >=20 > test=3D# insert into first values ('9ea8e702-421c-45d5-842f-a81dc3848022'= ); > INSERT 0 1 > test=3D# select * from second; > =C2=A0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 first_id =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 second_id=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 > --------------------------------------+----------------------------------= ---- > =C2=A09ea8e702-421c-45d5-842f-a81dc3848022 | 8c601583-df70-47fd-b748-7dc4= a5bc9f75 > (1 row) >=20 > test=3D#=C2=A0 select* from third; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 second_id=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 > -------------------------------------- > =C2=A0848919c7-de3d-4635-bf3a-07d200cb2792 > (1 row) >=20 >=20 > I expect that values of second_id from the table second and third will be= the same, but in fact they are different. That is expected, and that's how rules work. If you don't want that, you should use triggers, which are working in a less surprising fashion. Yours, Laurenz Albe