MCPcopy Create free account
hub / github.com/apache/impala / Base64Encode

Method Base64Encode

be/src/exprs/string-functions-ir.cc:1527–1551  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1525}
1526
1527StringVal StringFunctions::Base64Encode(FunctionContext* ctx, const StringVal& str) {
1528 if (str.is_null) return StringVal::null();
1529 if (str.len == 0) return StringVal(ctx, 0);
1530 int64_t out_max = 0;
1531 if (UNLIKELY(!Base64EncodeBufLen(str.len, &out_max))) {
1532 stringstream ss;
1533 ss << "Could not base64 encode a string of length " << str.len;
1534 ctx->AddWarning(ss.str().c_str());
1535 return StringVal::null();
1536 }
1537 StringVal result(ctx, out_max);
1538 if (UNLIKELY(result.is_null)) return result;
1539 unsigned out_len = 0;
1540 if (UNLIKELY(!impala::Base64Encode(
1541 reinterpret_cast<const char*>(str.ptr), str.len,
1542 out_max, reinterpret_cast<char*>(result.ptr), &out_len))) {
1543 stringstream ss;
1544 ss << "Could not base64 encode input in space " << out_max
1545 << "; actual output length " << out_len;
1546 ctx->AddWarning(ss.str().c_str());
1547 return StringVal::null();
1548 }
1549 result.len = out_len;
1550 return result;
1551}
1552
1553StringVal StringFunctions::Base64Decode(FunctionContext* ctx, const StringVal& str) {
1554 if (str.is_null) return StringVal::null();

Callers

nothing calls this directly

Calls 5

StringValClass · 0.85
Base64EncodeBufLenFunction · 0.85
AddWarningMethod · 0.80
Base64EncodeFunction · 0.50
strMethod · 0.45

Tested by

no test coverage detected