From: kevin.lewis Date: April 8 2011 6:42pm Subject: bzr commit into mysql-trunk-innodb branch (kevin.lewis:3571) List-Archive: http://lists.mysql.com/commits/135116 Message-Id: <20110408184228.12718DD395A@kevin-lewis-macbook.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0510771045==" --===============0510771045== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/kevinlewis/Work/Mysql/Whitespace/mysql-trunk-innodb/ based on revid:vasil.dimov@stripped 3571 kevin.lewis@stripped 2011-04-08 Whitespace cleanup Some CRLF line ending were accidentally introduced in a recent patch Add lines, comments and comment words to improve code readability. modified: storage/innobase/buf/buf0buf.c storage/innobase/dict/dict0crea.c storage/innobase/fil/fil0fil.c storage/innobase/include/dict0dict.ic storage/innobase/include/dict0mem.ic storage/innobase/include/univ.i storage/innobase/include/ut0bh.ic storage/innobase/mtr/mtr0log.c storage/innobase/que/que0que.c storage/innobase/row/row0mysql.c storage/innobase/row/row0row.c storage/innobase/srv/srv0srv.c storage/innobase/srv/srv0start.c === modified file 'storage/innobase/buf/buf0buf.c' --- a/storage/innobase/buf/buf0buf.c revid:vasil.dimov@stripped +++ b/storage/innobase/buf/buf0buf.c revid:kevin.lewis@stripped @@ -1239,7 +1239,7 @@ buf_pool_init_instance( buf_pool->curr_size = chunk->size; buf_pool->curr_pool_size = buf_pool->curr_size * UNIV_PAGE_SIZE; - /* Number of locks portecting page_hash must be a + /* Number of locks protecting page_hash must be a power of two */ srv_n_page_hash_locks = ut_2_power_up(srv_n_page_hash_locks); === modified file 'storage/innobase/dict/dict0crea.c' --- a/storage/innobase/dict/dict0crea.c revid:vasil.dimov@stripped +++ b/storage/innobase/dict/dict0crea.c revid:kevin.lewis@stripped @@ -75,6 +75,7 @@ dict_create_sys_tables_tuple( dfield = dtuple_get_nth_field(entry, 0/*NAME*/); dfield_set_data(dfield, table->name, ut_strlen(table->name)); + /* 3: ID -------------------------------*/ dfield = dtuple_get_nth_field(entry, 1/*ID*/); @@ -82,6 +83,7 @@ dict_create_sys_tables_tuple( mach_write_to_8(ptr, table->id); dfield_set_data(dfield, ptr, 8); + /* 4: N_COLS ---------------------------*/ dfield = dtuple_get_nth_field(entry, 2/*N_COLS*/); @@ -93,7 +95,8 @@ dict_create_sys_tables_tuple( mach_write_to_4(ptr, table->n_def | ((table->flags & DICT_TF_COMPACT) << 31)); dfield_set_data(dfield, ptr, 4); - /* 5: TYPE -----------------------------*/ + + /* 5: TYPE (table flags) -----------------------------*/ dfield = dtuple_get_nth_field(entry, 3/*TYPE*/); ptr = mem_heap_alloc(heap, 4); @@ -109,14 +112,15 @@ dict_create_sys_tables_tuple( } dfield_set_data(dfield, ptr, 4); + /* 6: MIX_ID (obsolete) ---------------------------*/ dfield = dtuple_get_nth_field(entry, 4/*MIX_ID*/); ptr = mem_heap_zalloc(heap, 8); dfield_set_data(dfield, ptr, 8); - /* 7: MIX_LEN (additional flags) --------------------------*/ + /* 7: MIX_LEN (additional flags) --------------------------*/ dfield = dtuple_get_nth_field(entry, 5/*MIX_LEN*/); ptr = mem_heap_alloc(heap, 4); @@ -125,6 +129,7 @@ dict_create_sys_tables_tuple( mach_write_to_4(ptr, table->flags2); dfield_set_data(dfield, ptr, 4); + /* 8: CLUSTER_NAME ---------------------*/ dfield = dtuple_get_nth_field(entry, 6/*CLUSTER_NAME*/); dfield_set_null(dfield); /* not supported */ @@ -381,6 +386,7 @@ dict_create_sys_indexes_tuple( mach_write_to_8(ptr, table->id); dfield_set_data(dfield, ptr, 8); + /* 1: ID ----------------------------*/ dfield = dtuple_get_nth_field(entry, 1/*ID*/); @@ -388,10 +394,12 @@ dict_create_sys_indexes_tuple( mach_write_to_8(ptr, index->id); dfield_set_data(dfield, ptr, 8); + /* 4: NAME --------------------------*/ dfield = dtuple_get_nth_field(entry, 2/*NAME*/); dfield_set_data(dfield, index->name, ut_strlen(index->name)); + /* 5: N_FIELDS ----------------------*/ dfield = dtuple_get_nth_field(entry, 3/*N_FIELDS*/); @@ -399,6 +407,7 @@ dict_create_sys_indexes_tuple( mach_write_to_4(ptr, index->n_fields); dfield_set_data(dfield, ptr, 4); + /* 6: TYPE --------------------------*/ dfield = dtuple_get_nth_field(entry, 4/*TYPE*/); @@ -406,6 +415,7 @@ dict_create_sys_indexes_tuple( mach_write_to_4(ptr, index->type); dfield_set_data(dfield, ptr, 4); + /* 7: SPACE --------------------------*/ #if DICT_SYS_INDEXES_SPACE_NO_FIELD != 7 @@ -418,6 +428,7 @@ dict_create_sys_indexes_tuple( mach_write_to_4(ptr, index->space); dfield_set_data(dfield, ptr, 4); + /* 8: PAGE_NO --------------------------*/ #if DICT_SYS_INDEXES_PAGE_NO_FIELD != 8 @@ -430,6 +441,7 @@ dict_create_sys_indexes_tuple( mach_write_to_4(ptr, FIL_NULL); dfield_set_data(dfield, ptr, 4); + /*--------------------------------*/ return(entry); === modified file 'storage/innobase/fil/fil0fil.c' --- a/storage/innobase/fil/fil0fil.c revid:vasil.dimov@stripped +++ b/storage/innobase/fil/fil0fil.c revid:kevin.lewis@stripped @@ -3346,7 +3346,7 @@ fil_load_single_table_tablespace( return; } #endif - /* Read the first page of the tablespace if the size big enough */ + /* Read the first page of the tablespace if the size is big enough */ buf2 = ut_malloc(2 * UNIV_PAGE_SIZE); /* Align the memory for file i/o if we might have O_DIRECT set */ === modified file 'storage/innobase/include/dict0dict.ic' --- a/storage/innobase/include/dict0dict.ic revid:vasil.dimov@stripped +++ b/storage/innobase/include/dict0dict.ic revid:kevin.lewis@stripped @@ -144,7 +144,7 @@ ulint dict_col_get_fixed_size( /*====================*/ const dict_col_t* col, /*!< in: column */ - ulint comp) /*!< in: nonzero=ROW_FORMAT=COMPACT */ + ulint comp) /*!< in: nonzero=ROW_FORMAT=COMPACT */ { return(dtype_get_fixed_size_low(col->mtype, col->prtype, col->len, col->mbminmaxlen, comp)); === modified file 'storage/innobase/include/dict0mem.ic' --- a/storage/innobase/include/dict0mem.ic revid:vasil.dimov@stripped +++ b/storage/innobase/include/dict0mem.ic revid:kevin.lewis@stripped @@ -57,16 +57,18 @@ dict_mem_fill_index_struct( index->fields = NULL; } - index->type = type; + /* Assign a ulint to a 4-bit-mapped field. + Only the low-order 4 bits are assigned. */ + index->type = type; #ifndef UNIV_HOTBACKUP - index->space = (unsigned int) space; - index->page = FIL_NULL; + index->space = (unsigned int) space; + index->page = FIL_NULL; #endif /* !UNIV_HOTBACKUP */ - index->table_name = table_name; - index->n_fields = (unsigned int) n_fields; - /* The '1 +' above prevents allocation - of an empty mem block */ + index->table_name = table_name; + index->n_fields = (unsigned int) n_fields; + /* The '1 +' above prevents allocation + of an empty mem block */ #ifdef UNIV_DEBUG - index->magic_n = DICT_INDEX_MAGIC_N; + index->magic_n = DICT_INDEX_MAGIC_N; #endif /* UNIV_DEBUG */ } === modified file 'storage/innobase/include/univ.i' --- a/storage/innobase/include/univ.i revid:vasil.dimov@stripped +++ b/storage/innobase/include/univ.i revid:kevin.lewis@stripped @@ -342,16 +342,16 @@ including new BLOB treatment */ /** The universal page size of the database */ #define UNIV_PAGE_SIZE (1 << UNIV_PAGE_SIZE_SHIFT) -/** log2 of smallest compressed page size (1<<10 == 1024 bytes) */ -#define UNIV_ZIP_SIZE_SHIFT_MIN 10 - -/** log2 of largest compressed page size (1<<14 == 16384 bytes). -A compressed page directory entry reserves 14 bits for the start offset -and 2 bits for flags. This limits the uncompressed page size to 16k. -So even though a 16k uncompressed page can theoretically be compressed -into a larger compressed page, it is not a useful feature so we will -limit both with this same constant. */ -#define UNIV_ZIP_SIZE_SHIFT_MAX 14 +/** log2 of smallest compressed page size (1<<10 == 1024 bytes) */ +#define UNIV_ZIP_SIZE_SHIFT_MIN 10 + +/** log2 of largest compressed page size (1<<14 == 16384 bytes). +A compressed page directory entry reserves 14 bits for the start offset +and 2 bits for flags. This limits the uncompressed page size to 16k. +Even though a 16k uncompressed page can theoretically be compressed +into a larger compressed page, it is not a useful feature so we will +limit both with this same constant. */ +#define UNIV_ZIP_SIZE_SHIFT_MAX 14 /** Smallest compressed page size */ #define UNIV_ZIP_SIZE_MIN (1 << UNIV_ZIP_SIZE_SHIFT_MIN) === modified file 'storage/innobase/include/ut0bh.ic' --- a/storage/innobase/include/ut0bh.ic revid:vasil.dimov@stripped +++ b/storage/innobase/include/ut0bh.ic revid:kevin.lewis@stripped @@ -122,4 +122,3 @@ ib_bh_last( : ib_bh_get(ib_bh, ib_bh_size(ib_bh) - 1)); } - === modified file 'storage/innobase/mtr/mtr0log.c' --- a/storage/innobase/mtr/mtr0log.c revid:vasil.dimov@stripped +++ b/storage/innobase/mtr/mtr0log.c revid:kevin.lewis@stripped @@ -538,7 +538,7 @@ mlog_parse_index( /*=============*/ byte* ptr, /*!< in: buffer */ const byte* end_ptr,/*!< in: buffer end */ - ibool comp, /*!< in: TRUE=compact record format */ + ibool comp, /*!< in: TRUE=compact row format */ dict_index_t** index) /*!< out, own: dummy index */ { ulint i, n, n_uniq; === modified file 'storage/innobase/que/que0que.c' --- a/storage/innobase/que/que0que.c revid:vasil.dimov@stripped +++ b/storage/innobase/que/que0que.c revid:kevin.lewis@stripped @@ -1155,8 +1155,8 @@ que_run_threads_low( do { /* Check that there is enough space in the log to accommodate possible log entries by this query step; if the operation can - touch more than about 4 pages, checks must be made also within - the query step! */ + touch more than about 4 pages, checks must be made also within + the query step! */ log_free_check(); @@ -1175,7 +1175,7 @@ que_run_threads_low( ut_a(next_thr == NULL); /* This can change next_thr to a non-NULL value - if there was a lock wait that already completed. */ + if there was a lock wait that already completed. */ que_thr_dec_refer_count(thr, &next_thr); === modified file 'storage/innobase/row/row0mysql.c' --- a/storage/innobase/row/row0mysql.c revid:vasil.dimov@stripped +++ b/storage/innobase/row/row0mysql.c revid:kevin.lewis@stripped @@ -3262,12 +3262,12 @@ check_next_foreign: CREATE TABLE t2 (PRIMARY KEY (a)) SELECT * FROM t1; If after the user transaction has done the SELECT and there is a - problem in completing the CREATE TABLE operation, MySQL will drop - the table. InnoDB will create a new background transaction to do the - actual drop, the trx instance that is passed to this function. To - preserve existing behaviour we remove the locks but ideally we - shouldn't have to. There should never be record locks on a table - that is going to be dropped. */ + problem in completing the CREATE TABLE operation, MySQL will drop + the table. InnoDB will create a new background transaction to do the + actual drop, the trx instance that is passed to this function. To + preserve existing behaviour we remove the locks but ideally we + shouldn't have to. There should never be record locks on a table + that is going to be dropped. */ if (table->n_ref_count == 0) { lock_remove_all_on_table(table, TRUE); @@ -3301,7 +3301,7 @@ check_next_foreign: } /* If we get this far then the table to be dropped must not have - any table or record locks on it. */ + any table or record locks on it. */ ut_a(!lock_table_has_locks(table)); === modified file 'storage/innobase/row/row0row.c' --- a/storage/innobase/row/row0row.c revid:vasil.dimov@stripped +++ b/storage/innobase/row/row0row.c revid:kevin.lewis@stripped @@ -298,7 +298,8 @@ row_build( /* REDUNDANT and COMPACT formats store a local 768-byte prefix of each externally stored column. No cache is needed. */ - ut_ad(dict_table_get_format(index->table) < UNIV_FORMAT_B); + ut_ad(dict_table_get_format(index->table) + < UNIV_FORMAT_B); } else if (j) { *ext = row_ext_create(j, ext_cols, row, dict_table_zip_size(index->table), === modified file 'storage/innobase/srv/srv0srv.c' --- a/storage/innobase/srv/srv0srv.c revid:vasil.dimov@stripped +++ b/storage/innobase/srv/srv0srv.c revid:kevin.lewis@stripped @@ -112,6 +112,7 @@ UNIV_INTERN ulint srv_max_file_format_at #if UNIV_FORMAT_A # error "UNIV_FORMAT_A must be 0!" #endif + /** Place locks to records only i.e. do not use next-key locking except on duplicate key checking and foreign key checking */ UNIV_INTERN ibool srv_locks_unsafe_for_binlog = FALSE; === modified file 'storage/innobase/srv/srv0start.c' --- a/storage/innobase/srv/srv0start.c revid:vasil.dimov@stripped +++ b/storage/innobase/srv/srv0start.c revid:kevin.lewis@stripped @@ -534,7 +534,7 @@ srv_calc_low32( /*********************************************************************//** Calculates the high 32 bits when a file size which is given as a number -database pages is converted to the number of bytes. +of database pages is converted to the number of bytes. @return high 32 bytes of file size when expressed in bytes */ static ulint --===============0510771045== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/kevin.lewis@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: kevin.lewis@stripped # target_branch: file:///Users/kevinlewis/Work/Mysql/Whitespace/mysql-\ # trunk-innodb/ # testament_sha1: afbc1eb7c198b875ff6ca32eefab36bf22dc1c3b # timestamp: 2011-04-08 13:42:27 -0500 # base_revision_id: vasil.dimov@stripped\ # 3g3egk49209c40yn # # Begin bundle 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 XGCw --===============0510771045==--