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

Method CastToStringVal

be/src/exprs/decimal-operators-ir.cc:590–613  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

588}
589
590StringVal DecimalOperators::CastToStringVal(
591 FunctionContext* ctx, const DecimalVal& val) {
592 if (val.is_null) return StringVal::null();
593 int precision = ctx->impl()->GetConstFnAttr(FunctionContextImpl::ARG_TYPE_PRECISION, 0);
594 int scale = ctx->impl()->GetConstFnAttr(FunctionContextImpl::ARG_TYPE_SCALE, 0);
595 string s;
596 switch (ColumnType::GetDecimalByteSize(precision)) {
597 case 4:
598 s = Decimal4Value(val.val4).ToString(precision, scale);
599 break;
600 case 8:
601 s = Decimal8Value(val.val8).ToString(precision, scale);
602 break;
603 case 16:
604 s = Decimal16Value(val.val16).ToString(precision, scale);
605 break;
606 default:
607 DCHECK(false);
608 return StringVal::null();
609 }
610 StringVal result(ctx, s.size());
611 memcpy(result.ptr, s.c_str(), s.size());
612 return result;
613}
614
615template <typename T>
616IR_ALWAYS_INLINE int32_t DecimalOperators::ConvertToNanoseconds(

Callers

nothing calls this directly

Calls 4

GetConstFnAttrMethod · 0.80
implMethod · 0.80
ToStringMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected