create or replace function power2(n) as (
with recursive cte as (
select 0 as i, 1::UHUGEINT as p
union all
select i+1 as i, p*2 as p
from cte
where i < n )
select last(p order by i)
);