diff options
author | vvvv <[email protected]> | 2025-10-06 13:26:25 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-10-06 14:06:25 +0300 |
commit | eca8ce9cb1613d5c983185c4e43c20651a9638aa (patch) | |
tree | 61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/common/compress_base/lib/compress_base_udf.h | |
parent | 4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (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.h | 347 |
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 |