Get the name of a row's source table when querying the parent it inherits from Get the name of a row's source table when querying the parent it inherits from postgresql postgresql

Get the name of a row's source table when querying the parent it inherits from


To identify the source table of a particular row, use the tableoid, like you found yourself already.
A cast to regclass retrieves the actual name, automatically schema-qualified where needed according to the current search_path.

SELECT *, tableoid::regclass::text AS table_nameFROM   master.tblWHERE  <some_condition>;

More:


This is answered in the PostgreSQL documentation, in the section on inheritance. One can use the hidden tableoid column of the table along with relname from pg_class to add a column containing the table names to the result, as shown:

SELECT t.*, p.relname FROM table t, pg_class p WHERE t.tableoid = p.oid;