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 1sK6VX-008Ihn-RS for pgsql-interfaces@arkaria.postgresql.org; Thu, 20 Jun 2024 01:22: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 1sK6VU-00B7MT-29 for pgsql-interfaces@arkaria.postgresql.org; Thu, 20 Jun 2024 01:22:32 +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 1sK6VT-00B7ML-I9 for pgsql-interfaces@lists.postgresql.org; Thu, 20 Jun 2024 01:22:32 +0000 Received: from mail-dm6nam11on20701.outbound.protection.outlook.com ([2a01:111:f403:2415::701] helo=NAM11-DM6-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sK6VQ-002AQg-H2 for pgsql-interfaces@lists.postgresql.org; Thu, 20 Jun 2024 01:22:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TA989cKwZ1Hsx6G70xwkB28Bgzqr6qF2lvg1c8NOKUtFIAGOHmOrkw42x2p7BDZBlD+rTWbGkX1q4BWCnpJ/UT8adhKD0+r5Ga8FX3lxPuRsH/lLu6uk4hreRqjyIzegYWN0nermUJbS8rBIS9gdiZN7lU0Ehlxa+tSOz4cOnloW2hC6LSdZ/t0EgFx7VqEJ1yN/0LfukK/GYUmzdTvTpkBrbYfkU9ygIaMpVcP+/3n4Q/6dGDYRrquh/uVQOJr9N6/7LQpTHIS2FKF0iaR7jQKW3Wg+rkweJDTjAeKWIIaXR9oBDPbK+N0nkCRNIFTWkNje4e04Bi1qfsRdwRE0MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NG4nFAKLXvG8Dab78QozhJ+lMgUqxio/MK/b+RCmUbQ=; b=AZjP1JX7yIKBIShNFHrHt0b4lZL1rpaiHrOPY0lvhoCzbMaNmb4ADjDJHWJrSoFCMeMmiedKGIpnpHeGh+Z2oXkERITxKeG4qP+rmAh3d93NnBchxTvhDIYjewFWvQ3sRFq8drFF/3/6yVW/W45LPvG0lp13Y78YWXpsM6EMqNJK75wsd1Xytd9jQfQ+vcva4C7SRMwRMnePaYjWlC0oUo/V0F+Xz0X6sfb3/JC095BrAA9w4SwMPgi6e+85zdTirEE9rN6oPN6pLRXd9pxQoQ/zMoc388aLKkPRriM5VgyrRBGGlmRKFavnH+4KFdnViR5gU1gA1+7YwZQCmv9RPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=assistek.com; dmarc=pass action=none header.from=assistek.com; dkim=pass header.d=assistek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=assistek.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NG4nFAKLXvG8Dab78QozhJ+lMgUqxio/MK/b+RCmUbQ=; b=kddK2FPel54u6d6AhK4lnj8dy+dq1ZITVtmGPRS6TP2afLJtK6lRKXoVT1SMCZZ/KldLCg4R085K9qz31QzptlOATDADmqPxM+pjlFRFyXAhDR9c5TNsTHvhPWqxJ38kt3pLCtXz5QGlbgi7xqQVcTPTGvfwkof4CnqI0f4xmsE= Received: from LV3PR16MB6001.namprd16.prod.outlook.com (2603:10b6:408:1b6::8) by MW5PR16MB5046.namprd16.prod.outlook.com (2603:10b6:303:1c9::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.29; Thu, 20 Jun 2024 01:22:24 +0000 Received: from LV3PR16MB6001.namprd16.prod.outlook.com ([fe80::50ce:c55:8baf:fa37]) by LV3PR16MB6001.namprd16.prod.outlook.com ([fe80::50ce:c55:8baf:fa37%5]) with mapi id 15.20.7677.030; Thu, 20 Jun 2024 01:22:24 +0000 From: Maxwell Dreytser To: Tom Lane CC: "pgsql-interfaces@lists.postgresql.org" Subject: Re: RowDescription for a function does not include table OID Thread-Topic: RowDescription for a function does not include table OID Thread-Index: AQHawSk4Ss901jpQLkiyAb/qTIeG1LHM4zoAgAAAzMuAAvnCxA== Date: Thu, 20 Jun 2024 01:22:23 +0000 Message-ID: References: <3528232.1718682678@sss.pgh.pa.us> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=assistek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV3PR16MB6001:EE_|MW5PR16MB5046:EE_ x-ms-office365-filtering-correlation-id: 5015b944-b99d-43ff-38fb-08dc90c7707c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|1800799021|366013|376011|38070700015; x-microsoft-antispam-message-info: =?iso-8859-1?Q?7e8AdNTP6eSi8XVamuGVqyhWmGFdn8cp5Rop+89QcVS8smBgBdGSHmswbX?= =?iso-8859-1?Q?fda+Tez3U7o0JhxSzNn2+VvvBlU/LInBYngkUWttwPktlCNK1lSAmyf2Mh?= =?iso-8859-1?Q?cbLzkdq91cGRM6PKd6YV9tN/fc3cgu9SOjdLxB0yPInYoeDL/5ZWJ+8Ln0?= =?iso-8859-1?Q?6oSBck6r8vJ8aQi1g4HpBTNaRHICM8t45DFy98Cz/smngxGwmQyOfw5Bm4?= =?iso-8859-1?Q?jGa0xQsdfwqjRRhdpyxOk8rwg9fEMT23PCKOIN7heC+KJInkHIXqQP51+F?= =?iso-8859-1?Q?SXfwXVHz0G5QlvCwLl7v+Wc6XswqFPcQhuHSw1FwHDpuTyExGBHbNqrxbD?= =?iso-8859-1?Q?VrqxGtX6veORv0zqAKjumUSXh+/1BKH9sSmSI9GkKDU5S8o0aFP4f4EVCL?= =?iso-8859-1?Q?Q2thPQrXoOflJxBm5Fke56bYl+7wP3GjJuKD3AYDiF0i4QfBgfrS5/9dh+?= =?iso-8859-1?Q?UIxD9ALsUMEB5vSeuUWZkfJVxAhhc4uDLGF32fx2UXQcz1e0HWhN5o9KNo?= =?iso-8859-1?Q?8/UHJCB0auZ3YNsfv0GtSsKZ6/oFIb8tIxxI1pV3Amh2WloMQYzGtVl0J6?= =?iso-8859-1?Q?QJrAX/BnB16IpnWmk5EWK6BDIjrm6nxt23a8/wKAl1p1NXEpqrBbZMguIB?= =?iso-8859-1?Q?tFFKpxOd6JU1GSpuwPnGS8mpNkOuYjP4Y50TXFE+DQ4Iy/ShKcRLCYXvqP?= =?iso-8859-1?Q?tMh65EVixGk8etMezzYuz5Fdh2qKwgyYTcJiKCMUeZq2l8bly9ZomUdvK9?= =?iso-8859-1?Q?5wyYqsrrW0wt5k7+bRyQfRla34RDKBxCFO+S6K/VAb0IglwhREXYJjNCU7?= =?iso-8859-1?Q?nebgOYv5yoHOL926Icl9hmqe0x7zvdiPDIaTnTQ+pHh6+NzXjmyQSu60Yw?= =?iso-8859-1?Q?Pct0BmzlYsRkbcqsfrczLGkuf5a8F7nCJpOS1DimfYGtFvRqoteA6aJIVN?= =?iso-8859-1?Q?3KA2whYAxwKgYrhDyqtMkBIU44p2NMe6KhTO8oWlps+3J7UWeIcDsgQ4V3?= =?iso-8859-1?Q?ZxICwWiLsEm4S+AzkgjzTDUp2FTWFdh7PW85ruTmLg8TXMXblg9etJUHjR?= =?iso-8859-1?Q?uiCoSbXdtvWD+p+RHLWbxGpAMbMsDZCptXu/SvgdtzROh5L+vRGJguhTZU?= =?iso-8859-1?Q?AhOG7wYMsK/r+tNxAJOIlmXpbM6EVgsy5/O8j7MCsLyb8PeEquF5yS77nA?= =?iso-8859-1?Q?t0jwMLgWkyQOr4koaing+8i5pKgRSRfeGIAY6F8fB9bkv7eCVrl7putWVN?= =?iso-8859-1?Q?cQLUXND+PkqYLvs9Gi9fHrc3Ggqs41K0irdq12++nXTE0aU3atNNZlkx/X?= =?iso-8859-1?Q?tN21PFuiPkb/W87205wG9/MN6RqEYPKs66t3x2JuXj12l1Y7rvZYlnoKL/?= =?iso-8859-1?Q?HA8/S5rTafn8EXPt9skF6QWf0XdDF2dNiLYyPTJycT8lN6yIcgZ8A=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV3PR16MB6001.namprd16.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(1800799021)(366013)(376011)(38070700015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?PZwf67qBRNO1NU/V63awxs5VM1aqGNSFSxiyOTIQoGZjqgLcIBw6wAMbqG?= =?iso-8859-1?Q?ziNSu0gYv9v/7vqzz6XxX/7NayL/HbpL/K2B2BtjBMwUmPNCZ3zT6tgSBy?= =?iso-8859-1?Q?PjsrrRGT6xrHunaFefjLF7KmYnZi7m0uBdoOLu4XWFTPxVQCEpU36nTv4J?= =?iso-8859-1?Q?bSwh0VQzGVEzmgGoEFxZccPVpClRjEs3J0jTiO3JTP1/Bh6Ub2E4InoFK8?= =?iso-8859-1?Q?V1emSaV6ab3MeJ4Ox3q27OvOMUCxXurUAZT53z3PX4Iv5l8NXwrByI8BbK?= =?iso-8859-1?Q?zLlZReM0Yo3e0Y6DgpAEBeQya22n6S2fHpZP8PICrNOJH2SfsDxFtA24tV?= =?iso-8859-1?Q?KZTqLAOAn+KqWWloJsDX2n5f4mWcbyVkRjrMxMpFnOJHmuZrxEtz64IBsH?= =?iso-8859-1?Q?XkvN3oSiOgmycIAEl567V6uoql/zGgK3N1LyMNW5UKSo0QXvo9Vviv5VTq?= =?iso-8859-1?Q?r3AtKmG6OaqJWY7agTS+ucWgOHO22aSc0zu7VX4+5ydzKSlh1EEpBazmRU?= =?iso-8859-1?Q?EaZuLwU6UGr4+Gr8V1R1T4sdED3Kz9mBvYbARrKNeHaj8/Jzdy24dIEcuG?= =?iso-8859-1?Q?OLRWwPkFuXIZFaYRyxViXULVIh7GeMZrkpAR5LfIausdKVQGJtX06QgJHj?= =?iso-8859-1?Q?0cxZx2M+4bb3+fer256VFI7rma+95GuY+RMwj+KAnLnsSA7xxKGvQkMaYx?= =?iso-8859-1?Q?U3OrPbsmK2ZE9o2VVMvTEU/rYpUrGPmIZ+dIl4IrL1Igi07sdfgAmvrfZ7?= =?iso-8859-1?Q?b3KnX4oJxVvJfdGAxA+tiomLYc8X1bvtUxh3MEmj/ZGVCO3Xvy4VKRSmfH?= =?iso-8859-1?Q?UlHX4+jyvQBDyLDqPY5rywqWyZCijhwsVOYz6ROmSrRH7xLuQijM34uWmN?= =?iso-8859-1?Q?DZc6Pe5iIn+rxRzByrbSI//a3g/SNOtjcaEJK3oXMyZyGZcClIUmx1ujMJ?= =?iso-8859-1?Q?PcNVFEhrk2Npy65ay0RrfVH9w3ZWrDe1hWimrvYW0C57OC1rw6YsS6NzQ1?= =?iso-8859-1?Q?WEi3SnWnGOGIqYafzCIFgDnSlnshqFcNWgNw8JbMBknB6baZuL317WdlAP?= =?iso-8859-1?Q?8qFUxlF3iEFz7rKGbATrsuPo17jVfm7v2Ar8kS+wJNKxzVe3XFY9GOFYGo?= =?iso-8859-1?Q?zhMfsJDxIS1oXVDzkzPhtQdVBtf69uat6LJ/lEUENgCVgp0GIEwvZ5ry18?= =?iso-8859-1?Q?wwJjjCzWYH87HhF+jen0OIEEqcZNO2bLvO9YknJ2wcHnC7ZhI7Poyekd5N?= =?iso-8859-1?Q?Qu+WY4iP6O02Mi6+lBa8iOOVDmsBZeGll2Ts1reH1NhMK/uLf11UOuXckD?= =?iso-8859-1?Q?a7DIs/ygeMRsXsG4hBWuQivtwHrhkvutArkwyFuNSvaSzPgLwHoz7/MZEz?= =?iso-8859-1?Q?0g22sQwvAgfeRonW9xQJ2rISZKE6BhpkDvtgnVbYxI1XWPcPht3NXyDrDs?= =?iso-8859-1?Q?ki4wLbkVxSxdRyvAIZ7ZUYVjxgz9/kMcTcJEhfNOUlmYB+Uw6HR1sV8RFr?= =?iso-8859-1?Q?QEhEBixnu2EudMesbCdfE8X1KuRnEmWOONZ0Gen0qirqDcD3k38BMqyxDM?= =?iso-8859-1?Q?Vou1UvtZirm4u2CJEmA73z/8+6QE/H87ueQHg6PJhPzdkE1ggQPaPJbx2y?= =?iso-8859-1?Q?YejSDoPLhNPHSK4R0VCrb9lGY177J7cEvM5+oMXpMeyaKNW997Mcz0/w?= =?iso-8859-1?Q?=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: assistek.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV3PR16MB6001.namprd16.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5015b944-b99d-43ff-38fb-08dc90c7707c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jun 2024 01:22:23.9421 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 6163a167-3399-4bf6-885f-4fce6e26edf0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ygdhUk57rfsc6yJO/OsACxvJNwdgR/EVI/Qy2kSTpJBnDi3MZqLYwd/T1FrLjZRmxFrtbBFKh0u/jfkZIn8vees/LCWEuYIhdpZ+o7oawRs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR16MB5046 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk From:=A0Tom Lane :=0A= =0A= >Hmm, I do not think that syntax means what you think it means ;-).=0A= =0A= Its an interesting trick that I came across on DBA SE on a question named "= How to use RETURNS TABLE with an existing table in PostgreSQL?".=0A= =0A= >However, it seems to end up with prorettype =3D=0A= >physical_table'::regtype anyway thanks to some special rules about=0A= >single-column output tables, so as far as I can see you should get=0A= >the table's composite type OID as the column type OID in the result=0A= >descriptor for "SELECT my_function(...)".=A0 Or is that not the case=0A= >you're concerned about?=0A= =0A= The query I am running is "SELECT * FROM my_function()". According to Wires= hark I can see that the returned RowDescription shows 0 for Table OID and C= olumn index:=0A= =0A= PostgreSQL=0A= =A0=A0=A0 Type: Row description=0A= =A0=A0=A0 Length: 219=0A= =A0=A0=A0 Field count: 7=0A= =A0=A0=A0=A0=A0=A0=A0 Column name: table_id=0A= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Table OID: 0=0A= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Column index: 0=0A= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Type OID: 20=0A= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Column length: 8=0A= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Type modifier: -1=0A= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Format: Binary (1)=0A= =0A= =0A= >I'm confused about exactly what you're asking for, but (a) returning a=0A= >type OID where a relation OID is expected is absolutely not OK ---=0A= >there is no guarantee that those OID sets are distinct; (b) regardless=0A= >of that, you seem to be asking for a silent semantic change in the=0A= >wire protocol, which is going to be a very hard sell because it will=0A= >probably break more applications than it makes happy.=A0 Why can't you=0A= >get what you need from the composite type OID?=0A= =0A= I would like the relation OID to be returned for the composite type that is= returned from the function.=0A= =0A= Maybe this can be simply considered a bug as it does seem like returning th= e relation OID that is clearly available would be the expected behavior.=0A= =0A= Regards,=0A= Maxwell.=