pá 8. 4. 2022 v 19:56 odesílatel Adrian Klaver <adrian.kla...@aklaver.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.kla...@aklaver.com
>
>
>

Reply via email to