Skip to content

Commit

Permalink
combining functions
Browse files Browse the repository at this point in the history
  • Loading branch information
vlad-gogov committed Jan 9, 2025
1 parent f0ed1ca commit 459a77f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 25 deletions.
26 changes: 8 additions & 18 deletions ydb/core/formats/arrow/serializer/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,20 @@
#include <contrib/libs/apache/arrow/cpp/src/arrow/util/compression.h>

namespace NKikimr::NArrow {
bool SupportsCompressionLevel(const arrow::Compression::type compression) {
return arrow::util::Codec::SupportsCompressionLevel(compression);
}

bool SupportsCompressionLevel(const arrow::Compression::type compression, const i32 compressionLevel) {
if (!SupportsCompressionLevel(compression)) {
bool SupportsCompressionLevel(const arrow::Compression::type compression, const std::optional<i32>& compressionLevel) {
if (!arrow::util::Codec::SupportsCompressionLevel(compression)) {
return false;
}
int minLevel = MinimumCompressionLevel(compression).value();
int maxLevel = MaximumCompressionLevel(compression).value();
if (compressionLevel < minLevel || compressionLevel > maxLevel) {
return false;
if (compressionLevel.has_value()) {
int minLevel = MinimumCompressionLevel(compression).value();
int maxLevel = MaximumCompressionLevel(compression).value();
if (compressionLevel < minLevel || compressionLevel > maxLevel) {
return false;
}
}
return true;
}

bool SupportsCompressionLevel(const NKikimrSchemeOp::EColumnCodec compression) {
return SupportsCompressionLevel(CompressionFromProto(compression).value());
}

bool SupportsCompressionLevel(const NKikimrSchemeOp::EColumnCodec compression, const i32 compressionLevel) {
return SupportsCompressionLevel(CompressionFromProto(compression).value(), compressionLevel);
}

std::optional<int> MinimumCompressionLevel(const arrow::Compression::type compression) {
if (!SupportsCompressionLevel(compression)) {
return {};
Expand Down
9 changes: 2 additions & 7 deletions ydb/core/formats/arrow/serializer/utils.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
#pragma once

#include <ydb/core/protos/flat_scheme_op.pb.h>

#include <contrib/libs/apache/arrow/cpp/src/arrow/util/type_fwd.h>
#include <util/system/yassert.h>
#include <util/system/types.h>

#include <optional>

namespace NKikimr::NArrow {
bool SupportsCompressionLevel(const arrow::Compression::type compression);
bool SupportsCompressionLevel(const arrow::Compression::type compression, const i32 compressionLevel);
bool SupportsCompressionLevel(const NKikimrSchemeOp::EColumnCodec compression);
bool SupportsCompressionLevel(const NKikimrSchemeOp::EColumnCodec compression, const i32 compressionLevel);
bool SupportsCompressionLevel(const arrow::Compression::type compression, const std::optional<i32>& compressionLevel = {});

std::optional<int> MinimumCompressionLevel(const arrow::Compression::type compression);
std::optional<int> MaximumCompressionLevel(const arrow::Compression::type compression);
Expand Down

0 comments on commit 459a77f

Please sign in to comment.