Thread: Inherited table identification possible

Inherited table identification possible

From
George Woodring
Date:
Is it possible to identify which inherited table data came from in a query?  We have a table that has 3 inherited tables attached to it.  I am looking for a way to identify the source of the data.  

My only thought would be to add a column to the tables that identify the table.  I was just checking if there was a way to do it without the column.

Thanks,
George



--
iGLASS Networks
www.iglass.net

Re: Inherited table identification possible

From
"Jonathan S. Katz"
Date:
On May 24, 2012, at 2:01 PM, George Woodring wrote:

Is it possible to identify which inherited table data came from in a query?  We have a table that has 3 inherited tables attached to it.  I am looking for a way to identify the source of the data.  

My only thought would be to add a column to the tables that identify the table.  I was just checking if there was a way to do it without the column.

There is a special column on every row of your table called "tableoid" which identifies the original relation the row belongs to.  This identifier can be matched up to the name of the relation in the pg_class table.


Jonathan

Re: Inherited table identification possible

From
Stephen Belcher
Date:
Yes, the system column "tableoid" identifies the actual table in which the row is stored. If you cast this to "regclass" you'll get the name of the table that the row is stored in:

SELECT tableoid::regclass FROM base_table;

There's more documentation on this available at http://www.postgresql.org/docs/9.1/static/ddl-inherit.html (for version 9.1, at any rate: season to taste with your version of PG)

Hope this helps,
--Stephen


On Thu, May 24, 2012 at 2:01 PM, George Woodring <george.woodring@iglass.net> wrote:
Is it possible to identify which inherited table data came from in a query?  We have a table that has 3 inherited tables attached to it.  I am looking for a way to identify the source of the data.  

My only thought would be to add a column to the tables that identify the table.  I was just checking if there was a way to do it without the column.

Thanks,
George



--
iGLASS Networks
www.iglass.net

Re: Inherited table identification possible

From
George Woodring
Date:
Thanks for all of the help, this was exactly what I was looking for.

George

On Thu, May 24, 2012 at 2:11 PM, Stephen Belcher <sycobuny@malkier.net> wrote:
Yes, the system column "tableoid" identifies the actual table in which the row is stored. If you cast this to "regclass" you'll get the name of the table that the row is stored in:

SELECT tableoid::regclass FROM base_table;

There's more documentation on this available at http://www.postgresql.org/docs/9.1/static/ddl-inherit.html (for version 9.1, at any rate: season to taste with your version of PG)

Hope this helps,
--Stephen



On Thu, May 24, 2012 at 2:01 PM, George Woodring <george.woodring@iglass.net> wrote:
Is it possible to identify which inherited table data came from in a query?  We have a table that has 3 inherited tables attached to it.  I am looking for a way to identify the source of the data.  

My only thought would be to add a column to the tables that identify the table.  I was just checking if there was a way to do it without the column.

Thanks,
George



--
iGLASS Networks
www.iglass.net




--
iGLASS Networks
www.iglass.net