mariadb/sql
unknown 841ea461ce Bug#21798: memory leak during query execution with subquery in column
list using a function
When executing dependent subqueries they are re-inited and re-exec() for 
each row of the outer context.
The cause for the bug is that during subquery reinitialization/re-execution,
the optimizer reallocates JOIN::join_tab, JOIN::table in make_simple_join()
and the local variable in 'sortorder' in create_sort_index(), which is
allocated by make_unireg_sortorder().
Care must be taken not to allocate anything into the thread's memory pool
while re-initializing query plan structures between subquery re-executions.
All such items mush be cached and reused because the thread's memory pool
is freed at the end of the whole query.
Note that they must be cached and reused even for queries that are not 
otherwise cacheable because otherwise it will grow the thread's memory 
pool every time a cacheable query is re-executed. 
We provide additional members to the JOIN structure to store references 
to the items that need to be cached.


mysql-test/r/subselect.result:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - test case
mysql-test/t/subselect.test:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - test case
sql/mysql_priv.h:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - cache the entities allocated in the threads memory pool by
     JOIN::exec ().
sql/sql_delete.cc:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
     memory pool by JOIN::exec ().
sql/sql_select.cc:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
     memory pool by JOIN::exec ().
sql/sql_select.h:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
     memory pool by JOIN::exec ().
sql/sql_table.cc:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
     memory pool by JOIN::exec ().
sql/sql_update.cc:
  Bug#21798: memory leak during query execution with subquery in column
              list using a function
   - cache the SORT_ORDER, TABLE * and JOIN_TAB allocated in the thread's 
     memory pool by JOIN::exec ().
2006-10-17 16:20:26 +03:00
..
examples Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0 2006-08-18 16:48:32 +04:00
share Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 2006-08-15 17:02:08 +02:00
.cvsignore
add_errmsg
client_settings.h
custom_conf.h
derror.cc
des_key_file.cc Many files: 2005-09-30 14:03:55 +02:00
discover.cc
field.cc fix windows build 2006-08-15 01:54:14 -07:00
field.h fix windows build 2006-08-15 01:54:14 -07:00
field_conv.cc Bug#17226: Variable set in cursor on first iteration is assigned 2006-06-30 18:14:22 +04:00
filesort.cc Move handling of suffix_length from strnxfrm_bin() to filesort to ensure proper sorting of all kind of binary objects 2005-10-14 00:04:52 +03:00
frm_crypt.cc
gen_lex_hash.cc a fix (#10742: Can't compile "sql_lex.cc" on AIX 5.2). 2005-05-19 18:56:01 +05:00
gstream.cc fixes for windows 64-bit compiler warnings 2005-06-13 12:41:15 +02:00
gstream.h
ha_archive.cc Fix for bug#20648 We introduce a new field method for knowing "real size", and we now in archive null unused bits of a row to null before writing. 2006-08-14 03:29:17 -07:00
ha_archive.h Dean noticed that constant flush calls caused the archive stream file to flush empty buffers. This patch removes that behavior. 2006-04-20 18:23:04 -07:00
ha_berkeley.cc BUG#6554 Problem Building MySql on Fedora Core 3 2006-01-16 12:17:30 +01:00
ha_berkeley.h Fixes during review of new code 2005-11-03 22:42:25 +02:00
ha_blackhole.cc Revoking patch for Bug#10952 on behalf of Brian. 2006-07-10 20:46:05 +02:00
ha_blackhole.h Merge a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-4.1 2005-08-26 15:56:52 +03:00
ha_federated.cc autopush test - sorry for the commit messages, ignore 2006-08-09 17:41:35 -07:00
ha_federated.h BUG #15133 "unique index with nullable value not accepted in federated table" 2006-07-25 18:38:09 -04:00
ha_heap.cc Manual merge 2006-03-30 17:14:55 +04:00
ha_heap.h Merge mysql.com:/opt/local/work/mysql-4.1-root 2006-02-02 18:17:18 +03:00
ha_innodb.cc innodb r702 2006-08-18 14:16:11 +02:00
ha_innodb.h foo2 2006-04-13 17:22:56 +09:30
ha_myisam.cc bug #15860 (SPATIAL keys in INNODB) 2006-04-12 22:05:23 +05:00
ha_myisam.h A fix and a test case for Bug#10760 and complementary cleanups. 2005-07-19 22:21:12 +04:00
ha_myisammrg.cc Merge bk-internal:/home/bk/mysql-5.0-engines 2006-07-18 10:25:04 -07:00
ha_myisammrg.h Bug#19648 2006-05-30 17:10:53 -07:00
ha_ndbcluster.cc Fix for bug #21059 Server crashes on join query with large dataset with NDB tables: do not release operation records for on-going read_multi_range 2006-08-15 14:31:21 +02:00
ha_ndbcluster.h Fix for bug #21059 Server crashes on join query with large dataset with NDB tables: do not release operation records for on-going read_multi_range 2006-08-15 14:31:21 +02:00
handler.cc Merge bk://anubis/mysql-5.0-engines 2006-07-21 10:14:25 -07:00
handler.h Merge dl145k.mysql.com:/data0/mkindahl/bkroot/mysql-5.0 2006-07-12 10:05:55 +02:00
hash_filo.cc a compiler must see '#pragma implementation' *before* 2005-06-05 19:38:52 +02:00
hash_filo.h forgotten s/__GNUC__/USE_PRAGMA_INTERFACE/ causes compilation faliures 2005-05-27 14:15:08 +02:00
hostname.cc Merge mysql.com:/usr/home/ram/work/mysql-4.1 2006-03-03 15:32:00 +04:00
init.cc Fixes during review of new pushed code 2005-08-12 13:54:42 +03:00
item.cc Fixed bug #21698: erroneously a field could be replaced by an 2006-09-07 11:06:37 -07:00
item.h Fixed bug #21698: erroneously a field could be replaced by an 2006-09-07 11:06:37 -07:00
item_buff.cc Fix for bug#19667 group by a decimal expression yields wrong result 2006-06-15 16:24:02 +05:00
item_cmpfunc.cc Fixed bug #21698: erroneously a field could be replaced by an 2006-09-07 11:06:37 -07:00
item_cmpfunc.h Fixed bug #21698: erroneously a field could be replaced by an 2006-09-07 11:06:37 -07:00
item_create.cc Bug#16172 DECIMAL data type processed incorrectly 2006-08-08 14:40:07 +05:00
item_create.h Bug#20570: CURRENT_USER() in a VIEW with SQL SECURITY DEFINER returns 2006-07-02 14:35:45 +04:00
item_func.cc Fixed bug #21698: erroneously a field could be replaced by an 2006-09-07 11:06:37 -07:00
item_func.h Fixed bug #21698: erroneously a field could be replaced by an 2006-09-07 11:06:37 -07:00
item_geofunc.cc bug #14807 (GeomFromText() should return MYSQL_TYPE_GEOMETRY) 2006-07-04 12:56:53 +05:00
item_geofunc.h Merge mysql.com:/home/mydev/mysql-4.1-bug14400 2006-07-05 11:20:10 +02:00
item_row.cc Merge mysql.com:/opt/local/work/mysql-4.1-16365 2006-04-12 18:30:54 +04:00
item_row.h Merge mysql.com:/opt/local/work/mysql-4.1-16365 2006-04-12 18:30:54 +04:00
item_strfunc.cc Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0 2006-08-03 09:32:58 +02:00
item_strfunc.h Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0 2006-08-03 09:32:58 +02:00
item_subselect.cc BUG#16255: Merge to 5.0 2006-08-24 20:56:28 +04:00
item_subselect.h Merge mysql.com:/home/psergey/mysql-4.1-opt 2006-07-21 23:45:34 +04:00
item_sum.cc BUG#21477 "memory overruns for certain kinds of subqueries": 2006-09-01 13:23:43 +04:00
item_sum.h Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2006-07-23 12:58:26 +05:00
item_timefunc.cc Merge salvation.intern.azundris.com:/home/tnurnberg/work/mysql-4.1-maint-20987 2006-08-22 14:03:52 +02:00
item_timefunc.h Manually merged 2006-06-17 02:11:12 +04:00
item_uniq.cc Merge with 4.1 2005-06-07 00:31:53 +03:00
item_uniq.h Inefficient usage of String::append() fixed. 2005-11-20 20:47:07 +02:00
key.cc Bug #13601: Wrong int type for bit 2006-04-04 17:54:58 -07:00
lex.h Fixed BUG#18949: Test case sp-goto is disabled 2006-04-18 11:07:34 +02:00
lex_symbol.h
lock.cc Bug#16986 - Deadlock condition with MyISAM tables 2006-06-26 19:14:35 +02:00
log.cc Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0 2006-06-29 14:14:08 +02:00
log_event.cc A fix for Bug#19022 "Memory bug when switching db during trigger execution". 2006-06-28 23:47:45 +04:00
log_event.h Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit 2006-06-12 08:54:45 -04:00
Makefile.am udf_example.c, udf.test, Makefile.am: 2006-07-29 04:41:50 +02:00
matherr.c
mf_iocache.cc
my_decimal.cc Fix for bug #13573 (wrong data inserted for too big decimals) 2005-10-15 21:57:32 +05:00
my_decimal.h Fix for bug #13573 (wrong data inserted for too big decimals) 2005-10-15 21:57:32 +05:00
my_lock.c
mysql_priv.h Bug#21798: memory leak during query execution with subquery in column 2006-10-17 16:20:26 +03:00
mysqld.cc Merge zippy.cornsilk.net:/home/cmiller/work/mysql/merge/tmp_merge 2006-08-17 10:42:50 -04:00
mysqld_suffix.h
net_serv.cc configure.in, net_serv.cc, compile-netware-END: 2006-06-17 00:30:02 +02:00
nt_servc.cc
nt_servc.h
opt_range.cc Fixed bug #16249: different results for a range with an without index 2006-08-31 07:27:34 -07:00
opt_range.h BUG#21077: Possible crash caused by invalid sequence of handler::* calls: 2006-08-15 20:33:14 +04:00
opt_sum.cc Merge macbook.gmz:/Users/kgeorge/mysql/work/B16792-4.1-opt 2006-09-05 17:09:12 +03:00
parse_file.cc Fix for BUG#15921: DROP TRIGGER - can't be drop trigger created 2006-03-28 01:01:51 +04:00
parse_file.h Fix for BUG#15921: DROP TRIGGER - can't be drop trigger created 2006-03-28 01:01:51 +04:00
password.c Merge mysql.com:/opt/local/work/mysql-4.1-root 2006-01-11 17:49:56 +03:00
procedure.cc Merge with 4.1 2005-06-07 00:31:53 +03:00
procedure.h Merge neptunus.(none):/home/msvensson/mysql/bug10241 2005-05-09 11:26:48 +02:00
protocol.cc A fix and a test case for Bug#15752 "Lost connection to MySQL server 2006-07-24 14:56:53 +04:00
protocol.h Fixes to embedded server to be able to run tests with it 2006-02-24 18:34:15 +02:00
records.cc Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1 2005-10-27 23:43:20 +03:00
repl_failsafe.cc Bug #18607: LOAD DATA FROM MASTER fails because of INFORMATION_SCHEMA database 2006-04-21 18:26:39 -07:00
repl_failsafe.h pthread_handler_decl() changed to be ctags-friendly 2005-10-08 16:39:55 +02:00
set_var.cc Fixed bug#16861: User defined variable can have a wrong value if a tmp table was 2006-08-22 17:37:41 +04:00
set_var.h A post-merge fix. 2006-07-08 04:07:43 +04:00
slave.cc Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint_20328 2006-08-16 19:31:33 -04:00
slave.h A fix for Bug#19022 "Memory bug when switching db during trigger execution". 2006-06-28 23:47:45 +04:00
sp.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2006-08-02 14:13:01 +04:00
sp.h A fix and a test case for 2006-06-27 00:47:52 +04:00
sp_cache.cc Fix use of "%*s" *printf() specifiers that were really meant to be 2005-10-06 17:37:24 -07:00
sp_cache.h BUG#12228: Post review fixes: Added test case, code cleanup. 2005-08-10 21:17:02 +00:00
sp_head.cc Fix for BUG#20438: CREATE statements for views, stored routines and triggers 2006-07-28 02:49:18 +04:00
sp_head.h Fix for BUG#16211: Stored function return type for strings is ignored. 2006-07-27 17:57:43 +04:00
sp_pcontext.cc Fixed BUG#18949: Test case sp-goto is disabled 2006-04-18 11:07:34 +02:00
sp_pcontext.h Fixed BUG#18949: Test case sp-goto is disabled 2006-04-18 11:07:34 +02:00
sp_rcontext.cc BUG#18037: Fix stack corruption in THD::rollback_item_tree_changes(). 2006-05-15 12:01:55 +02:00
sp_rcontext.h BUG#18037: Fix stack corruption in THD::rollback_item_tree_changes(). 2006-05-15 12:01:55 +02:00
spatial.cc Merge sanja.is.com.ua:/home/bell/mysql/bk/work-bug1-5.0 2005-11-21 21:15:48 +02:00
spatial.h gcc 4.1 linux warning fixes backported from 5.0. 2006-06-28 16:28:29 +03:00
sql_acl.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2006-08-22 14:31:57 +02:00
sql_acl.h Reapply fix for bug#16372 (Server crashes when test 'conc_sys' is running) 2006-05-06 11:25:59 +04:00
sql_analyse.cc Porting fix that allows others to include compiled code with different parsers. 2006-03-09 10:09:52 -08:00
sql_analyse.h Merge from 4.1 2005-05-26 21:01:55 +02:00
sql_array.h Fix for BUG#12335 (SP replication) : New binlogging strategy for stored PROCEDUREs/FUNCTIONs. 2005-08-25 17:34:34 +04:00
sql_base.cc Fixed bug#21261: Wrong access rights was required for an insert into a view 2006-08-15 21:45:24 +04:00
sql_bitmap.h Bug#10932 - Building server with key limit of 128, makes test cases fail 2005-07-19 14:13:56 +02:00
sql_cache.cc Merge bodhi.local:/opt/local/work/tmp_merge 2006-07-08 02:30:07 +04:00
sql_cache.h Fixed compiler warnings from gcc 4.0.2: 2006-02-25 17:46:30 +02:00
sql_class.cc Fixed bug#16861: User defined variable can have a wrong value if a tmp table was 2006-08-22 17:37:41 +04:00
sql_class.h Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0 2006-08-01 20:24:30 +02:00
sql_client.cc
sql_crypt.cc a compiler must see '#pragma implementation' *before* 2005-06-05 19:38:52 +02:00
sql_crypt.h Add ifdefs to control when "#pragma implementation" should be used 2005-05-26 12:09:14 +02:00
sql_cursor.cc Fixed BUG#15758: "Holding adaptive search latch in 2006-04-07 23:58:17 +04:00
sql_cursor.h A fix and a test case for Bug#6513 "Test Suite: Values inserted by using 2005-09-22 02:11:21 +04:00
sql_db.cc Fix for BUG#16211: Stored function return type for strings is ignored. 2006-07-27 17:57:43 +04:00
sql_delete.cc Bug#21798: memory leak during query execution with subquery in column 2006-10-17 16:20:26 +03:00
sql_derived.cc support of view underlying tables and SP functions security check added (BUG#9505) (WL#2787) 2005-10-28 00:18:23 +03:00
sql_do.cc Name resolution context added (BUG#6443) 2005-07-01 07:05:42 +03:00
sql_error.cc Add extre DBUG_PRINT in push_warning 2006-03-16 12:06:39 +01:00
sql_error.h
sql_handler.cc Bug#16986 - Deadlock condition with MyISAM tables 2006-06-26 19:14:35 +02:00
sql_help.cc many warnings (practically safe but annoying) corrected 2006-01-03 17:54:54 +01:00
sql_insert.cc Fixed bug#21261: Wrong access rights was required for an insert into a view 2006-08-15 21:45:24 +04:00
sql_lex.cc BUG#21477 "memory overruns for certain kinds of subqueries": 2006-09-01 13:23:43 +04:00
sql_lex.h BUG#21477 "memory overruns for certain kinds of subqueries": 2006-09-01 13:23:43 +04:00
sql_list.cc a compiler must see '#pragma implementation' *before* 2005-06-05 19:38:52 +02:00
sql_list.h Fixed bug #16081: row equalities were not taken into 2006-09-01 04:23:04 -07:00
sql_load.cc Fixed bug#21261: Wrong access rights was required for an insert into a view 2006-08-15 21:45:24 +04:00
sql_locale.cc Fix compile errors in VC++ 7.0 2006-08-21 16:21:48 +04:00
sql_manager.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2005-10-12 00:59:52 +03:00
sql_manager.h
sql_map.cc WL#2286 - Compile MySQL w/YASSL support 2005-06-22 14:08:28 +05:00
sql_map.h Add ifdefs to control when "#pragma implementation" should be used 2005-05-26 12:09:14 +02:00
sql_olap.cc Implementation of WL#2486 - 2005-08-12 17:57:19 +03:00
sql_parse.cc Merge macbook.gmz:/Users/kgeorge/mysql/work/B21392-4.1-opt 2006-09-04 18:45:48 +03:00
sql_prepare.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2006-08-02 14:13:01 +04:00
sql_rename.cc Fix for bug #13525 "Rename table does not keep info of triggers". 2006-02-24 23:50:36 +03:00
sql_repl.cc foo2 2006-04-13 17:22:56 +09:30
sql_repl.h
sql_select.cc Bug#21798: memory leak during query execution with subquery in column 2006-10-17 16:20:26 +03:00
sql_select.h Bug#21798: memory leak during query execution with subquery in column 2006-10-17 16:20:26 +03:00
sql_show.cc bug #20910 (NOT NULL reported as NULL for TIMESTAMP) 2006-08-08 13:34:27 +05:00
sql_sort.h
sql_state.c
sql_string.cc Merge mysql.com:/usr/home/bar/mysql-4.1.b15376 2006-03-23 12:41:28 +04:00
sql_string.h Bug#19006: 4.0 valgrind problems (in test func_str) 2006-07-01 14:31:52 -04:00
sql_table.cc Bug#21798: memory leak during query execution with subquery in column 2006-10-17 16:20:26 +03:00
sql_test.cc Post-review changes. 2006-05-03 21:35:27 -07:00
sql_trigger.cc Fix for BUG#20438: CREATE statements for views, stored routines and triggers 2006-07-28 02:49:18 +04:00
sql_trigger.h Fix for bug#18437 "Wrong values inserted with a before update trigger on 2006-07-02 01:51:10 +04:00
sql_udf.cc Merge bk-internal:/home/bk/mysql-5.0-maint 2006-07-18 09:32:49 +02:00
sql_udf.h Fix compiler warnings in sql_udf.h: ISO C++ forbids casting 2006-07-09 13:03:51 +04:00
sql_union.cc Post merge fixes 2006-04-21 08:19:38 -07:00
sql_update.cc Bug#21798: memory leak during query execution with subquery in column 2006-10-17 16:20:26 +03:00
sql_view.cc Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 2006-08-09 18:02:06 +02:00
sql_view.h sql_base.cc, unireg.h, sql_lex.h, table.cc, sql_view.h, sql_view.cc: 2006-08-09 00:05:42 +04:00
sql_yacc.yy Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt 2006-09-04 19:21:25 +03:00
stacktrace.c Step 2 of the switch to support configuration with NPTL: 2005-04-20 20:38:57 +02:00
stacktrace.h Step 2 of the switch to support configuration with NPTL: 2005-04-20 20:38:57 +02:00
strfunc.cc
structs.h Manually merged 2006-06-14 23:54:08 +04:00
table.cc Merge sunlight.local:/home/evgen/bk-trees/mysql-5.0 2006-08-09 01:43:11 +04:00
table.h Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 2006-08-03 16:54:06 +02:00
thr_malloc.cc
time.cc Bug#20729: Bad date_format() call makes mysql server crash 2006-07-11 13:06:29 -04:00
tzfile.h
tztime.cc A fix and a test case for 2006-06-27 00:47:52 +04:00
tztime.h Fix for bug#11081 "Using a CONVERT_TZ function in a stored function or 2006-04-24 18:57:00 +04:00
udf_example.c Fix a compilation failiure on QNX 2006-08-02 13:25:13 +04:00
uniques.cc many warnings (practically safe but annoying) corrected 2006-01-03 17:54:54 +01:00
unireg.cc Fix for bug#13934 Silent truncation of table comments 2006-06-29 18:39:34 +05:00
unireg.h sql_base.cc, unireg.h, sql_lex.h, table.cc, sql_view.h, sql_view.cc: 2006-08-09 00:05:42 +04:00
watchdog_mysqld