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

{
        const auto * dict = typeid_cast<const DictionaryType *>(dict_ptr.get());
        if (!dict)
            return nullptr;
        if (!dict->hasHierarchy())
            throw Exception{"Dictionary does not have a hierarchy", ErrorCodes::UNSUPPORTED_METHOD};
        const auto * child_id_col_untyped = arguments[1].column.get();
        const auto * ancestor_id_col_untyped = arguments[2].column.get();
        if (const auto * child_id_col = checkAndGetColumn<ColumnUInt64>(child_id_col_untyped))
            return execute(dict, child_id_col, ancestor_id_col_untyped);
        else if (const auto * child_id_col_const = checkAndGetColumnConst<ColumnVector<UInt64>>(child_id_col_untyped))
            return execute(dict, child_id_col_const, ancestor_id_col_untyped);
        else
            throw Exception{"Illegal column " + child_id_col_untyped->getName()
                + " of second argument of function " + getName(), ErrorCodes::ILLEGAL_COLUMN};
    }
    template <typename DictionaryType>
    ColumnPtr execute(const DictionaryType * dict,