mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge mysql.com:/home/alik/MySQL/devel/5.0-wl2984
into mysql.com:/home/alik/MySQL/devel/5.1-wl2984-merge mysql-test/r/show_check.result: Auto merged mysql-test/r/sp.result: Auto merged BitKeeper/deleted/.del-type_newdecimal-big.result: Auto merged BitKeeper/deleted/.del-type_newdecimal-big.test: Auto merged mysql-test/t/show_check.test: Auto merged sql/field.h: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_func.cc: Auto merged sql/mysql_priv.h: Auto merged sql/sp.cc: Auto merged sql/sp_head.h: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.h: Auto merged sql/sql_trigger.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/field.cc: Merge. sql/sp_head.cc: Merge. sql/sql_select.cc: Merge.
This commit is contained in:
@@ -8951,6 +8951,7 @@ err:
|
||||
TABLE *create_virtual_tmp_table(THD *thd, List<create_field> &field_list)
|
||||
{
|
||||
uint field_count= field_list.elements;
|
||||
uint blob_count= 0;
|
||||
Field **field;
|
||||
create_field *cdef; /* column definition */
|
||||
uint record_length= 0;
|
||||
@@ -8967,6 +8968,12 @@ TABLE *create_virtual_tmp_table(THD *thd, List<create_field> &field_list)
|
||||
table->s= share= (TABLE_SHARE*) (table+1);
|
||||
share->fields= field_count;
|
||||
|
||||
if (!(share->blob_field= (uint*)thd->alloc((field_list.elements + 1) *
|
||||
sizeof(uint))))
|
||||
return 0;
|
||||
|
||||
share->blob_ptr_size= mi_portable_sizeof_char_ptr;
|
||||
|
||||
/* Create all fields and calculate the total length of record */
|
||||
List_iterator_fast<create_field> it(field_list);
|
||||
while ((cdef= it++))
|
||||
@@ -8983,9 +8990,15 @@ TABLE *create_virtual_tmp_table(THD *thd, List<create_field> &field_list)
|
||||
record_length+= (*field)->pack_length();
|
||||
if (! ((*field)->flags & NOT_NULL_FLAG))
|
||||
null_count++;
|
||||
|
||||
if ((*field)->flags & BLOB_FLAG)
|
||||
share->blob_field[blob_count++]= (uint) (field - table->field);
|
||||
|
||||
field++;
|
||||
}
|
||||
*field= NULL; /* mark the end of the list */
|
||||
s->blob_field[blob_count]= 0; /* mark the end of the list */
|
||||
s->blob_fields= blob_count;
|
||||
|
||||
null_pack_length= (null_count + 7)/8;
|
||||
share->reclength= record_length + null_pack_length;
|
||||
|
Reference in New Issue
Block a user