sub _sql { return $dbh->selectrow_arrayref(" select array_to_string( array( select lower(r) || '-' || upper(r)-1 from ( select (select unnest(r1) limit 1 offset n -1) * (select unnest(r2) limit 1 offset n -1) as r from (values (('{[' || replace(replace('$TM_part1', ',', '],['), '-', ',') || ']}')::int4multirange, ('{[' || replace(replace('$TM_part2', ',', '],['), '-', ',') || ']}')::int4multirange )) as f(r1,r2) , lateral generate_series(1, 4) as g(n) ) as g ), ',') as h ; ")->[0] ; }