mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/50
into maint2.mysql.com:/data/localhome/tsmith/bk/mrg50/51 BUILD/SETUP.sh: Auto merged client/Makefile.am: Auto merged dbug/Makefile.am: Auto merged include/mysql_com.h: Auto merged libmysql/Makefile.am: Auto merged mysql-test/lib/mtr_cases.pl: Auto merged mysql-test/lib/mtr_match.pl: Auto merged mysql-test/lib/mtr_misc.pl: Auto merged mysql-test/r/ctype_ucs.result: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/r/func_time.result: Auto merged mysql-test/r/myisam.result: Auto merged mysql-test/r/query_cache.result: Auto merged mysql-test/r/range.result: Auto merged mysql-test/t/ctype_ucs.test: Auto merged mysql-test/t/ctype_utf8.test: Auto merged mysql-test/t/func_time.test: Auto merged mysql-test/t/myisam.test: Auto merged mysql-test/t/range.test: Auto merged mysql-test/t/system_mysql_db_fix.test: Auto merged mysys/my_seek.c: Auto merged regex/Makefile.am: Auto merged scripts/Makefile.am: Auto merged server-tools/instance-manager/Makefile.am: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/item_func.h: Auto merged sql/item_strfunc.cc: Auto merged sql/item_strfunc.h: Auto merged sql/item_sum.cc: Auto merged sql/log.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/slave.cc: Auto merged sql/slave.h: Auto merged sql/sql_acl.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_repl.h: Auto merged sql/sql_yacc.yy: Auto merged sql/stacktrace.c: Auto merged sql-common/client.c: Auto merged sql/stacktrace.h: Auto merged storage/innobase/Makefile.am: Auto merged support-files/mysql.spec.sh: Auto merged tests/Makefile.am: Auto merged tests/mysql_client_test.c: Auto merged BitKeeper/deleted/.del-mytest.c: Delete: libmysql/mytest.c BitKeeper/deleted/.del-make_win_bin_dist: Delete: scripts/make_win_bin_dist BitKeeper/deleted/.del-message.mc~1: Delete: sql/message.mc Makefile.am: Manual merge (use local) configure.in: Manual merge (use local) BitKeeper/deleted/.del-Makefile.in: Manual merge (use local) client/mysqlbinlog.cc: Manual merge (use local) extra/Makefile.am: Manual merge (use local) extra/comp_err.c: Manual merge (use local) extra/yassl/Makefile.am: Manual merge (use local) extra/yassl/taocrypt/Makefile.am: Manual merge (use local) include/my_dbug.h: Manual merge (use local) mysql-test/mysql-test-run.pl: Manual merge (use local) mysql-test/lib/mtr_process.pl: Manual merge (use local) mysys/Makefile.am: Manual merge (use local) server-tools/Makefile.am: Manual merge (use local) sql/Makefile.am: Manual merge (use local) sql/sp.cc: Manual merge sql/sp_head.cc: Manual merge sql/sql_class.h: Manual merge (use local) sql/sql_select.cc: SCCS merged sql/table.cc: Manual merge storage/archive/ha_archive.cc: Manual merge storage/heap/Makefile.am: Manual merge (use local) storage/myisam/Makefile.am: Manual merge (use local) storage/myisammrg/Makefile.am: Manual merge (use local) strings/Makefile.am: Manual merge (use local) vio/Makefile.am: Manual merge (use local) zlib/Makefile.am: Manual merge (use local)
This commit is contained in:
@ -9094,11 +9094,6 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
||||
keyinfo->key_length+= key_part_info->length;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
set_if_smaller(table->s->max_rows, rows_limit);
|
||||
param->end_write_records= rows_limit;
|
||||
}
|
||||
|
||||
if (distinct && field_count != param->hidden_field_count)
|
||||
{
|
||||
@ -9113,8 +9108,6 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
||||
null_pack_length-=hidden_null_pack_length;
|
||||
keyinfo->key_parts= ((field_count-param->hidden_field_count)+
|
||||
test(null_pack_length));
|
||||
set_if_smaller(share->max_rows, rows_limit);
|
||||
param->end_write_records= rows_limit;
|
||||
table->distinct= 1;
|
||||
share->keys= 1;
|
||||
if (blob_count)
|
||||
@ -9169,6 +9162,20 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
||||
0 : FIELDFLAG_BINARY;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Push the LIMIT clause to the temporary table creation, so that we
|
||||
materialize only up to 'rows_limit' records instead of all result records.
|
||||
This optimization is not applicable when there is GROUP BY or there is
|
||||
no GROUP BY, but there are aggregate functions, because both must be
|
||||
computed for all result rows.
|
||||
*/
|
||||
if (!group && !thd->lex->current_select->with_sum_func)
|
||||
{
|
||||
set_if_smaller(table->s->max_rows, rows_limit);
|
||||
param->end_write_records= rows_limit;
|
||||
}
|
||||
|
||||
if (thd->is_fatal_error) // If end of memory
|
||||
goto err; /* purecov: inspected */
|
||||
share->db_record_offset= 1;
|
||||
|
Reference in New Issue
Block a user