Postgres 14.2
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;
$function$
;
select for_loop_test();
NOTICE: 1
NOTICE: 2
NOTICE: 3
NOTICE: 4
NOTICE: 5
NOTICE: 6
NOTICE: 7
NOTICE: 8
NOTICE: 9
NOTICE: 10
Then, note 1...10:
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;
$function$
select for_loop_test();
for_loop_test
---------------
If you do:
FOR i IN 1....10 LOOP
or
FOR i IN 1.10 LOOP
You get:
ERROR: syntax error at or near ".."
LINE 6: FOR i IN 1....10 LOOP
ERROR: syntax error at or near "1.10"
LINE 6: FOR i IN 1.10 LOOP
respectively.
Why is the three period form allowed through and why does it produce no
result?
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx