Where are the RETURN TABLE columns in the information schema? Say I have a function 

CREATE FUNCTION foo (_id INT) RETURNS TABLE (id INT, my_name TEXT, adt_date DATE) ...


I desire to return 



_________________
id      | INT
my_name | TEXT
adt_date| DATE


So far I have the following query:

SELECT *
FROM information_schema.routines AS r
LEFT JOIN information_schema.parameters AS p ON r.specific_name = p.specific_name
ORDER BY r.routine_name
       , p.ordinal_position;


To my chagrin, I was unable to find the column names in this query for RETURN TABLE functions.
What am I missing here?

Not that it probably matters in this case, but I am running PG 9.6
Your query seems correct, so I'm not really sure what your question is? I created a function like:

CREATE OR REPLACE FUNCTION twice (x int) 
   RETURNS TABLE (y int, z text) 
AS $$
BEGIN 
    RETURN QUERY 
    SELECT x, 'a' UNION ALL SELECT x, 'a' ;
END; $$
LANGUAGE 'plpgsql';


and asked the catalog for:

SELECT r.routine_name, p.parameter_mode, p.parameter_name, p.data_type 
FROM information_schema.routines r 
LEFT JOIN information_schema.parameters AS p 
    ON r.specific_name = p.specific_name 
WHERE r.routine_name = 'twice';

routine_name    parameter_mode  parameter_name  data_type
twice           IN              x               integer
twice           OUT             y               integer
twice           OUT             z               text


Is it something that I did miss in your question?