42 static constexpr int32_t kUnsortedOrderId = 0;
43 static constexpr int32_t kInitialSortOrderId = 1;
46 static const std::shared_ptr<SortOrder>& Unsorted();
49 int32_t order_id()
const;
52 std::span<const SortField> fields()
const;
62 bool Satisfies(
const SortOrder& other)
const;
66 bool SameOrder(
const SortOrder& other)
const;
68 std::string ToString()
const override;
71 return lhs.Equals(rhs);
77 Status Validate(
const Schema& schema)
const;
84 static Result<std::unique_ptr<SortOrder>> Make(
const Schema& schema, int32_t sort_id,
85 std::vector<SortField> fields);
92 static Result<std::unique_ptr<SortOrder>> Make(int32_t sort_id,
93 std::vector<SortField> fields);
95 static std::unordered_set<std::string_view> OrderPreservingSortedColumns(
96 const Schema& schema,
const SortOrder& order);
103 SortOrder(int32_t order_id, std::vector<SortField> fields);
106 bool Equals(
const SortOrder& other)
const;
109 std::vector<SortField> fields_;