MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / tryCastUnionField

Function tryCastUnionField

src/function/cast_from_string_functions.cpp:675–818  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

673}
674
675static bool tryCastUnionField(ValueVector* vector, uint64_t rowToAdd, const char* input,
676 uint64_t len) {
677 auto& targetType = vector->dataType;
678 bool success = false;
679 switch (targetType.getLogicalTypeID()) {
680 case LogicalTypeID::BOOL: {
681 bool result = false;
682 success = function::tryCastToBool(input, len, result);
683 testAndSetValue(vector, rowToAdd, result, success);
684 } break;
685 case LogicalTypeID::INT128: {
686 int128_t result = 0;
687 success = function::trySimpleIntegerCast(input, len, result);
688 testAndSetValue(vector, rowToAdd, result, success);
689 } break;
690 case LogicalTypeID::UINT128: {
691 uint128_t result = 0;
692 success = function::trySimpleIntegerCast<uint128_t, false>(input, len, result);
693 testAndSetValue(vector, rowToAdd, result, success);
694 } break;
695 case LogicalTypeID::INT64: {
696 int64_t result = 0;
697 success = function::trySimpleIntegerCast(input, len, result);
698 testAndSetValue(vector, rowToAdd, result, success);
699 } break;
700 case LogicalTypeID::INT32: {
701 int32_t result = 0;
702 success = function::trySimpleIntegerCast(input, len, result);
703 testAndSetValue(vector, rowToAdd, result, success);
704 } break;
705 case LogicalTypeID::INT16: {
706 int16_t result = 0;
707 success = function::trySimpleIntegerCast(input, len, result);
708 testAndSetValue(vector, rowToAdd, result, success);
709 } break;
710 case LogicalTypeID::INT8: {
711 int8_t result = 0;
712 success = function::trySimpleIntegerCast(input, len, result);
713 testAndSetValue(vector, rowToAdd, result, success);
714 } break;
715 case LogicalTypeID::UINT64: {
716 uint64_t result = 0;
717 success = function::trySimpleIntegerCast<uint64_t, false>(input, len, result);
718 testAndSetValue(vector, rowToAdd, result, success);
719 } break;
720 case LogicalTypeID::UINT32: {
721 uint32_t result = 0;
722 success = function::trySimpleIntegerCast<uint32_t, false>(input, len, result);
723 testAndSetValue(vector, rowToAdd, result, success);
724 } break;
725 case LogicalTypeID::UINT16: {
726 uint16_t result = 0;
727 success = function::trySimpleIntegerCast<uint16_t, false>(input, len, result);
728 testAndSetValue(vector, rowToAdd, result, success);
729 } break;
730 case LogicalTypeID::UINT8: {
731 uint8_t result = 0;
732 success = function::trySimpleIntegerCast<uint8_t, false>(input, len, result);

Callers 1

castMethod · 0.85

Calls 7

tryCastToBoolFunction · 0.85
testAndSetValueFunction · 0.85
trySimpleIntegerCastFunction · 0.85
tryDoubleCastFunction · 0.85
tryDecimalCastFunction · 0.85
getLogicalTypeIDMethod · 0.80
getPhysicalTypeMethod · 0.45

Tested by

no test coverage detected