diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2021-12-16 15:36:02 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2021-12-16 15:36:02 -0500 |
commit | f9a8bc9f27e6c7569f30fc86b82129647068f6a0 (patch) | |
tree | b3c44554d55d4846177c8fcf18804abc6f326325 /src/backend/commands/explain.c | |
parent | 4ddbd7456a2d1a2f06f0860151bcbc720bf75e55 (diff) | |
download | postgresql-f9a8bc9f27e6c7569f30fc86b82129647068f6a0.tar.gz postgresql-f9a8bc9f27e6c7569f30fc86b82129647068f6a0.zip |
Ensure casting to typmod -1 generates a RelabelType.
Fix the code changed by commit 5c056b0c2 so that we always generate
RelabelType, not something else, for a cast to unspecified typmod.
Otherwise planner optimizations might not happen.
It appears we missed this point because the previous experiments were
done on type numeric: the parser undesirably generates a call on the
numeric() length-coercion function, but then numeric_support()
optimizes that down to a RelabelType, so that everything seems fine.
It misbehaves for types that have a non-optimized length coercion
function, such as bpchar.
Per report from John Naylor. Back-patch to all supported branches,
as the previous patch eventually was. Unfortunately, that no longer
includes 9.6 ... we really shouldn't put this type of change into a
nearly-EOL branch.
Discussion: https://postgr.es/m/CAFBsxsEfbFHEkouc+FSj+3K1sHipLPbEC67L0SAe-9-da8QtYg@mail.gmail.com
Diffstat (limited to 'src/backend/commands/explain.c')
0 files changed, 0 insertions, 0 deletions