**Use case**

If FixedString is used with more than 256 bytes in size, it is suspicious and most likely indicates misusage.
Forbid this by default and add a setting to override it; ATTACH queries should allow creating tables nevertheless.

See also: `allow_suspicious_low_cardinality_types`.

auto guard = DatabaseCatalog::instance().getDDLGuard(database_name, create.getTable());
            create.setDatabase(database_name);
            guard->releaseTableLock();
            return database->tryEnqueueReplicatedDDL(query_ptr, getContext(), internal);
        }
        if (!create.cluster.empty())
            return executeQueryOnCluster(create);
        
        
        ddl_guard = DatabaseCatalog::instance().getDDLGuard(database_name, create.getTable());
        bool if_not_exists = create.if_not_exists;
        
        auto query = database->getCreateTableQuery(create.getTable(), getContext());
        auto create_query = query->as<ASTCreateQuery &>();
        if (!create.is_dictionary && create_query.is_dictionary)
            throw Exception(ErrorCodes::INCORRECT_QUERY,
                "Cannot ATTACH TABLE {}.{}, it is a Dictionary",
                backQuoteIfNeed(database_name), backQuoteIfNeed(create.getTable()));
        if (create.is_dictionary && !create_query.is_dictionary)
            throw Exception(ErrorCodes::INCORRECT_QUERY,
                "Cannot ATTACH DICTIONARY {}.{}, it is a Table",
                backQuoteIfNeed(database_name), backQuoteIfNeed(create.getTable()));
        create = create_query; 
        create.attach = true;
        create.attach_short_syntax = true;
        create.if_not_exists = if_not_exists;
        
        
        getContext()->setSetting("cast_ipv4_ipv6_default_on_conversion_error", 1);
    }