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 1uNE5w-00Ed7g-Io for pgsql-general@arkaria.postgresql.org; Thu, 05 Jun 2025 17:09:36 +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 1uNE5u-00C7v3-M8 for pgsql-general@arkaria.postgresql.org; Thu, 05 Jun 2025 17:09:35 +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 1uNE5u-00C7uo-B6 for pgsql-general@lists.postgresql.org; Thu, 05 Jun 2025 17:09:34 +0000 Received: from mail-ot1-x330.google.com ([2607:f8b0:4864:20::330]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uNE5t-000QHE-0B for pgsql-general@postgresql.org; Thu, 05 Jun 2025 17:09:34 +0000 Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-7382ffcb373so649066a34.0 for ; Thu, 05 Jun 2025 10:09:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749143372; x=1749748172; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iKQu7XeLMKNaqjP+3IuozdBy1YRCrZlHcGtpUJOguYE=; b=M4J0V5Ys8/U0ynZz/1oQHEoJBdW34Ud4IP0FrSuJYLeaDi0DyIL2Cb4yawl8z89sRY iXjQvC4A9pQY35k6C4+bsgLntaI9fMiLdEDV1UAaYnz3L646tAMC2gYZvXbj/0Ojvmjk Ig1A9Ie+7N+x2YJRzy4DXO5AnSr9qBW5ytoROg1qL8IKft5xbXMoFc358E2QQMtfpOxf 4ezMhURlXSdX6j4sa2ylyVglg4o9GTxedEB6D0PB39F10n3arW/wsMXa+n8LS3uDd7zn Fv+YdZKxMugwowwqx52jWgLYTndxS2fLfaq9mEo2c1qXJzWESxczupJg6Vs05FcXj5ER Ry3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749143372; x=1749748172; h=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=iKQu7XeLMKNaqjP+3IuozdBy1YRCrZlHcGtpUJOguYE=; b=bFiDv1GrHgCwUJFRCV9Re9dqJ6ycY98/6pzhx1KeyXPiGXfkP3qMUsyuQkHbkxaOL0 vcKqM3bulmoxAqwxDyM4iiS9TFvHY94rnSQxqWWXWiBO8TlpmNkEEsP5SL8f70ypA/i1 Mx1ftZMGTGX0ycLE3J01de9hgdSnKW1rTEwmFZlGmKpVrCxSsIJbcZ6NVN8giVhVKWtc Wi51nZYL+YQT6fuWP7KM20vpNQZGpl+TxQbs8rkShCehBWiRdq5f7K0DkCU7FFk0M3ql fo+T9aw9B/3jJc7edx3v7YwBvmHAaXQXrHgoIQzQ02gTGnZlVTWTHxEfTtCuA5LcG/MI eAPA== X-Gm-Message-State: AOJu0Yyrj+q79BlABtKDY9WYa7yq2ikWZAjvbCszUXl92UY0shqa2L/s fzFohAazw0h/9hV099erYDlLQ19tEaX5kHX6RebjqpDpYZrvKZge7QTZLprRmhTaOQHGmoHz+3y rsnKgJaAAkLkw+UGVNkngnBVwMocpOG/PD5OQopfVfQ== X-Gm-Gg: ASbGncv+V+n99p1Hrc2CFqs1+0ctTv6QdZHO2MlrR3C3QznNYPWfuJmyoWxHDE5cnMp X7bkbFmqNEsKUOAvHMQwtNlyT7Lb9UYtKSJQ5z1u4UjdOaxZqipZZW5vD/R+s7qxdiqBBr+6TeI +HmGerFe59CpQLHzLd7BphdCDR8blh3Byz/2NQgWjjz2CDcQ== X-Google-Smtp-Source: AGHT+IElQXQgmi7ywaDQ0/yvdxHiaU3kcqNHD2C/jY+msrd8/VITUNrpzVFQhBwjaFuSThiXaf7s7r6x5G9ObTgWItQ= X-Received: by 2002:a05:6870:be95:b0:2d5:25b6:ec14 with SMTP id 586e51a60fabf-2ea00adfa81mr206853fac.15.1749143372021; Thu, 05 Jun 2025 10:09:32 -0700 (PDT) MIME-Version: 1.0 References: <01020197369aac89-01a7b7b4-b775-471e-ac8e-de8b28d87008-000000@eu-west-1.amazonses.com> In-Reply-To: <01020197369aac89-01a7b7b4-b775-471e-ac8e-de8b28d87008-000000@eu-west-1.amazonses.com> From: PetSerAl Date: Thu, 5 Jun 2025 20:09:21 +0300 X-Gm-Features: AX0GCFsX2DzfMV4_zz_8QS454nYFTgZPihTfcrcaJTZBmJb-ddRDOhh1l3PBOkI Message-ID: Subject: Re: Combining scalar and row types in RETURNING To: "Ray O'Donnell" Cc: PostgreSQL Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > In my case, m_new_data is actually a table row type rather than plain > "record". The row is passed on to another function which calculates the > altered columns and logs the changes. In my experience, to specify composite-typed receiver as one element of INTO list, it need to be column of composite variable. CREATE TABLE t (a int, b int, c int); CREATE TYPE wrap AS (v t); DO $DO$ DECLARE s text; w wrap; BEGIN INSERT INTO t VALUES (1, 2, 3) RETURNING 'text', t INTO s, w.v; RAISE '%, %', s, w.v; END; $DO$; https://dbfiddle.uk/e5Q4Fj6l