summaryrefslogtreecommitdiffstats
path: root/yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-06 13:26:25 +0300
committervvvv <[email protected]>2025-10-06 14:06:25 +0300
commiteca8ce9cb1613d5c983185c4e43c20651a9638aa (patch)
tree61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h
parent4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (diff)
YQL-20086 udfs
init commit_hash:f9684778bf1ea956965f2360b80b91edb7d4ffbe
Diffstat (limited to 'yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h')
-rw-r--r--yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h347
1 files changed, 177 insertions, 170 deletions
diff --git a/yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h b/yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h
index 58709134d6a..9e655d96469 100644
--- a/yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h
+++ b/yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h
@@ -16,203 +16,210 @@
using namespace NYql::NUdf;
namespace NCompress {
- SIMPLE_UDF(TGzip, char*(TAutoMap<char*>, ui8)) {
- TString result;
- TStringOutput output(result);
- TZLibCompress compress(&output, ZLib::GZip, args[1].Get<ui8>());
- compress.Write(args[0].AsStringRef());
- compress.Finish();
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TGzip, char*(TAutoMap<char*>, ui8)) {
+ TString result;
+ TStringOutput output(result);
+ TZLibCompress compress(&output, ZLib::GZip, args[1].Get<ui8>());
+ compress.Write(args[0].AsStringRef());
+ compress.Finish();
+ return valueBuilder->NewString(result);
+}
- SIMPLE_UDF(TZlib, char*(TAutoMap<char*>, ui8)) {
- TString result;
- TStringOutput output(result);
- TZLibCompress compress(&output, ZLib::ZLib, args[1].Get<ui8>());
- compress.Write(args[0].AsStringRef());
- compress.Finish();
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TZlib, char*(TAutoMap<char*>, ui8)) {
+ TString result;
+ TStringOutput output(result);
+ TZLibCompress compress(&output, ZLib::ZLib, args[1].Get<ui8>());
+ compress.Write(args[0].AsStringRef());
+ compress.Finish();
+ return valueBuilder->NewString(result);
+}
- SIMPLE_UDF(TBrotli, char*(TAutoMap<char*>, ui8)) {
- TString result;
- TStringOutput output(result);
- TBrotliCompress compress(&output, args[1].Get<ui8>());
- compress.Write(args[0].AsStringRef());
- compress.Finish();
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TBrotli, char*(TAutoMap<char*>, ui8)) {
+ TString result;
+ TStringOutput output(result);
+ TBrotliCompress compress(&output, args[1].Get<ui8>());
+ compress.Write(args[0].AsStringRef());
+ compress.Finish();
+ return valueBuilder->NewString(result);
+}
- SIMPLE_UDF(TLzma, char*(TAutoMap<char*>, ui8)) {
- TString result;
- TStringOutput output(result);
- TLzmaCompress compress(&output, args[1].Get<ui8>());
- compress.Write(args[0].AsStringRef());
- compress.Finish();
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TLzma, char*(TAutoMap<char*>, ui8)) {
+ TString result;
+ TStringOutput output(result);
+ TLzmaCompress compress(&output, args[1].Get<ui8>());
+ compress.Write(args[0].AsStringRef());
+ compress.Finish();
+ return valueBuilder->NewString(result);
+}
- SIMPLE_UDF(TBZip2, char*(TAutoMap<char*>, ui8)) {
- TString result;
- TStringOutput output(result);
- TBZipCompress compress(&output, args[1].Get<ui8>());
- compress.Write(args[0].AsStringRef());
- compress.Finish();
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TBZip2, char*(TAutoMap<char*>, ui8)) {
+ TString result;
+ TStringOutput output(result);
+ TBZipCompress compress(&output, args[1].Get<ui8>());
+ compress.Write(args[0].AsStringRef());
+ compress.Finish();
+ return valueBuilder->NewString(result);
+}
- SIMPLE_UDF(TSnappy, char*(TAutoMap<char*>)) {
- TString result;
- const TStringRef& input = args[0].AsStringRef();
- snappy::Compress(input.Data(), input.Size(), &result);
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TSnappy, char*(TAutoMap<char*>)) {
+ TString result;
+ const TStringRef& input = args[0].AsStringRef();
+ snappy::Compress(input.Data(), input.Size(), &result);
+ return valueBuilder->NewString(result);
+}
- SIMPLE_UDF(TZstd, char*(TAutoMap<char*>, ui8)) {
- TString result;
- TStringOutput output(result);
- TZstdCompress compress(&output, args[1].Get<ui8>());
- compress.Write(args[0].AsStringRef());
- compress.Finish();
- return valueBuilder->NewString(result);
- }
+SIMPLE_UDF(TZstd, char*(TAutoMap<char*>, ui8)) {
+ TString result;
+ TStringOutput output(result);
+ TZstdCompress compress(&output, args[1].Get<ui8>());
+ compress.Write(args[0].AsStringRef());
+ compress.Finish();
+ return valueBuilder->NewString(result);
}
+} // namespace NCompress
namespace NDecompress {
- SIMPLE_UDF(TGzip, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TZLibDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- }
+SIMPLE_UDF(TGzip, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TZLibDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
- SIMPLE_UDF(TZlib, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TZLibDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- }
+SIMPLE_UDF(TZlib, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TZLibDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
- SIMPLE_UDF(TBrotli, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TBrotliDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- }
+SIMPLE_UDF(TBrotli, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TBrotliDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
- SIMPLE_UDF(TLzma, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TLzmaDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- }
+SIMPLE_UDF(TLzma, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TLzmaDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
- SIMPLE_UDF(TBZip2, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TBZipDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- }
+SIMPLE_UDF(TBZip2, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TBZipDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
- SIMPLE_UDF(TSnappy, char*(TAutoMap<char*>)) {
- TString result;
- const auto& value = args->AsStringRef();
- if (snappy::Uncompress(value.Data(), value.Size(), &result)) {
- return valueBuilder->NewString(result);
- }
-
- ythrow yexception() << "failed to decompress message with snappy";
- }
-
- SIMPLE_UDF(TZstd, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TZstdDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
+SIMPLE_UDF(TSnappy, char*(TAutoMap<char*>)) {
+ TString result;
+ const auto& value = args->AsStringRef();
+ if (snappy::Uncompress(value.Data(), value.Size(), &result)) {
+ return valueBuilder->NewString(result);
}
- SIMPLE_UDF(TXz, char*(TAutoMap<char*>)) {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TXzDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- }
+ ythrow yexception() << "failed to decompress message with snappy";
}
+SIMPLE_UDF(TZstd, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TZstdDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
+
+SIMPLE_UDF(TXz, char*(TAutoMap<char*>)) {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TXzDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+}
+} // namespace NDecompress
+
namespace NTryDecompress {
- SIMPLE_UDF(TGzip, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TZLibDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TGzip, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TZLibDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TZlib, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TZLibDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TZlib, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TZLibDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TBrotli, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TBrotliDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TBrotli, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TBrotliDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TLzma, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TLzmaDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TLzma, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TLzmaDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TBZip2, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TBZipDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TBZip2, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TBZipDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TSnappy, TOptional<char*>(TAutoMap<char*>)) {
- TString result;
- const auto& value = args->AsStringRef();
- if (snappy::Uncompress(value.Data(), value.Size(), &result)) {
- return valueBuilder->NewString(result);
- }
- return TUnboxedValuePod();
+SIMPLE_UDF(TSnappy, TOptional<char*>(TAutoMap<char*>)) {
+ TString result;
+ const auto& value = args->AsStringRef();
+ if (snappy::Uncompress(value.Data(), value.Size(), &result)) {
+ return valueBuilder->NewString(result);
}
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TZstd, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TZstdDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TZstd, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TZstdDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
+}
- SIMPLE_UDF(TXz, TOptional<char*>(TAutoMap<char*>)) try {
- const auto& ref = args->AsStringRef();
- TMemoryInput input(ref.Data(), ref.Size());
- TXzDecompress decompress(&input);
- return valueBuilder->NewString(decompress.ReadAll());
- } catch (const std::exception&) {
- return TUnboxedValuePod();
- }
+SIMPLE_UDF(TXz, TOptional<char*>(TAutoMap<char*>))
+try {
+ const auto& ref = args->AsStringRef();
+ TMemoryInput input(ref.Data(), ref.Size());
+ TXzDecompress decompress(&input);
+ return valueBuilder->NewString(decompress.ReadAll());
+} catch (const std::exception&) {
+ return TUnboxedValuePod();
}
+} // namespace NTryDecompress
-#define EXPORTED_COMPRESS_BASE_UDF TGzip, TZlib, TBrotli, TLzma, TBZip2, TSnappy, TZstd
-#define EXPORTED_DECOMPRESS_BASE_UDF TGzip, TZlib, TBrotli, TLzma, TBZip2, TSnappy, TZstd, TXz
+#define EXPORTED_COMPRESS_BASE_UDF TGzip, TZlib, TBrotli, TLzma, TBZip2, TSnappy, TZstd
+#define EXPORTED_DECOMPRESS_BASE_UDF TGzip, TZlib, TBrotli, TLzma, TBZip2, TSnappy, TZstd, TXz
#define EXPORTED_TRY_DECOMPRESS_BASE_UDF TGzip, TZlib, TBrotli, TLzma, TBZip2, TSnappy, TZstd, TXz