FOR integer loop bug? - Mailing list pgsql-general

From Adrian Klaver
Subject FOR integer loop bug?
Date
Msg-id c276938c-50f7-99db-926f-74dbddd83d27@aklaver.com
Whole thread Raw
Responses Re: FOR integer loop bug?  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-general
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@aklaver.com



pgsql-general by date:

Previous
From: "W.P."
Date:
Subject: Re: Problem with PG 11 database on OrangePi3 (ARMBIAN, ARM64) after disk disrupion (problem with USB disk connection)
Next
From: Pavel Stehule
Date:
Subject: Re: FOR integer loop bug?