mirror of
https://github.com/MariaDB/server.git
synced 2026-04-26 18:25:30 +02:00
Fixed some merge issues:
- temporary tables now works - mysql-system_tables updated to not use temporary tables - PASSWORD() function fixed - Support for STATS_AUTO_RECALC, STATS_PERSISTENT and STATS_SAMPLE_PAGES table options
This commit is contained in:
parent
0b7f8ed973
commit
2534521f9a
24 changed files with 473 additions and 62 deletions
|
|
@ -1880,6 +1880,22 @@ int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet,
|
|||
packet->append(STRING_WITH_LEN(" PACK_KEYS=1"));
|
||||
if (create_info.options & HA_OPTION_NO_PACK_KEYS)
|
||||
packet->append(STRING_WITH_LEN(" PACK_KEYS=0"));
|
||||
if (share->db_create_options & HA_OPTION_STATS_PERSISTENT)
|
||||
packet->append(STRING_WITH_LEN(" STATS_PERSISTENT=1"));
|
||||
if (share->db_create_options & HA_OPTION_NO_STATS_PERSISTENT)
|
||||
packet->append(STRING_WITH_LEN(" STATS_PERSISTENT=0"));
|
||||
if (share->stats_auto_recalc == HA_STATS_AUTO_RECALC_ON)
|
||||
packet->append(STRING_WITH_LEN(" STATS_AUTO_RECALC=1"));
|
||||
else if (share->stats_auto_recalc == HA_STATS_AUTO_RECALC_OFF)
|
||||
packet->append(STRING_WITH_LEN(" STATS_AUTO_RECALC=0"));
|
||||
if (share->stats_sample_pages != 0)
|
||||
{
|
||||
char *end;
|
||||
packet->append(STRING_WITH_LEN(" STATS_SAMPLE_PAGES="));
|
||||
end= longlong10_to_str(share->stats_sample_pages, buff, 10);
|
||||
packet->append(buff, (uint) (end - buff));
|
||||
}
|
||||
|
||||
/* We use CHECKSUM, instead of TABLE_CHECKSUM, for backward compability */
|
||||
if (create_info.options & HA_OPTION_CHECKSUM)
|
||||
packet->append(STRING_WITH_LEN(" CHECKSUM=1"));
|
||||
|
|
@ -4059,12 +4075,13 @@ fill_schema_table_by_open(THD *thd, bool is_show_fields_or_keys,
|
|||
'only_view_structure()'.
|
||||
*/
|
||||
lex->sql_command= SQLCOM_SHOW_FIELDS;
|
||||
result= open_normal_and_derived_tables(thd, table_list,
|
||||
(MYSQL_OPEN_IGNORE_FLUSH |
|
||||
MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL |
|
||||
(can_deadlock ?
|
||||
MYSQL_OPEN_FAIL_ON_MDL_CONFLICT : 0)),
|
||||
DT_PREPARE | DT_CREATE);
|
||||
result= (open_temporary_tables(thd, table_list) ||
|
||||
open_normal_and_derived_tables(thd, table_list,
|
||||
(MYSQL_OPEN_IGNORE_FLUSH |
|
||||
MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL |
|
||||
(can_deadlock ?
|
||||
MYSQL_OPEN_FAIL_ON_MDL_CONFLICT : 0)),
|
||||
DT_PREPARE | DT_CREATE));
|
||||
/*
|
||||
Restore old value of sql_command back as it is being looked at in
|
||||
process_table() function.
|
||||
|
|
@ -4898,7 +4915,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
|
|||
}
|
||||
else
|
||||
{
|
||||
char option_buff[350];
|
||||
char option_buff[512];
|
||||
String str(option_buff,sizeof(option_buff), system_charset_info);
|
||||
TABLE *show_table= tables->table;
|
||||
TABLE_SHARE *share= show_table->s;
|
||||
|
|
@ -4963,6 +4980,23 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
|
|||
if (share->db_create_options & HA_OPTION_NO_PACK_KEYS)
|
||||
str.qs_append(STRING_WITH_LEN(" pack_keys=0"));
|
||||
|
||||
if (share->db_create_options & HA_OPTION_STATS_PERSISTENT)
|
||||
str.qs_append(STRING_WITH_LEN(" stats_persistent=1"));
|
||||
|
||||
if (share->db_create_options & HA_OPTION_NO_STATS_PERSISTENT)
|
||||
str.qs_append(STRING_WITH_LEN(" stats_persistent=0"));
|
||||
|
||||
if (share->stats_auto_recalc == HA_STATS_AUTO_RECALC_ON)
|
||||
str.qs_append(STRING_WITH_LEN(" stats_auto_recalc=1"));
|
||||
else if (share->stats_auto_recalc == HA_STATS_AUTO_RECALC_OFF)
|
||||
str.qs_append(STRING_WITH_LEN(" stats_auto_recalc=0"));
|
||||
|
||||
if (share->stats_sample_pages != 0)
|
||||
{
|
||||
str.qs_append(STRING_WITH_LEN(" stats_sample_pages="));
|
||||
str.qs_append(share->stats_sample_pages);
|
||||
}
|
||||
|
||||
/* We use CHECKSUM, instead of TABLE_CHECKSUM, for backward compability */
|
||||
if (share->db_create_options & HA_OPTION_CHECKSUM)
|
||||
str.qs_append(STRING_WITH_LEN(" checksum=1"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue