dictGet('name', ...) should check for XML dictionary 'name' if XML dict=name does not exists then use SQL dictionary from the currectDatabase()

const auto & result_tuple_type = assert_cast<const DataTypeTuple &>(*result_type);
                Columns result_columns = dictionary->getColumns(
                    attribute_names,
                    result_tuple_type.getElements(),
                    {key_column},
                    {std::make_shared<DataTypeUInt64>()},
                    default_cols);
                result = ColumnTuple::create(std::move(result_columns));
            }
            else
                result = dictionary->getColumn(
                    attribute_names[0],
                    result_type,
                    {key_column},
                    {std::make_shared<DataTypeUInt64>()},
                    default_cols.front());
        }
        else if (dictionary_key_type == DictionaryKeyType::complex)
        {
            if (!isTuple(key_col_with_type.type))
                 throw Exception(
                     ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT,
                     "Third argument of function ({}) must be tuple when dictionary is complex. Actual type ({}).",
                     getName(),
                     key_col_with_type.type->getName());
            
            ColumnPtr key_column_full = key_col_with_type.column->convertToFullColumnIfConst();
            if (!isTuple(key_col_with_type.type))
                throw Exception(
                    ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT,