1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

caching of queries with isammerge tables forbiden using general way

SQL_SELECT_LIMIT as default will be applied only for SELECT statement if there was not explicit LIMIT clause
correct table list passed to class constructor of select_update


mysql-test/r/subselect.result:
  do not show limit if it is not explicit
mysql-test/r/union.result:
  test of LIMIT + ORDER
mysql-test/t/union.test:
  test of LIMIT + ORDER
sql/ha_isammrg.h:
  caching of queries with isammerge tables forbiden
sql/sql_cache.cc:
  removed check on isammerge
sql/sql_lex.cc:
  tag of explicit limit in statement
sql/sql_lex.h:
  tag of explicit limit in statement
sql/sql_parse.cc:
  blanks in empty line removed
  no limit by default (SQL_SELECT_LIMIT as default will be applied only for SELECT statement if there was not explicit LIMIT clause)
sql/sql_union.cc:
  reverted incorrect patch
sql/sql_update.cc:
  reverted incorrect patch
  correct table list passed to class constructor
sql/sql_yacc.yy:
  explicit LIMIT marked
This commit is contained in:
unknown
2004-05-05 21:21:41 +03:00
parent ea646dce60
commit f6428e8bb9
11 changed files with 72 additions and 48 deletions

View File

@ -2612,16 +2612,15 @@ TABLE_COUNTER_TYPE Query_cache::is_cacheable(THD *thd, uint32 query_len,
table_alias_charset used here because it depends of
lower_case_table_names variable
*/
if (tables_used->table->db_type == DB_TYPE_MRG_ISAM ||
tables_used->table->tmp_table != NO_TMP_TABLE ||
if (tables_used->table->tmp_table != NO_TMP_TABLE ||
(*tables_type & HA_CACHE_TBL_NOCACHE) ||
(tables_used->db_length == 5 &&
my_strnncoll(table_alias_charset, (uchar*)tables_used->db, 6,
(uchar*)"mysql",6) == 0))
{
DBUG_PRINT("qcache",
("select not cacheable: used MRG_ISAM, temporary, \
system or other non-cacheable table(s)"));
("select not cacheable: temporary, system or \
other non-cacheable table(s)"));
DBUG_RETURN(0);
}
if (tables_used->table->db_type == DB_TYPE_MRG_MYISAM)