[MDEV-29787] CREATE OR REPLACE does not work with custom DATA/INDEX DIRECTORY Created: 2022-10-13  Updated: 2023-05-18  Resolved: 2023-01-26

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Create Table
Affects Version/s: 10.11
Fix Version/s: N/A

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Aleksey Midenkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-25292 Atomic CREATE OR REPLACE TABLE Stalled
Relates

 Description   

eval create table t (a int) engine=MyISAM data directory '$MYSQL_TMP_DIR';
eval create or replace table t (b int) engine=MyISAM data directory '$MYSQL_TMP_DIR';
 
# Cleanup
drop table t;

bb-10.11-midenok 9b1a14aa2e

query 'create or replace table t (b int) engine=MyISAM data directory '$MYSQL_TMP_DIR'' failed: <Unknown> (1): Can't create/write to file '<basedir>/mysql-test/var/tmp/t.MYD' (Errcode: 17 "File exists")

eval create table t (a int) engine=MyISAM data directory '$MYSQL_TMP_DIR' index directory '$MYSQL_TMP_DIR';
eval create or replace table t (b int) engine=MyISAM data directory '$MYSQL_TMP_DIR' index directory '$MYSQL_TMP_DIR';
 
# Cleanup
drop table t;

query 'create or replace table t (b int) engine=MyISAM data directory '$MYSQL_TMP_DIR' index directory '$MYSQL_TMP_DIR'' failed: HA_ERR_TABLE_EXIST (156): MyISAM table '#sql-create-3c931d-4-t' is in use (most likely by a MERGE table). Try FLUSH TABLES.

Before MDEV-25292 both variations succeed.

Reproducible with MyISAM and Aria, not with InnoDB.



 Comments   
Comment by Aleksey Midenkov [ 2022-10-13 ]

Please review bb-10.11-midenok

Comment by Oleksandr Byelkin [ 2022-10-18 ]

add test case for all 3 cases of tmp table creation

Comment by Aleksey Midenkov [ 2022-10-19 ]

Added.

Generated at Thu Feb 08 10:11:17 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.