summaryrefslogtreecommitdiff
path: root/sql/sql_show.cc
diff options
context:
space:
mode:
authorunknown <mikael/pappa@dator5.(none)>2006-07-22 10:13:47 -0400
committerunknown <mikael/pappa@dator5.(none)>2006-07-22 10:13:47 -0400
commitd8559b3d93d0bc9eb8eb4865e0d37a509e9aaa6d (patch)
tree79c45d0512ac3075739aa805956cf456381c06a7 /sql/sql_show.cc
parent0036ab8c9737ac3c75d191b313b6487ac2f80f66 (diff)
parentaa0ab122cd12657a7e9c9528bb0b9ef2560b7f07 (diff)
downloadmariadb-git-d8559b3d93d0bc9eb8eb4865e0d37a509e9aaa6d.tar.gz
Merge dator5.(none):/home/pappa/bug20340
into dator5.(none):/home/pappa/bug20733 sql/sql_show.cc: Auto merged
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r--sql/sql_show.cc22
1 files changed, 16 insertions, 6 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 1a7547a5348..d80282eecf6 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -770,7 +770,14 @@ mysqld_list_fields(THD *thd, TABLE_LIST *table_list, const char *wild)
{
if (!wild || !wild[0] ||
!wild_case_compare(system_charset_info, field->field_name,wild))
- field_list.push_back(new Item_field(field));
+ {
+ if (table_list->view)
+ field_list.push_back(new Item_ident_for_show(field,
+ table_list->view_db.str,
+ table_list->view_name.str));
+ else
+ field_list.push_back(new Item_field(field));
+ }
}
restore_record(table, s->default_values); // Get empty record
table->use_all_columns();
@@ -1345,10 +1352,10 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
packet->append(buff, (uint) (end - buff));
}
table->file->append_create_info(packet);
- if (share->comment && share->comment[0])
+ if (share->comment.length)
{
packet->append(STRING_WITH_LEN(" COMMENT="));
- append_unescaped(packet, share->comment, strlen(share->comment));
+ append_unescaped(packet, share->comment.str, share->comment.length);
}
if (share->connect_string.length)
{
@@ -2901,11 +2908,14 @@ static int get_schema_tables_record(THD *thd, struct st_table_list *tables,
(uint) (ptr-option_buff)-1), cs);
{
char *comment;
- comment= show_table->file->update_table_comment(share->comment);
+ comment= show_table->file->update_table_comment(share->comment.str);
if (comment)
{
- table->field[20]->store(comment, strlen(comment), cs);
- if (comment != share->comment)
+ table->field[20]->store(comment,
+ (comment == share->comment.str ?
+ share->comment.length :
+ strlen(comment)), cs);
+ if (comment != share->comment.str)
my_free(comment, MYF(0));
}
}