From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Indirect assignment code for array slices is dead code? |
Date: | 2017-03-11 01:59:48 |
Message-ID: | 4266.1489197588@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> In the context of my expression evaluation patch, I was trying to
> increase test coverage of execQual.c. I'm a bit confused about
> $subject. ExecEvalArrayRef() has the following codepath:
I think it may indeed be unreachable at present, because we don't support
something like this:
regression=# create table tt (f1 complex[]);
CREATE TABLE
regression=# update tt set f1[2:3].r = array[7,11];
ERROR: cannot assign to field "r" of column "f1" because its type complex[] is not a composite type
LINE 1: update tt set f1[2:3].r = array[7,11];
^
regression=# update tt set f1[2:3].r = array[7,11];
ERROR: cannot assign to field "r" of column "f1" because its type complex[] is not a composite type
LINE 1: update tt set f1[2:3].r = 42;
^
I would not like to remove it though. This particular bit of the executor
has no business making assumptions about how array and field references
can be nested.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2017-03-11 02:03:03 | Re: Indirect assignment code for array slices is dead code? |
Previous Message | Tom Lane | 2017-03-11 01:29:28 | Re: How to get the 'ctid' from a record type? |