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.kla...@aklaver.com <mailto:adrian.kla...@aklaver.com>




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


Reply via email to