forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit5c056b0
committed
Don't elide casting to typmod -1.
Casting a value that's already of a type with a specific typmodto an unspecified typmod doesn't do anything so far as run-timebehavior is concerned. However, it really ought to change theexposed type of the expression to match. Up to now,coerce_type_typmod hasn't bothered with that, which creates gotchasin contexts such as recursive unions. If for example one side ofthe union is numeric(18,3), but it needs to be plain numeric tomatch the other side, there's no direct way to express that.This is easy enough to fix, by inserting a RelabelType to update theexposed type of the expression. However, it's a bit nervous-makingto change this behavior, because it's stood for a really long time.(I strongly suspect that it's like this in part because the logicpre-dates the introduction of RelabelType in 7.0. The commit logmessage for57b30e8 is interesting reading here.) As a compromise,we'll sneak the change into 14beta3, and consider back-patching tostable branches if no complaints emerge in the next three months.Discussion:https://postgr.es/m/CABNQVagu3bZGqiTjb31a8D5Od3fUMs7Oh3gmZMQZVHZ=uWWWfQ@mail.gmail.com1 parent2642df9 commit5c056b0
File tree
3 files changed
+75
-9
lines changed- src
- backend/parser
- test/regress
- expected
- sql
3 files changed
+75
-9
lines changedLines changed: 17 additions & 9 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
758 | 758 |
| |
759 | 759 |
| |
760 | 760 |
| |
761 |
| - | |
762 |
| - | |
763 |
| - | |
764 |
| - | |
765 |
| - | |
| 761 | + | |
| 762 | + | |
766 | 763 |
| |
767 | 764 |
| |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
768 | 769 |
| |
769 | 770 |
| |
770 | 771 |
| |
771 | 772 |
| |
772 |
| - | |
773 |
| - | |
774 |
| - | |
775 |
| - | |
776 | 773 |
| |
777 | 774 |
| |
778 | 775 |
| |
779 | 776 |
| |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
780 | 788 |
| |
781 | 789 |
| |
782 | 790 |
| |
|
Lines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
158 | 158 |
| |
159 | 159 |
| |
160 | 160 |
| |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
161 | 198 |
| |
162 | 199 |
| |
163 | 200 |
| |
|
Lines changed: 21 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
66 | 66 |
| |
67 | 67 |
| |
68 | 68 |
| |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
69 | 90 |
| |
70 | 91 |
| |
71 | 92 |
| |
|
0 commit comments
Comments
(0)