1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-22 17:44:29 +03:00
Commit Graph

60711 Commits

Author SHA1 Message Date
Sergey Petrunya
fe7bfbe5c2 Update test results for the previous push 2010-06-10 23:10:51 +04:00
Sergey Petrunya
a82ff6830d subselect_sj_mat.test: fix test failure on some platforms because of race
of two query plans with identical costs.
2010-06-10 22:20:56 +04:00
Sergey Petrunya
b33826e555 MWL#90, code cleanup
- Unify EXPLAIN printout for <subqueryN> tables with regular tables
- Update test results for <subqueryN> tables:
  s/unique_key/distinct_key/g
  s/1.0/100.0/ for "filtered" column
2010-06-09 18:43:52 +04:00
Sergey Petrunya
b8fb052126 MWL#90, Code cleanup:
- Fix test failures: do not use make_cond_after_sjm()'s result in case
  of merged SJ-Materialization lookup
- Update test results
2010-06-09 16:50:12 +04:00
Sergey Petrunya
f49ea935e8 Fix BB failure, crash in join_nested.test 2010-06-09 15:55:02 +04:00
Sergey Petrunya
ffb66ec055 BB fixes: update test results (checked; incl. one previously incorrect query result) 2010-06-08 22:23:27 +04:00
Sergey Petrunya
26c3dc455b MWL#90: Subqueries: Inside-out execution for non-semijoin materialized subqueries that are AND-parts of the WHERE
- Address feedback
- Code cleanup (not finished)
2010-06-08 18:22:31 +04:00
Sergey Petrunya
559dafdf60 Update pbxt testsuite results with latest subquery changes. 2010-06-06 16:56:54 +04:00
Sergey Petrunya
ef27f6c339 Buildbot fixes:
- Make join buffering take into account that join_tabs are not a 
  single linear array anymore
- Remove outer join + SJ-Materialization crash (OJ+SJ the processing
  is most likely still incorrect)
2010-06-05 22:43:27 +04:00
Sergey Petrunya
6c351cd810 More fixes 2010-06-05 13:49:43 +04:00
Sergey Petrunya
49568aefe7 MWL#90: Code cleanup: Unification of merged and non-merged SJM nests processing
- Make join buffering code to take into account that JOIN_TABs are not a 
  linear array anymore.
2010-06-05 12:37:16 +04:00
Sergey Petrunya
dad93f2c82 MWL#90, code movearound to unify merged and non-merged semi-join materialization processing
- First code, needs cleanup.
2010-06-04 17:40:57 +04:00
Sergey Petrunya
0cc3724697 MWL#90: Subqueries: Inside-out execution for non-semijoin materialized subqueries that are AND-parts of the WHERE
- Change "SUBQUERY#n" to "<subquery{n}>" in EXPLAIN output. We need to it to be
  lowercase so that EXPLAIN results do not differ in case between systems with
  case-sensitive and case-insensitive filesystems.
- Remove garbage comments, add better comments.
2010-05-27 16:14:25 +04:00
Sergey Petrunya
52faa44966 Remove buildbot compilation warnings/errors on centos5-amd64-minimal 2010-05-25 19:17:09 +04:00
Sergey Petrunya
a15e342d0b MWL#90: Subqueries: Inside-out execution for non-semijoin materialized subqueries that are AND-parts of the WHERE
- Remove JOIN::all_tables as it is not useful.
- Better wording in comments
2010-05-25 17:13:19 +04:00
Sergey Petrunya
62bf7f6124 MWL#90: Subqueries: Inside-out execution for non-semijoin materialized subqueries that are AND-parts of the WHERE
- Code cleanu.
- Make MWL#90 code require @@optimizer_switch='semijoin=on'
- Update test results with the above
- Fork subselect_mat.test - we want to check both semi-join materialization, 
  which now has broader scope and non-semijoin materialization.
2010-05-25 10:32:15 +04:00
Sergey Petrunya
5a53be655c MWL#90: Subqueries: Inside-out execution for non-semijoin materialized subqueries that are AND-parts of the WHERE
- Merge into 5.3-subqueries
2010-05-24 15:24:20 +04:00
Sergey Petrunya
61864021ca Code cleanup, remove junk comments 2010-05-24 15:17:38 +04:00
Sergey Petrunya
3f595889d3 Subqueries: Inside-out execution for non-semijoin materialized subqueries that are AND-parts of the WHERE
- Code cleanup
- Query plan change is due to s/ha_rows JOIN_TAB::read_time/double JOIN_TAB::read_time/
2010-05-23 23:13:18 +04:00
Sergey Petrunya
ed8aa9868e - Make subselect_sj2 testcase more stable
- Better comments
2010-05-11 11:53:40 +04:00
Sergey Petrunya
b9688830ec Subquery optimizations:
- Better comments
- Use more appropriate return types for functions
- Provide handling where it was missing.
2010-05-10 19:28:19 +04:00
Sergey Petrunya
64d505d42f Fix a crash when running subselect.test with --debug option: use
correct number of tables (when we're optimizing a materializable semi-join 
nest, we're considering only tables from within that nest).
2010-05-03 19:46:06 +04:00
Sergey Petrunya
b2c57cedbf Code cleanup in subquery optimizations 2010-04-25 12:23:52 +04:00
Sergey Petrunya
30bac79806 Always refer to materialized table as "SUBSELECT#%d" where %d is select number
- for Item-based materialization, it was "materialized subselect"
- for SJ-Materialization it was "subquery%d"
2010-04-07 01:29:09 +04:00
unknown
bdb00d844a Fixed an error in the creation of REF access method for materialized
semi-join, where the the REF buffer format was mistaken to be in
record format instead of key format. The error was that the null
byte for all fields of the record was in the front of the buffer,
and not before each field data.
2010-04-06 22:56:20 +03:00
Sergey Petrunya
f46c5de011 MWL#90: Subqueries: Inside-out execution for non-semijoin materialized
subqueries that are AND-parts of the WHERE
- Make test results handle same-cost QEP races
2010-04-06 14:35:33 +04:00
Sergey Petrunya
7e5b19e1b7 MWL#90: Subqueries: Inside-out execution for non-semijoin materialized
subqueries that are AND-parts of the WHERE
- Update test results
2010-04-06 13:17:10 +04:00
Sergey Petrunya
9ae01f168d MWL#90: Subqueries: Inside-out execution for non-semijoin materialized
subqueries that are AND-parts of the WHERE
- Update test results (checked, we get 0 because the subquery is actually
  evaluated by the EXPLAIN).
2010-04-06 12:34:01 +04:00
Sergey Petrunya
cef9a6bd13 MWL#90: Subqueries: Inside-out execution for
non-semijoin materialized subqueries that are AND-parts of the WHERE
- Update test results.
2010-04-06 12:10:58 +04:00
unknown
3b05fc78e5 Fixed a problem where the temp table of a materialized subquery
was not cleaned up between PS re-executions. The reason was two-fold:
- a merge with mysql-6.0 missed select_union::cleanup() that should
  have cleaned up the temp table, and
- the subclass of select_union used by materialization didn't call
  the base class cleanup() method.
2010-04-06 00:15:15 +03:00
Sergey Petrunya
2775f80f7d MWL#90: Subqueries: Inside-out execution for non-semijoin materialized
subqueries that are AND-parts of the WHERE
- First code (needs cleanup).
2010-04-06 00:16:45 +04:00
unknown
3fc85580c9 MWL#68: Subquery optimization: Efficient NOT IN execution with NULLs
Fixed an error where the priority queue for the indexes used for partial
matching was not emptied after each execution in all cases.
2010-04-02 17:27:06 +03:00
Sergey Petrunya
cb325eb2b2 Fix buildbot compile failure on hardy-amd64-makedist:
invoke proper Item_int constructor.
2010-03-30 00:09:40 +04:00
Sergey Petrunya
8a06a7e3a7 MWL#110: Make EXPLAIN always show materialization separately
- Add Item_in_subselect::get_identifier() that returns subquery's id
- Change select_describe() to produce output in new format
- Update test results (checked)
2010-03-29 18:04:35 +04:00
Sergey Petrunya
218310b162 Disable subselect_notembedded.test due to LPBUG#545137 2010-03-23 17:57:50 +03:00
Sergey Petrunya
3be133eb4d Make test result stable (had different result orderings, on some platforms, both
of which satisfied the ORDER BY clause).
2010-03-21 23:06:04 +03:00
Sergey Petrunya
6777a11b24 Fix merge error in pbxt suite test results 2010-03-21 22:50:33 +03:00
Sergey Petrunya
05433dc58c Fix union.test failure in buildbot: alternate fix for BUG#49734
mysql-test/r/union.result:
  Update test results (checked, it should be "DEPENDENT SUBQUERY" as it will actually run subquery's join multiple times. There is no reason to do that but executor will still do it)
2010-03-20 19:59:30 +03:00
Sergey Petrunya
e58b56a2b6 Merge 2010-03-20 15:08:44 +03:00
Sergey Petrunya
7df026676b Merge MariaDB-5.2 -> MariaDB 5.3 2010-03-20 15:01:47 +03:00
unknown
e0642712f5 MWL#68: Subquery optimization: Efficient NOT IN execution with NULLs
Fix for the PBXT copy of subselect.test.
2010-03-16 00:41:30 +02:00
unknown
f59d1dcf0a Merge in MWL#68: Subquery optimization: Efficient NOT IN execution with NULLs 2010-03-15 21:52:58 +02:00
Sergei Golubchik
f09ca00e08 merged 2010-03-15 12:51:23 +01:00
Sergey Petrunya
816a579f6f Merge 2010-03-15 09:35:35 +03:00
Sergey Petrunya
47d0cf2929 Apply fix by Roy Lyseng:
Bug#48623: Multiple subqueries are optimized incorrectly
      
The function setup_semijoin_dups_elimination() has a major loop that
goes through every table in the JOIN object. Usually, there is a normal
"plus one" increment in the for loop that implements this, but each semijoin
nest is treated as one entity and there is another increment that skips past
the semijoin nest to the next table in the JOIN object. However, when
combining these two increments, the next joined table is skipped, and if that
happens to be the start of another semijoin nest, the correct processing
for that nest will not be carried out.

mysql-test/r/subselect_sj.result:
  Added test results for bug#48623
mysql-test/r/subselect_sj_jcl6.result:
  Added test results for bug#48623
mysql-test/t/subselect_sj.test:
  Added test case for bug#48623
sql/opt_subselect.cc:
  Omitted the "plus one" increment in the for loop, added "plus one"
  in the remaining switch case, fixed coding style issue in remaining
  increment operations.
2010-03-15 09:32:54 +03:00
Sergey Petrunya
85c8bce729 Update test results for the previous push 2010-03-15 09:06:59 +03:00
Sergey Petrunya
5c295e521a Merge 2010-03-14 21:25:43 +03:00
Sergey Petrunya
c5a7bea5ea Fix support-files/build-tags to work with recent versions of bazaar. 2010-03-14 20:55:49 +03:00
Sergey Petrunya
77e66c6985 BUG#43768: Prepared query with nested subqueries core dumps on second execution
Fix two problems:
1. Let optimize_semijoin_nests() reset sj_nest->sjmat_info irrespectively  
   of value of optimizer_flag. We need this in case somebody has turned optimization
   off between reexecutions of the same statement.

2. Do not pull out constant tables out of semi-join nests. The problem is that pullout 
   operation is not undoable, and if a table is constant because it is 1/0-row table it 
   may cease to be constant on the next execution. Note that tables that are constant
   because of possible eq_ref(const) access will still be pulled out as they are
   considered functionally-dependent.
2010-03-14 20:54:12 +03:00
Sergey Petrunya
ea982e336d Apply fix by oystein.grovlen@sun.com 2010-03-12:
Bug#48213 Materialized subselect crashes if using GEOMETRY type

The problem occurred because during semi-join a materialized table
was created which contained a GEOMETRY column, which is a specialized
BLOB column.  This caused an segmentation fault because such tables will
have extra columns, and the semi-join code was not prepared for that.

The solution is to disable materialization when Blob/Geometry columns would 
need to be materialized.  Blob columns cannot be used for index look-up 
anyway, so it does not makes sense to use materialization.

This fix implies that it is detected earlier that subquery materialization
can not be used.  The result of that is that in->exist optimization may
be performed for such queries.  Hence, extended query plans for such
queries had to be updated.

mysql-test/r/subselect_mat.result:
  Update extended query plan for subqueries that cannot use materialization
  due to Blobs.
mysql-test/r/subselect_sj.result:
  Updated result file.
mysql-test/r/subselect_sj_jcl6.result:
  Update result file.
mysql-test/t/subselect_sj.test:
  Add test case for Bug#48213 that verifies that semi-join works when subquery select list contain Blob columns.  Also verify that materialization is not
  used.
sql/opt_subselect.cc:
  Disable materialization for semi-join/subqueries when the subquery select list
  contain Blob columns.
2010-03-14 00:11:06 +03:00