diff options
author | unknown <monty@mysql.com> | 2004-03-30 19:24:28 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-03-30 19:24:28 +0300 |
commit | bc12d57fa781c3c0320733b9f096835f951edbbc (patch) | |
tree | 3ba6124dc8f91baccee6bbd806fe1056d021e326 /sql/field.cc | |
parent | ceeaa24d187b228fd6e8b1ac1e667d341155640f (diff) | |
download | mariadb-git-bc12d57fa781c3c0320733b9f096835f951edbbc.tar.gz |
Fix to get correct metadata when using temporary tables to create result. (Bug #2654)
client/mysqltest.c:
Added support for --enable_metadata
mysql-test/t/order_by.test:
Improved comment
scripts/mysqlaccess.sh:
CGI is required (Bug #2988)
sql/field.cc:
Fix to get correct metadata when using temporary tables to create result
sql/field.h:
Fix to get correct metadata when using temporary tables to create result
sql/sql_insert.cc:
Fix to get correct metadata when using temporary tables to create result
Diffstat (limited to 'sql/field.cc')
-rw-r--r-- | sql/field.cc | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/sql/field.cc b/sql/field.cc index 474715f4e26..89c6464c5f0 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -301,7 +301,8 @@ Field::Field(char *ptr_arg,uint32 length_arg,uchar *null_ptr_arg, utype unireg_check_arg, const char *field_name_arg, struct st_table *table_arg) :ptr(ptr_arg),null_ptr(null_ptr_arg), - table(table_arg),table_name(table_arg ? table_arg->table_name : 0), + table(table_arg),orig_table(table_arg), + table_name(table_arg ? table_arg->table_name : 0), field_name(field_name_arg), query_id(0), key_start(0), part_of_key(0), part_of_sortkey(0), unireg_check(unireg_check_arg), @@ -349,9 +350,10 @@ void Field_num::add_zerofill_and_unsigned(String &res) const void Field_num::make_field(Send_field *field) { /* table_cache_key is not set for temp tables */ - field->db_name=table->table_cache_key ? table->table_cache_key : ""; - field->org_table_name=table->real_name; - field->table_name=table_name; + field->db_name= (orig_table->table_cache_key ? orig_table->table_cache_key : + ""); + field->org_table_name= orig_table->real_name; + field->table_name= orig_table->table_name; field->col_name=field->org_col_name=field_name; field->charsetnr= charset()->number; field->length=field_length; @@ -364,9 +366,10 @@ void Field_num::make_field(Send_field *field) void Field_str::make_field(Send_field *field) { /* table_cache_key is not set for temp tables */ - field->db_name=table->table_cache_key ? table->table_cache_key : ""; - field->org_table_name=table->real_name; - field->table_name=table_name; + field->db_name= (orig_table->table_cache_key ? orig_table->table_cache_key : + ""); + field->org_table_name= orig_table->real_name; + field->table_name= orig_table->table_name; field->col_name=field->org_col_name=field_name; field->charsetnr= charset()->number; field->length=field_length; |