Określ listę definicji kolumny dblink z lokalnego istniejącego typu

Używam dblink do przenoszenia pewnych danych między bazami danych. Wszystko jest zapisane i dźwiękowe, ale zastanawiam się, czy istnieje bardziej wygodny sposób definiowania listy definicji kolumn dla wyniku zapytania dblink. Mogę zrobić coś takiego:

SELECT *
FROM dblink('dbname=remote', 'select * from test')
AS t1(id integer, data text); 

Tabele, z którymi współpracuję, mają tę samą definicję schematu w obu bazach danych (zdalnych i lokalnych). Myślałem o czymś takim:

SELECT *
FROM dblink('dbname=remote', 'select * from test')
AS t1 LIKE public.test; 

Lub:

SELECT *
FROM dblink('dbname=remote', 'select * from test')
AS t1::public.test;

Lista definicji kolumn staje się dość długa. Czy jest coś, co mogłem przeoczyć?

EDYTOWAĆ:

Ponieważ był to dla mnie problem, zanim stworzyłem małą funkcję jako obejście.

CREATE OR REPLACE FUNCTION dblink_star_func(_conn text, _schema_name text, _table_name text)
RETURNS text
LANGUAGE PLPGSQL
VOLATILE STRICT
AS $function$
    DECLARE       
        _dblink_schema text;
        _cols          text; 
        _q             text;
        _func_name     text := format('star_%s', $3);
        _func          text;        
    BEGIN
        SELECT nspname INTO _dblink_schema
        FROM pg_namespace n, pg_extension e
        WHERE e.extname = 'dblink' AND e.extnamespace = n.oid;

        SELECT array_to_string(array_agg(column_name || ' ' || udt_name), ', ') INTO _cols
        FROM information_schema.columns
        WHERE table_schema = $2 AND table_name = $3;

        _q := format('SELECT * FROM %I.dblink(%L, %L) AS remote (%s)',
            _dblink_schema,
            _conn,
            format('SELECT * FROM %I.%I', $2, $3),
            _cols
        );

        _func := $_func$
            CREATE OR REPLACE FUNCTION %s()
            RETURNS SETOF %I.%I
            LANGUAGE SQL
            VOLATILE STRICT
            AS $ %s; $
        $_func$;

        EXECUTE format(_func, _func_name, $2, $3, _q);

        RETURN _func_name;
    END;
$function$;

Ta funkcja tworzy i generuje funkcję, która zawija wywołanie dblink. Z pewnością nie jest przeznaczony do ciężkiego podnoszenia, ale wygodę. Byłoby miło, gdyby okazało się, że wcale nie jest to konieczne.

> select dblink_star_func('dbname=ben', 'public', 'test');
┌──────────────────┐
│ dblink_star_func │
├──────────────────┤
│ star_test        │
└──────────────────┘
(1 row)

> select * from star_test() where data = 'success';
┌────┬─────────┐
│ id │  data   │
├────┼─────────┤
│  1 │ success │
└────┴─────────┘
(1 row)

questionAnswers(2)

yourAnswerToTheQuestion