One way I can think of is create view of the table in Postgresql in Teiid, but do not expose those two columns. Then create another view with above PUBLISH_DATE columns along with the PK of the table. Now create 1 to 1 mapping between two. This will not create complex type but two entities and then you can use the navigation to get to it, which kind of similar.
Great, I was starting to use this approach, so I'm glad to hear I was on the right track!
But I'm can't figure out how to implement a 1-to-1 mapping. Do you mean creating a third view, which combines the two views? I think that the column names would still be "flat", e.g. CREATE VIEW MyNewView (id bigint, publish_date_start date, ......), etc. Not sure how to explicitly define this 1-to-1 relationship.