I am assuming we are going to store collation id in heap metadata as well as btree metadata. Heap code sometimes has to create objects itself, those objects are both used inside the heap code and are passed back to the user.
Heap code may do compares using these objects as it processes pushed predicates within scans.
