diff --git a/cpp/arcticdb/column_store/chunked_buffer.cpp b/cpp/arcticdb/column_store/chunked_buffer.cpp index 8686c2b9bb..0d6a618701 100644 --- a/cpp/arcticdb/column_store/chunked_buffer.cpp +++ b/cpp/arcticdb/column_store/chunked_buffer.cpp @@ -71,11 +71,8 @@ template std::vector> split(const ChunkedBufferImpl<3968 // Inclusive of start_byte, exclusive of end_byte template ChunkedBufferImpl truncate(const ChunkedBufferImpl& input, size_t start_byte, size_t end_byte) { - internal::check( - end_byte >= start_byte, - "ChunkedBufferImpl::truncate expects end_byte {} to be >= start_byte {}", end_byte, start_byte); ARCTICDB_DEBUG(log::version(), "Truncating buffer of size {} between bytes {} and {}", input.bytes(), start_byte, end_byte); - const auto output_size = end_byte - start_byte; + const auto output_size = start_byte >= end_byte ? 0 : end_byte - start_byte; // This is trivially extendable to use presized_in_blocks, but there is no use case for this right now, and // copy_frame_data_to_buffer expects a contiguous buffer auto output = ChunkedBufferImpl::presized(output_size); diff --git a/cpp/arcticdb/processing/clause.cpp b/cpp/arcticdb/processing/clause.cpp index 347df1baaa..8473905336 100644 --- a/cpp/arcticdb/processing/clause.cpp +++ b/cpp/arcticdb/processing/clause.cpp @@ -698,12 +698,6 @@ void RowRangeClause::set_processing_config(const ProcessingConfig& processing_co std::min(user_provided_end_, total_rows) : std::max(total_rows + user_provided_end_, static_cast(0)) ); - if (start_ > end_) { - user_input::raise( - "RowRangeClause start index {} is greater than end index {}; originally (start, end)=({}, {}) ", - start_, end_, user_provided_start_, user_provided_end_); - } - n_ = end_ - start_; break; default: diff --git a/python/tests/unit/arcticdb/version_store/test_row_range.py b/python/tests/unit/arcticdb/version_store/test_row_range.py index 88c9fde658..c1731abef0 100644 --- a/python/tests/unit/arcticdb/version_store/test_row_range.py +++ b/python/tests/unit/arcticdb/version_store/test_row_range.py @@ -17,7 +17,7 @@ def generic_row_range_test(version_store, symbol, df, start_row, end_row): expected_array = df.iloc[start_row:end_row] received_array = version_store.read(symbol, row_range=(start_row, end_row)).data - q = QueryBuilder()._row_range(start_row, end_row) + q = QueryBuilder()._row_range((start_row, end_row)) received_array_via_querybuilder = version_store.read(symbol, query_builder=q).data np.testing.assert_array_equal(expected_array, received_array) @@ -25,7 +25,7 @@ def generic_row_range_test(version_store, symbol, df, start_row, end_row): expected_array = df.iloc[-end_row:-start_row] received_array = version_store.read(symbol, row_range=(-end_row, -start_row)).data - q = QueryBuilder()._row_range(-end_row, -start_row) + q = QueryBuilder()._row_range((-end_row, -start_row)) received_array_via_querybuilder = version_store.read(symbol, query_builder=q).data np.testing.assert_array_equal(expected_array, received_array)