Commit graph

59217 commits

Author SHA1 Message Date
Sergey Petrunya
57c199d8d1 Merge maria-5.1 -> maria-5.1-table-elimination 2009-08-14 01:12:12 +04:00
Sergey Petrunya
fef409cb9e MWL#17: Table elimination
- More function renames, added comments
2009-08-14 00:44:52 +04:00
Joerg Bruehe
3d4c5ed358 Upmerge 5.0-build into 5.1-build
This involves merge changesets and backports into QSP builds only,
does not cause a contents change in 5.1
2009-08-13 22:33:00 +02:00
Joerg Bruehe
c143b41698 Merge main 5.1 into 5.1-build 2009-08-13 22:25:58 +02:00
Sergey Petrunya
a28390364b MWL#17: Table elimination
- Better comments

sql/sql_select.cc:
  MWL#17: Table elimination
  - Fix buildbot failure: do set correct value to nested_join::n_tables
2009-08-13 23:10:53 +04:00
Sergey Petrunya
536754c8c6 MWL#17: Table elimination
Fixes after post-review fixes:
- Don't search for tables in JOIN_TAB array. it's not initialized yet.
  use select_lex->leaf_tables instead.
2009-08-13 13:36:13 +04:00
Sergey Petrunya
b3f18c8866 MWL#17: Table elimination
- Post-postreview changes fix: Do set NESTED_JOIN::n_tables to number of 
  tables left after elimination.
2009-08-13 13:24:02 +04:00
Sergey Petrunya
40bb97b525 MWL#17: Table elimination
- When making inferences "field is bound" -> "key is bound", do check 
  that the field is part of the key
2009-08-13 04:01:43 +04:00
Sergey Petrunya
b032c7d833 MWL#17: Table elimination
- Continue addressing review feedback: remove "unusable KEYUSEs" 
  extension as it is no longer needed.

sql/item.h:
  MWL#17: Table elimination
  - Code cleanup
sql/opt_table_elimination.cc:
  MWL#17: Table elimination
  - Code cleanup
2009-08-13 03:43:02 +04:00
Sergey Petrunya
854bb82bd8 MWL#17: Table elimination
Address review feedback: 
- Change from Wave-based approach (a-la const table detection) to 
  building and walking functional dependency graph.
- Change from piggy-backing on ref-access code and KEYUSE structures
  to using our own expression analyzer.


sql/item.cc:
  MWL#17: Table elimination
  - Move from C-ish Field_processor_info to C++ ish and generic Field_enumerator
sql/item.h:
  MWL#17: Table elimination
  - Move from C-ish Field_processor_info to C++ ish and generic Field_enumerator
sql/sql_bitmap.h:
  MWL#17: Table elimination
  - Backport of Table_map_iterator from 6.0
2009-08-13 02:34:21 +04:00
Jonathan Perkin
00eec234ee Apply build fix 2009-08-12 22:06:44 +02:00
Alexander Nozdrin
09d042249a Ignore auto-generated file: libmysqld/examples/mysqltest.cc 2009-08-12 23:45:01 +04:00
Alexander Nozdrin
b05eeab593 Fix 5.1 build error. 2009-08-12 23:43:20 +04:00
Daniel Fischer
b50f05e67a Create separate vardirs during collections test runs. 2009-08-12 17:10:15 +02:00
unknown
606c7e0d12 Raise version number after cloning 5.1.38 2009-08-12 16:41:07 +02:00
Sergey Vojtovich
3adae7f2cf Disable main.index_merge_innodb with InnoDB plugin. The test case is
not ready to run with innoplug-1.0.4.
2009-08-12 17:46:12 +05:00
Joerg Bruehe
adaa961a3f Merge main 5.0 with 5.0-build,
automerge didn't handle this correctly,
so test "view" was corrected manually.
2009-08-11 18:59:20 +02:00
Davi Arnaut
54958e8851 Merge from mysql-5.0-bugteam. 2009-08-11 13:22:28 -03:00
Davi Arnaut
d33a57a694 Fix tree name. 2009-08-11 13:14:27 -03:00
Joerg Bruehe
b43fb3e915 Correct a merge error that happened during a backport for 5.0.82sp1:
The test for the 45806 entry in our bug DB got applied twice,
in different places for the "view.test" and "view.result" files.

The fix is to simply remove the erroneous insertion.
2009-08-11 18:13:53 +02:00
Davi Arnaut
81b5dd8285 Update test case result due to mis-merge. 2009-08-11 13:13:06 -03:00
Vladislav Vaintroub
6e7de781d7 merge fix to define __NT__ on Windows 2009-08-11 17:47:33 +02:00
Vladislav Vaintroub
171b5d52af Always compile with __NT__ on windows. in 5.1 itthis #define is
widely used, in replication (delete_allow_opened) and for named
pipe support. We do not support Win9x anymore.
2009-08-11 17:44:13 +02:00
Davi Arnaut
b928a3295c Merge from mysql-5.1-bugteam. 2009-08-11 11:29:07 -03:00
Davi Arnaut
99734bed40 Update README. 2009-08-11 11:25:40 -03:00
Sergey Vojtovich
24e418df69 Merge mysql-5.1-innodb_plugin to mysql-5.1. 2009-08-11 18:05:25 +05:00
unknown
a2daa87980 Raise version number after cloning 5.0.85 2009-08-11 07:16:52 +02:00
Davi Arnaut
a51887143a Merge from mysql-5.0-bugteam. 2009-08-10 19:47:28 -03:00
Aleksandr Kuzminsky
56bca79f6a sync with rev.94 2009-08-10 22:36:10 +00:00
unknown
0a7219d50c Merge 2009-08-10 20:53:26 +02:00
Davi Arnaut
19b325499e Manual merge. 2009-08-10 15:46:20 -03:00
Martin Hansson
527e5fd3a2 Merge 2009-08-10 16:08:51 +02:00
Aleksandr Kuzminsky
cbda445b47 sync with rev.93 2009-08-09 07:04:58 +00:00
Davi Arnaut
c7163c630a Bug#45010: invalid memory reads during parsing some strange statements
The problem is that the lexer could inadvertently skip over the
end of a query being parsed if it encountered a malformed multibyte
character. A specially crated query string could cause the lexer
to jump up to six bytes past the end of the query buffer. Another
problem was that the laxer could use unfiltered user input as
a signed array index for the parser maps (having upper and lower
bounds 0 and 256 respectively).

The solution is to ensure that the lexer only skips over well-formed
multibyte characters and that the index value of the parser maps
is always a unsigned value.

mysql-test/r/ctype_recoding.result:
  Update test case result: ending backtick is not skipped over anymore.
sql/sql_lex.cc:
  Characters being analyzed must be unsigned as they can be
  used as indexes for the parser maps. Only skip over if the
  string is a valid multi-byte sequence.
tests/mysql_client_test.c:
  Add test case for Bug#45010
2009-08-07 23:32:01 -03:00
Martin Hansson
4c3917b6f8 Bug#46454: MySQL wrong index optimisation leads to incorrect result & crashes
Problem 1:
When the 'Using index' optimization is used, the optimizer may still - after
cost-based optimization - decide to use another index in order to avoid using
a temporary table. But when this happens, the flag to the storage engine to 
read index only (not table) was still set. Fixed by resetting the flag in the 
storage engine and TABLE structure in the above scenario, unless the new index
allows for the same optimization.
Problem 2:
When a 'ref' access method was employed by cost-based optimizer, (when the column
is non-NULLable), it was assumed that it needed no initialization if 'quick' access
methods (since they are based on range scan). When ORDER BY optimization overrides 
the decision, however, it expects to have this initialized and hence crashes. 
Fixed in 5.1 (was fixed in 6.0 already) by initializing 'quick' even when there's 
'ref' access. 

mysql-test/r/order_by.result:
  Bug#46454: Test result.
mysql-test/t/order_by.test:
  Bug#46454: Test case.
sql/sql_select.cc:
  Bug#46454: 
  Problem 1 fixed in make_join_select()
  Problem 2 fixed in test_if_skip_sort_order()
sql/table.h:
  Bug#46454: Added comment to field.
2009-08-07 13:51:40 +02:00
Ignacio Galarza
466847a0b8 Auto-merge 2009-08-06 10:54:53 -04:00
Ignacio Galarza
a791f20089 Bug #27535 Installing Windows service with --defaults-file option - quotation marks issues
- Remove offensive quotes.
2009-08-06 10:24:28 -04:00
Satya B
d933cb1669 Fix for BUG#45816 - assertion failure with index containing double
column on partitioned table
      
      
An assertion 'ASSERT_COULUMN_MARKED_FOR_READ' is failed if the query 
is executed with index containing double column on partitioned table.
The problem is that assertion expects all the fields which are read,
to be in the read_set.
      
In this query only the field 'a' is in the readset as the tables in
the query are joined by the field 'a' and so the assertion fails 
expecting other field 'b'.
      
Since the function cmp() is just comparison of two parameters passed, 
the assertion is not required.
      
Fixed by removing the assertion in the double fields comparision
function and also fixed the index initialization to do ordered
index scan with RW LOCK which ensures all the fields from a key are in
the read_set.
 

Note: this bug is not reproducible with other datatypes because the
      assertion doesn't exist in comparision function for other 
      datatypes.

mysql-test/r/partition.result:
  Testcase for BUG#45816
mysql-test/t/partition.test:
  Testcase for BUG#45816
sql/field.cc:
  Removed the assertion ASSERT_COLUMN_MARED_FOR_READ in Field_double::cmp()
  function
sql/ha_partition.cc:
  Fixed index_int() method to make it initialize the read_set properly if
  ordered index scan with RW lock is requested.
2009-08-06 17:01:26 +05:30
unknown
70cd97722d Bug #45630 rpl_trigger.test causes valgrind failures within nptl_pthread_exit_hack_handler
The server shutdown and start code triggered the valgrind failures 
within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64) 
in rpl_trigger.test file.

For fixing the bug, suppress valgrind failures within nptl_pthread_exit_hack_handler 
on Ubuntu 9.04, x86 (but not amd64). Because the server shutdown and start
code has been heavily used in mysql test set.

mysql-test/valgrind.supp:
  Add code for suppressing valgrind failures within nptl_pthread_exit_hack_handler on Ubuntu 9.04, x86 (but not amd64).
2009-08-06 11:07:09 +08:00
Jim Winstead
d58d9a5471 Merge approved bug fix 2009-08-05 13:30:14 -07:00
unknown
915a624cbc Add a new variant of dlclose() Valgrind suppressions to fix a Buildbot issue. 2009-08-05 09:21:37 +02:00
Davi Arnaut
c1433ba201 Merge from mysql-5.1-bugteam. 2009-08-04 17:43:17 -03:00
unknown
d5460e6864 Add a new variant of dlclose() Valgrind suppressions to fix a Buildbot issue. 2009-08-04 16:09:08 +02:00
Davi Arnaut
039a659608 Merge from mysql-5.0-bugteam. 2009-08-04 10:53:15 -03:00
Davi Arnaut
ba7d1a514b Merge from mysql-5.1. 2009-08-04 10:50:20 -03:00
Davi Arnaut
b113183df2 Merge from mysql-5.0. 2009-08-04 10:47:18 -03:00
Sergey Vojtovich
94efc1c6b0 Fixed build failure on Win.
Reverted lost in the merge line.
2009-08-04 13:02:48 +05:00
unknown
916f5e1ed8 Merge XtraDB 6 with latest MariaDB 5.1 2009-08-03 22:19:12 +02:00
unknown
cb6a28aaf9 Merge XtraDB 6 into MariaDB. 2009-08-03 22:09:53 +02:00
Alfranio Correia
1dbb3010e7 Post-fix for BUG#43264
Install procedure does not copy *.inc files located under the mysql-test/t directory.
Therefore, this patch moves the rpl_trigger.inc to the mysql-test/include directory.
2009-08-03 14:37:50 +01:00