**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`.

WriteBufferFromFile out(metadata_file_tmp_path, statement.size(), O_WRONLY | O_CREAT | O_EXCL);
        writeString(statement, out);
        out.next();
        if (getContext()->getSettingsRef().fsync_metadata)
            out.sync();
        out.close();
    }
    
    auto db_guard = DatabaseCatalog::instance().getExclusiveDDLGuardForDatabase(database_name);
    bool added = false;
    bool renamed = false;
    try
    {
        
        DatabaseCatalog::instance().attachDatabase(database_name, database);
        added = true;
        if (need_write_metadata)
        {
            
            renameNoReplace(metadata_file_tmp_path, metadata_file_path);
            renamed = true;
        }
        if (!load_database_without_tables)
        {
            
            TablesLoader loader{getContext()->getGlobalContext(), {{database_name, database}}, mode}; 
            loader.loadTables();
            loader.startupTables();
        }
    }