This special case does not seem right to me -- why does the parent query need to be exposed to columns that are not in the select list and so will never be matched in the parent query? All the parent query should really need to know in this case is "what is the subquery's partitioning parameter/value if it has one?" which is available in the subquery's PartitioningForStatement. No need to clutter m_partitioningColumns.