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