Commit graph

27646 commits

Author SHA1 Message Date
Alexey Botchkov
b408b1bbbc Fix for bug Assertion `fabs(cur_isc->x-m_cur_intersection->x) + fabs(cur_isc->y-m_cur_intersection->y) < 0.000000000001' failed in Gcalc_scan_iterator::intersection_scan() in maria-5.3-gis
That assertion's check was too tight. Released it a bit.

per-file comments:
  mysql-test/r/gis-precise.result
        Fix for bug 
        test result updated.
  mysql-test/t/gis-precise.test
        Fix for bug 
        test case added.
  sql/gcalc_slicescan.cc
        Fix for bug 
        The DBUG_ASSERT check is too tight here.
2011-09-13 15:19:55 +05:00
Alexey Botchkov
3882c5d62c Fix for few similar bugs:
 Assertion `t->rp->type == Gcalc_function::shape_line' failed in Gcalc_operation_reducer::end_line in maria-5.3-gi
   Assertion `m_poly_borders->next' failed in Gcalc_operation_reducer::count_slice in maria-5.3-gis
   Assertion `!m_prev || m_prev->x != x || m_prev->y != y' failed in Gcalc_shape_transporter::int_add_point in maria-5.3-gis
   Third assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos
   Assertion `!sp0->is_bottom()' failed in Gcalc_scan_iterator::find_intersections in maria-5.3-gis

  They mostly was caused by inprecision of double arithmetic.
  Fixed by changes in how to handle multiple intersections to keep their order right.

  Also ST_DISTANCE(GEOM, EMPTY_GEOM) was defined as NULL.


per-file comments:
  mysql-test/r/gis-precise.result
   GIS bugfixes.
        test result updated.
  mysql-test/t/gis-precise.test
   GIS bugfixes.
        test cases added.
  sql/gcalc_slicescan.cc
   GIS bugfixes.
        If intersections are close, add order checks to cope with the
        double calcualtions imprecision.
  sql/gcalc_slicescan.h
   GIS bugfixes.
        n_row parameter added to intersection to check their order.
  sql/item_geofunc.cc
   GIS bugfixes.
        ST_DISTANCE(GEOM, EMPTY_GEOM) returns NULL.
2011-09-13 13:59:11 +05:00
Alexey Botchkov
a1315808b4 bug 839327 Crash in Gcalc_operation_reducer::end_couple with ST_UNION and MULTIPOLYGONs in 5.3-gis.
When edges of a polygon coicide, it can form an pike, that is turned into a line after an operation.
        In this case a former polygon point can be an end of a single line, and that case wasn't properly handled.


per-file comments:
  mysql-test/r/gis-precise.result
bug 839327 Crash in Gcalc_operation_reducer::end_couple with ST_UNION and MULTIPOLYGONs in 5.3-gis.
        test result updated.

  mysql-test/t/gis-precise.test
bug 839327 Crash in Gcalc_operation_reducer::end_couple with ST_UNION and MULTIPOLYGONs in 5.3-gis.
        test case added.

  sql/gcalc_tools.cc
bug 839327 Crash in Gcalc_operation_reducer::end_couple with ST_UNION and MULTIPOLYGONs in 5.3-gis.
        in the scev_two_ends case check if we have single line ending on a polygon node.
2011-09-05 09:49:46 +05:00
Alexey Botchkov
97eae1cd63 bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis.
wrong variable was used as a result of inattentive copypaste.

per-file comments:
  mysql-test/r/gis-precise.result
bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis.
     test result updated.

  mysql-test/t/gis-precise.test
bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis.
     test case added.

  sql/item_geofunc.cc
bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis.
     use 'ev' variable instead of the 'evpos'.
2011-09-05 09:13:58 +05:00
Alexey Botchkov
6dfa30e938 bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis.
Line loops weren't recognized when collect results.
    Fixed by checking if we got the same beginning point of the line.

per-file comments:
  mysql-test/r/gis-precise.result
bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis.
      test result updated.
  mysql-test/t/gis-precise.test
bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis.
      test case added.
  sql/gcalc_tools.cc
bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis.
      check if we get the beginning node of the linestring, then cut the loop.
2011-09-04 23:48:17 +05:00
Alexey Botchkov
eefff87652 bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
We didn't implement an empty geometry. And returning NULL instead of it is not
    quite correct. So here is the implementation of the empty value as GEOMETRYCOLLECTION().

per-file comments:
  mysql-test/r/gis-precise.result
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    test result updated.

  mysql-test/r/gis.result
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    test result updated.

  mysql-test/t/gis-precise.test
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    test case added.

  mysql-test/t/gis.test
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    test case added.

  sql/field.cc
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    store GEOMETRYCOLLECTION() properly.

  sql/gcalc_tools.cc
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    create the GEOMETRYCOLLECTION() for the empty result.

  sql/gstream.h
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    next_symbol() added.

  sql/spatial.cc
bug 801466 ST_INTERSECTION() returns invalid value on empty intersection in maria-5.3-gis.
    code modified to handle 0 geometries in the GEOMETRYCOLLECTION properly.
2011-09-04 19:11:04 +05:00
Alexey Botchkov
c937b7588f bugs and
tests added.

per-file comments:
  mysql-test/r/gis-precise.result
bugs  and 
        test result updated.

  mysql-test/t/gis-precise.test
bugs  and 
        test case added.
2011-09-02 09:38:17 +05:00
Alexey Botchkov
152f3c5e28 PostGIS-style 'same point' handling. 2011-09-01 11:44:56 +05:00
Alexey Botchkov
90c4df7a4a Fix for bug Memory corruption/valgrind warning/crash in move_hole() with ST_UNION.
Second smaller hole in the polygon got link to the bigger one as it's the
        outer ring. Fixed by specifying the outer ring explicitly.


per-file comments:
  mysql-test/r/gis-precise.result
Fix for bug  Memory corruption/valgrind warning/crash in move_hole() with ST_UNION.
        test result updated.

  mysql-test/t/gis-precise.test
Fix for bug  Memory corruption/valgrind warning/crash in move_hole() with ST_UNION.
        test case added.

  sql/gcalc_tools.cc
Fix for bug  Memory corruption/valgrind warning/crash in move_hole() with ST_UNION.
        specify the outer ring explicitly in the get_polygon_result parameter.

  sql/gcalc_tools.h
Fix for bug  Memory corruption/valgrind warning/crash in move_hole() with ST_UNION.
        add the outer ring as a parameter to the get_polygon_result.
2011-07-13 14:57:27 +05:00
Alexey Botchkov
e7c9f52fd9 Fix for bug Assertion `t1->result_range' in Gcalc_operation_reducer::end_couple.
We cannot cut a line from a polygon. So if the polygon fits the condition, and
        the intersection of a line and the polygon doesn't, we just skip the line.
        That rule wasn't applied if the line start was inside the polygon, which leaded
        to the assertion.

per-file comments:
  mysql-test/r/gis-precise.result
Fix for bug  Assertion `t1->result_range' in Gcalc_operation_reducer::end_couple.
        test result updated.
  mysql-test/t/gis-precise.test
Fix for bug  Assertion `t1->result_range' in Gcalc_operation_reducer::end_couple.
        test case added.
  sql/gcalc_tools.cc
Fix for bug  Assertion `t1->result_range' in Gcalc_operation_reducer::end_couple.
        Don't mark the line as a border if it's inside a polygon that fits the result condition.
2011-07-12 11:21:20 +05:00
Alexey Botchkov
67e937095c Fix for bug Second assertion in Gis_geometry_collection::init_from_opresult.
A polygon has no right to have holes that are actually points.
        So just skip them when we collect the result of an operation.

per-file comments:
  mysql-test/r/gis-precise.result
Fix for bug  Second assertion in Gis_geometry_collection::init_from_opresult.
        test result updated.
  mysql-test/t/gis-precise.test
Fix for bug  Second assertion in Gis_geometry_collection::init_from_opresult.
        test case added.
  sql/gcalc_tools.cc
Fix for bug  Second assertion in Gis_geometry_collection::init_from_opresult.
        Skip the point in the result if it's the hole inside a polygon.
2011-07-08 15:38:15 +05:00
Alexey Botchkov
e182ae27cd Fix for bug Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos.
Just typo-style mistake. Should be '||' instead of '&&'.

per-file comments:
  mysql-test/r/gis-precise.result
Fix for bug  Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos.
        test result updated.
  mysql-test/t/gis-precise.test
Fix for bug  Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos.
        test case added.
  sql/item_geofunc.cc
Fix for bug  Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos.
        condition fixed.
2011-07-07 21:30:51 +05:00
Alexey Botchkov
13f6e1119f Fix for bug Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
There were actually two bugs. One was when the line that intersects itself
        the intersection point treated as it doesn't belong to the line.
        Second when edges partly coincide, wrong result produced when we try to find their
        intersection.


per-file comments:
  mysql-test/r/gis-precise.result
Fix for bug  Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
        test result updated.

  mysql-test/t/gis-precise.test
Fix for bug  Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
        test case added.

  sql/gcalc_slicescan.cc
Fix for bug  Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
        skip the intersection if it just line that intersects itself.

  sql/gcalc_tools.cc
Fix for bug  Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
        if edges coincide, just pick the first coinciding poing as an intersection.
2011-07-07 16:59:45 +05:00
Alexey Botchkov
f3b850a7b5 bug Crash in wkb_get_double with ST_INTERSECTION.
That crash happened with the complicated topology of the result.
        If we found a hole in a polygon whose outside border was already
        found, we need to paste the hole right after it and respectively
        shift polygons after it. Also we need to update poly_position fields
        in these polygons. That last thing wasn't properly done that led to the
        crash.
        To fix that we keep the list of the found polygons and update the
        poly_positions that are bigger or equal to where we placed the next hole.


per-file comments:
  mysql-test/r/gis-precise.result
bug  Crash in wkb_get_double with ST_INTERSECTION.
        test result updated.
  mysql-test/t/gis-precise.test
bug  Crash in wkb_get_double with ST_INTERSECTION.
        test result added.
  sql/gcalc_tools.cc
bug  Crash in wkb_get_double with ST_INTERSECTION.
        keep the list of the found polygons and update their poly_position fields respectively.
  sql/gcalc_tools.h
bug  Crash in wkb_get_double with ST_INTERSECTION.
        Gcalc_result_receiver::move_hole interface changed.
2011-07-05 19:42:35 +05:00
Alexey Botchkov
7f55ea1211 fix for bug Assertion with ST_INTERSECTION on NULL values
The ::val_str() method has to return NULL if it calculated
        the null_value, not just set the related flag.

per-file comments:
  mysql-test/r/gis-precise.result
fix for bug  Assertion with ST_INTERSECTION on NULL values
        test result updated.
  mysql-test/t/gis-precise.test
fix for bug  Assertion with ST_INTERSECTION on NULL values
        test case added.
  sql/item_geofunc.cc
fix for bug  Assertion with ST_INTERSECTION on NULL values
        return NULL from the val_str if we get the null_value.
2011-07-04 16:17:34 +05:00
Alexey Botchkov
0e6c889c83 bug Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
Collections were treated mistakenly, so the counter for the final UNION operation
        received the wrong value.
        As a fix we implement Item_func_buffer::Transporter::start_collection() method,
        where we set the proper operation and the operand counter.
        start_poly() and start_line() were also modified to function correctly for the 
        polygon as a part of a collection.

per-file comments:
  mysql-test/r/gis-precise.result
bug  Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
        test result updated.

  mysql-test/t/gis-precise.test
bug  Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
        test case added.

  sql/item_geofunc.cc
bug  Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
        start_collection() implemented.

  sql/item_geofunc.h
bug  Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
        Item_func_buffer::Transporter::start_collection() defined.
2011-07-04 16:03:36 +05:00
Alexey Botchkov
a9a6597d59 fix for bug ST_BUFFER asserts if radius = 0.
Internal caclucations can't handle zero distance properly.
        As the ST_BUFFER(geom, 0) is in fact NOOP, we'll just return the
        'geom' as the result here.

per-file comments:
  mysql-test/r/gis-precise.result
fix for bug  ST_BUFFER asserts if radius = 0.
        test result updated.

  mysql-test/t/gis-precise.test
fix for bug  ST_BUFFER asserts if radius = 0.
        test case added.

  sql/item_geofunc.cc
fix for bug  ST_BUFFER asserts if radius = 0.
        return the first argument as the result of the ST_BUFFER, if
        the distance is 0 there.
2011-06-30 19:24:52 +05:00
Alexey Botchkov
4f49cdf8d3 fix for bug Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION
If the result contains a polygon with a hole, consequitive shapes weren't calculated
        properly, as the hole appeared as shape in the result, but actually it's a single shape
        with the surrounding polygon. It's more natural to use the size of the result as
        a border instead of the number of resulting shapes.

per-file comments:
  mysql-test/r/gis-precise.result
fix for bug  Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION 
        test result updated.
  mysql-test/t/gis-precise.test
fix for bug  Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION 
        test case added.
  sql/spatial.cc
fix for bug  Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION 
        check the data lenght instead of number of shapes.
  sql/spatial.h
fix for bug  Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION 
        check the data lenght instead of number of shapes.
2011-06-30 18:18:27 +05:00
Alexey Botchkov
b826c88841 gis-related tests fixes.
merging.
2011-06-20 00:21:41 +05:00
Sergey Petrunya
a0973ba22e Merge fix for BUG#778406. 2011-06-17 17:45:41 +04:00
Igor Babaev
078b59f5bc Merge of mwl into 5.3. 2011-06-15 21:48:38 -07:00
Sergey Petrunya
bce51cebcb BUG#778406: Crash in hp_movelink with Aria engine and subqueries
-In  do_sj_dups_weedout(), set nulls_ptr to point to NULL bytes (and not to length bytes) of the DuplicateWeedout column.
2011-06-15 18:37:01 +04:00
Sergey Petrunya
a9d73e093a BUG#761598: Update .result file 2011-06-15 17:40:18 +04:00
Sergey Petrunya
0d7fcf2380 BUG#598247: partition.test produces valgrind errors in 5.3-based branches
- Testcase
2011-06-15 16:02:32 +04:00
Sergey Petrunya
b0f423c5d3 BUG#761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3
- Testcase
2011-06-15 15:32:24 +04:00
Sergey Petrunya
ff3aa60d2b BUG#751439 Assertion `!table->file || table->file->inited == handler::NONE' failed with subquery
- Add testcase
2011-06-15 13:43:04 +04:00
Sergei Golubchik
54d0ec5732 fix for cast of negative numbers to datetime 2011-06-14 18:45:14 +02:00
Alexey Botchkov
9d51588e95 Precision spatial function tests added. 2011-06-14 11:20:48 +05:00
Sergei Golubchik
93a16a171c a couple of fixes for pbxt tests 2011-06-12 11:28:22 +02:00
unknown
54fcd3b88e Another attempt at fixing the rare random failures of rpl_corruption
The previous patch partially fixed things by waiting for the old dump thread
on the master to exit before injecting the DBUG error. This prevents the error
injection going to the wrong thread.

However, there is still the problem that the old dump thread may never exit,
causing the wait to time out. This happens if the dump thread manages to write
all events down the socket before the socket is closed by the slave. The
master dump thread only checks for slave gone when writing a new event, so if
no new events are generated, old dump threads can hang around forever on the
master after the slave disconnects.

Fix by explicitly killing the old dump thread if it is still around.
2011-06-14 15:21:54 +02:00
Michael Widenius
9f6f04360a Merge with Sergei's tree to get in latest microsecond patches and also fixes to innodb_plugin. 2011-06-11 12:04:42 +03:00
Michael Widenius
e5403ec95a Fixed build failures with maria3.test and widows build
mysql-test/suite/maria/t/maria3.test:
  Fix when compiling with safemalloc
storage/maria/ha_maria.cc:
  Fix that MAX_FILE_SIZE is not limited on 32 bit machines.
2011-06-11 11:41:46 +03:00
Sergei Golubchik
49874ff827 more buildbot fixes 2011-06-10 21:15:13 +02:00
Sergei Golubchik
f1a5c49c4e various fixes for buildbot failures 2011-06-10 15:42:55 +02:00
Sergey Petrunya
b6437d7dbf BUG#727183: WL#90 does not trigger with non-comma joins
- Add a testcase (the bug has already been fixed)
2011-06-10 12:45:43 +04:00
Sergei Golubchik
10fedf675a change test_if_equality_guarantees_uniqueness()
from an ad hoc set of limitations
to a correct rule
2011-06-10 10:14:20 +02:00
Igor Babaev
ab411f8f1c Fixed LP bug .
The function generate_derived_keys did not take into account the fact
that the last element in the array of keyuses could be just a barrier
element. In some cases it could lead to a crash of the server.

Also fixed a couple of other bugs in generate_derived_keys: the inner 
loop in the body of if this function did not change the cycle variables
properly.
2011-06-09 12:43:28 -07:00
Michael Widenius
9e3570ea6c Removed depricated --maria-options from mysqld. 2011-06-09 21:39:31 +03:00
Sergei Golubchik
c3f665dc66 bugfixes:
microsecond(TIME)
  alter table datetime<->datetime(6)
  max(TIME), mix(TIME) 

mysql-test/t/func_if.test:
  fix the test case of avoid overflow
sql/field.cc:
  don't use make_date() and make_time()
sql/field.h:
  correct eq_def() for temporal fields
sql/item.cc:
  move datetime caching from Item_cache_int
  to Item_cache_temporal
sql/item.h:
  move datetime caching from Item_cache_int
  to Item_cache_temporal
sql/item_func.cc:
  use existing helper methods, don't duplicate
sql/item_sum.cc:
  argument cache must use argument's cmp_type, not result_type.
sql/item_timefunc.cc:
  use existing methods, don't tuplicate.
  remove unused function.
  fix micorseconds() to support TIME argument
sql/mysql_priv.h:
  dead code
sql/time.cc:
  dead code
2011-06-09 17:23:39 +02:00
Igor Babaev
7f345153f9 Fixed LP bug .
INSERT/UPDATE/DELETE statement that used a temptable view v1 could lead to
a crash if v1 was defined as a select from a mergeable view v2 that selected
rows from a temptable view v3. 
 
When INSERT/UPDATE/DELETE uses a view that is not updatable then field
translation for the view should be created before the prepare phase.
2011-06-09 00:13:00 -07:00
Sergei Golubchik
9b98cae4cc merge with 5.1-micro 2011-06-07 18:13:02 +02:00
Michael Widenius
8d7f810894 Upgraded to latest handlersocket code. This fixed LP:766870 "Assertion `next_insert_id == 0' failed with handlersocket"
sql/handler.cc:
  Added DBUG_ code
2011-06-07 14:19:49 +03:00
Igor Babaev
059aff15cd Fixed LP bug .
The code that added semi-join transformations missed checking
the state of the fixed flag for the items built with the
and_items function before calls of the fix_fields method.
This could lead to an abort failure when the first argument
of and_items() happened to be NULL.
2011-06-06 15:50:46 -07:00
Igor Babaev
db0c340601 Fixed LP bug .
When looking for the execution plan of a derived table to be materialized
JOIN::optimize finds  out that all joined tables of the derived table
contain not more than one row then the derived table should be maretialized
at the optimization stage.
Added a test case for the bug.
Adjusted results in other test cases.
2011-06-06 12:19:35 -07:00
Sergei Golubchik
4d128777dd revert a suggested "optimization" that introduced a bug
compilation error in mysys/my_getsystime.c fixed
some redundant code removed
sec_to_time, time_to_sec, from_unixtime, unix_timestamp, @@timestamp now
  use decimal, not double for numbers with a fractional part.
purge_master_logs_before_date() fixed
many bugs in corner cases fixed

mysys/my_getsystime.c:
  compilation failure fixed
sql/sql_parse.cc:
  don't cut corners. it backfires.
2011-06-06 20:28:15 +02:00
Michael Widenius
29af1aefe9 Merge with 5.2 to get bug fixes for thr_lock 2011-06-06 19:37:33 +03:00
Michael Widenius
7e04f7c8fb Fixed that SHOW COLUMNS for a virtual persistent column shows 'PERSISTENT' instead of 'VIRTUAL'
Strict mode now gives error if one tries to update a virtual column.

mysql-test/suite/vcol/r/vcol_column_def_options_innodb.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_column_def_options_myisam.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_keys_innodb.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_keys_myisam.result:
  Updated test results
mysql-test/suite/vcol/r/vcol_misc.result:
  Added new test for 'show columns' and error handling when trying to update a virtual column.
mysql-test/suite/vcol/t/vcol_misc.test:
  Added new test for 'show columns' and error handling when trying to update a virtual column.
sql/sql_base.cc:
  Strict mode now gives error if one tries to update a virtual column.
sql/sql_show.cc:
  Show PERSISTENT instead of VIRTUAL for persistent columns.
2011-06-06 17:25:01 +03:00
Michael Widenius
6ae42b75b8 Fixed lock sorting and lock check issues with thr_lock that caused warnings when running test suite.
Safety check that could cause core dump when doing create table with virtual column.

mysql-test/mysql-test-run.pl:
  Show also warnings from thr_lock (which starts with just Warning, not Warning:)
mysql-test/r/lock.result:
  Added test that showed not relevant warning when using table locks.
mysql-test/t/lock.test:
  Added test that showed not relevant warning when using table locks.
mysys/thr_lock.c:
  Fixed sorting of locks.
  (Old sort code didn't handle case where TL_WRITE_CONCURRENT_INSERT must be sorted before TL_WRITE)
  Added more information to check_locks warning output.
  Fixed wrong testing of multiple different write locks for same table.
sql/item_cmpfunc.cc:
  Safety check that could cause core dump when doing create table with virtual column.
2011-06-06 16:39:06 +03:00
Igor Babaev
3bf08e549a Added two new flags for the optimizer switch:
'derived_merge':
  - if the flag is off then all derived tables are materialized
  - if the flag is on then mergeable derived tables are merged
'derived_with_keys':
  - if the flag is off then no keys are created for derived tables
  - if the flag is on then for any derived table a key to access 
    the derived table may be created.

Now by default both flags are on.
Later the default values for the flags will be off to comply with
the current behaviour of mysql-5.1. 

Uncommented previously commented out test case from parts.partition_repair_myisam
after having added an explicit requirement to materialize the derived
table used in the test case.
2011-06-05 21:54:25 -07:00
Igor Babaev
f03a3ee54f Merged the code of mwl 106 into the latest 5.3 with mwl 90 pushed.
Resolved all conflicts and failures.
2011-06-04 19:56:06 -07:00