RowDescription for a function does not include table OID

From: Maxwell Dreytser <Maxwell(dot)Dreytser(at)assistek(dot)com>
To: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: RowDescription for a function does not include table OID
Date: 2024-06-21 14:41:55
Message-ID: LV3PR16MB60014D610A726368182ACC7EE6C92@LV3PR16MB6001.namprd16.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-interfaces

Hello,

I am working on a meta-programming use-case where I need to scrape some detailed information about the results of a function that "RETURNS TABLE (LIKE physical_table)", which ends up with prorettype = 'physical_table'::regtype.
The problem is that for the query "SELECT * FROM my_function()" the RowDescription that is sent back shows 0 for Table OID and Column Index.

From Wireshark:
PostgreSQL
Type: Row description
Length: 219
Field count: 7
Column name: table_id
Table OID: 0
Column index: 0
Type OID: 20
Column length: 8
Type modifier: -1
Format: Binary (1)
<snipped>

I would expect that the Table OID contains the relation OID of this table, as it would do for a typical statement like "SELECT * FROM my_table". It would seem there is a bug here that is preventing PostgreSQL from connecting the dots.

Regards,
Maxwell.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David G. Johnston 2024-06-21 14:48:16 Re: RowDescription for a function does not include table OID
Previous Message Šika Michal 2024-06-21 07:33:01 Re: Postgresql python in upgraded version 16.2

Browse pgsql-interfaces by date

  From Date Subject
Next Message David G. Johnston 2024-06-21 14:48:16 Re: RowDescription for a function does not include table OID
Previous Message Maxwell Dreytser 2024-06-20 01:22:23 Re: RowDescription for a function does not include table OID