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

Method ParseUrlKey

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

Source from the content-addressed store, hash-verified

1422}
1423
1424StringVal StringFunctions::ParseUrlKey(FunctionContext* ctx, const StringVal& url,
1425 const StringVal& part, const StringVal& key) {
1426 if (url.is_null || part.is_null || key.is_null) return StringVal::null();
1427 void* state = ctx->GetFunctionState(FunctionContext::FRAGMENT_LOCAL);
1428 UrlParser::UrlPart url_part;
1429 if (state != NULL) {
1430 url_part = *reinterpret_cast<UrlParser::UrlPart*>(state);
1431 } else {
1432 DCHECK(!ctx->IsArgConstant(1));
1433 url_part = UrlParser::GetUrlPart(StringValue::FromStringVal(part));
1434 }
1435
1436 StringValue result;
1437 if (!UrlParser::ParseUrlKey(StringValue::FromStringVal(url), url_part,
1438 StringValue::FromStringVal(key), &result)) {
1439 // url is malformed, or url_part is invalid.
1440 if (url_part == UrlParser::INVALID) {
1441 stringstream ss;
1442 ss << "Invalid URL part: " << AnyValUtil::ToString(part);
1443 ctx->AddWarning(ss.str().c_str());
1444 } else {
1445 stringstream ss;
1446 ss << "Could not parse URL: " << AnyValUtil::ToString(url);
1447 ctx->AddWarning(ss.str().c_str());
1448 }
1449 return StringVal::null();
1450 }
1451 StringVal result_sv;
1452 result.ToStringVal(&result_sv);
1453 return result_sv;
1454}
1455
1456StringVal StringFunctions::Chr(FunctionContext* ctx, const IntVal& val) {
1457 if (val.is_null) return StringVal::null();

Callers

nothing calls this directly

Calls 6

GetFunctionStateMethod · 0.80
IsArgConstantMethod · 0.80
AddWarningMethod · 0.80
ToStringFunction · 0.50
strMethod · 0.45
ToStringValMethod · 0.45

Tested by

no test coverage detected