diff options
Diffstat (limited to 'storage/maria/ma_create.c')
-rw-r--r-- | storage/maria/ma_create.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/storage/maria/ma_create.c b/storage/maria/ma_create.c index 5dd6e0e1f93..d8660dd41cb 100644 --- a/storage/maria/ma_create.c +++ b/storage/maria/ma_create.c @@ -246,6 +246,14 @@ int maria_create(const char *name, enum data_file_type datafile_type, } } } + + if (flags & HA_CREATE_TMP_TABLE) + { + options|= HA_OPTION_TMP_TABLE; + create_mode|= O_EXCL | O_NOFOLLOW; + /* temp tables are not crash-safe (dropped at restart) */ + ci->transactional= FALSE; + } share.base.null_bytes= ci->null_bytes; share.base.original_null_bytes= ci->null_bytes; share.base.transactional= ci->transactional; @@ -255,11 +263,6 @@ int maria_create(const char *name, enum data_file_type datafile_type, if (pack_reclength != INT_MAX32) pack_reclength+= max_field_lengths + long_varchar_count; - if (flags & HA_CREATE_TMP_TABLE) - { - options|= HA_OPTION_TMP_TABLE; - create_mode|= O_EXCL | O_NOFOLLOW; - } if (flags & HA_CREATE_CHECKSUM || (options & HA_OPTION_CHECKSUM)) { options|= HA_OPTION_CHECKSUM; |