Search Postgresql Archives

Re: FOR integer loop bug?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/8/22 10:58 AM, Pavel Stehule wrote:


pá 8. 4. 2022 v 19:56 odesílatel Adrian Klaver <a

    Why is the three period form allowed through and why does it produce no
    result?


Maybe

(2022-04-08 19:57:57) postgres=# select .10;
┌──────────┐
│ ?column? │
╞══════════╡
│     0.10 │
└──────────┘
(1 row)

Alright so 1...10 is taken as 1::integer .. 0.10::integer CAST results in 0 and ends up as 1..0. This then is covered by:

"If the lower bound is greater than the upper bound (or less than, in the REVERSE case), the loop body is not executed at all. No error is raised."

Confirmed by:

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

$function$
;

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

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



-- Adrian Klaver
    adrian.klaver@xxxxxxxxxxx <mailto:adrian.klaver@xxxxxxxxxxx>




--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux