Commit graph

65210 commits

Author SHA1 Message Date
Sergei Golubchik
8e7ebfbce8 5.2 merge 2010-10-28 19:04:23 +02:00
unknown
3bdede3c67 Fixed LP bug #613009
The set of Ordered keys of a rowid merge engine is dense. Thus when
we decide not to create a key for a column that has only NULLs, this
column shouldn't be counted.

Notice that the caller has already precomputed the correct total
number of keys that should be created.
2010-10-27 16:28:19 +03:00
unknown
3b11e4f834 Fixed LP bug #609121
Post-review fix - avoid re-evaluation of the having clause
when it evaluates to true.
2010-10-27 12:35:15 +03:00
unknown
a09e5f504a Type of the variables fixed.
sql/sql_expression_cache.cc:
  Type of the variable fixed.
sql/sql_expression_cache.h:
  Type of the variable fixed.
2010-10-27 06:03:59 +03:00
unknown
b4d5f30a86 Fixed LP bug #601156
The cause for this bug is that MariaDB 5.3 still processes derived tables
(subqueries in the FROM clause) by fully executing them during the parse
phase. This will be remedied by MWL#106 once merged into the main 5.3.

The assert statement is triggered when MATERIALIZATION is ON for EXPLAIN
EXTENDED for derived tables with an IN subquery as follows:
- mysql_parse calls JOIN::exec for the derived table as if it is regular
  execution (not explain).
- When materialization is ON, this call goes all the way to
  subselect_hash_sj_engine::exec, which creates a partial match engine
  because of NULL presence.
- In order to proceed with normal execution, the hash_sj engine substitutes
  itself with the created partial match engine.
- After the parse phase it turns out that this execution was part of
  EXPLAIN EXTENDED, which in turn calls
  Item_cond::print -> ... -> Item_subselect::print,
  which calls engine->print().
  Since subselect_hash_sj_engine::exec substituted the current
  Item_subselect engine with a  partial match engine, eventually we call
  its ::print() method. However the partial match engines are designed only
  for execution, hence there is no implementation of this print() method.

The fix temporarily removes the assert, until this code is merged with
MWL#106.
2010-10-26 14:55:42 +03:00
Sergei Golubchik
7c24e8d54d fixes for windows 2010-10-26 07:37:44 +02:00
unknown
db4738a18a Fixed LP bug #609121
The bug was a result of missing logic to handle the case
when there are 'expensive' predicates that are not evaluated
during constant table optimization. Such is the case for
the IN predicate, which is considered expensive if it is
computed via materialization. In general this bug can be
triggered with any expensive predicate instead of IN.

When FALSE constant predicates are not evaluated during constant
optimization, the execution path changes so that instead of
setting JOIN::zero_result_cause after make_join_select, and
exiting JOIN::exec via the call to return_zero_rows(), execution
ends in JOIN::exec in the branch:
if (join->tables == join->const_tables)
{
  ...
  else if (join->send_row_on_empty_set())
     ...
     rc= join->result->send_data(*columns_list);
}
Unlike return_zero_rows(), this branch didn't evaluate the
having clause of the query.

The patch adds a call to evaluate the HAVING clause of a query even
when all tables are constant, because even for an empty result set
some aggregate functions may produce a NULL value.
2010-10-25 23:48:43 +03:00
Sergei Golubchik
04a4b43346 merge with 5.1 2010-10-25 15:21:16 +02:00
Sergei Golubchik
37a78d6868 forgotten option handled 2010-10-25 09:04:40 +02:00
Sergei Golubchik
62d31f675d bugfix: engine defined table options were not showing up in INFORMATION_SCHEMA.TABLES.CREATE_OPTIONS 2010-10-24 20:47:01 +02:00
Sergei Golubchik
60c15066db better fix for MySQL bugs
BUG#26447 prefer a clustered key for an index scan, as secondary index is always slower
  ... which was fixed to cause
BUG#35850 queries take 50% longer
  ... and was reverted

and

BUG#39653 prefer a secondary index for an index scan, as clustered key is always slower
  ... which was fixed to cause
BUG#55656 mysqldump takes six days instead of half an hour
  ... and was amended with a special case workaround


sql/opt_range.cc:
  move get_index_only_read_time() into the handler class
sql/sql_select.cc:
  use cost not an index length when choosing a cheaper index
2010-10-20 12:58:43 +02:00
Sergei Golubchik
b56086cbbb build mysqld.exe with federatedx not federated 2010-10-20 09:17:17 +02:00
Sergei Golubchik
36fe044174 updated test results 2010-10-20 08:40:46 +02:00
Sergei Golubchik
da0603b690 fixed a bad merge 2010-10-19 18:11:30 +02:00
unknown
462d14d42b Merge XtraDB from Percona-server-5.1.51-12 into MariaDB. 2010-10-19 17:03:26 +02:00
Sergei Golubchik
745cc74c33 5.1.51 merge 2010-10-19 15:58:35 +02:00
unknown
c6ccd3f346 Merge XtraDB from Percona-server-5.1.51-12 into MariaDB. 2010-10-19 14:16:15 +02:00
unknown
4f907dc75b Updated with changes from lp:percona-server/release-5.1.51-12 as of October 19, 2010 2010-10-19 12:27:31 +02:00
Sergey Petrunya
851b2c3a02 Make innodb_plugin testsuite not to use IndexConditionPushdown or DS-MRR
(Otherwise we get different EXPLAINs for xtradb and innodb plugin).
2010-10-18 16:23:05 +04:00
Sergey Petrunya
6765cc3017 # No BUG#, a case brought from 5.2's innodb_mysql_lock.test
- Fix a crash in nested semi-join subquery processing
2010-10-18 12:55:26 +04:00
Sergey Petrunya
f75fd03ea9 MariaDB 5.2 -> 5.2 post-merge fixes:
- When building multiple-equalities for HAVING, don't set JOIN::cond_equal, set
  join_having_equal instead. Setting JOIN::cond_equal based on HAVING makes 
  equality propagation data self-inconsistent
2010-10-17 18:05:29 +04:00
Igor Babaev
c27b3902a3 Merge from mariadb-5.1 (through mariadb-5.2) 2010-10-14 16:01:40 -07:00
Igor Babaev
3c9dcf9da7 Merge 2010-10-14 15:46:20 -07:00
Igor Babaev
f0c6576b85 Reverted the MySQL fix for bug 51242 that was rejected once for mariadb-5.1.48
and mistakingly pulled in back for maria-5.1.50.
2010-10-14 14:47:38 -07:00
Igor Babaev
c9150472b0 Turned off the test case for bug 49322 when join_cache_level=6.
It should be turned on back when the tree for MWL#128 is merged
into the main 5.3 merge.
2010-10-14 11:45:46 -07:00
Sergey Petrunya
aad8a2980d Merge-in Sanja's post-merge fix 2010-10-14 01:50:16 +04:00
Sergey Petrunya
508e75c259 Merge MariaDB 5.2 -> MariaDB 5.3
- post-merge fixes
2010-10-14 01:48:03 +04:00
Michael Widenius
01672cc026 Fixes for bugs found by running test case for LP#608369 "Page: 1 Found wrong page type 0' on CHECK TABLE EXTENDED"
Fixed overflow when using long --debug=xxxxxx line.
Fixed that "mysqld --disable-debug --debug" works.
Ensure that MariaDB doesn't start if the Aria engine didn't start and we are using Aria for temporary tables.
More DBUG_ASSERT() and more info in debug log.


dbug/dbug.c:
  Fixed crash in mysqld caused by an overflow when using long --debug=xxxxxx line
sql/mysqld.cc:
  Fixed that "mysqld --disable-debug --debug" works.
  Documented myisam-recover=OFF option
storage/maria/ha_maria.cc:
  Ensure that MariaDB doesn't start if the Aria engine didn't start and we are using Aria for temporary tables.
storage/maria/ma_delete.c:
  Added missing write of changed key on node page.
  This could fix LP#608369 "Page: 1 Found wrong page type 0' on CHECK TABLE EXTENDED"
  Changed so that we log page numbers (not positions)
  Added KEY_OP_DEBUG_2 log entry to get more debug information into the log
storage/maria/ma_key_recover.c:
  Changed so that we log page numbers (not positions)
  In case of wrong page information after index_redo, dump pages to debug log
storage/maria/ma_loghandler.h:
  Added KEY_OP_DEBUG_2
storage/maria/ma_search.c:
  Changed so that we log page numbers (not positions)
storage/maria/ma_write.c:
  Changed so that we log page numbers (not positions)
2010-10-13 18:15:43 +03:00
Sergey Petrunya
49ae85afd5 More post-merge test result updates (2). 2010-10-13 16:26:58 +04:00
unknown
23de53f538 version of mysqld changed. 2010-10-13 14:29:38 +03:00
Sergey Petrunya
4a204d1ccb More post-merge test result updates 2010-10-12 23:11:08 +03:00
Sergey Petrunya
7b95a6f745 Post-merge test result fixes part#1 (checked) 2010-10-12 22:48:49 +03:00
Michael Widenius
236141d4f6 Use less memory on stack in sql_parse.cc and in repair/check for MyISAM & Aria
sql/sql_parse.cc:
  Make some not commonly used functions with big local variables to separate functions to make default stack usage smaller.
  Decrease size of db_buff[] (Was bigger than needed)
  Allocate current_global_status_var with malloc().
storage/maria/ha_maria.cc:
  Don't allocate HA_CHECK on stack (it's > 100K)
storage/maria/ma_check.c:
  Removed duplicated code
2010-10-12 20:40:46 +03:00
Sergey Petrunya
51294f5948 Remove garbage comments 2010-10-10 22:43:19 +03:00
Sergey Petrunya
a285ce3e58 Post-merge fixes part 1 2010-10-10 17:38:17 +03:00
Sergey Petrunya
72dd7575cd Merge 5.2->5.3
- Re-commit Monty's merge, partially fixed by Igor and SergeyP, 
  but still broken
2010-10-10 17:18:11 +03:00
Michael Widenius
2f85f78db4 Fixes some bug in Aria recovery:
- _ma_apply_redo_index: Assertion `page_offset != 0 && page_offset + length <= page_length' failed
Fixes one bug and one log assert when inserting rows:
- _ma_log_split: Assertion `org_length <= info->s->max_index_block_size' failed
- write_block_record:  Assertion '(data_length < MAX_TAIL_SIZE(block_size)' failed
Mark in recovery log where _ma_log_add() calls was done (for better debugging).

storage/maria/ma_bitmap.c:
  Don't write a head part on a tail page. (Caused an assert in write_block_record())
storage/maria/ma_delete.c:
  Mark in recovery log where _ma_log_add() calls was done
storage/maria/ma_key_recover.c:
  Mark in recovery log where _ma_log_add() calls was done
  Fixed not handled logging case for overfull index pages.
storage/maria/ma_key_recover.h:
  Mark in recovery log where _ma_log_add() calls was done
storage/maria/ma_loghandler.h:
  Mark in recovery log where _ma_log_add() calls was done
storage/maria/ma_rt_key.c:
  Mark in recovery log where _ma_log_add() calls was done
storage/maria/ma_write.c:
  Mark in recovery log where _ma_log_add() calls was done.
  Fixed wrong call to _ma_split_page() for overfull pages
2010-10-07 12:51:34 +03:00
Michael Widenius
00a2f36bbf Automatic merge with 5.1 2010-10-06 13:11:06 +03:00
Michael Widenius
ab428381ab Automatic merge 2010-10-06 11:49:17 +03:00
Michael Widenius
9f35e98a4b Fix for Bug#43152 "Assertion `bitmap_is_set_all(&table->s->all_set)' failed in handler::ha_reset"
The reason for this was that some bitmap test functions changed the bitmap, which caused problems when the same bitmap was used by multiple threads.


include/my_bitmap.h:
  Changed order of elements to get better alignment.
mysys/my_bitmap.c:
  Change bitmap test functions to not modify the bitmap.
  Fixed compiler errors in test_bitmap
2010-10-06 11:45:30 +03:00
unknown
5f3c0f568e Don't use deprecated --skip-locking option in example config files. 2010-10-03 17:04:46 +02:00
Sergei Golubchik
7d66e48d12 fixes for gcc 4.5 2010-09-28 18:47:23 +02:00
Michael Widenius
ca672e6b61 Automatic merge 2010-10-01 18:27:32 +03:00
Sergei Golubchik
d9187582b1 merge 2010-09-28 17:02:10 +02:00
Michael Widenius
8b833274ca Merge with 1.0.11-7 Pre-GA - 2010-09-09
Updated results for failing test cases (In all cases the estimated number of rows was different)
2010-09-28 16:05:45 +03:00
Michael Widenius
f715c9c205 Move maria_upgrade() out of maria_init() as in standalone programs maria_data_root is not set.
Fixed failing pbxt test


include/maria.h:
  Added maria_upgrade()
mysql-test/suite/pbxt/r/select.result:
  Don't print number of rows as this is not constant over different runs
mysql-test/suite/pbxt/t/select.test:
  Don't print number of rows as this is not constant over different runs
storage/maria/ha_maria.cc:
  Run maria_upgrade() before maria_init()
storage/maria/ma_init.c:
  Move maria_upgrade() out of maria_init() as in standalone programs maria_data_root is not set.
2010-09-28 01:18:06 +03:00
Michael Widenius
0df1789285 Rename control file and log files from maria_xxx to aria_xxx when upgrading from MariaDB 5.1
Fix cleanup to really remove 'aria_log' files. Fixes failures in maria unit tests on some platforms.
Fixed compiler warnings

include/mysql/plugin.h:
  Changed def_val back to const, to remove compiler warnings.
storage/maria/ma_init.c:
  Rename control file and log files from maria_xxx to aria_xxx when upgrading from MariaDB 5.1
storage/maria/unittest/ma_maria_log_cleanup.c:
  Fix cleanup to really remove 'aria_log' files. Fixes failures in maria unit tests on some platforms.
2010-09-27 21:48:10 +03:00
Igor Babaev
6b1c78e7f9 Merge 2010-09-26 15:22:57 -07:00
Igor Babaev
716e84164a Fixed bug #57024.
The condition over the outer tables now are extracted from
the on condition of any outer join. This condition is
saved in a special field of the JOIN_TAB structure for
the first inner table of the outer join. The condition
is checked before the first inner table is accessed. If 
it turns out to be false the table is not accessed at all
and a null complemented row is generated immediately.
2010-09-26 09:12:34 -07:00
Igor Babaev
d91422f03a Merge 2010-09-25 09:18:38 -07:00