encode(colname, 'escape')
превращает столбец в экранированный текст string_to_array
разбивает его на массив text[]
unnest()
превращает массив в строки cross join lateral
необходимо использовать with ordinality
для получения rnum
select id, rnum, tline
from your_table
cross join lateral unnest(
string_to_array(encode(stuff, 'escape'), E'\n')
) with ordinality x(tline, rnum)
order by id, rnum;