1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

fixed subselects with temporary tables (SCRUM)

fixed memory leacks


mysql-test/r/subselect.result:
  some changes in subselect tests
mysql-test/t/subselect.test:
  some changes in subselect tests
sql/item.cc:
  some item made copyable
  methods for creating copy of item list
  tmp_table_field() splited
sql/item.h:
  some item made copyable
  methods for creating copy of item list
  tmp_table_field() splited
sql/item_cmpfunc.cc:
  changed references creation
sql/item_cmpfunc.h:
  changed references creation
sql/item_func.cc:
  some item made copyable
  methods for creating copy of item list
  changed references creation
sql/item_func.h:
  some item made copyable
  methods for creating copy of item list
  changed references creation
  tmp_table_field() splited
sql/item_subselect.cc:
  changed references creation
sql/item_sum.cc:
  some item made copyable
  methods for creating copy of item list
sql/item_sum.h:
  some item made copyable
  methods for creating copy of item list
sql/item_timefunc.h:
  tmp_table_field() splited
sql/item_uniq.h:
  some item made copyable
  methods for creating copy of item list
sql/mysql_priv.h:
  fixed subselects with temporary tables
sql/sql_base.cc:
  fixed subselects with temporary tables
sql/sql_class.h:
  fixed subselects with temporary tables
sql/sql_delete.cc:
  fixed subselects with temporary tables
sql/sql_derived.cc:
  fixed subselects with temporary tables
sql/sql_do.cc:
  fixed subselects with temporary tables
sql/sql_insert.cc:
  fixed subselects with temporary tables
sql/sql_lex.cc:
  fixed subselects with temporary tables
sql/sql_lex.h:
  fixed subselects with temporary tables
sql/sql_list.h:
  fixed subselects with temporary tables
sql/sql_load.cc:
  fixed subselects with temporary tables
sql/sql_olap.cc:
  fixed subselects with temporary tables
sql/sql_parse.cc:
  fixed subselects with temporary tables
sql/sql_prepare.cc:
  fixed subselects with temporary tables
sql/sql_select.cc:
  fixed subselects with temporary tables
sql/sql_select.h:
  fixed subselects with temporary tables
sql/sql_table.cc:
  fixed subselects with temporary tables
sql/sql_union.cc:
  fixed subselects with temporary tables
sql/sql_update.cc:
  fixed subselects with temporary tables
sql/sql_yacc.yy:
  fixed subselects with temporary tables
This commit is contained in:
unknown
2003-01-25 02:25:52 +02:00
parent 3b33f0c2c1
commit b23541339c
33 changed files with 1148 additions and 561 deletions

View File

@@ -81,7 +81,7 @@ check_insert_fields(THD *thd,TABLE *table,List<Item> &fields,
thd->dupp_field=0;
if (setup_tables(&table_list) ||
setup_fields(thd,&table_list,fields,1,0,0))
setup_fields(thd, 0, &table_list,fields,1,0,0))
return -1;
if (thd->dupp_field)
{
@@ -171,10 +171,10 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list,
values= its++;
if (check_insert_fields(thd,table,fields,*values,1) ||
setup_tables(insert_table_list) ||
setup_fields(thd, insert_table_list, *values, 0, 0, 0) ||
setup_fields(thd, 0, insert_table_list, *values, 0, 0, 0) ||
(duplic == DUP_UPDATE &&
(setup_fields(thd, insert_table_list, update_fields, 0, 0, 0) ||
setup_fields(thd, insert_table_list, update_values, 0, 0, 0))))
(setup_fields(thd, 0, insert_table_list, update_fields, 0, 0, 0) ||
setup_fields(thd, 0, insert_table_list, update_values, 0, 0, 0))))
goto abort;
if (find_real_table_in_list(table_list->next,
table_list->db, table_list->real_name))
@@ -194,7 +194,7 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list,
MYF(0),counter);
goto abort;
}
if (setup_fields(thd,insert_table_list,*values,0,0,0))
if (setup_fields(thd, 0, insert_table_list, *values, 0, 0, 0))
goto abort;
}
its.rewind ();
@@ -381,11 +381,13 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list,
thd->cuted_fields);
::send_ok(thd,info.copied+info.deleted,(ulonglong)id,buff);
}
free_ulderlayed_joins(thd, &thd->lex.select_lex);
DBUG_RETURN(0);
abort:
if (lock_type == TL_WRITE_DELAYED)
end_delayed_insert(thd);
free_ulderlayed_joins(thd, &thd->lex.select_lex);
DBUG_RETURN(-1);
}