Hi Tom,

Thanks for the e - mail. I did interpret it exactly in a different manner,
it was my mistake. I am sorry.

Thanks!

On Mon, Feb 27, 2023 at 4:41 PM Tom Lane <t...@sss.pgh.pa.us> wrote:

> PG Doc comments form <nore...@postgresql.org> writes:
> > According to the official document of PostgreSQL 15, in the section
> 8.15.4.
> > Modifying Arrays there is a statement like:
>
> > The slice syntaxes with omitted lower-bound and/or upper-bound can be
> used
> > too, but only when updating an array value that is not NULL or
> > zero-dimensional (otherwise, there is no existing subscript limit to
> > substitute).
>
> > This statement is not true for the following statements or I am missing
> > something?
>
> Your example doesn't use a slice with omitted bound, so I'm not quite sure
> what you are trying to show?  Using your test data, a slice with omitted
> bound does fail with Pam's null schedule:
>
> => UPDATE sal_emp SET schedule[:2] = '{"w", "x", "y", "z"}' WHERE name =
> 'Pam';
> ERROR:  array slice subscript must provide both boundaries
> DETAIL:  When assigning to a slice of an empty array value, slice
> boundaries must be fully specified.
>
> but it works for the other entries:
>
> => UPDATE sal_emp SET schedule[:2] = '{"w", "x", "y", "z"}' WHERE name !=
> 'Pam';
> UPDATE 3
> => table sal_emp;
>   name  |      pay_by_quarter       |            schedule
> --------+---------------------------+---------------------------------
>  Pam    | {20000,25001,25002,25003} |
>  Bill   | {10000,10000,10000,10000} | {{w,x},{y,z}}
>  Carol  | {20000,25000,25000,25000} | {{w,x},{y,z}}
>  Carolx | {20000,25001,25002,25003} | {{w,x},{y,z},{meetingy,lunchy}}
> (4 rows)
>
>                         regards, tom lane
>

Reply via email to