Skip to content

Commit 886d28e

Browse files
committed
use unique_ptr
1 parent d805ea7 commit 886d28e

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

src/iceberg/sort_order.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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()));

src/iceberg/sort_order.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class ICEBERG_EXPORT SortOrderBuilder {
132132
/// \brief Builds a SortOrder instance.
133133
///
134134
/// \return A Result containing the constructed SortOrder or an error
135-
Result<std::shared_ptr<SortOrder>> Build();
135+
Result<std::unique_ptr<SortOrder>> Build();
136136

137137
/// \brief Destructor
138138
~SortOrderBuilder();
@@ -153,9 +153,9 @@ class ICEBERG_EXPORT SortOrderBuilder {
153153
SortDirection direction, NullOrder null_order);
154154

155155
/// \brief Builds an unchecked SortOrder instance.
156-
Result<std::shared_ptr<SortOrder>> BuildUncheckd();
156+
Result<std::unique_ptr<SortOrder>> BuildUncheckd();
157157

158-
static Status CheckCompatibility(const std::shared_ptr<SortOrder>& sort_order,
158+
static Status CheckCompatibility(const std::unique_ptr<SortOrder>& sort_order,
159159
const Schema* schema);
160160

161161
/// Internal state members

0 commit comments

Comments
 (0)