Given the table:
CREATE TABLE self-ref (
  name VARCHAR NOT NULL,
  parent VARCHAR REFERENCES self-ref(name),
  PRIMARY KEY(name)
);
If I get a name from the table (and thus the Pkey), how can I get the name of it's "root"-level parent: the name where parent is NULL which is referenced to (indirectly) by the given name. 
Say I have these values (I don't know which values I will get):
+-------------+-----------+
| Name        | Parent    |
+-------------+-----------+
| Root 1      | NULL      |
| Root 2      | NULL      |
| Child 1     | Root 1    |
| Child 2     | Root 2    |
| Sub-child 1 | Child 1   |
+-------------+-----------+
The function/whatever solution should return Root 1 for Root 1, Child 1 and Sub-child 1; and should return Root 2 for Root 2 and Child 2.
How can I achieve this? Note: It really has to be Postgres....
 
     
    