1. 08 Jul, 2011 1 commit
    • Alexey Botchkov's avatar
      Fix for bug #804259 Second assertion in Gis_geometry_collection::init_from_opresult. · 67e93709
      Alexey Botchkov authored
              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 #804259 Second assertion in Gis_geometry_collection::init_from_opresult.
              test result updated.
        mysql-test/t/gis-precise.test
      Fix for bug #804259 Second assertion in Gis_geometry_collection::init_from_opresult.
              test case added.
        sql/gcalc_tools.cc
      Fix for bug #804259 Second assertion in Gis_geometry_collection::init_from_opresult.
              Skip the point in the result if it's the hole inside a polygon.
      67e93709
  2. 07 Jul, 2011 2 commits
    • Alexey Botchkov's avatar
      Fix for bug #805860 Second assertion Assertion `n > 0 && n <... · e182ae27
      Alexey Botchkov authored
      Fix for bug #805860 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 #805860 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 #805860 Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos.
              test case added.
        sql/item_geofunc.cc
      Fix for bug #805860 Second assertion Assertion `n > 0 && n < SINUSES_CALCULATED*2+1' in get_n_sincos.
              condition fixed.
      
      e182ae27
    • Alexey Botchkov's avatar
      Fix for bug #804324 Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection · 13f6e111
      Alexey Botchkov authored
              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 #804324 Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
              test result updated.
      
        mysql-test/t/gis-precise.test
      Fix for bug #804324 Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
              test case added.
      
        sql/gcalc_slicescan.cc
      Fix for bug #804324 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 #804324 Assertion 0 in Gcalc_scan_iterator::pop_suitable_intersection
              if edges coincide, just pick the first coinciding poing as an intersection.
      13f6e111
  3. 05 Jul, 2011 1 commit
    • Alexey Botchkov's avatar
      bug #804305 Crash in wkb_get_double with ST_INTERSECTION. · f3b850a7
      Alexey Botchkov authored
              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 #804305 Crash in wkb_get_double with ST_INTERSECTION.
              test result updated.
        mysql-test/t/gis-precise.test
      bug #804305 Crash in wkb_get_double with ST_INTERSECTION.
              test result added.
        sql/gcalc_tools.cc
      bug #804305 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 #804305 Crash in wkb_get_double with ST_INTERSECTION.
              Gcalc_result_receiver::move_hole interface changed.
      f3b850a7
  4. 04 Jul, 2011 2 commits
    • Alexey Botchkov's avatar
      fix for bug #801212 Assertion with ST_INTERSECTION on NULL values · 7f55ea12
      Alexey Botchkov authored
              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 #801212 Assertion with ST_INTERSECTION on NULL values
              test result updated.
        mysql-test/t/gis-precise.test
      fix for bug #801212 Assertion with ST_INTERSECTION on NULL values
              test case added.
        sql/item_geofunc.cc
      fix for bug #801212 Assertion with ST_INTERSECTION on NULL values
              return NULL from the val_str if we get the null_value.
      7f55ea12
    • Alexey Botchkov's avatar
      bug #801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT · 0e6c889c
      Alexey Botchkov authored
              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 #801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
              test result updated.
      
        mysql-test/t/gis-precise.test
      bug #801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
              test case added.
      
        sql/item_geofunc.cc
      bug #801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
              start_collection() implemented.
      
        sql/item_geofunc.h
      bug #801199 Infinite recursion in Gcalc_function::count_internal with ST_BUFFER over MULTIPOINT
              Item_func_buffer::Transporter::start_collection() defined.
      0e6c889c
  5. 30 Jun, 2011 2 commits
    • Alexey Botchkov's avatar
      fix for bug #201189 ST_BUFFER asserts if radius = 0. · a9a6597d
      Alexey Botchkov authored
              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 #201189 ST_BUFFER asserts if radius = 0.
              test result updated.
      
        mysql-test/t/gis-precise.test
      fix for bug #201189 ST_BUFFER asserts if radius = 0.
              test case added.
      
        sql/item_geofunc.cc
      fix for bug #201189 ST_BUFFER asserts if radius = 0.
              return the first argument as the result of the ST_BUFFER, if
              the distance is 0 there.
      a9a6597d
    • Alexey Botchkov's avatar
      fix for bug #801243 Assertion `(0)' failed in... · 4f49cdf8
      Alexey Botchkov authored
      fix for bug #801243 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 #801243 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 #801243 Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION 
              test case added.
        sql/spatial.cc
      fix for bug #801243 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 #801243 Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult on ST_UNION 
              check the data lenght instead of number of shapes.
      
      4f49cdf8
  6. 19 Jun, 2011 1 commit
  7. 17 Jun, 2011 2 commits
  8. 16 Jun, 2011 1 commit
  9. 15 Jun, 2011 5 commits
  10. 14 Jun, 2011 2 commits
  11. 12 Jun, 2011 1 commit
  12. 14 Jun, 2011 1 commit
    • unknown's avatar
      Another attempt at fixing the rare random failures of rpl_corruption · 54fcd3b8
      unknown authored
      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.
      54fcd3b8
  13. 13 Jun, 2011 1 commit
  14. 11 Jun, 2011 4 commits
  15. 10 Jun, 2011 6 commits
  16. 09 Jun, 2011 8 commits
    • Michael Widenius's avatar
      A bit better fix for tmp-table problem · 13f55aac
      Michael Widenius authored
      Fixed reference to not initialized memory detected by valgrind
      
      sql/sql_select.cc:
        A bit better fix for tmp-table problem:
        Use only dynamic_record format for group by and distinct.
      storage/maria/ma_create.c:
        DYNAMIC_RECORD format doesn't pack VARCHAR fields.
        This change fixes a non-fatal uninitialized memory copy.
      13f55aac
    • Igor Babaev's avatar
      Fixed LP bug #794909. · ab411f8f
      Igor Babaev authored
      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.
      ab411f8f
    • Michael Widenius's avatar
      9e3570ea
    • Michael Widenius's avatar
      Merge with bug fixes · 5831ddcf
      Michael Widenius authored
      5831ddcf
    • Michael Widenius's avatar
      Use dynamic row format when creating temporary tables without sumary fields. · 97e834e1
      Michael Widenius authored
      The reason for this is that BLOCK_RECORD format is not good when there is a lot of duplicated keys as it first writes the data (to get the row position) and
      then writes the key (and thus checks for duplicates).
      97e834e1
    • Sergei Golubchik's avatar
      small optimization in Field_time_hires. · fdfeb4be
      Sergei Golubchik authored
      Fix Field_time_hires::reset()
      fdfeb4be
    • Sergei Golubchik's avatar
      bugfixes: · c3f665dc
      Sergei Golubchik authored
        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
      c3f665dc
    • Michael Widenius's avatar
      Fixed problem that global status variables 'bytes_recieved' and... · 3600e6b8
      Michael Widenius authored
      Fixed problem that global status variables 'bytes_recieved' and 'binlog_bytes_written' where not correctly updated 
      3600e6b8