Loading innobase/ibuf/ibuf0ibuf.c +10 −9 Original line number Diff line number Diff line Loading @@ -1361,8 +1361,8 @@ ibuf_entry_build( index tree; NOTE that the original entry must be kept because we copy pointers to its fields */ dict_index_t* index, /* in: non-clustered index */ dtuple_t* entry, /* in: entry for a non-clustered index */ ibool comp, /* in: flag: TRUE=compact record format */ ulint space, /* in: space id */ ulint page_no,/* in: index page number where entry should be inserted */ Loading Loading @@ -1426,13 +1426,13 @@ ibuf_entry_build( dfield_set_data(field, buf, 4); ut_ad(comp == 0 || comp == 1); ut_ad(index->table->comp <= 1); /* Store the type info in buf2, and add the fields from entry to tuple */ buf2 = mem_heap_alloc(heap, n_fields * DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE + comp); if (comp) { + index->table->comp); if (index->table->comp) { *buf2++ = 0; /* write the compact format indicator */ } for (i = 0; i < n_fields; i++) { Loading @@ -1445,20 +1445,22 @@ ibuf_entry_build( dtype_new_store_for_order_and_null_size( buf2 + i * DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE, dfield_get_type(entry_field)); dfield_get_type(entry_field), dict_index_get_nth_field(index, i) ->prefix_len); } /* Store the type info in buf2 to field 3 of tuple */ field = dtuple_get_nth_field(tuple, 3); if (comp) { if (index->table->comp) { buf2--; } dfield_set_data(field, buf2, n_fields * DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE + comp); + index->table->comp); /* Set all the types in the new tuple binary */ dtuple_set_types_binary(tuple, n_fields + 4); Loading Loading @@ -2589,8 +2591,7 @@ ibuf_insert_low( the first fields and the type information for other fields, and which will be inserted to the insert buffer. */ ibuf_entry = ibuf_entry_build(entry, index->table->comp, space, page_no, heap); ibuf_entry = ibuf_entry_build(index, entry, space, page_no, heap); /* Open a cursor to the insert buffer tree to calculate if we can add the new entry to it without exceeding the free space limit for the Loading innobase/include/data0type.h +3 −1 Original line number Diff line number Diff line Loading @@ -366,7 +366,9 @@ dtype_new_store_for_order_and_null_size( byte* buf, /* in: buffer for DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE bytes where we store the info */ dtype_t* type); /* in: type struct */ dtype_t* type, /* in: type struct */ ulint prefix_len);/* in: prefix length to replace type->len, or 0 */ /************************************************************************** Reads to a type the stored information which determines its alphabetical ordering and the storage size of an SQL NULL value. This is the 4.1.x storage Loading innobase/include/data0type.ic +7 −2 Original line number Diff line number Diff line Loading @@ -230,11 +230,14 @@ dtype_new_store_for_order_and_null_size( byte* buf, /* in: buffer for DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE bytes where we store the info */ dtype_t* type) /* in: type struct */ dtype_t* type, /* in: type struct */ ulint prefix_len)/* in: prefix length to replace type->len, or 0 */ { #if 6 != DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE #error "6 != DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE" #endif ulint len; buf[0] = (byte)(type->mtype & 0xFFUL); Loading @@ -249,7 +252,9 @@ dtype_new_store_for_order_and_null_size( buf[1] = (byte)(type->prtype & 0xFFUL); mach_write_to_2(buf + 2, type->len & 0xFFFFUL); len = prefix_len ? prefix_len : type->len; mach_write_to_2(buf + 2, len & 0xFFFFUL); ut_ad(dtype_get_charset_coll(type->prtype) < 256); mach_write_to_2(buf + 4, dtype_get_charset_coll(type->prtype)); Loading sql/ha_innodb.cc +0 −13 Original line number Diff line number Diff line Loading @@ -5969,19 +5969,6 @@ ha_innobase::start_stmt( prebuilt->select_lock_type = prebuilt->stored_select_lock_type; } if (prebuilt->stored_select_lock_type != LOCK_S && prebuilt->stored_select_lock_type != LOCK_X) { sql_print_error("stored_select_lock_type is %lu inside " "::start_stmt()!", prebuilt->stored_select_lock_type); /* Set the value to LOCK_X: this is just fault tolerance, we do not know what the correct value should be! */ prebuilt->select_lock_type = LOCK_X; } } trx->detailed_error[0] = '\0'; Loading Loading
innobase/ibuf/ibuf0ibuf.c +10 −9 Original line number Diff line number Diff line Loading @@ -1361,8 +1361,8 @@ ibuf_entry_build( index tree; NOTE that the original entry must be kept because we copy pointers to its fields */ dict_index_t* index, /* in: non-clustered index */ dtuple_t* entry, /* in: entry for a non-clustered index */ ibool comp, /* in: flag: TRUE=compact record format */ ulint space, /* in: space id */ ulint page_no,/* in: index page number where entry should be inserted */ Loading Loading @@ -1426,13 +1426,13 @@ ibuf_entry_build( dfield_set_data(field, buf, 4); ut_ad(comp == 0 || comp == 1); ut_ad(index->table->comp <= 1); /* Store the type info in buf2, and add the fields from entry to tuple */ buf2 = mem_heap_alloc(heap, n_fields * DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE + comp); if (comp) { + index->table->comp); if (index->table->comp) { *buf2++ = 0; /* write the compact format indicator */ } for (i = 0; i < n_fields; i++) { Loading @@ -1445,20 +1445,22 @@ ibuf_entry_build( dtype_new_store_for_order_and_null_size( buf2 + i * DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE, dfield_get_type(entry_field)); dfield_get_type(entry_field), dict_index_get_nth_field(index, i) ->prefix_len); } /* Store the type info in buf2 to field 3 of tuple */ field = dtuple_get_nth_field(tuple, 3); if (comp) { if (index->table->comp) { buf2--; } dfield_set_data(field, buf2, n_fields * DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE + comp); + index->table->comp); /* Set all the types in the new tuple binary */ dtuple_set_types_binary(tuple, n_fields + 4); Loading Loading @@ -2589,8 +2591,7 @@ ibuf_insert_low( the first fields and the type information for other fields, and which will be inserted to the insert buffer. */ ibuf_entry = ibuf_entry_build(entry, index->table->comp, space, page_no, heap); ibuf_entry = ibuf_entry_build(index, entry, space, page_no, heap); /* Open a cursor to the insert buffer tree to calculate if we can add the new entry to it without exceeding the free space limit for the Loading
innobase/include/data0type.h +3 −1 Original line number Diff line number Diff line Loading @@ -366,7 +366,9 @@ dtype_new_store_for_order_and_null_size( byte* buf, /* in: buffer for DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE bytes where we store the info */ dtype_t* type); /* in: type struct */ dtype_t* type, /* in: type struct */ ulint prefix_len);/* in: prefix length to replace type->len, or 0 */ /************************************************************************** Reads to a type the stored information which determines its alphabetical ordering and the storage size of an SQL NULL value. This is the 4.1.x storage Loading
innobase/include/data0type.ic +7 −2 Original line number Diff line number Diff line Loading @@ -230,11 +230,14 @@ dtype_new_store_for_order_and_null_size( byte* buf, /* in: buffer for DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE bytes where we store the info */ dtype_t* type) /* in: type struct */ dtype_t* type, /* in: type struct */ ulint prefix_len)/* in: prefix length to replace type->len, or 0 */ { #if 6 != DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE #error "6 != DATA_NEW_ORDER_NULL_TYPE_BUF_SIZE" #endif ulint len; buf[0] = (byte)(type->mtype & 0xFFUL); Loading @@ -249,7 +252,9 @@ dtype_new_store_for_order_and_null_size( buf[1] = (byte)(type->prtype & 0xFFUL); mach_write_to_2(buf + 2, type->len & 0xFFFFUL); len = prefix_len ? prefix_len : type->len; mach_write_to_2(buf + 2, len & 0xFFFFUL); ut_ad(dtype_get_charset_coll(type->prtype) < 256); mach_write_to_2(buf + 4, dtype_get_charset_coll(type->prtype)); Loading
sql/ha_innodb.cc +0 −13 Original line number Diff line number Diff line Loading @@ -5969,19 +5969,6 @@ ha_innobase::start_stmt( prebuilt->select_lock_type = prebuilt->stored_select_lock_type; } if (prebuilt->stored_select_lock_type != LOCK_S && prebuilt->stored_select_lock_type != LOCK_X) { sql_print_error("stored_select_lock_type is %lu inside " "::start_stmt()!", prebuilt->stored_select_lock_type); /* Set the value to LOCK_X: this is just fault tolerance, we do not know what the correct value should be! */ prebuilt->select_lock_type = LOCK_X; } } trx->detailed_error[0] = '\0'; Loading