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 1scWvh-008BkM-M5 for pgsql-general@arkaria.postgresql.org; Fri, 09 Aug 2024 21:13:45 +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 1scWvg-0063sO-7q for pgsql-general@arkaria.postgresql.org; Fri, 09 Aug 2024 21:13:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1scWvf-0063sF-QG for pgsql-general@lists.postgresql.org; Fri, 09 Aug 2024 21:13:43 +0000 Received: from mail-qv1-xf2c.google.com ([2607:f8b0:4864:20::f2c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1scWvd-003wMZ-2Y for pgsql-general@lists.postgresql.org; Fri, 09 Aug 2024 21:13:42 +0000 Received: by mail-qv1-xf2c.google.com with SMTP id 6a1803df08f44-6bba6ced3d4so14092486d6.2 for ; Fri, 09 Aug 2024 14:13:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723238020; x=1723842820; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Okm3nZdTGkjfTKlKLUQxtwnF3XdOtvO2PWpNiGty0e4=; b=I8zMR2otzdpZhhyNBijtkY9m+GNkEQyMg3a2In6/1bpz+X6rAgtKwB4eUZ2UMX/1XI Wqb/ukl1DZEgC5zY1dgzWJbgIR1Ecai3YTmKHNKribB1ASfxWKZVo/HT1bPsWvzaoa91 1imJRotBVUOIzRPWG3IEV/Ub8+f2JB7eQu3B/vLenaMDK9jhIzZ+ayMB/KjirxZ9e7hW uQHyen9v0weJT2Q1J3ytMl3z2KwAPEn9TnADhuCHY2hXwQ5thRsioLNlichEmiT5/18z COiFG2pzgB3fPYc7i7YMn3ymCh17/nqCrsKS7aEU9EkWHoO0cIXki0IQo3CYmIcSOJPM 7nWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723238020; x=1723842820; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Okm3nZdTGkjfTKlKLUQxtwnF3XdOtvO2PWpNiGty0e4=; b=mth+tyCG8SjxtVndwA2dUs2bekr6ArSb0pMsN2W3bURS8pZ4Kob7WVf+FbTM6jFirQ Pja8phOcLWZamnj8K8sJI3HpIcCqWGc+Xet7Oxp8UfVHf6CUivnUV0iKdPvVX3L7Orth +/r7OQPboHdU95HOr33lvWmrSmt2DSmJtBCDlfUKpxhL5rKbT0fd+0dt60U/x7NdzNtU qFKEv+LlnHHPoz+XtPHW6o3KusAra5B0ZZ5QtYkAkuvSdKke2fFAVkPb0JMui4IpNdye q92eV7BXt2u00eEKCuoefwQwq6rC4ShPkc1J9nxHaLrxbSXOy8xLfEQBZecyEwAAR2qt y4BQ== X-Gm-Message-State: AOJu0Yxa4vmaN63sbWDZMYIpKCcPrna4uc/yjumxUuLw3g+TE2OOAXWV lGxIT0HNONJ9wF0w2LHj1/OPpYzeJTrKNcKpCUF53SmjFltu3quSwe1kXAh1IijLIMkrH7LudtH UVjMvJrqLrohzhTlrmp+XoOcsdY0x9ZKW X-Google-Smtp-Source: AGHT+IEwwjrnRms94H2eP4MQN75zGMuC3/95w+rP8E1XPyVvSqPaGE8cW1n3Olhr/hCtvBrL0L2Wg+hothvjhZj0gu0= X-Received: by 2002:ad4:40cc:0:b0:6bd:80f0:42c7 with SMTP id 6a1803df08f44-6bd80f043a0mr15544026d6.42.1723238019860; Fri, 09 Aug 2024 14:13:39 -0700 (PDT) MIME-Version: 1.0 From: yudhi s Date: Sat, 10 Aug 2024 02:43:28 +0530 Message-ID: Subject: Insert works but fails for merge To: pgsql-general Content-Type: multipart/alternative; boundary="0000000000000991e7061f469e15" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000991e7061f469e15 Content-Type: text/plain; charset="UTF-8" Hello, It's version 15.4 postgres. Where we have an insert working fine, but then a similar insert with the same 'timestamp' value, when trying to be executed through merge , it fails stating "You will need to rewrite or cast the expression.". Why so? *Example:-* https://dbfiddle.uk/j5S7br-q CREATE TABLE tab1 ( id varchar(100) , mid INT, txn_timestamp TIMESTAMPTZ NOT NULL, cre_ts TIMESTAMPTZ NOT NULL ) PARTITION BY RANGE (txn_timestamp); CREATE TABLE tab1_2024_08_09 PARTITION OF tab1 FOR VALUES FROM ('2024-08-09 00:00:00') TO ('2024-08-10 00:00:00'); -- Below insert works fine INSERT INTO tab1 (id, mid, txn_timestamp, cre_ts) VALUES ('5efd4c91-ef93-4477-840c-a723ae212d84', 123, '2024-08-09T11:33:49.402585600Z', '2024-08-09T11:33:49.402585600Z'); -- Below merge , which trying to insert similar row but failing WITH source_data (id, mid, txn_timestamp, cre_ts) AS ( VALUES ('5efd4c91-ef93-4477-840c-a723ae212d66', 123, '2024-08-09T11:33:49.402585600Z', '2024-08-09T11:33:49.402585600Z') ) INSERT INTO tab1 (id, mid, txn_timestamp, cre_ts) SELECT id, mid, txn_timestamp, cre_ts FROM source_data ON CONFLICT (id) DO UPDATE SET mid = EXCLUDED.mid, txn_timestamp = EXCLUDED.txn_timestamp, cre_ts = EXCLUDED.cre_ts; ERROR: column "txn_timestamp" is of type timestamp with time zone but expression is of type text LINE 24: SELECT id, mid, txn_timestamp, cre_ts ^ HINT: You will need to rewrite or cast the expression. --0000000000000991e7061f469e15 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,
It's version 15.4 postgres. Where we have a= n insert working fine, but then a similar insert with the same=C2=A0'ti= mestamp' value, when trying to be executed through merge , it fails sta= ting=C2=A0"You will need to rewrite or cast the exp= ression.". Why so?

Example:-

=C2=A0C= REATE TABLE tab1 (
=C2=A0 =C2=A0 id varchar(100) ,
=C2=A0 =C2=A0 mid = INT,
=C2=A0 =C2=A0 txn_timestamp TIMESTAMPTZ NOT NULL,
=C2=A0 =C2=A0 = cre_ts TIMESTAMPTZ NOT NULL
) PARTITION BY RANGE (txn_timestamp);
CREATE TABLE tab1_2024_08_09 PARTITION OF tab1
=C2=A0 =C2=A0 FOR VALUES= FROM ('2024-08-09 00:00:00') TO ('2024-08-10 00:00:00');
-- Below insert works fine=C2=A0
INSERT INTO tab1
=C2=A0 =C2=A0= (id, mid, txn_timestamp, cre_ts)
VALUES
=C2=A0 =C2=A0 ('5efd4c91= -ef93-4477-840c-a723ae212d84', 123, '2024-08-09T11:33:49.402585600Z= ', '2024-08-09T11:33:49.402585600Z');

-- Below merge , w= hich trying to insert similar row but failing=C2=A0

WITH source_data (id, mid, txn_timestamp, cre_ts) AS= (
=C2=A0 =C2=A0 VALUES ('5efd4c91-ef93-4477-840c-a723ae212d66',= 123, '2024-08-09T11:33:49.402585600Z', '2024-08-09T11:33:49.40= 2585600Z')
)
INSERT INTO tab1 (id, mid, txn_timestamp, cre_ts)SELECT id, mid, txn_timestamp, cre_ts
FROM source_data
ON CONFLICT (= id) DO UPDATE
SET=C2=A0 =C2=A0 mid =3D EXCLUDED.mid,
=C2=A0 =C2=A0 tx= n_timestamp =3D EXCLUDED.txn_timestamp,
=C2=A0 =C2=A0 cre_ts =3D EXCLUDE= D.cre_ts;


ERROR: column "txn_timestamp" is of type t= imestamp with time zone but expression is of type text LINE 24: SELECT id, mid, txn_timestamp, cre_ts ^ HINT: You will need to rewrite or cast the expression.
--0000000000000991e7061f469e15--