No need to decorate columns twice

We never want result types to override column types, and
`decorate_columns` can only affect column types. No need to go through
the decoration multiple times, we can just exclude the column types from
the result types instead.
Merge pull request #15621 from sgrif/sg-column-type-decorations

No need to decorate columns twice