• Marko Mäkelä's avatar
    MDEV-25312 Replace fil_space_t::name with fil_space_t::name() · cf552f58
    Marko Mäkelä authored
    A consistency check for fil_space_t::name is causing recovery failures
    in MDEV-25180 (Atomic ALTER TABLE). So, we'd better remove that field
    altogether.
    
    fil_space_t::name was more or less a copy of dict_table_t::name
    (except for some special cases), and it was not being used for
    anything useful.
    
    There used to be a name_hash, but it had been removed already in
    commit a75dbfd7 (MDEV-12266).
    
    We will also remove os_normalize_path(), OS_PATH_SEPARATOR,
    OS_PATH_SEPATOR_ALT. On Microsoft Windows, we will treat \ and /
    roughly in the same way. The intention is that for per-table
    tablespaces, the filenames will always follow the pattern
    prefix/databasename/tablename.ibd. (Any \ in the prefix must not
    be converted.)
    
    ut_basename_noext(): Remove (unused function).
    
    read_link_file(): Replaces RemoteDatafile::read_link_file().
    We will ensure that the last two path component separators are
    forward slashes (converting up to 2 trailing backslashes on
    Microsoft Windows), so that everywhere else we can
    assume that data file names end in "/databasename/tablename.ibd".
    
    Note: On Microsoft Windows, path names that start with \\?\ must
    not contain / as path component separators. Previously, such paths
    did work in the DATA DIRECTORY argument of InnoDB tables.
    
    Reviewed by: Vladislav Vaintroub
    cf552f58
ut0new.h 29.3 KB