Como INSERT INTO tabela com várias colunas da consulta dinâmica?

Igual aesta pergunta anterior para um mapeamento individual, preciso de uma solução para várias colunas na origem e no destino.
Ainda trabalhando com o Postgres 9.4.4, a consulta e o esquema são modificados e são os seguintes:

Digamos que eu tenho essas duas tabelasTable1 eTable2:

Create table Table1(col1 int, col2 varchar(100), col3 varchar(100));
Create table Table2(col1 int, col2 varchar(100), col3 varchar(100));

Há outra mesaTable3 armazenando uma fórmula para migrar dados deTable1 paraTable2:

CREATE TABLE Table3 (     
  tbl_src character varying(200),
  col_src character varying(500),
  tbl_des character varying(200),
  col_des character varying(100),
  condition character varying(500)
);

Insert into Table3(tbl_src, col_src, tbl_des, col_des, condition)
VALUES ('Table1','col1','Table2','col1', 'WHERE col1>=1')
     , ('Table1','col2','Table2','col2', NULL)
     , ('Table1','col3','Table2','col3', NULL);

Como compilar essa fórmula em uma consulta dinâmica e inserir na tabela de destino?

questionAnswers(1)

yourAnswerToTheQuestion