1. 25 Sep, 2006 3 commits
  2. 22 Sep, 2006 5 commits
  3. 21 Sep, 2006 19 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/tmp/knielsen/mysql-5.0-maint · 28236267
      unknown authored
      into  bk-internal.mysql.com:/tmp/knielsen/mysql-5.1-new-maint
      
      
      extra/Makefile.am:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Auto merged
      sql/Makefile.am:
        Auto merged
      storage/ndb/config/common.mk.am:
        Auto merged
      storage/ndb/config/type_ndbapitools.mk.am:
        Auto merged
      storage/ndb/src/common/portlib/Makefile.am:
        Auto merged
      storage/ndb/src/kernel/Makefile.am:
        Auto merged
      28236267
    • unknown's avatar
      After-merge fix (null merge). · a008b072
      unknown authored
      a008b072
    • unknown's avatar
      Merge knielsen.mysql.internal:/usr/local/mysql/mysql-4.1 · 67c65a66
      unknown authored
      into  bk-internal.mysql.com:/tmp/knielsen/mysql-5.0-maint
      
      
      ndb/config/common.mk.am:
        Null merge.
      ndb/src/common/portlib/Makefile.am:
        Null merge.
      ndb/src/kernel/Makefile.am:
        Null merge.
      67c65a66
    • unknown's avatar
      Fix Solaris 10 compile failure · 90d71b22
      unknown authored
       - Void function can't return a value
      
      
      storage/innobase/dict/dict0dict.c:
        Void function can't return a value
      90d71b22
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/mysql-5.1 · 6630bd03
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
      
      
      BitKeeper/etc/ignore:
        auto-union
      mysql-test/t/disabled.def:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      storage/innobase/Makefile.am:
        Auto merged
      storage/innobase/handler/ha_innodb.cc:
        Auto merged
      6630bd03
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.1-maint · e6b102e7
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      e6b102e7
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/work/my51-work · 86509c36
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
      
      
      86509c36
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0-maint · 1ec54154
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
      
      
      1ec54154
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/work/my50-work · e8354a19
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
      
      
      e8354a19
    • unknown's avatar
      Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-maint · dc462669
      unknown authored
      into  siva.hindu.god:/usr/home/tim/m/bk/inno/50
      
      
      dc462669
    • unknown's avatar
      Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-maint · aa19176e
      unknown authored
      into  siva.hindu.god:/usr/home/tim/m/bk/inno/51-t
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      aa19176e
    • unknown's avatar
      Merge siva.hindu.god:/usr/home/tim/m/bk/inno/50 · 09356a1f
      unknown authored
      into  siva.hindu.god:/usr/home/tim/m/bk/inno/51-t
      
      
      storage/innobase/handler/ha_innodb.cc:
        Null merge
      storage/innobase/ibuf/ibuf0ibuf.c:
        Null merge
      storage/innobase/include/data0type.h:
        Null merge
      storage/innobase/include/data0type.ic:
        Null merge
      09356a1f
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/work/my50-work · 72633b36
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/work/my51-work
      
      
      extra/yassl/testsuite/Makefile.am:
        Auto merged
      BitKeeper/deleted/.del-yassl.m4~e55e55c1e863abaf:
        Auto merged
      72633b36
    • unknown's avatar
    • unknown's avatar
      Merge bk-internal.mysql.com:/data0/bk/mysql-5.1 · ee5ffff9
      unknown authored
      into  bk-internal.mysql.com:/data0/bk/mysql-5.1-win
      
      
      ee5ffff9
    • unknown's avatar
      Applied innodb-5.1 snapshots ss799 and ss854 · bf2f50d3
      unknown authored
      Bugs fixed:
      - Bug #20877: InnoDB data dictionary memory footprint is too big
      - Bug #13544: Second delete of same row in transaction illustrates non-optimal locking
      - Bug #20791: valgrind errors in InnoDB
      
      
      storage/innobase/btr/btr0btr.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r823:
        Minor cleanup related to Bug #20877.
        
        btr_print_recursive(): Replace tree->tree_indexes with tree->index.
        This should have been done in r453.
        
        univ.i: Add UNIV_BTR_PRINT.
        
        rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
        other bitfields.  Change the types to unsigned, in case ulint or ibool
        bitfields will not work.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/btr/btr0cur.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/btr/btr0pcur.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/btr/btr0sea.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0buf.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0flu.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0lru.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/buf/buf0rea.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/data/data0data.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/data/data0type.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/dict/dict0boot.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/dict/dict0crea.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r833:
        Tweak the bit-field definitions introduced since r813 to address Bug #20877.
        
        rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
        yet that could be fused to the same machine word, but we play it safe,
        because the field writer_is_wait_ex may be modified by several threads
        simultaneously.  Such fields should always be allocated an own machine
        word.
        
        dict_table_t: Change the type of all bit-fields to "unsigned".  Make
        "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
        bit-fields, so that the bit-fields can be allocated together.  Do not
        make autoinc_inited a bit-field, as we cannot allocate any field
        from the same machine word.
        
        dict_build_table_def_step(): Pass a local variable to
        fil_create_new_single_table_tablespace() and initialize table->space
        from it after the call, now that table->space is a bit-field.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/dict/dict0dict.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r826:
        The code base was reindented in r763 and automatic .emacs indentation
        settings introduced. Some problems were found, so from this commit on one
        additional indentation rule is introduced:
        
         (add-to-list 'c-offsets-alist '(arglist-intro . +))
        
        Note that fixing some of the unfortunate line-splits done in r764 will be
        done in a future change.
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r831:
        Add dict_col_get_clust_pos_noninline(), which was forgotten from r820.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r845:
        Split long lines with [] operators better.
      storage/innobase/dict/dict0load.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/dict/dict0mem.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
      storage/innobase/eval/eval0eval.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r826:
        The code base was reindented in r763 and automatic .emacs indentation
        settings introduced. Some problems were found, so from this commit on one
        additional indentation rule is introduced:
        
         (add-to-list 'c-offsets-alist '(arglist-intro . +))
        
        Note that fixing some of the unfortunate line-splits done in r764 will be
        done in a future change.
      storage/innobase/eval/eval0proc.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/fil/fil0fil.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/fsp/fsp0fsp.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r845:
        Split long lines with [] operators better.
      storage/innobase/handler/ha_innodb.cc:
        Applied innodb-5.1 snapshots ss799 and ss854
      storage/innobase/handler/ha_innodb.h:
        Applied innodb-5.1 snapshots ss799 and ss854
      storage/innobase/ibuf/ibuf0ibuf.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/btr0btr.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/btr0btr.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
      storage/innobase/include/btr0cur.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/btr0cur.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/btr0pcur.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r817:
        btr0pcur.h: Change FIXME to TODO.
      storage/innobase/include/btr0sea.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
      storage/innobase/include/buf0buf.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r824:
        Reduce the size of btr_search_t from 13 machine words to 7.  This
        structure is reserved for every index in the data dictionary cache.
        (Bug #20877)
        
        We could shrink the structure further to three 32-bit words or two
        64-bit words by turning the remaining fields to bit-fields.
        Unfortunately, the fields are not protected by any mutex, and thus we
        would better keep each field aligned to a machine word.
        
        btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
        Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
        some local variables and function parameters from "ulint side" to
        "ibool left_side".
        
        btr_search_t: Remove the unused fields last_search, n_direction, direction,
        and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
        BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
        
        btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
        about the magic number into a debug assertion.
      storage/innobase/include/data0data.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/include/data0type.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/data0type.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/dict0boot.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r816:
        Remove more remnants of mixed indexes.
      storage/innobase/include/dict0dict.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r816:
        Remove more remnants of mixed indexes.
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r827:
        Make dict_index_find_cols() always succeed.
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r831:
        Add dict_col_get_clust_pos_noninline(), which was forgotten from r820.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
      storage/innobase/include/dict0dict.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/dict0mem.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r815:
        dict_index_t: Remove tree_indexes.  It should have been removed in r453
        when the list in dict_tree_t was replaced with the pointer tree_index.
        
        
        Revision r818:
        Remove dict_col_t::hash, dict_col_t::table,
        dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
        
        The col->table pointer was only needed for maintaining a hash table of
        all defined columns in all tables.  The hash table was only looked up
        in dict_index_find_cols().  Removing the col->hash and col->table
        pointers reduces the size of a table column by two machine words
        (usually 8 or 16 bytes).
        
        dict_col_add_to_cache(), dict_col_reposition_in_cache(),
        dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
        
        dict_index_find_cols(): Use a linear search instead of the hash table.
        The time complexity is affected, but this function is only invoked by
        dict_index_add_to_cache(), and we only search the columns of a single
        table (typically at most a few dozen) as opposed to all columns of all
        tables.
        
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r833:
        Tweak the bit-field definitions introduced since r813 to address Bug #20877.
        
        rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
        yet that could be fused to the same machine word, but we play it safe,
        because the field writer_is_wait_ex may be modified by several threads
        simultaneously.  Such fields should always be allocated an own machine
        word.
        
        dict_table_t: Change the type of all bit-fields to "unsigned".  Make
        "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
        bit-fields, so that the bit-fields can be allocated together.  Do not
        make autoinc_inited a bit-field, as we cannot allocate any field
        from the same machine word.
        
        dict_build_table_def_step(): Pass a local variable to
        fil_create_new_single_table_tablespace() and initialize table->space
        from it after the call, now that table->space is a bit-field.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r835:
        Change the recently introduced ulint bit-fields to unsigned.
        
        
        Revision r836:
        Remove dict_col_t::name, replace it with a packed array of column names in
        dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
        machines.
      storage/innobase/include/dict0types.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
      storage/innobase/include/ibuf0ibuf.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/page0page.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
      storage/innobase/include/page0page.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r830:
        page_align(ptr): New utility function to replace
        ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/read0read.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/rem0cmp.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/rem0cmp.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/rem0rec.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/include/rem0rec.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/include/rem0types.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/include/row0upd.ic:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
      storage/innobase/include/sync0rw.h:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r823:
        Minor cleanup related to Bug #20877.
        
        btr_print_recursive(): Replace tree->tree_indexes with tree->index.
        This should have been done in r453.
        
        univ.i: Add UNIV_BTR_PRINT.
        
        rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
        other bitfields.  Change the types to unsigned, in case ulint or ibool
        bitfields will not work.
        
        
        Revision r833:
        Tweak the bit-field definitions introduced since r813 to address Bug #20877.
        
        rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
        yet that could be fused to the same machine word, but we play it safe,
        because the field writer_is_wait_ex may be modified by several threads
        simultaneously.  Such fields should always be allocated an own machine
        word.
        
        dict_table_t: Change the type of all bit-fields to "unsigned".  Make
        "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
        bit-fields, so that the bit-fields can be allocated together.  Do not
        make autoinc_inited a bit-field, as we cannot allocate any field
        from the same machine word.
        
        dict_build_table_def_step(): Pass a local variable to
        fil_create_new_single_table_tablespace() and initialize table->space
        from it after the call, now that table->space is a bit-field.
      storage/innobase/include/univ.i:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r823:
        Minor cleanup related to Bug #20877.
        
        btr_print_recursive(): Replace tree->tree_indexes with tree->index.
        This should have been done in r453.
        
        univ.i: Add UNIV_BTR_PRINT.
        
        rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
        other bitfields.  Change the types to unsigned, in case ulint or ibool
        bitfields will not work.
      storage/innobase/lock/lock0lock.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/log/log0log.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/log/log0recv.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mem/mem0dbg.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mem/mem0pool.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mtr/mtr0log.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/mtr/mtr0mtr.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/os/os0file.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/os/os0thread.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/page/page0cur.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/page/page0page.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
      storage/innobase/pars/pars0opt.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/pars/pars0pars.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/pars/pars0sym.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/read/read0read.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/rem/rem0cmp.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/rem/rem0rec.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0ins.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0mysql.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0purge.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r828:
        Remove dict_tree_t, which should have been removed in r453.
        There always was a one-to-one mapping between dict_tree_t and dict_index_t.
        
        This saves 6 machine words per B-tree index in the data dictionary
        cache plus the memory allocation overhead.  We save one mem_heap_t
        object per index (15 machine words).  Considering the internal
        fragmentation of the buddy allocator in mem_area_alloc(), this should
        save 32 machine words per index (128 bytes on 32-bit systems and 256
        bytes on 64-bit systems).  (Bug #20877)
        
        struct dict_tree_struct, dict_tree_t: Remove.
        
        struct dict_index_struct: Add page and lock.
        
        dict_tree_create(): Remove.  Replace the invocation with
        assignment to index->page and a call to rw_lock_create(&index->lock).
        
        dict_tree_free(): Remove.  Replace the invocation wtih
        a call to rw_lock_free(&index->lock).
        
        dict_index_get_tree(): Remove.
        
        dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
        and remove the parameter, which was unused.
        
        btr_level_list_remove(): Remove the unused parameter "tree".
        
        Replace the occurrences of "tree" with "index" in names of variables,
        functions and data types, e.g. "dict_tree_t tree" becomes
        "dict_index_t index".  Remove local variables "tree" or "index" of
        functions that needed both "tree" and "index".
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0row.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0sel.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r821:
        dict_table_t: Rename the integer field max_row_size
        to the Boolean field big_rows.  (Bug #20877)
        
        BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
        
        
        Revision r825:
        row_search_for_mysql(): Skip setting the next-key lock on an already 
        delete-marked record in a clustered index where the search criteria is 
        unique, within the same transaction (Bug #13544).
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r837:
        page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
        calls.
        
        dict_index_build_node_ptr(): Correct a typo in a comment.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r845:
        Split long lines with [] operators better.
      storage/innobase/row/row0uins.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0umod.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/row/row0upd.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r819:
        dict_col_t: Reduce ord_part to one bit.
        
        dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
        
        dict_index_remove_from_cache(): Do not touch ord_part.
        
        dtype_t: Reduce mbminlen from 3 to 2 bits.
        
        row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
        
        
        Revision r820:
        Remove dict_col_t::clust_pos.
        
        dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
        look-up with a linear search of all columns in the clustered index.
        
        row_upd_index_replace_new_col_vals(): Compute clust_index outside
        the loops.  Compute clust_pos outside the inner loop.
        
        row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
        Compute clust_index outside the loops.  Declare the auxiliary variables
        inside the loop scope.
        
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
        
        Revision r851:
        row_upd_sec_step(): Fix false comment.
      storage/innobase/row/row0vers.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/srv/srv0srv.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
        
        
        Revision r832:
        Add dict_table_get_col_name() in preparation for getting rid of
        dict_col_t::name, and use it instead of col->name everywhere.
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/srv/srv0start.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/sync/sync0arr.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/sync/sync0rw.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r813:
        Reduce the size of the data dictionary cache.  (Bug #20877)
        
        dtype_t: Remove unused field "prec", which was supposed to be used for
        the precision of decimal columns in stand-alone InnoDB.
        
        dtype_get_prec(): Remove.
        
        dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
        
        dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
        into bit-fields.
        
        dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
        
        dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
        
        Replace the default clust_pos value ULINT_UNDEFINED with
        REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
        the accessor function dict_col_get_clust_pos().
        
        dict_field_t: Turn prefix_len and fixed_len into bit-fields.
        
        dict_tree_t: Remove pad[64].
        
        dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
        cached, flags, stat_initialized, and autoinc_inited into bit-fields.
        Remove does_not_fit_in_memory from non-debug builds.
        
        dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
        n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
        
        dict_foreign_struct: Turn n_fields and type into bit-fields.
        
        rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
        Omit level unless #defined UNIV_SYNC_DEBUG.
        
        Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
        from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
        dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
      storage/innobase/sync/sync0sync.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0purge.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0rec.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r834:
        dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
        so that all integer fields can be packed into 64 bits.  (Bug #20877)
        
        dtype_t: Change the type of all bit-fields to unsigned.
        
        dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
        dict_table_get_sys_col(), dict_field_get_col(): Return const
        dict_col_t*, so that changes to dict_col_t can be detected more
        easily.  Add const to many dict_col_t* declarations.
        
        dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
        
        dict_col_get_type(): Replace with dict_col_copy_type().
        
        dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
        dict_col_get_sql_null_size(): New functions.
        
        dtype_get_at_most_n_mbchars(): Replace the parameter dtype
        with the parameters prtype, mbminlen, mbmaxlen.
        
        dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
        cmp_whole_field(): Replace the dtype_t* parameter with the ulint
        parameters mtype, prtype.
        
        dtype_copy(): Add a const qualifier to type2 (the one being copied from).
        
        dtype_set_mblen(): Replaced with dtype_get_mblen().
        
        dtype_get_fixed_size_low(), dtype_get_min_size_low(),
        dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
        dtype_get_min_size(), and dtype_get_max_size().  These are used by the
        dict_col_get_{fixed,min,max}_size() functions.
        
        cmp_types_are_equal(): Replace with cmp_cols_are_equal().
        
        dict_table_get_col_name(): Add a const qualifier parameter to the
        parameter "table".
        
        dtype_binary, dtype_binary_val: Remove.
        
        dtype_is_fixed_size(): Remove.
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0rseg.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0sys.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r829:
        Erase the magic number in the trx sys header using a redo-logged write;
        it should be redo-logged because the data structure is file-based;
        this patch does not fix any bug; the original erase operation was added
        in r781 to fix Valgrind Bug #20791
        
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0trx.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      storage/innobase/trx/trx0undo.c:
        Applied innodb-5.1 snapshots ss799 and ss854
        
        Revision r838:
        Revamp the line splits done in r763 and r764 that can now be done better,
        thanks to r826.
      bf2f50d3
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.1--main · cc7e91b0
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.1-tomain
      
      
      cc7e91b0
    • unknown's avatar
      Fix typos, evidently from previous bad merges, in mysql-test-run.pl and sql_yacc.yy · e40ba8e5
      unknown authored
      
      mysql-test/mysql-test-run.pl:
        Fix typo or bad merge (if -> elsif)
      sql/sql_yacc.yy:
        Fix apparent bad merge: add ';' before ev_schedule_time: rule.
      e40ba8e5
    • unknown's avatar
      Deleted old storage directories (introduced by a buggy 5.0 -> 5.1 merge). · 9f6582c5
      unknown authored
      Fix for win/Makefile.am
      
      
      BitKeeper/deleted/.del-CMakeLists.txt~dd682cce1d53c0b4:
        Delete: bdb/CMakeLists.txt
      BitKeeper/deleted/.del-CMakeLists.txt~c20dcd005f596740:
        Delete: myisam/CMakeLists.txt
      BitKeeper/deleted/.del-CMakeLists.txt~4ef559bc8b4695f7:
        Delete: heap/CMakeLists.txt
      BitKeeper/deleted/.del-CMakeLists.txt~2f6eabb2f69cb33d:
        Delete: innobase/CMakeLists.txt
      BitKeeper/deleted/.del-CMakeLists.txt~84669765249a4bad:
        Delete: myisammrg/CMakeLists.txt
      win/Makefile.am:
        added missing support for 64-bit build file (make dist)
      9f6582c5
  4. 20 Sep, 2006 13 commits
    • unknown's avatar
      Applied innodb snapshot ss792 and ss854. · 9b762ae3
      unknown authored
      This ChangeSet will be null-merged to mysql-5.1.
      
      Bugs fixed:
      - Bug #21638:  InnoDB: possible segfault in page_copy_rec_list_end_no_locks
        If prefix_len is specified, write it to the insert buffer instead of type->len
      - bug #10746:  InnoDB: Error: stored_select_lock_type is 0 inside ::start_stmt()!
        INSERT ... SELECT uses LOCK_NONE in innodb_locks_unsafe_for_binlog mode, so do
        not check for LOCK_X or LOCK_S in start_stmt()
      
      
      innobase/ibuf/ibuf0ibuf.c:
        Applied innodb snapshot ss792 and ss854.
        
        ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
        when prefix_len is specified.  Otherwise, btr_page_reorganize() during
        insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
      innobase/include/data0type.h:
        Applied innodb snapshot ss792 and ss854.
        
        ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
        when prefix_len is specified.  Otherwise, btr_page_reorganize() during
        insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
      innobase/include/data0type.ic:
        Applied innodb snapshot ss792 and ss854.
        
        ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
        when prefix_len is specified.  Otherwise, btr_page_reorganize() during
        insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
      sql/ha_innodb.cc:
        Applied innodb snapshot ss792 and ss854.
        
        ha_innobase::start_stmt(): Remove the check for
        prebuilt->stored_select_lock_type being LOCK_X or LOCK_S.
        This would cause false alarms with INSERT ... SELECT, which would use
        LOCK_NONE in innodb_locks_unsafe_for_binlog mode.  (Bug #10746)
      9b762ae3
    • unknown's avatar
      Merge xiphis.org:/home/antony/work2/p2-bug22417.1 · 5ff80c2f
      unknown authored
      into  xiphis.org:/home/antony/work2/p2-bug22417.2
      
      
      5ff80c2f
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/work/my50-work · 50756812
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      50756812
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/work/my51-work · 802cddb9
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      802cddb9
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/work/my50-work · a880b2d3
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/work/my51-work
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      a880b2d3
    • unknown's avatar
      Fix problem with testcase timeouts not working. The timeout value was always multiplied with 10 · 25fa9d26
      unknown authored
      since the $opt_valgrind variable was initialised to 0, thus being "defined"
      
      
      mysql-test/mysql-test-run.pl:
        Increase the timeout values if $opt_valgrind are greater than 0. By default $opt_valgrind is set to 0.
      25fa9d26
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.1--team · e0bca512
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.1-tomain
      
      
      mysql-test/t/disabled.def:
        Auto merged
      sql/opt_range.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      mysql-test/r/innodb_mysql.result:
        Manual merge from 5.1-engines.
      e0bca512
    • unknown's avatar
      Merge kpettersson@bk-internal:/home/bk/mysql-5.0-maint · bf80dbcb
      unknown authored
      into  naruto.:C:/cpp/mysql-5.0-maint
      
      
      bf80dbcb
    • unknown's avatar
      Merge kpettersson@bk-internal:/home/bk/mysql-5.1-maint · e469cedf
      unknown authored
      into  naruto.:C:/cpp/mysql-5.1-maint
      
      
      e469cedf
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/bug19738/my51-bug19738 · 65baa839
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.1-maint
      
      
      extra/Makefile.am:
        Auto merged
      sql/Makefile.am:
        Auto merged
      support-files/mysql.spec.sh:
        Auto merged
      65baa839
    • unknown's avatar
      Bug#19738 "make install" tries to build files that "make" should already have built · 892e3a41
      unknown authored
       - Move comp_err to EXTRA_PROGRAMS, it will not be installed from 5.1 and up.
      
      
      extra/Makefile.am:
        Move comp_err to EXTRA_PROGRAMS, it will only be built if any of the files it prodcues need to be rebuilt
      support-files/mysql.spec.sh:
        Remove comp_err from files to install
      892e3a41
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/bug19738/my50-bug19738 · e0243f8c
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/bug19738/my51-bug19738
      
      
      sql/Makefile.am:
        Auto merged
      e0243f8c
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/bug19738/my50-bug19738 · 33985e75
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
      
      
      sql/Makefile.am:
        Auto merged
      33985e75