Skip to content
Browse files

Removed TABLE->sort to make it possible to have multiple active calls to

filesort and init_read_record() for the same table.
This will simplify code for WINDOW FUNCTIONS (MDEV-6115)

- Filesort_info renamed to SORT_INFO and moved to filesort.h
- filesort now returns SORT_INFO
- init_read_record() now takes a SORT_INFO parameter.
- unique declaration is moved to uniques.h
- subselect caching of buffers is now more explicit than before
- filesort_buffer is now reusable even if rec_length has changed.
- filsort_free_buffers() and free_io_cache() calls are removed
- Remove one malloc() when using get_addon_fields()

Other things:
- Added --debug-assert-on-not-freed-memory option to make it easier to
  debug some not-freed-memory issues.
  • Loading branch information...
montywi committed Mar 22, 2016
1 parent d0a4770 commit 260dd476b057b759af7973550b560dc2f56e18fd
@@ -112,7 +112,8 @@ SET (SQL_SOURCE uniques.h ../sql-common/my_user.c
@@ -499,7 +499,8 @@ Event_db_repository::table_scan_all_for_i_s(THD *thd, TABLE *schema_table,
READ_RECORD read_record_info;

if (init_read_record(&read_record_info, thd, event_table, NULL, 1, 0, FALSE))
if (init_read_record(&read_record_info, thd, event_table, NULL, NULL, 1, 0,

@@ -1015,7 +1016,7 @@ Event_db_repository::drop_schema_events(THD *thd, LEX_STRING schema)

/* only enabled events are in memory, so we go now and delete the rest */
if (init_read_record(&read_record_info, thd, table, NULL, 1, 0, FALSE))
if (init_read_record(&read_record_info, thd, table, NULL, NULL, 1, 0, FALSE))
goto end;

while (!ret && !(read_record_info.read_record(&read_record_info)) )
@@ -1134,7 +1134,7 @@ Events::load_events_from_db(THD *thd)

if (init_read_record(&read_record_info, thd, table, NULL, 0, 1, FALSE))
if (init_read_record(&read_record_info, thd, table, NULL, NULL, 0, 1, FALSE))

0 comments on commit 260dd47

Please sign in to comment.
You can’t perform that action at this time.