From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
Cc: | "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: FOR integer loop bug? |
Date: | 2022-04-08 17:58:46 |
Message-ID: | CAFj8pRB9W7q_tW9LqoxZERS7286bdLw4uLSnCd2ww_Ph9SgECw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
pá 8. 4. 2022 v 19:56 odesílatel Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
napsal:
> Postgres 14.2
>
> In commenting on a SO question I came across the below.
>
> Given:
>
> CREATE OR REPLACE FUNCTION public.for_loop_test()
> RETURNS void
> LANGUAGE plpgsql
> AS $function$
> BEGIN
> FOR i IN 1..10 LOOP
> RAISE NOTICE '%', i;
> END LOOP;
> END;
>
> $function$
> ;
>
> select for_loop_test();
> NOTICE: 1
> NOTICE: 2
> NOTICE: 3
> NOTICE: 4
> NOTICE: 5
> NOTICE: 6
> NOTICE: 7
> NOTICE: 8
> NOTICE: 9
> NOTICE: 10
>
> Then, note 1...10:
>
> CREATE OR REPLACE FUNCTION public.for_loop_test()
> RETURNS void
> LANGUAGE plpgsql
> AS $function$
> BEGIN
> FOR i IN 1...10 LOOP
> RAISE NOTICE '%', i;
> END LOOP;
> END;
>
> $function$
>
> select for_loop_test();
> for_loop_test
> ---------------
>
> If you do:
>
> FOR i IN 1....10 LOOP
>
> or
>
> FOR i IN 1.10 LOOP
>
> You get:
>
> ERROR: syntax error at or near ".."
> LINE 6: FOR i IN 1....10 LOOP
>
> ERROR: syntax error at or near "1.10"
> LINE 6: FOR i IN 1.10 LOOP
>
> respectively.
>
> 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)
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Ron | 2022-04-08 18:01:23 | Re: Long running processes and commit writing to disk |
Previous Message | Adrian Klaver | 2022-04-08 17:56:25 | FOR integer loop bug? |