To be consistent with SeqScanPlanNode: for index scans that are for ordering only, why not set tuples to read and estimatedOutputTupleCount to tableEstimates.maxTuples. Then presumably the index would win because it doesn't need an order-by on top? I know you've thought about this, so maybe I'm missing something.