1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

fixed bugs in temporary tables in subselect implementation (SCRUM)

merging with switching on static tables optimization (SCRUM)
fixed subselects with uncacheable results
added test for fixed bugs from bugreports


mysql-test/r/subselect.result:
  changes in subselect test after switching on static tables optimization
  fixed bug test added
  uncacheable subselects
mysql-test/t/subselect.test:
  changes in subselect test after switching on static tables optimization
  fixed bug test added
  uncacheable subselects
sql/item_create.cc:
  fixed subselects with uncacheable results
sql/item_func.cc:
  fixed subselects with uncacheable results
sql/item_subselect.cc:
  fixed subselects with uncacheable results
  clean up
sql/item_subselect.h:
  fixed subselects with uncacheable results
sql/sql_lex.cc:
  fixed subselects with uncacheable results
sql/sql_lex.h:
  fixed subselects with uncacheable results
sql/sql_select.cc:
  fixed bugs in temporary tables in subselect implementation
  fixed subselects with uncacheable results
sql/sql_union.cc:
  fixed subselects with uncacheable results
sql/sql_yacc.yy:
  fixed subselects with uncacheable results
This commit is contained in:
unknown
2003-01-28 14:48:12 +02:00
parent 42ba47184c
commit ca0d06d599
11 changed files with 257 additions and 63 deletions

View File

@ -839,7 +839,6 @@ JOIN::reinit()
exec_tmp_table1->file->extra(HA_EXTRA_RESET_STATE);
exec_tmp_table1->file->delete_all_rows();
free_io_cache(exec_tmp_table1);
memcpy(ref_pointer_array, items0, ref_pointer_array_size);
}
if (exec_tmp_table2)
{
@ -850,9 +849,6 @@ JOIN::reinit()
if (items0)
memcpy(ref_pointer_array, items0, ref_pointer_array_size);
tmp_table_param.copy_funcs.empty();
tmp_table_param.copy_field= tmp_table_param.copy_field_end= 0;
if (tmp_join)
restore_tmp();
@ -4824,7 +4820,7 @@ bool create_myisam_from_heap(THD *thd, TABLE *table, TMP_TABLE_PARAM *param,
static int
do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure)
{
int error;
int error= 0;
JOIN_TAB *join_tab;
int (*end_select)(JOIN *, struct st_join_table *,bool);
DBUG_ENTER("do_select");
@ -8032,9 +8028,11 @@ int mysql_explain_union(THD *thd, SELECT_LEX_UNIT *unit, select_result *result)
((sl->linkage == DERIVED_TABLE_TYPE) ?
"DERIVED":
((sl->dependent)?"DEPENDENT SUBSELECT":
"SUBSELECT")):
(sl->uncacheable?"UNCACHEABLE SUBSELECT":
"SUBSELECT"))):
((sl->dependent)?"DEPENDENT UNION":
"UNION"))),
sl->uncacheable?"UNCACHEABLE UNION":
"UNION"))),
result);
if (res)
break;