In commenting on a SO question I came across the below.
Given:
CREATE OR REPLACE FUNCTION public.for_loop_test() RETURNS void LANGUAGE plpgsql AS $function$ BEGIN FOR i IN 1..10 LOOP RAISE NOTICE '%', i; END LOOP; END;
CREATE OR REPLACE FUNCTION public.for_loop_test() RETURNS void LANGUAGE plpgsql AS $function$ BEGIN FOR i IN 1...10 LOOP RAISE NOTICE '%', i; END LOOP; END;