Search all columns as a single text per row
You can cast the complete row to a string (text) and then use the built-in full text search on that result:

select *
from foo
where to_tsvector(foo::text) @@ to_tsquery('full-text-query');


foo::text concatenates all columns of that table as a single large string, using the default text representation for non-text data.