| 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: | Whole Thread | Raw Message | 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? |