Re: FOR integer loop bug?

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
>
>
>

In response to

Responses

Browse pgsql-general by date

  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?