| From: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
|---|---|
| To: | Szymon Lipiński <mabewlun(at)gmail(dot)com> |
| Cc: | PostgreSQL <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: question about array indexing |
| Date: | 2019-11-04 16:15:36 |
| Message-ID: | CAHyXU0wj80g8tKtOcv8HExnzhTeyWaFMuaN_Jyz9hk2k57Pcwg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Mon, Nov 4, 2019 at 10:05 AM Szymon Lipiński <mabewlun(at)gmail(dot)com> wrote:
>
> Hey,
> I'm wondering if this isn't a bug somewhere in the parser. I had to add additional parenthesis around the regexp_split_to_array.
>
>
> $ with x as (select 'a b c' a)
> select
> regexp_split_to_array(a, ' ')
> from x;
>
> regexp_split_to_array
> -----------------------
> {a,b,c}
> (1 row)
>
> $ with x as (select 'a b c' a)
> select
> regexp_split_to_array(a, ' ')[1]
> from x;
>
> ERROR: syntax error at or near "["
> LINE 3: regexp_split_to_array(a, ' ')[1]
> ^
> $ with x as (select 'a b c' a)
> select
> (regexp_split_to_array(a, ' '))[1]
> from x;
> regexp_split_to_array
> -----------------------
> a
> (1 row)
It's always been that way. You also have to wrap function column expansions:
select (func()).*
I don't know the exact technical reason why that's required, but my
money is on precedence related problems.
merlin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2019-11-04 17:01:46 | Re: Issues with PAM : log that it failed, whether it actually failed or not |
| Previous Message | Stephen Frost | 2019-11-04 16:06:44 | Re: v12 and pg_restore -f- |