On 4/8/22 11:23, Ron wrote:
On 4/8/22 13:07, Adrian Klaver wrote:

Hmm, I'm going to have to think on this.

The only thinking is: "That's a bug waiting to happen!"


That was my first inclination.

From here:

https://www.postgresql.org/docs/current/plpgsql-control-structures.html#PLPGSQL-CONTROL-STRUCTURES-LOOPS

FOR name IN [ REVERSE ] expression .. expression [ BY expression ] LOOP


So:

CREATE OR REPLACE FUNCTION for_loop_test()
 RETURNS void
 LANGUAGE plpgsql
AS $function$
BEGIN
    FOR i IN   1..(2/3.0) LOOP
        RAISE NOTICE '%', i;
    END LOOP;
END;


select for_loop_test();
NOTICE:  1
 for_loop_test
---------------


Because:

select (2/3.0)::int;
 int4
------
    1

I find the result from this 1...10 surprising, however I have to believe there is code counting on the equivalent of (2/3.0) working.


--
Adrian Klaver
adrian.kla...@aklaver.com


Reply via email to