Re: FOR integer loop bug? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: FOR integer loop bug?
Date
Msg-id efd5f71b-93f4-3d49-7a6d-43a6cf509659@aklaver.com
Whole thread Raw
In response to Re: FOR integer loop bug?  (Ron <ronljohnsonjr@gmail.com>)
List pgsql-general
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.klaver@aklaver.com



pgsql-general by date:

Previous
From: Ron
Date:
Subject: Re: FOR integer loop bug?
Next
From: Perry Smith
Date:
Subject: Constraint ordering