diff options
author | Jan Lindström <jplindst@mariadb.org> | 2014-02-12 12:52:34 +0200 |
---|---|---|
committer | Jan Lindström <jplindst@mariadb.org> | 2014-02-12 12:52:34 +0200 |
commit | 1fa19bf777cb435e6630694fae029802260b5f6d (patch) | |
tree | cf8d7bafbeab75cbd73cbe21972b74fbdb441897 /storage/xtradb/include/dict0dict.ic | |
parent | f6ad325883dafdcdf1645d198bfe1a59e5a2b44b (diff) | |
download | mariadb-git-1fa19bf777cb435e6630694fae029802260b5f6d.tar.gz |
Fixed issue on atomic writes setup and atomic blobs setup on system
tables.
Diffstat (limited to 'storage/xtradb/include/dict0dict.ic')
-rw-r--r-- | storage/xtradb/include/dict0dict.ic | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/storage/xtradb/include/dict0dict.ic b/storage/xtradb/include/dict0dict.ic index 1ce4fe6a2f1..3f6d56fab1f 100644 --- a/storage/xtradb/include/dict0dict.ic +++ b/storage/xtradb/include/dict0dict.ic @@ -685,12 +685,16 @@ dict_sys_tables_type_validate( if (redundant) { if (zip_ssize || atomic_blobs) { + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=Redundant, zip_ssize %lu atomic_blobs %lu\n", + zip_ssize, atomic_blobs); return(ULINT_UNDEFINED); } } /* Make sure there are no bits that we do not know about. */ if (unused) { + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=%lu, unused %lu\n", + type, unused); return(ULINT_UNDEFINED); } @@ -705,6 +709,8 @@ dict_sys_tables_type_validate( } else if (zip_ssize) { /* Antelope does not support COMPRESSED format. */ + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=%lu, zip_ssize %lu\n", + type, zip_ssize); return(ULINT_UNDEFINED); } @@ -714,11 +720,15 @@ dict_sys_tables_type_validate( should be in N_COLS, but we already know about the low_order_bit and DICT_N_COLS_COMPACT flags. */ if (!atomic_blobs) { + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=%lu, zip_ssize %lu atomic_blobs %lu\n", + type, zip_ssize, atomic_blobs); return(ULINT_UNDEFINED); } /* Validate that the number is within allowed range. */ if (zip_ssize > PAGE_ZIP_SSIZE_MAX) { + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=%lu, zip_ssize %lu max %d\n", + type, zip_ssize, PAGE_ZIP_SSIZE_MAX); return(ULINT_UNDEFINED); } } @@ -735,6 +745,9 @@ dict_sys_tables_type_validate( low_order_bit and DICT_N_COLS_COMPACT flags. */ if (!atomic_blobs || !page_compression) { + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=%lu, page_compression %lu page_compression_level %lu\n" + "InnoDB: Error: atomic_blobs %lu\n", + type, page_compression, page_compression_level, atomic_blobs); return(ULINT_UNDEFINED); } } @@ -742,6 +755,9 @@ dict_sys_tables_type_validate( if (awrites == ATOMIC_WRITES_ON || (awrites == ATOMIC_WRITES_DEFAULT && srv_use_atomic_writes)) { if (!atomic_blobs) { + fprintf(stderr, "InnoDB Error: SYS_TABLES::TYPE=%lu, atomic_writes %lu atomic_blobs %lu\n", + type, atomic_writes, atomic_blobs); + return(ULINT_UNDEFINED); } } @@ -854,10 +870,9 @@ dict_tf_set( } if (page_compressed) { - *flags = DICT_TF_COMPACT - | (1 << DICT_TF_POS_ATOMIC_BLOBS) - | (1 << DICT_TF_POS_PAGE_COMPRESSION) - | (page_compression_level << DICT_TF_POS_PAGE_COMPRESSION_LEVEL); + *flags |= (1 << DICT_TF_POS_ATOMIC_BLOBS) + | (1 << DICT_TF_POS_PAGE_COMPRESSION) + | (page_compression_level << DICT_TF_POS_PAGE_COMPRESSION_LEVEL); ut_ad(zip_ssize == 0); ut_ad(dict_tf_get_page_compression(*flags) == TRUE); @@ -871,7 +886,8 @@ dict_tf_set( if (awrites == ATOMIC_WRITES_ON || (awrites == ATOMIC_WRITES_DEFAULT && srv_use_atomic_writes )) { - *flags |= (1 << DICT_TF_POS_ATOMIC_BLOBS); + *flags |= (atomic_writes << DICT_TF_POS_ATOMIC_WRITES) + | (1 << DICT_TF_POS_ATOMIC_BLOBS); } } @@ -1000,6 +1016,8 @@ dict_tf_to_sys_tables_type( | DICT_TF_MASK_PAGE_COMPRESSION_LEVEL | DICT_TF_MASK_ATOMIC_WRITES); + ut_a(dict_sys_tables_type_validate(type, 0)); + return(type); } |