@@ -125,24 +125,25 @@ SortOrderBuilder& SortOrderBuilder::CaseSensitive(bool case_sensitive) {
125125 return *this ;
126126}
127127
128- Result<std::shared_ptr <SortOrder>> SortOrderBuilder::BuildUncheckd () {
128+ Result<std::unique_ptr <SortOrder>> SortOrderBuilder::BuildUncheckd () {
129129 if (impl_->fields .empty ()) {
130130 if (impl_->sort_id .has_value () && impl_->sort_id != SortOrder::kUnsortedOrderId ) {
131131 return InvalidArgument (" Unsorted order ID must be 0" );
132132 }
133- return SortOrder::Unsorted ();
133+ return std::make_unique<SortOrder>(SortOrder::kUnsortedOrderId ,
134+ std::vector<SortField>{});
134135 }
135136
136137 if (impl_->sort_id .has_value () && impl_->sort_id == SortOrder::kUnsortedOrderId ) {
137138 return InvalidArgument (" Sort order ID 0 is reserved for unsorted order" );
138139 }
139140
140141 // default ID to 1 as 0 is reserved for unsorted order
141- return std::make_shared <SortOrder>(
142+ return std::make_unique <SortOrder>(
142143 impl_->sort_id .value_or (SortOrder::kInitialSortOrderId ), std::move (impl_->fields ));
143144}
144145
145- Result<std::shared_ptr <SortOrder>> SortOrderBuilder::Build () {
146+ Result<std::unique_ptr <SortOrder>> SortOrderBuilder::Build () {
146147 ICEBERG_ASSIGN_OR_RAISE (auto sort_order, BuildUncheckd ());
147148 ICEBERG_RETURN_UNEXPECTED (CheckCompatibility (sort_order, impl_->schema ));
148149 return sort_order;
@@ -180,7 +181,7 @@ SortOrderBuilder& SortOrderBuilder::AddSortField(const std::shared_ptr<Term>& te
180181 return *this ;
181182}
182183
183- Status SortOrderBuilder::CheckCompatibility (const std::shared_ptr <SortOrder>& sort_order,
184+ Status SortOrderBuilder::CheckCompatibility (const std::unique_ptr <SortOrder>& sort_order,
184185 const Schema* schema) {
185186 for (const auto & field : sort_order->fields ()) {
186187 ICEBERG_ASSIGN_OR_RAISE (auto schema_field, schema->FindFieldById (field.source_id ()));
0 commit comments